Breadboard-Computer [geschlossen]

19

Ist es möglich, einen einfachen Computer vollständig aus Steckbrettern und grundlegenden elektronischen Bauteilen herzustellen? Ist es beispielsweise möglich, auf diese Weise einen wissenschaftlichen Taschenrechner zu konstruieren?

CT
quelle
10
Es ist nicht nur möglich, sondern die Leute tun es auch, zB megaprocessor.com und viele mehr, googeln einfach nach "diskreter Transistor-CPU" oder ähnlichem. Es wird einfach furchtbar komplex und es braucht Jahre, um es zu erstellen und zu debuggen
PlasmaHH
Kommt darauf an, was du mit einem Steckbrett meinst. Wenn es Veroboard, Markierungsstreifen oder eine tote Käferkonstruktion enthält, die von Nägeln verankert ist, die in Mamas (ja) Steckbrett gehämmert sind - alles gelötet, dann ja, definitiv. Wenn Sie diese Plastikdinge meinen, die willkürlich Drähte loslassen, vergessen Sie es ...
Brian Drummond
@ Brian Drummond Re Kunststoff-Steckbretter - es ist anscheinend möglich (siehe meine Antwort). Ich habe ein paar Computer gesehen, die auf diese Weise gebaut wurden. Wenn man versehentlich einige Drähte herauszog, was für ein Albtraum. Ich bin wirklich erstaunt, dass sie tatsächlich rennen.
Tcrosley
2
Ich denke, wenn Sie unendlich viele Steckbretter hätten, wären Sie vollkommen fertig?
PyRulez
2
Sie müssen unbedingt den Homebrew-CPU- " Webring
slebetman

Antworten:

33

Ich werde nicht zustimmen, dass das Platzieren eines Mikrocontrollers auf einem Steckbrett als das Bauen eines Computers auf einem Steckbrett qualifiziert ist. Mit Ausnahme von E / A (z. B. Tastatur und Display) ist ein Mikrocontroller an sich so ziemlich ein vollständiger Computer. Nur auf ein Steckbrett zu legen und ein paar Drähte anzuschließen, ist trivial und in zehn Minuten erledigt.

Als das OP fragte: "Ist es möglich, einen einfachen Computer vollständig mit Steckplatinen und grundlegenden elektronischen Bauteilen herzustellen?", Meine ich mit grundlegenden elektronischen Bauteilen etwas Ähnliches:

Bildbeschreibung hier eingeben

Das ist ein Computer auf einem Steckbrett (also mehrere Steckbretter), der aus grundlegenden Komponenten besteht . Die Beschreibung dazu finden Sie hier . Es besteht aus einem Dutzend Typen von ICs der 74LS00-Serie. (Ich glaube nicht, dass wir zurück zu den Transistoren wollen; der ursprüngliche PDP-8 hatte die Größe eines kleinen Kühlschranks ).

Wenn Sie einen Universalcomputer wie den oben gezeigten gebaut haben, können Sie ihn als wissenschaftlichen Taschenrechner programmieren. Einen wissenschaftlichen Taschenrechner nur mit Logik-ICs (ohne Computer) zu konstruieren, wäre äußerst schwierig. Alle Hersteller solcher Taschenrechner (Ti, HP usw.) verwendeten spezielle ICs in großem Maßstab . Hier ist ein selbstgebauter Rechner , der einen frühen 4-Bit-Rechner-IC verwendet.

Ich werde zustimmen, dass die Verwendung eines Mikrocontrollers der richtige Weg ist, wenn ein Computer so schnell wie möglich zum Laufen gebracht werden soll. Wenn man wirklich verstehen will, wie ein Computer intern funktioniert, ist der Aufbau eines aus Basis-ICs der richtige Weg.

Tcrosley
quelle
1
@ColeJohnson Seine Notizen besagen, dass er keine Schaltpläne dafür hat!
Tcrosley
1
@ JohnD thx, behoben.
Tcrosley
23

Es ist nicht nur möglich, ich habe es tatsächlich getan: siehe https://www.vttoth.com/CMS/projects/47

So sah die Verkabelung auf der Rückseite eines der Steckbretter aus:

Bildbeschreibung hier eingeben

Natürlich hängt alles davon ab, welche Komponenten als "grundlegend" zu qualifizieren sind. In meinem Fall waren die Grundkomponenten TTL-Chips der Serie 74 ..., ungefähr hundert davon. Zum Beispiel einen Computer komplett aus Transistoren zu bauen ... das wäre viel zu überwältigend.

Außerdem ist mein 4-Bit-Computer nicht leistungsfähig genug, um als wissenschaftlicher Taschenrechner verwendet zu werden, hauptsächlich aufgrund von Speicherbeschränkungen (256 4-Bit-Nybbles). Es ist jedoch nicht sonderlich schwierig, den Adressraum zu erweitern, vielleicht mithilfe eines Paging-Mechanismus, und 4096 Nybbles (12-Bit-Adressen) könnten mit Sicherheit schon genug sein, 65536 Nybbles (16-Bit-Adressen).

