Diary:Old Register board construction (german)

From TriPU

Table of contents

27.06.2004

Zeit für ein Update :-) In letzter Zeit wars etwas knapp um voran zu kommen, aber die Semesterferien rufen und von daher kanns dann langsam weitergehen. Als nächstes steht wahlweise die ALU oder das Debugboard an sowie ein paar Abschlussarbeiten am Registerboard. Beide neuen Boards sind bereits auf Papier skizziert, ist also nur noch eine Frage der Zeit, bis es dafür Schaltpläne gibt. Außerdem habe ich vor, demnächst VHDL-Simulationsmodelle für die TTL-Chips und damit auch das Registerboard aufzustellen um die Funktion zumindest im Simulator schon einmal testen zu können. Das Debugboard selbst ermöglicht das dann auch an realer Hardware, dazu soll ein Anschluss an die parallele Schnittstelle möglich sein. Die ALU selber wird eine voll funktionsfähige ALU, also nicht etwa ein ROM als Lookup-Tabelle. Das mag zwar etwas aufwändiger werden, aber wenn ich Aufwand hätte vermeiden wollen, hätte ich dieses Projekt nicht begonnen ;-)

20.05.2004

Und da sag mal einer, man schaffe an Feiertagen nichts. die Addierer, Treiber und der SPeicherbaustein sind angeschlossen, sowie die LEDs für den Adressbus. Es fehlt nur noch die letzte Treiberstufe und die LEDs für den Datenbus. Damit ist das schwierigste Löten erledigt und das war heute definitiv dabei ;-) Auf jeden Fall hier mal wieder ein Bildchen, es wird nun langsam Zeit, sich Gedanken über Debugmöglichkeiten zu machen, am schönsten wäre ein Interface über den Parallelport, so dass ich auch den ganzen speicher mal gründlich durchchecken kann.

Image:reg_board_back5.jpg

Ein dummes Problem hat sich heute noch gezeigt, die Treiberchips die ich habe stehen an den Seiten über, das heißt insbesondere es passen keine 2 davon nebeneinander. Mal sehen ob ich da noch Alternative finde.

17.05.2004

Weiter im Plan :-) Heute habe ich die Zählerstufean die Addiererstufe angeschlossen. Leider noch nichts zu testen, da die nächste Treiberstufe inklusive LEDs noch nicht aktiv ist. Aber mal wieder ein Bildchen:

Image:reg_board_back4.jpg

13.05.2004

Es war ein wenig ruhig die letzten Tage, zu viel zu tun. Außerdem war das letzte Bastelne in wenig frustrierend :-) Aber good news, alle LEDs sind noch intakt, jetzt ärgere ich mich dass ich die nächsten Tage wohl wieder kaum Zeit haben werde ;-) Vielleicht kann ich wenigstens den ALU-Entwurf ausarbeiten und eventuell sogar weiter entwerfen (z.B. die Kontrolleinheit). Update: Die Zähelrstufe ist mehr oder weniger gut getestet jetzt. Soweit sieht alles gut und funktionierend aus :-D

04.05.2004

Rechnercrash...wenigstens Zeit zum bauen. Ein mäßig motivierender Tag, eine LED in den 10er-Displays hat was abbekommen, aber immerhin auch ein minimales Erfolgserlesbnis, es lebt:

Image:register_alive.jpg

Insgesamt ist die Zählerstufe nun verdrahtet, einen Treiberbaustein hab ich jedenfalls schon kaputt bekommen ;-) Und das ganez ist inwzsichen ein Geschicklichkeitsspiel geworden:

Image:register_back_counter.jpg

Getestet habe ich das ganze in sicherheitstechnisch fragwürdigen Experimenten. Don't try this at home kids ;-) Es wird wohl zeit für ein Power-Supply-Board...

Image:experimente.jpg

(PS: Waurm gitb es so viele schwarze/rote Kabel auf der Welt? ;-) )

02.05.2004

Löt-Action. Am einfachsten war es, die Sockel einzulöten, das sieht dann so aus:

Image:reg_board_front1.jpg

Danach kamen die LEDs, sowie die 48 Widerstände (40 für die LEDs, 8 als pull-down für den internen Adressbus) und das sieht dann so aus:

Image:reg_board_front2.jpg

Image:reg_board_back1.jpg

Wirklich widelrich sind Drahtbrücken und ich glaube das nächste Mal kaufe ich mir eine Packung anstatt die selber abzufummeln. Bis jetzt habe ich nur alle VCC-Leitungen angeschlossen. Und damit ist der aktuelle Stand für die Rückseite:

Image:reg_board_back2.jpg

