Inhaltsverzeichnis:

8-Bit-Computer auf einem Steckbrett - Übersicht - Gunook
8-Bit-Computer auf einem Steckbrett - Übersicht - Gunook

Video: 8-Bit-Computer auf einem Steckbrett - Übersicht - Gunook

Video: 8-Bit-Computer auf einem Steckbrett - Übersicht - Gunook
Video: Das Steckschwein 2024, November
Anonim
8-Bit-Computer auf einem Steckbrett Übersicht
8-Bit-Computer auf einem Steckbrett Übersicht

Mein Ziel für dieses Projekt war es, ein besseres Verständnis der Computerarchitektur, des Hardwaredesigns und der Sprachen auf Assemblerebene zu entwickeln. Als Junior an der Universität, der Computertechnik studiert, hatte ich vor kurzem Kurse in Elektronik, Labors, die mich in Assemblersprache eingeführt haben, und Hardwarearchitektur abgeschlossen. Durch eine Einführung in diese Themen wollte ich mein Verständnis für die Feinheiten in allen drei Kursen verbessern. Wie könnte man besser lernen, als an einem Projekt zu arbeiten?

Meine ursprüngliche Absicht war es, diesen 8-Bit-Computer mithilfe der auf Ben Eaters YouTube-Kanal bereitgestellten Vortragsvideos vollständig zusammenzubauen, die den Designprozess fantastisch in eine solide Mischung aus Material, das ich behandelt habe, und Aspekten, die ich noch nicht behandelt habe, zerlegen. lernen. Da ich bereits ein grundlegendes Verständnis von kombinatorischem Design und grundlegender Elektroniklogik hatte, wollte ich mich selbst herausfordern, indem ich versuchte, Teile des Computers nach den Entwurfsübersichten zu entwerfen und zu bauen, aber ohne die Bauanleitung zu beachten. Während des gesamten Projekts war es mein Ziel, mehr zu lernen und mein Verständnis zu verbessern, als nur etwas Neues zu bauen. Daher habe ich während jedes Projektschritts ein wenig in Online-Artikeln und Foren über die Komponentenarchitektur und die für jeden verwendeten grundlegenden Konventionen gelesen von ihnen.

Schritt 1: Forschung auf dem Weg

Forschung auf dem Weg
Forschung auf dem Weg
Forschung auf dem Weg
Forschung auf dem Weg

Dieses Projekt hat mich wirklich dazu gebracht, viel mehr zu lesen, als ich erwartet hatte. Einer meiner Hauptansätze für jede Komponente bestand darin, einen Überblick aus einem Online-Forum oder einen Artikel zu lesen, die Vorträge aus Eaters Videos zu sehen und zu versuchen, mein eigenes Teil zu entwerfen, bevor ich es baue, teste und meistens für ein Stück verschrotte mehr geführte Annäherung von Eaters Kanal. Ein Beispiel dafür war, als ich die ALU-Komponente des PCs baute. Während ich mir die Designvideos ansah, las ich Artikel über Chipkomponenten mit höherer Funktionalität und Triggereingängen, die es ermöglichen würden, Befehlstypen umzuschalten und Eingänge intern in das Zweierkomplement zu invertieren. Vor dem Kauf dieser einfacheren Chips habe ich jedoch den Designansatz überprüft, über den Ben Eater in seinen Videos gesprochen hat, mit der Mischung von Addierern und XOR-Logikgattern, um die Funktionalität des ALU-Moduls zu erhöhen, ohne dass teurere Chips benötigt werden. Dadurch schätze ich die Verwendung diskreter Logik und ihre Anwendbarkeit auf das Computerdesign und lernte verschiedene Ansätze zum Bauen von Komponenten kennen. Durch die Kombination von Chips niedrigerer Ebene auf dem Steckbrett lernte ich auch einige wichtige Architekturmerkmale kennen, die innerhalb der ALU verwendet werden, was mein Verständnis dieser Ausführungskomponente auf dem PC verbessert hat.

Eine weitere Schlüsselkomponente, die ich kennengelernt habe, war die Verwendung von Transceivern, auch als Puffer bekannt. Bevor ich tiefer in das Projekt einstieg, dachte ich, dass ich einfach verschiedene Komponenten mithilfe von Steuersignalen aktivieren und deaktivieren würde, fand aber in den Artikeln schnell heraus, dass Puffer verwendet werden mussten, um diese Architektur im Von-Neuman-Stil richtig zu funktionieren. Da der Computer einen gemeinsamen Bus für die Übertragung von Daten zwischen den verschiedenen Modulen des PCs verwendet, wurde die Synchronisation der Zyklen von der Uhr vorgegeben. Um jedoch das Speichern und Laden ohne Störung der auf dem Bus verfügbaren Daten zu ermöglichen, stellte ich fest, dass Transceiver als Gates unerlässlich waren und ein Freigabesignal erforderlich waren, damit Daten rechtzeitig auf den Bus fließen können. Die Lesefähigkeit war nicht so schwer zu verstehen, da die Drähte immer die Werte auf dem Bus hielten, aber die Verwendung des richtigen Wertes bedeutete, dass die Register den neuen Wert speichern konnten.