Viktor Toth
quelle
Herzliche Glückwünsche. Das ist schon eine Leistung. Ich mag den Befehlssatz - erinnert mich an eine 6800.
Tcrosley
1
Da ist ein Typ, der daran arbeitet, einen Prozessor mit nichts als Transistoren zu bauen. Der RAM, der Prozessor, alles. MegaProcessor.com
Cole Johnson
4
Einige Leute sind geduldiger als ich.
Viktor Toth
10

Ja, es ist möglich, aber Sie brauchen ein bisschen mehr als nur ein paar Steckbretter, um einen wissenschaftlichen Taschenrechner zu entwickeln. Dies hängt natürlich davon ab, was Sie als Grundkomponente betrachten: ob Sie einen Transistor als Grundkomponente oder als Flip-Flop bezeichnen , ein EEPROM oder einfach etwas, das Sie aus einem alten Kühlschrank herauslöten können.

Hier gibt es einige gute Antworten, aber ich möchte nur auf eine Sache hinweisen, die die Leute oft nicht in Betracht ziehen. In Bezug auf die Geschichte der Computergeräte liegt die Schwierigkeit beim Bau eines Computers aus Baumrinde und Nägeln nicht in der CPU oder der ALU. Das Hauptproblem ist das Gedächtnis. Weil Sie eine Menge davon benötigen, damit das gesamte gespeicherte Programmkonzept funktioniert. Sie können eine CPU aus ein paar Flip-Flops und NAND-Gattern erstellen. Zum Beispiel habe ich für eine Leistungselektronikanwendung mit bestimmten Einschränkungen einmal einen Mikroprozessor entworfen, der nur 69 Flip-Flops verwendet (4 16-Bit-Register, 4 Flags und 1 Statusregister-Bit für FETCH / EXECUTE). Es ist in Silizium implementiert und die Leute schreiben Software, die darauf läuft. Das ist einfach und passt in die Größe eines Drain-Kontakts eines Leistungstransistors. Aber der Speicher, der benötigt wird, um ein nützliches Programm zu speichern, ist viel.

Schon früh war die Erinnerung der Ausgangspunkt des Entwurfs. Sie können bistabile Relais verwenden, wie sie es in früheren Telefonvermittlungen getan haben. Sie könnten Vakuumröhren oder Transistoren verwenden, um Flip-Flops herzustellen. und die Register der CPU wurden normalerweise auf diese Weise implementiert. Für die Programm- und Datenspeicherung wurden jedoch Papierbänder, Magnetbänder, Schleuderscheiben oder Schleudertrommeln verwendet. Sogar Schallwellen auf Stahldraht, die ständig von der Elektronik empfangen und weitergeleitet werden. Alles, was Sie sich vorstellen können, könnte einige Bits für einen angemessenen Zeitraum zu angemessenen Kosten enthalten. Apollo-Orbiter- und Mondlandecomputer verwendeten Spulenkern-Speicher, die als Seile aufgewickelt waren. All dies erfordert eine andere Schnittstellenausstattung und hat einen enormen Einfluss darauf, wie die CPU aussehen muss, um auf diese Art von Speichern zuzugreifen. Halbleiterspeicher erschien wirklich nur in den 1970er Jahren, endlich diese Art von Komplexität zu verwerfen. Aber auch moderne dynamische RAMs sind nicht so einfach.

Hinzu kommt die wunderbare Möglichkeit, Ein- und Ausgabegeräte für den Computer entwickeln zu müssen. Ein paar Glühbirnen reichen für einige Anwendungen aus, aber wenn Sie Texteingabe / -ausgabe oder etwas noch Komplexeres benötigen, stehen Sie erneut vor größeren Schwierigkeiten. Lochkartenleser, Drucker und Papierterminals waren zu ihrer Zeit ein großes Geschäft. Ein VT100-Videoterminal im Textmodus aus dem Jahr 1978 verfügt über viel mehr Speicher und Verarbeitungsleistung als Ihr wissenschaftlicher Taschenrechner-Steckbrettcomputer.