Edit: jetzt sind auch die GND-Leitungen alle angeschlossen, außerdem habe ich alle Leitungen auf eventuelle Kurzschlüsse gecheckt. Seht alles sowiet gut aus :)

Image:reg_board_back3.jpg

Und hier noch ein hinweis warum ich jedem empfehle, Drahtbrücken zu kaufen anstatt welche abzuisolieren ;-) :

Image:kabelkruemel.jpg

30.04.2004

Der Prüfer ist wieder am Leben, die alten ICs waren möchtig sauer wegen der Verpolung, jetzt funktioniert das Gerät ausgezeichnet :-) Und wie sollte es auch sein: Der Registerplan ist wiederum vollkommen neu. Ich woltle ja seit längerer Zeit LEDs zur Diagnostik mit einbauen, hatte dies aber nie auf dem Plan verzeichnet. Das ist nun geändert, denn beim Routing auf diesen Platinen habe ich festgestellt, dass ein vollkommen aktueller Plan sowie eine Netzliste unerlässlich sind. Morgen kommt dann hoffentlich das Routing und noch dieses Wochenende der erste Aufbau.

27.04.2004

Der Durchgansgprüfer hat wieder aufgegeben, ich shcätze einer der ICs hat was abbekommen bei meinen unmenschlichen Versuchen, 9V ohne 9V-Batterie da ranzubekommen, aber die Dinger kosten ja nichts :-) Außerdem ist heut das erste Paket angekommen, es kann also bald losgehen. Letztendlich hat sich der Registerschaltplan ein weiteres mal geändert, die Treiber für das Nullsignal auf dem internen Bus sind jetzt über 220k Widerstände gegen GND geregelt. Damit fielen dann zwei Treiber weg und ich muss einen invertierenden Treiber mitverwenden. Daher sind die OR-Gatter jetzt weg und dafür haben NOR-Gatter ihren Platz gefunden. Außerdem hat mir jemand (Botas) einen kleinen Bug im Schaltplan aufgezeigt, A4 der Registeradresse hing am falschen Addierer ;-)

26.04.2004

Übers Wochenende weg, aber nicht geschlafen. Auf dem Papier sind die Pläne für die ALU fertig, hier wird nicht geschummelt mit ROM-Tabellen oder fertigen ALUs, das Ding wird "echt" gebaut :-) Pläne folgen sicherlich bald, die ALU wird jedenfalls 3 Platinen benötigen wie es aussieht, eine zum Decodieren und halten der lokalen ALU-Register und zwei für die ALU-Funktionen, die da wären: PLUS, AND, OR, NOT, XOR, SHIFT, minus sollte sich mit microcode realisieren lassen. Derweil habe ich mir überlegt, dass ich wohl einen Durchgangsprüfer (zum testen der Platinen) gebrauchen könnte und auch schon mal ein bisschen Lötübung und habe mir deswegen einen Durchgangsprüfer als Bausatz besorgt und zusammen gebaut. Der ienfache Teil war der elektrische, das hat eine Stunde gedauert. Die nächsten 4 STunden gingen auf finden einer 9V-Quelle ohne 9V-Blockbatterie und ein"passen" ins Gehäuse. Eines steht fest: Wenn TriPU ein Gehäuse bekommt, dann ein sehr großes wo alles problemlosreinpasst. Anyway, das Ergebnis sieht so aus:

Image:durchgangspruefer.jpg

22.04.2004

Nach Fragen in Forum und ein paar Leuten ist wohl die einzig erschwingliche Möglichkeit, binär-zu-Hex zu Decoden ein GAL (programmierbarer Logikbaustein). Leider sind die Programmer nicht so wirklich günstig (ab 300 Euro), aber mir hat sich die Möglichkeit eröffnet, jemandens Programmer zu benutzen. Damit wird das Debugboard dann wohl doch geplant. Ansonsten steht als nächstes eine ALU auf dem Plan.

20.04.2004

Wer hätte gedacht, dass es so lange dauern kann alles nötige beim bestellen rauszusuchen :-) Das Debugboard wurde erstmal gekürzt, es gibt nämlcih anscheinend keine verfnünftige Möglichkeit, einen binären Bus als Hexwerte auf 7-Segment darzustellen, BCD-Daten kein Problem, aber binär...Deswegen werde ich das Registerboard hoffentlich um drei Bargraph-Anzeigen (also 10 LEDs in einem gehäuse) erweitern können, dann muss ich halt doch fließend binär lernen ;-) Auf jeden Fall ist die erste Bestellung raus, und von daher gibts jetzt auch das erste Update auf der UsedComponents :-)

19.04.2004

Soweit habe ich mich mal mit Eagle von Cadsoft (http://www.cadsoftusa.com/ ) angefreundet, denn für kleinere Zwecke gibt es eine kostenlose Version, die auch nativ unter Linux läuft. Das Ding kann zwar nicht simulieren, dafür aber ziemlich gut Schaltpläne zeichnen, was ich dann mal mit dem Registerplan getan habe und so den ersten Schaltplan vollständig gemacht habe. Dabei bin ich auch einige alternative Komponenten gestoßen und habe den Volladdierer ausgetauscht, sowie die Counter für die Registerfenster, womit der Bug mit dem Reset hoffentlich verschwinden wird. Simulation ist noch nötig. Damit steht nun Simulation dieses Boards als nächstes an, mal sehen ob ich bei Simulationssoftware bleibe oder eine Simulation in Software schreibe. Danach kommt auf jeden Fall das Debugboard und dann wird es vielleicht mal Zeit, ein paar Teile zu bestellen :-)

18.04.2004

Auch wenn die Idee schon ein paar Tage existiert, heute habe ich im Prinzip richtig angefangen. Nachdem ich mir die letzten Tage einige Doku insbeosndere zu TTL-Chips besorgt habe, ist heute der erste Plan gefallen. Nach dem DesignTarget soll die Registerbank 32 Register haben und mit einem Sparc-alike Fenstermechanismus arbeiten. Das heißt effektiv, dass Register 0-7 immer dieselben Register sind, während Register 8-31 verschiebbar sind. Mehr dazu im DesignTarget. Da TriPU mit einer niedrigen Taktrate (definitiv unter 10MHz) laufen wird, habe ich, nachdem kein vernünftiger TTL-Chip aufzufinden war, mich für einen SDRAM-Baustein als Registerbank entschieden. Bei 256 Registerfenstern und 24 Registern pro Fenster, wobei sich jeweils 8 überlappen, fällt die Wahl letztendlich auf einen 8kx8-Speicherbaustein. Doch der eigentlich interessante Part ist die Ansteuerung des Ganzen. Die Register 0-7 sind recht trivial zu implementieren, mit ein wenig Gatterlogik hatman schnell üebrprüft, ob es eines der globalen Register ist, dort nullt man die restlichen Adresspins des RAMs einfach. Interessanter sind da natürlich die gefensterten Register. Ein Zähler soll den aktuellen Fensterwert halten, bei 256 Fenstern natürlich ein 8-Bit-Zähler. Da die Register später rauf- und runtergeschoben können werden sollen, muss es ein 8-Bit-Up/Down-Zähler sein, den man als TTL zwar findet, aber von keinem Hersteller vernünftig zu kaufen. Also müssen zwei 4-Bit-Zähler herhalten, die sich zum Glück recht vernünftig verbinden lassen. Leider bietet der Reset ein Problem, da die Zähler nach einem Reset von 0x00 auf 0x11 zählen würden. Daher initialisiert man bei einem Reset den Zähler mit 0xFF und verlangt danach noch einen "Initialisiertakt", der den Zähler auf 0x00 hochzählt. Der Rest ist eine einfache Addition für die Adressberechnung. Zu guter letzt soll natürlich auch ein Ausgang für den Fall, dass die Register einmal überlaufen, nicht fehlen. Der lässt sich übe ein großes NAND realisieren, so dass der Ausgang genau dann LOW wird, wenn der Fensterzähler bei 0xFF steht. Da hängt hoffentlich später dann mal eine Interrupt-Leitung dran ;)

Ein vorläufiger Plan ist unter ScheMatics zu finden, bisher habe ich noch keine Software, die mich vernünftig alles darstellen lässt, deswegen musste ich den 4-Bit-Addierer (natürlich gabs auch die wieder nicht in 8 Bit) aus einzelnen Addierern darstellen. Soviel vorerst :)

Als nächstes steht dann ein Debug-Board auf dem Plan, sowie eine vernünftige Teileliste für das Registerboard. Das Debugbaord, soll einfach ein paar 7-Segment-Anzeigen sowie DIP-Schalter zur Verfügung stellen, damit man an günstig aufgestellten Stiftleisten auf Bussen mal reinschauen kann :)

Personal tools

Homebuilt CPUs WebRing

JavaScript by Qirien Dhaela

Join the ring?

David Brooks, designer of the Simplex-III homebrew computer, has founded the Homebuilt CPUs Web Ring.  To join, drop Dave a line, mentioning your page's URL. It will then be added to the list. You will also need to copy this code fragment into your page.