Hier im Forum hört man ja öfter mal von irgendwelchen Plänen, CPUs, oder ganze Controller diskret bauen zu wollen. Irgendwie hört man von den meisten nie wieder. Daher hab ich jetzt erstmal gebaut und getestet und poste jetzt erst meinen kleinen bescheidenen Beitrag Die Leiterplatten hab ich zwar ätzen lassen, aber jedes einzelne Bauteil von Hand gelötet. (ca. 4000 Dioden, 2000 Transistoren und 4000 Widerstände) Und nach ca. 4 Monaten hab ich jetzt nen 8bit Rechner mit: -256Byte ROM (Diodenmatrix) -16Byte RAM (Der Turm) -ADD,SUB,OR,AND,XOR -conditional branches: = != > <= (signed und unsigned) -direct und indirect addressing leider nur Daten (Sprünge nur direkt) Leider hab ich nicht darauf geachtet, dass die Ladungen aus der Basis auch wieder abfließen können, weshalb er nicht wirklich schnell ist. (vielleicht 1kHz) Auch ordentliche Logikpegel wurden eher nicht beachtet. Innerhalb der Module haben die meisten Gatter den gleichen Eingangs und Ausgangswiderstand. Zunächst wollt ich das ganze fliegend verdrahten, hab mir dann aber doch n 300x300mm MAinboard ätzen lassen. Daher die vielen unsachgemäßen bunten Verbindungen. Das vorletzte Bild ist ein diskret aufgebauter und vereinfachter NE555 als Taktgeber. (Etwas zu sehr vereinfacht, daher die Kondensatoren) Was er leider nicht hat sind Interrupts und leider leider auch kein Stack. Vor allem indirekte Sprünge fehlen. Hat natürlich nur ein Arbeitsregister. Das macht das Programmieren etwas umständlich. Falls jemand ne Idee hat, was ich damit machen könnt. Immer raus damit. Ist komplett funktionsfähig (endlich; Fehlersuche ist echt nicht lustig bei dem Scheißteil (Vor allem, weil mir n tristate-Bus zu aufwendig war. Also hab ich rezessive und dominante Logik-Pegel)) Aber andererseits, wenn es nützlich wär, wär es ja Arbeit. (Nicht dass ich schon richtig arbeiten würde (Verbundstudent)) Für die die sich fragen, wo denn da der ROM im Bild ist. Der wird grad durch n Raspi emuliert. Die Diodenmatrix funktioniert zwar, es ist aber ein klein wenig umständlich bei jedem Programmierfehler die gesamte Matrix neu zu verlöten. Die nächste Stufe scheint mir, wäre ein Rechner mit Pipelines. Bei mir braucht ein Befehl stupide 5 Tacktzyklen und zwei Byte ROM. Aber das ist dann was für jemand anderen. Mir scheint James Sharman hat grad genug Probleme mit seinem. Für die exakt 5 Hanserl dies interresiert: Hier noch der für den Programmierer verfügbare opcode: (Sowas wie increment Programm Counter ist intern auch n Befehl, kann aber nur die Control Unit 1. PC - > Rom->befR 2. inc . PC 3. PC->Rom->TransR 4. inc. PC 5. exec bef ) 0xff. Nop : No operation 0xf0. Add : Addiere w-Register mit RAM 0xf1. Add const : Addiere w-Register mit konstante 0xf2. Sub : Subtrahiere RAM von w 0xf3. Sub const : Subtrahiere konstante von w 0xf4. And : ... 0xf5. And const : ... 0xf6. Or : ... 0xf7. Or const : ... 0xf8. xor : ... 0xf9. xor const : ... 0xfa. shiftR : schiebe rechts; rücke 0 nach 0xfb. shiftL : schiebe links; rücke 0 nach 0xfc. out : w-Register auf 8bit Ausgang 0xfd. in : Eingang ins w-Register 0xfe. ldpc : Lade Programm-Counter ins w-Register 0x0f. jmp : Lade Programm-Counter mit konstante 0x1f. Beq : Sprung, wen vorherige Subtraktion = 0 0x2f. Bne : Subtraktion != 0 0x3f. Bls : Subtraktion <= 0 (unsigned) 0x4f. Bhi : Subtraktion > 0 (unsigned) 0x5f. Bgt : Subtraktion > 0 (signed) 0x6f. Ble : Subtraktion <= 0 (signed) 0x7f. LdROM : Lade Konstante aus ROM (addresse) 0x8f. LdROM ptr : Lade Konstante indirekt aus ROM 0x9f. LdRAM : Lade Variable aus RAM 0xaf. LdRAM ptr : Lade Variable indirekt aus RAM 0xbf. LdR const : Lade w-Register mit Konstante (ohne addresse) 0xcf. StR : Speicher Variable ins RAM 0xdf. StR ptr : Speicher Variable indirekt ins RAM 0xef. LdPtr : Beschreibe das Pointerregister (fürs indirekte Addressieren)
:
Verschoben durch Admin
Respekt ! Gefällt mir gut, auch wenn ich keine Verwendung weiß aber für dich zum Lernen bestimmt sehr gut gewesen.
:
Bearbeitet durch User
$$$ schrieb: > Da fehlen LEDs! > > Voll viele LEDs! > > Und noch mehr LEDs! Da hast du völlig Recht! Das ist eins der Dinge, die ich im Nachhinein anders gemacht hätte. Anderersets würden all die LEDs auch von den Ausgabe-LEDs ablenken.
:
Bearbeitet durch User
> Die Diodenmatrix funktioniert zwar
Mein erster Z80 hatte als "Urlader" zum binaeren Eintippen
der Befehle auch einen 74154 und ein Haeufchen (Ge-)Dioden.
Und 3 kByte dRAM in schneeweissen 1103 mit gueldenem Deckelchen
und gueldenen Beinchen.
Alter Schwede!!! Respekt für diese Geduld und die Mordsarbeit. Wie sauber die Dioden und Transistoren positioniert sind! Da war sicher viel Liebe zum Detail im Spiel. Was hast Du gemacht, als Du festgestellt hast, dass der Controller funktioniert?
Sebastian Frank schrieb: > Alter Schwede!!! > > Respekt für diese Geduld und die Mordsarbeit. > Wie sauber die Dioden und Transistoren positioniert sind! > Da war sicher viel Liebe zum Detail im Spiel. > > Was hast Du gemacht, als Du festgestellt hast, dass der Controller > funktioniert? Ich hab alles nacheinander aufgebaut. Ein Modul eingefügt, getestet, debugged, debugged, debugged, und das nächste Modul. Allein das hat schon fast zwei Wochen gedauert. Danach war ich einfach nur müde (Hat ein paar Nächte gekostet, die ich eher zum schlafen verwenden hätte sollen) und bin ins Bett gegangen. Ist auch ein Traum, wenn man erst alles zum ersten Mal zusammengebaut hat, nen Widerstand sieht, den ich auf einer Seite vergessen hab zu löten. Also schnell den Lötkolben genommen, dann machts kurz Bzzz und nix funktioniert mehr, weil ich die Spannungsversorgung vergessen hab abzustöpseln. Hat fast zwei Tage gebraucht alle Fehler zu finden.
Spielt grob in der Klasse der kleinsten MCUs (Attiny4 oder der 3-Cent Padauk-MCUs), außer dass die schneller sind ;-) Aber ein schönes Anschauungsmodell um Leuten die Komplexität (und den Preiverfall) moderner Rechner zu verdeutlichen: sieht modern und komplex aus aber selbst eine ganze Turnhalle, mit solchen Monstern vollgestapelt, erreicht nicht die Leistungsfähigkeit einer MicroSD-Karte, geschweige eines modernen Handys.
foobar schrieb: > Spielt grob in der Klasse der kleinsten MCUs (Attiny4 oder der 3-Cent > Padauk-MCUs) Wahrscheinlich nicht mal ansatzweise. Ich kann mir nicht vorstellen, dass die kommerziellen uC so ineffizient ihr Programm abarbeiten
>> Spielt grob in der Klasse der kleinsten MCUs (Attiny4 oder der 3-Cent >> Padauk-MCUs) > > Wahrscheinlich nicht mal ansatzweise. Ich kann mir nicht vorstellen, > dass die kommerziellen uC so ineffizient ihr Programm abarbeiten Oh, wunder dich nicht: die PIC-Architektur (die Padauk-MCUs sind PIC-Clones) ist uralt und wirklich auf minimalen Gatter-Count getrimmt - die hat 12-Bit-Instructions, braucht 4 Takte pro Befehl (8 bei Branches) und hat nen fixen 2-Level-Stack. Die AVR sind allerdings moderner.
Endlich mal etwas wirklich Beeindruckendes hier im Forum! Chapeau!
Huebsch. Das Teil muss in einem WOPR-mäßigen Kasten aus Plexi mit 2048 LEDs, die schöne Muster blinken, und dann etwas Hausautomation betreiben. Ein Raumthermostat, Thermohygrometer, sowas.
Echt nicht schlecht, ich hätte so viel Geduld nicht. Vorsichtige Frage: Wieviel hat der Spaß gekostet?
Ben B. schrieb: > Echt nicht schlecht, ich hätte so viel Geduld nicht. > Vorsichtige Frage: Wieviel hat der Spaß gekostet? ca. 300 Euro. Wär vermutlich auch mit 200 gegangen, aber du glaubst ja gar nicht, wie oft ich irgendwelche Teile nachbestellen musste. Dann hab ich manchmal sogar aus dem Inland bestellt, nur um weiterarbeiten zu können. Generell hab ich aber so ziemlich das billigste(und zumeist schlechteste) bestellt, das ich zumeist auf e-bay finden konnte
Nich schlecht, ist denn noch geplant eine Dokuwebseite aufzusetzen? Oder mal den ein oder anderen Schaltplan hier reinzuhängen?
Mw E. schrieb: > Nich schlecht, ist denn noch geplant eine Dokuwebseite aufzusetzen? > Oder mal den ein oder anderen Schaltplan hier reinzuhängen? Für ne Dokuseite bin ich A) viel zu schreibfaul und B) nicht wirklich zufrieden mit zu vielen Stellen. Die Schaltpläne kann ich gerne reinstellen. Hab die meisten Sachen, die ich beim erstellen verbockt hab korrigiert(seh grad, ich hab vergessen shift-left anzupassen), jedoch nicht die Layouts neu gemacht. Übersichtlich, schön oder gar hilfreich sind allerdings nicht die geeigneten Begriffe für die Schaltpläne
:
Bearbeitet durch User
BILDSCHÖN! Respekt! ..vor allem auch für die Engelsgeduld das Dingen zu bestücken! Ich mag übrigens die bunten Patchkabel, so bekommt das Dingen irgendwie was "realeres" Computer haben numal auch Draht drin, gell? Meiner Meinung nach musst Du da jetzt alte Fluoreszenzanzeigen aus alten HifiAnlagen mit 'befeuern' ne schnöde LED ist viel zu profan für das Schmuckstück!
Ben B. schrieb: > Wieviel Strom braucht das bei Vollbestückung? Ziemlich genau 0,5A. Ich betreib die meisten Gatter mit 100k Pullup am Ausgang und 100k Eingangswiderstand. Das versaut mir natürlich meine ganzen Pegel, aber da wos nötig ist hab ich halt 10k pull-up verwendet. Die Transistoren arbeiten echt am unteren Limit
sid schrieb: > Meiner Meinung nach musst Du da jetzt alte Fluoreszenzanzeigen > aus alten HifiAnlagen mit 'befeuern' Wies der Zufall so will, war mein vorheriges Projekt ne Treiberplatine für ein VFD. Aber dann hät ich halt doch wieder ICs im Rechner. Aber wahrscheinlich mach ich des. VFDs sehen einfach zu gut aus.
Dein nächstes Projekt: Diskrete VFD/NIXI-Treiber. ;) Wird aber eher langweilig wenn man es geschafft hat, einen diskreten µC zu basteln. Ich hätte übrigens mit deutlich mehr Strom gerechnet, so 2..3A hätte ich schon gedacht. Aber ich fürchte für eine Uhr oder so wirst Du noch etwas mehr Speicher brauchen. Wobei 16 Byte hast Du... vielleicht reicht das, aber ob die 256 Byte ROM reichen? Allerdings sehen die ROM-Platinen im Vergleich zum RAM ziemlich effizient aus. Edit: Wieviel würde so ein Aufbau bestückt kosten und wenn man evtl. noch LEDs hinzufügt, um Zustände innerhalb der Maschine darzustellen? Du solltest überlegen, ob Du das vielleicht als Lehrmodell oder so verkaufen könntest. Bei der Menge Arbeit, die Du da investiert hast und dem wirklich schönen Ergebnis...
:
Bearbeitet durch User
Ben B. schrieb: > Du > solltest überlegen, ob Du das vielleicht als Lehrmodell oder so > verkaufen könntest. Dazu bräuchte es dann doch eine zweite kommplett generalüberholte Version. So wurden zu viele Fehler im Nachhinein ausgebessert. Keine Ahnung, wie viel das kosten würde. Materialkosten vermutlich 300-400 Euro (bräuchte dann wohl ordentliche Stecker.) Und was das Bestücken kosten würde, will ich glaub ich gar nicht wissen.
Hallo, das erinnert mich heftig an die PDP-8 (s. Wikipedia) an der ich 1970 meine ersten Programme erstellt habe. Das dort verwendete Konzept für den Befehlssatz war schon recht effizient. Am Desy (Hamburg) waren ein Assembler und ein Editor entwickelt worden. Der Bootloader für die DEC-Tapes bzw. später die 2,4MB-Platte wurde anfangs über die Tasten eingegeben, später gab es dann einen ROM aus Dioden. Die Komponenten waren auf standardisierten Boards untergebracht, die 2-3 ICs der Komplexität eines 7400 enthielten :-). Da ist Deine Lösung schon fast High-Tec :-). Grüße, Kurt
Könnte man das nicht automatisch herstellen? Ich hatte vor Jahre mal eine CPU im FPGA. Die brauchte ca 1000 Luts. Da bräuchte man doch nur eine Lut zu Designen, bei der man die Programmierung über Drahtbücken erledigt. Dann bestellt man sich 1000 Luts beim Chinaman, lötet die Drahtbrücken und klöppelt die Luts zusammen. Bei manchen FPGA hat eine Lut nur 4 Bit, (so wie ich das verstanden habe), also würde 16 Varianten der Luts genügen. Die könnte man so bestellen und bräuchte nicht mehr löten. Alternativ kann man gleich einen FPGA nehmen. Alternativ kann man auch gleich eine CPU kaufen. Immerhin werden beim TE-Aufbau ja auch fertige Transisitoren benutzt, die nicht selbst gebaut werden.
Schönes Ding. Mich würde mal interessieren wieviel Strom das Monster zieht, wenn es mit 1khz getaktet wird.
Nils schrieb: > Mich würde mal interessieren wieviel Strom das Monster zieht, wenn es > mit 1khz getaktet wird. Immer diese Overclocker... SCNR ;-)
Nils schrieb: > Schönes Ding. > > Mich würde mal interessieren wieviel Strom das Monster zieht, wenn es > mit 1khz getaktet wird. Tatsächlich ist die Stromaufnahme ziemlich konstant bei 0,5A, egal bei welcher Frequenz. Die statischen Verluste der tausenden Pull-ups lassen sämtliche dynamischen Verluste absolut vernachlässigbar hinter sich. War auch das erste, was ich ausprobiert hab
:
Bearbeitet durch User
Bürovorsteher schrieb: > Endlich mal etwas wirklich Beeindruckendes hier im Forum! > Chapeau! Volle Zustimmung! Respekt! Gefällt mir! Das nenn ich Ausdauer!
Zwischen einer diodenlogik und einer Pipeline liegen Welten. zB Tristate. Damit geht die benoetigte Leistung auch runter. Eine tolle Sache. Muesste dokumentiert werden. Am besten auf einer Webseite.
Sehr schönes Projekt! Ich würde mich über mehr Detailphotos freuen.
Tolle Leistung, viel Arbeit! Interessant wären auch die Schaltpläne.
GEKU schrieb: > Tolle Leistung, viel Arbeit! > > Interessant wären auch die Schaltpläne. Die hab ich ein bisschen weiter oben hochgeladen. Sind allerdings nicht besonders Hilfreich/Schön.
PittyJ schrieb: > Immerhin werden beim TE-Aufbau ja auch fertige Transisitoren benutzt, > die nicht selbst gebaut werden. Ja, und die Atome, die er verwendet, hat er auch nicht mit einer selbst erzeugten Supernova hergestellt.
Klosskopf D. schrieb: > Übersichtlich, schön oder gar hilfreich sind allerdings nicht die > geeigneten Begriffe für die Schaltpläne Och, hier sieht man desöfteren schlimmeres. Gruppiert und aufgeräumt isser ja. Was noch fehlt wäre das eine oder andere BUS Symbol mit man sieht wo das Signal hinwill.
Hallo zusammen, ich baue mir gerade auch einen. Ich begnüge mich mit 4-Bit. Ich bin allerdings noch nicht mal ansatzweise so weit. Ich hänge mal ein paar Fotos der schon fertigen und funktionierenden Bauteile an. Leider habe ich noch kein "Mainbord", da bisher nicht alle Teile fertig sind und ich noch nicht sicher bin, ob das finale Pinout bleibt. Bisher habe ich viel fliegend verdrahtet und fehlende Komponenten simuliert mir ein Arduino Mega. Um mir zwischendrin anzusehen, was der "Bus" so macht, habe ich eine Anzeige gebaut, die mit einem ATtiny84 die 4- Bitsignale ein Hexzahlen umwaldelt und Steuerbits anzeigen kann.
Klosskopf D. schrieb: > Leider hab ich nicht darauf geachtet, dass die Ladungen aus der Basis > auch wieder abfließen können, > weshalb er nicht wirklich schnell ist. (vielleicht 1kHz) > > Auch ordentliche Logikpegel wurden eher nicht beachtet. Innerhalb der > Module haben die meisten Gatter den gleichen Eingangs und > Ausgangswiderstand. Wenn du eine Version 2 planst, sag hier Bescheid. Da können wir dir sicher in diesen Hardwaredetails helfen. Den Logikteil hast du ja offensichtlich im Griff, wenn die Funktion gegeben ist. Ich finde es toll, wenn jemand nicht nur Schwätzt, sondern sowas auch mal komplett durchzieht, kleine Fehler hin, kleine Fehler her. Außerdem ist das mal so richtig sauber aufgebaut. Respekt!
Alexander J. schrieb: > Ich hänge mal ein paar Fotos der schon fertigen und funktionierenden > Bauteile an. Sehr schön. Elektrop0rno. Bitte mehr :)
Respekt, super und sauber gemacht. Hätte ich nie so gut hin bekommen. Hab' mal mit einem Siemens 4Bit Rechner gelernt, mit Lochkarten stanzen und dann den Stapel lesen lassen als Programmcode ;-)
MaWin schrieb: > Sehr schön. > Elektrop0rno. > Bitte mehr :) Natürlich hat Henry Westphal mit einer Gruppe Studenten auch hier wieder den Vogel abgeschossen. Die Anzahl der Transistoren ist Fünstellig! Es ist wieder was neues "pr0nöses" in der Pipeline, aber mehr darf ich nicht verraten ;)
Leute, das ist ja Alles wirklich sehr schön, aber das hat doch Klosskopfs CPU nichts zu tun. Macht doch bitte seinen Thread nicht kaputt.
foobar schrieb: >>> Spielt grob in der Klasse der kleinsten MCUs (Attiny4 oder der 3-Cent >>> Padauk-MCUs) >> >> Wahrscheinlich nicht mal ansatzweise. Ich kann mir nicht vorstellen, >> dass die kommerziellen uC so ineffizient ihr Programm abarbeiten > > Oh, wunder dich nicht: die PIC-Architektur (die Padauk-MCUs sind > PIC-Clones) ist uralt und wirklich auf minimalen Gatter-Count getrimmt - > die hat 12-Bit-Instructions, braucht 4 Takte pro Befehl (8 bei Branches) > und hat nen fixen 2-Level-Stack. Die AVR sind allerdings moderner. Die Padauk sind keine PIC-Clones. Die Padauk haben 13- 14- 15- oder 16-Bit-Befehle. Sie führen alle Befehle in 1 oder 2 Zyklen aus. Die Padauk haben einen Softwarestack, was sie zu einer deutlich angenehmeren Zielarchitektur für C macht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.