PkP
quelle
Obwohl es mit Sicherheit möglich ist, Speicher mit Flip-Flops zu implementieren, ist meiner Meinung nach eine Konzession erforderlich, um Speicher-ICs zuzulassen (was bei diesen selbstgebrauten Computern normalerweise der Fall ist, um eine 74181 für die ALU zu verwenden). Sie können einen 8Kx8- SRAM in einem DIP-Paket für ca. 2 USD erwerben . Das sollte für einen Taschenrechner ausreichen. Gleiches gilt für das EEPROM.
Tcrosley
1
@tcrosley Ich stimme zu. Ich weise nur auf eine Bemerkung aus der Geschichte hin. Wenn Sie heute einen Homebrew-Computer bauen, tun Sie dies nicht, um willkürliche Regeln zu befolgen, sondern zum Spaß und zum Lernen. Und das Entwerfen eines Mikroprozessors macht mehr Spaß und ist eine bessere Lernerfahrung als das Wickeln von
16.000
@PkP Es gibt etwas zu sagen für jemanden, der sich daran erinnert, wie man das Kerngedächtnis verwebt und dokumentiert. Nicht so sehr auf dem Niveau, wie ein oder zwei Bits funktionieren, sondern auf der praktischen Seite, wie man 16 kbit macht, ohne verrückt zu werden. Ich habe an Saatgutprojekten gearbeitet. Ich kann mir den Wahnsinn vorstellen ... Ich gehe davon aus, dass es einmal eine Fabrikautomatisierung gab, aber ich habe sehr wenig über die Produktionsseite geschrieben.
RBerteig,
2
@RBerteig danke, ich stimme zu. Nun, ich erinnere mich, dass ich gelesen habe, dass die Seilspeicher des Apollo-Raumfahrzeugs von sehr erfahrenen Weberinnen gewebt wurden, die die erstaunliche Geduld hatten, jede einzelne oder Null im Codediagramm sehr sorgfältig zu überprüfen umgangen, oder etwas in diesem Sinne. Ich erinnere mich, aus derselben Quelle gelesen zu haben, dass sie sechs Monate gebraucht haben, um nach jeder Softwaremodifikation von den MIT-Ingenieuren, die die Apollo-Software geschrieben haben, ein neues ROM zu erstellen.
PkP
7

Es ist möglich, aber die Komplexität und Größe hängt davon ab, was Sie als grundlegende elektronische Komponenten bezeichnen. Eine ALU- und Sequenzerlogik ist etwas komplex, aber machbar. Das Gedächtnis ist einfach, aber das Grundmuster muss sehr oft wiederholt werden (man denke tausendmal).

Neben der Hardware benötigen Sie auch Software, die darauf ausgeführt wird. Als grobe Schätzung wird Ihr Softwareaufwand für eine mäßig komplexe CPU (klassische 16-Bit-Anweisungen, 8-Bit-Datenebene) mit Ihrem Hardwareaufwand verglichen. (Für eine einfachere CPU benötigen Sie mehr SW-Aufwand.) Und wie laden Sie diese SW in Ihren Computer?

Die Fehlersuche (und -behebung) wird ein interessantes Unterfangen sein. Ich würde Ihnen raten, mit dem Schreiben in VHDL zu beginnen und das auf einem Simulator auszuführen, der viel einfacher zu debuggen ist als ein Haufen Chips und Drähte.

Zwei meiner Studenten erstellten in ca. 1 Jahr eine 16-Bit-CPU mit einer Basissoftware (einschließlich eines GCC-Backend-Ports), beginnend mit VHDL- und C-Code für die Simulation. Die ALU verwendete 74181-Chips, der Speicher war statischer RAM, und sie verwendeten einen atMega, um eine Schnittstelle zwischen dem PC und ihrem Computer herzustellen. Der Computer befand sich teils auf lötfreien Breadbords, teils auf Leiterplatten (den 8 16-Bit-Registern). (Diese beiden waren keine durchschnittlichen Studenten!)

Wouter van Ooijen
quelle
5

Ja, es ist möglich. Aber Sie brauchen einen Mikrocontroller, um die Mathematik zu machen. Dies ist ein Beispielprojekt. Es verwendet einen AVR-Mikrocontroller und ein 16 × 2-LCD-Display.

Oka
quelle
+1 Ich habe einen Taschenrechner, der einen ARM-Prozessor verwendet. Heutzutage sollte ein Mikrocontroller als grundlegende Komponente betrachtet werden.
Spehro Pefhany
25
Sie brauchen kein Mikro, es macht die Sache nur einfacher.
PlasmaHH
@PlasmaHH entweder ein Mikrocontroller oder mehrere Steckbretter. Haben Sie nur einfache 2-Eingangstore? Habe Spaß. OTOH ein ROM oder zwei + ein MUX + -Register = schon ein einfacher Mikrocontroller.
John Dvorak
Wie denken Sie, machen Mikrocontroller Mathe? Mit ALUs - hergestellt aus Silizium / Transistoren / Elementartoren, je nachdem, in welchem ​​Maßstab Sie das Ding betrachten.
user3728501
Mikrocontroller und Mikroprozessoren bestehen ebenfalls aus elektronischen Elementen, sodass Sie sie auf einem
Steckbrett anfertigen