Eine letzte Erkenntnis aus der Forschung während dieses Projekts war das Verständnis der Spezifikationsunterschiede zwischen ähnlichen Chips. Oft habe ich Chips mit den gleichen ID-Werten, aber unterschiedlichen Beschreibungsbuchstaben wie LS und HC gefunden. Ich lernte, dass es nicht nur um die Herstellung von Etiketten ging, sondern auch um Timing- und Leistungsspezifikationen für die Chips. Da mein Computer zum Glück relativ niedrige Komponenten mit hoher Toleranz verwendet, musste ich mich nicht darum kümmern, viele Spezifikationen zu erfüllen, aber beim Design auf höherer Ebene habe ich gelernt, dass Dinge wie Taktfrequenz und Leistungsaufnahme entscheidend für den Erfolg oder Misserfolg von Elektronik sind Entwurf

Schritt 2: Aufgetretene Schwierigkeiten

Ziemlich schnell in das Projekt hinein konnte ich einfache Komponenten wie den Taktgeber für die Synchronisierung von Prozessen und die grundlegende Speicherarchitektur entwerfen, aber die Bestellung von Teilen neben einem schweren Kurssemester machte es schwierig, dem Projekt außerhalb der Zeit zuzuordnen, was mich wieder beschäftigte Zeitplan für die Fertigstellung. Nach meinem ersten großen Rückschlag, weil ich eine Woche auf die Ankunft von Teilen warten musste, umging ich weitere Verzögerungen, indem ich alle Teile bestellte, von denen ich dachte, dass ich sie für den Abschluss dieses Projekts benötigen würde. Nachdem ich auch einige grundlegende Ansätze zum Debuggen gelernt hatte, begann ich, einige Baugruppen zu übersehen, was bedeutete, dass ich zurückgehen und Videos erneut ansehen musste, um meine Fehler zu erkennen, was normalerweise dazu führte, dass der größte Teil eines Boards auseinandergenommen wurde. Dies hatte keine Abkürzung. Ich habe gelernt, wie wertvoll es ist, Ihren Fortschritt beim Bau eines elektronischen Geräts zu überprüfen. Durch das Debuggen jedes Boards auf dem Weg konnte ich sie mit mehr Vertrauen kombinieren, dann wurde das Debuggen von kombinierten Boards viel einfacher.

Schritt 3: Leistungen und Reflexion

Alles in allem habe ich derzeit die Uhr, den Opcode- und Programmzähler, die ALU-Einheit, die rs rt- und rd-Register und den RAM fertiggestellt. Abgesehen davon, dass ich den Bus und die Peripheriegeräte vervollständigen musste, um dieses Projekt abzuschließen, habe ich eine beträchtliche Menge über Computerarchitektur gelernt, die ich hoffentlich in meinen Wahlfächern im Abschlussjahr weiterführen kann, indem ich den Computerarchitekturkurs belege.

M5 stellte mir alle notwendigen Werkzeuge zur Verfügung, um an meinem Projekt zu arbeiten, und die Komponenten waren entlang der Teilewände sehr gut angeordnet, sodass ich sehr früh wusste, welche Teile bestellt werden mussten und was entbehrlich war. Wenn ein anderer Student dieses Projekt übernehmen sollte, würde ich auf jeden Fall anmerken, dass dieses Projekt viel Zeit in Anspruch nimmt, wenn Sie versuchen, alles zu verstehen, was auf dem Computer vor sich geht. ES IST NICHT SCHWIERIG, aber es erfordert Sorgfalt, wenn Sie möchten, dass es erfolgreich funktioniert. Ich empfehle dringend, die Video-Playlist auf dem YouTube-Kanal von Ben Eater durchzugehen, um einen Überblick über alle Teile zu erhalten, die Sie verwenden müssen, damit Sie nicht rechtzeitig in Verzug geraten, wenn Sie nicht vorhaben, Ihren eigenen Ansatz zu entwickeln. Da ich die meisten Teile gekauft habe, plane ich, dies mitzunehmen, um es in meiner Freizeit fertigzustellen, aber es wäre cool, dies weiterzugeben, damit ein anderer Schüler es fertigstellen kann, was bedeutet, dass das Design der verbleibenden Teile belichtet wird, aber ein großer Fokus auf Assembler, an dem ich glücklicherweise in anderen Kursen arbeiten durfte

Empfohlen: