Hier gibt es das Projekt des 4-Bit Computers mit dem Namen "Nibbler" aus
TTL-ICs:
http://www.bigmessowires.com/nibbler/
Ein Bastler hat dazu Platinen gemacht, die ganz gut aussehen:
http://imgur.com/a/Hn5wC#0
Ich finde es äußerst interessant, einen Computer von Grund auf mit
TTL-ICs zu entwerfen und zu bauen. Allerdings erscheint mir das recht
zeitaufwändig ( auch habe ich kein EPROM-Programmiergerät mehr ),
deshalb überlege ich einen Replica mit einem Arduino zu bauen.
chris_ schrieb:> Ich finde es äußerst interessant, einen Computer von Grund auf mit> TTL-ICs zu entwerfen und zu bauen. Allerdings erscheint mir das recht> zeitaufwändig ( auch habe ich kein EPROM-Programmiergerät mehr ),> deshalb überlege ich einen Replica mit einem Arduino zu bauen.
Dann hast du aber den Sinn verfehlt....
>Dann hast du aber den Sinn verfehlt....
Soweit ich weiß, hat sich die Philosophie seit Jahrhunderten mit der
Sinnfrage beschäftigt. Bisher ist allerdings noch keine abschließendes
Ergebnis bekannt.
Bist Du da schon weiter?
>Ich finde es äußerst interessant, einen Computer von Grund auf mit
TTL-ICs zu entwerfen und zu bauen.
Die komplette Steuerung wird von dem Microcode-EEPROM(Flash)-Speicher IC
erledigt. Dessen Daten steuern die Befehlsausführung. In TTL ist da nur
ein kleiner Teil der CPU mit TLL-ICs(ALU, Register, Zähler). Dieser
moderne EEPROM-Speicher Baustein ersetzt ein Grab von TTL-ICs.
So als richtigen TLL-Computer sehe ich das nicht.
>Die komplette Steuerung wird von dem Microcode-EEPROM(Flash)-Speicher IC>erledigt. Dessen Daten steuern die Befehlsausführung. In TTL ist da nur>ein kleiner Teil der CPU mit TLL-ICs(ALU, Register, Zähler). Dieser>moderne EEPROM-Speicher Baustein ersetzt ein Grab von TTL-ICs.>So als richtigen TLL-Computer sehe ich das nicht.
Ja, das sehe ich auch so. Es sind ziemlich viele Transistoren in den
ROMs versteckt. Ein Vergleich der Anzahl Transistoren mit einem Attiny13
wäre sicherlich aufschlussreich.
Mich interessiert vor allen Dingen, wie man mit so einem
minimalistischen Befehlssatz Programme schreibt.
Immerhin gibt es 3 größere Programme: Master Mind, Frogger und ein
Melody-Player.
Deshalb auch die Version mit dem Arduino: Ich möchte nicht nur am
Simulator spielen sondern Hardware auf dem Tisch liegen haben.
D.Kruger schrieb:>>Dann hast du aber den Sinn verfehlt....>> Soweit ich weiß, hat sich die Philosophie seit Jahrhunderten mit der> Sinnfrage beschäftigt. Bisher ist allerdings noch keine abschließendes> Ergebnis bekannt.>> Bist Du da schon weiter?
Die Frage ist halt warum man gerne TTL-Gräber baut und dann keine TTLs
benutzt ... :D
Verstehe ich leider nicht warum man dann einen Arduino benutzt wenn man
gerne:
chris_ schrieb:> Ich finde es äußerst interessant, einen Computer von Grund auf mit> TTL-ICs zu entwerfen und zu bauen.
Kannst du mich da aufklären chris_ ?
Helmut S. schrieb:>>Ich finde es äußerst interessant, einen Computer von Grund auf mit> TTL-ICs zu entwerfen und zu bauen.>> Die komplette Steuerung wird von dem Microcode-EEPROM(Flash)-Speicher IC> erledigt. Dessen Daten steuern die Befehlsausführung. In TTL ist da nur> ein kleiner Teil der CPU mit TLL-ICs(ALU, Register, Zähler). Dieser> moderne EEPROM-Speicher Baustein ersetzt ein Grab von TTL-ICs.
4 Stück 74S387 ist kein TTL Grab, und mehr Platz als die beiden 28C16
brauchen die auch nicht.
Ein 28C16 ist übrigen alles andere als modern.
Hallo Lattice User, kannst Du in etwa abschätzen, wie viel Resourcen in
einem FPGA oder CPLD für den Nibbler verbraucht würden?
Ich schätze, dass die Microcode-Logic in den ROMS durch die Optimierung
ziemlich dezimiert wird.
Mich würde interessieren, ob es CPLDs gibt, in denen ein Nibbler rein
passt.
chris_ schrieb:> Hallo Lattice User, kannst Du in etwa abschätzen, wie viel Resourcen in> einem FPGA oder CPLD für den Nibbler verbraucht würden?CPLD fällt aus, es sei denn man flanscht SRAM und Programmspeicher
extern an.
Im FPGA grob geschätzt so 100-200 LUT4, und dazu noch 48 kBit Blockram.
Das geht schon bei sehr kleinen FPGAs. Siehe z.B.
Beitrag "kleinster FPGA board"
Das hat allerdings zuwenig IO Pins, der Nibbler braucht 12.
ich finde es nicht, aber es wurde hier auch mal ein Board mit einem
kleinem MachXO2 auf 24? pol DIL Socket vorgestellt.
Sowas gibt es meines Wissen auch für Xilinx S3.
Zu beachten ist auch, dass das alles 3.3V Logik ist, passt vielleicht
nicht zu deinem Display.
> Ich schätze, dass die Microcode-Logic in den ROMS durch die Optimierung> ziemlich dezimiert wird.
Ja.
Portieren des Nibbler auf FPGA hat allerdings ein paar Fallen, z.B.
wimmelt es da von kombinatorischen Loops, hat auch zu Problemen geführt:
http://www.bigmessowires.com/category/nibbler/
>Beitrag "kleinster FPGA board"
Das ist ja ein lustiges Board :-) Ich kannte es gar nicht.
Die genauste Beschreibung dazu befindet sich auf Hackaday:
https://hackaday.io/project/6592-dipsy>Im FPGA grob geschätzt so 100-200 LUT4, und dazu noch 48 kBit Blockram.>Das geht schon bei sehr kleinen FPGAs. Siehe z.B.
Wenn es richtig lese hat das Dipsy FPGA 1280 LUTs und einen 48MHz
Oszillator. Wenn man die Obergrenze Deiner Aschätzung von
200LUTs/Nibbler nimmt, könnte man damit also einen
48MHz Nibbler Hexacore
bauen :-)
Ale schrieb:>> Kannst du mich da aufklären chris_ ?>> Jeder sucht Antworten auf seine Art und Weise. Das du glaubst das dein> Weg DER WEG ist... ist was anders.
...wobei er nicht der Einzige ist der Zweifel am Sinn dieses Vorgehens
hat.
Der Nibbler fasziniert mich, leider fehlt mir die Zeit mit einem ähnlich
gearteten Projekt voran zu kommen. Chris Ansatz den originalen
Befehlssatz emulieren zu wollen kann ich noch nachvollziehen, aber nicht
wieso das
auf einem Arduino passieren soll.
Das läuft bei mir nicht mehr unter Emulation sonder unter "wie kastriere
ich einen Attiny/Mega so, das er sich kaum noch programmieren läßt".
Als Emulationswerkzeug tut es auch ein PC.
Gruß,
Holm
Wenn man guckt was der chris_ mit ATMegas schon gemacht hat (16 bit CPU
und 32 bit CPU (Propeller)) es ist evident daß es in die richtung 4 bit
gehen konnte :)
Ale schrieb:>> Kannst du mich da aufklären chris_ ?>> Jeder sucht Antworten auf seine Art und Weise. Das du glaubst das dein> Weg DER WEG ist... ist was anders.
Wobei es doch schon irgendwie merkwürdig klingt, wenn einer sagt, daß er
Lust drauf hat, TTL-Gräber zu bauen und sich daher dazu entschließt,
stattdessen einen µC zu verwenden.
Hallo Holm,
>Der Nibbler fasziniert mich, leider fehlt mir die Zeit mit einem ähnlich>gearteten Projekt voran zu kommen.
Du könntest Dein geplantes Projekt hier beschreiben, dann können wir die
Eigenschaften mit dem TTL-Nibbler vergleichen und vielleicht ein paar
Erkenntnisse zum Nibbler gewinnen.
>Am2901/Am2910 Geschichte
Genial, die AM29xx Serie ging bis jetzt völlig an mir vorbei.Ich habe
gerade mal in ebay nachgesehen und werde mich mal ein wenig damit
auseinandersetzten.
Der Am2901 und der AM2910 liegen so zwischen 10- und 20€.
Ob die nach 40 Jahren noch zuverlässig funktionieren?
chris_ schrieb:> kannst Du in etwa abschätzen, wie viel Resourcen in einem FPGA oder CPLD> für den Nibbler verbraucht würden?
Das macht keinen Sinn, da kannst du gleich einen fertigen uC nehmen.
Die TTL CPUs sind vor allen deshalb interessant, weil man an alle
Leitungen Leuchtdioden dran machen kann und den Takt per (entprelltem,
2-phasigen) Taster vorgibt.
So SIEHT man wie der uC arbeitet. Dafür reichen genau die Anschlüsse an
Registrrn und ALU, die in der Schaltung auch zugänglich sind, die
(EEP)ROMs muss man intern nicht sehen.
Ersetzt man die Rs durch Dekoder, sollte man deren Inhalt durch
Kurzschlusssteckbrücken definieren können, wie auch den
Ptogrammspeucher, und eine LED pro RAM Bit. Das geht dann besser als
Emulation auf dem Bildschirm eines PC.
chris_ schrieb:>>Am2901/Am2910 Geschichte>> Genial, die AM29xx Serie ging bis jetzt völlig an mir vorbei.Ich habe> gerade mal in ebay nachgesehen und werde mich mal ein wenig damit> auseinandersetzten.> Der Am2901 und der AM2910 liegen so zwischen 10- und 20€.
....bei Ebay, ja.
Gehe zu demotronic.de und benutze die Suche, Mindestbestellwert ist 50
Euro IMHO (Netto). Suche Dir zusammen was Du haben möchtest. Mehr als 2
Euro würde ich für so ein Ding nicht hinlegen wollen. Es gibt auch
"kompatible" 16 Bit Slices in PLCC. Die verkaufen da bei Demotronic
entlötete und gezogene ICs, für Bastelei mehr als ausreichend und bei
defekt gelieferten Teilen (1x passiert) gabs Ersatz.
Fast alle "besseren" Halbeiterproduzenten damals (TM) hatten Bitslice
Familien am Start. Traurigerweise interessiert sich keine für die
Dinger, entweder Alle rennen der 74181 hinterher oder nehmen FPGAs....
>> Ob die nach 40 Jahren noch zuverlässig funktionieren?
Doch tun sie. Ich habe ein paar PDP11 Platinen mit solchen Zeug drauf,
tut nach wie vor primstens.
Mit den AM2910 kann man auch programmierbare Steuerungen bauen ohne
überhaupt eine ALU zu benutzen wenn die logische Funktion und die
Abfrage von Zuständen ausreicht.
Gruß,
Holm
>Mit den AM2910 kann man auch programmierbare Steuerungen bauen ohne>überhaupt eine ALU zu benutzen wenn die logische Funktion und die>Abfrage von Zuständen ausreicht.
Das klingt auch ziemlich gut. Hast Du dazu ein Schaltungsbeispiel?
Holm schrieb:
>Fast alle "besseren" Halbeiterproduzenten damals (TM) hatten Bitslice>Familien am Start. Traurigerweise interessiert sich keine für die>Dinger, entweder Alle rennen der 74181 hinterher oder nehmen FPGAs....
Ich habe mir die Alu AM2901 jetzt etwas genauer angesehen. Die ist ja
schon mehr als eine 74181 weil sie auch gleich ein 16x4 bit RAM
beinhaltet und die Rückführungsdatenpfade. Die 74181 ist ja eine rein
statische Logik ohne Flip-Flops. Ich würde sagen die AM2901 ersetzt
mindestens 20 TTL ICs und ist damit schon auf dem Weg zum halben
Prozessor.
Interessant ist das Entstehungsdatum im Vergleich zu einigen 8-Bit
Prozessoren:
1974: 8080
1975: AM2901
1976: Z80
Das heisst die Alu kam als es schon die ersten vollständigen 8Bit
Prozessoren gab.
chris_ schrieb:> Holm schrieb:>>Fast alle "besseren" Halbeiterproduzenten damals (TM) hatten Bitslice>>Familien am Start. Traurigerweise interessiert sich keine für die>>Dinger, entweder Alle rennen der 74181 hinterher oder nehmen FPGAs....>> Ich habe mir die Alu AM2901 jetzt etwas genauer angesehen. Die ist ja> schon mehr als eine 74181 weil sie auch gleich ein 16x4 bit RAM> beinhaltet und die Rückführungsdatenpfade. Die 74181 ist ja eine rein> statische Logik ohne Flip-Flops. Ich würde sagen die AM2901 ersetzt> mindestens 20 TTL ICs und ist damit schon auf dem Weg zum halben> Prozessor.> Interessant ist das Entstehungsdatum im Vergleich zu einigen 8-Bit> Prozessoren:>> 1974: 8080> 1975: AM2901> 1976: Z80>> Das heisst die Alu kam als es schon die ersten vollständigen 8Bit> Prozessoren gab.
Ja, aber die AM2901 ist kein "Universalprozessor" wie die Anderen, sie
ist ein Baustein um 16 und 32 Bit Maschinen bauen zu können (..und
breiter, siehe PDP11 FPU). Die war also eher in Minicomputern zu finden
oder auch in Controllern mit eigener, auf die Aufgabe angepaßter CPU.
4 Stück 8080 ergeben halt keine 32 Bit CPU.
Es gab noch Weiterentwicklungen AM2903 (Multiplikation, Interface für
externe Register), AM29C101 16 Bit kaskadierbar, AM29116 16 Bit nicht
kaskadierbar.
Ein Beispiel ist auch eine 8Bit CPU die ich im russischen Nachbau eines
DEC RX01/RX02 Diskettenlaufwerks gefunden habe (DEC hat das wohl genauso
gemacht). Das LW ist über eine parallele Schnittstelle mit dem Rechner
verbunden und versteht Kommandos+Parameter, die Serialisierung und
Laufwerksteuerung wird von diesem Mikrocode programmierten 8 Bit Rechner
erledigt. http://www.tiffe.de/Robotron/PDP-VAX/E60/disk-proz.jpg
Das Braune sind die Mikrocode ROMs, das weiße die Slices und der
Sequenzer
(2901/2909).
Der Aufwand das mit einem 8080 und peripherie ICs zu machen wäre nicht
geringer gewesen und der schafft es nicht die Bits einzeln zu begrüßen..
Hier noch ein Magnetbandcontroller:
http://www.tiffe.de/Robotron/PDP-VAX/E60/I17.jpg
Gruß,
Holm
Ich habe vor einige Zeit ein altes DSO von Firma Nicolett. Es hatte ein
68000 als microprozessor und ein AM2901, aber k.a. was er da gemacht
hat.
Hier den Nibbler:
Nibbler.v
Hier eine schöner Herausforderung für angehende Assemblerprogrammierer:
Gesucht ist ein Assemblerprogramm für den original Nibbler, welches alle
Speicherzellen seines RAM-Speichers ( 4096 Nibbles bestehend aus je 4
Bit ) mit der Zahl 5 voll schreibt.
Der Erste der es schafft, bekommt von mir 10 Euro.
( original Nibbler: http://www.bigmessowires.com/nibbler/ )
Ein Index Register + 1 Level Stack und dann passt es nicht mehr in einem
95144...
Man könnte ein paar '283 als Adder nutzen, '157s für als MUX und ein
'382 als ALU... leider wo gibt es '382 ? Darisus hat es auch net :(
>Ein Index Register + 1 Level Stack und dann passt es nicht mehr in einem>95144...
Erstaunlich, dass mit einer so geringfügigen Erweiterung das CPLD schon
voll ist, wo es doch vorher nur zur Hälfte gefüllt war.
Besonders interessant finde ich, dass durch das fehlende Indexregister
es eine theoretische Grenze für den Nibbler gibt, sein RAM nicht
vollständig benutzen zu können. Würde man ein Indexregister und eine
indirekte Adressierung einführen, könnte man das gesamte RAM benutzen.
Ein Srungbefehl mit dem Indexregister wäre auch nicht schlecht, dann
könnte man virtuelle "return from subroutine" bauen.
Ich glaube daß ich es mit CALL/RET voll gemacht habe :)...
ich habe 3 Änderungen gemacht:
- Index Register
- CALL/RET (nur 1 Stufe)
- Relative conditional jumps
Man könnte ein paar 74S482 für den Index Register und für den PC...
alles da, Adder, Stack, Muxes...
chris_ schrieb:> Ich finde es äußerst interessant, einen Computer von Grund auf mit> TTL-ICs zu entwerfen und zu bauen.
Dann empfehle ich:
Beitrag "8bit-Computing mit FPGA"
Joseph hat da bemerkenswert viel Energie reingesteckt und wird sich über
Mitstreiter sicher freuen.
Latte schrieb:> Der Displaycontroller hat mehr Power als die Gesamte 4Bit CPU.
Das passt je nach Betrachtungsweise auch für so manchen modernen PC.
Schon im C64 hatte der Floppy Controller (6502) eine dem Hauptprozessor
ebenbürtige (?) Leistung.
Inwiefern ist das relevant für den Zweck der mit dem Aufbau dieses
Systems verfolgt wird ?
Es geht hier um Verstehen und selbe bauen.
Ein ATTiny is besser/schneller/kleiner/sparsamer und alles was du
willst... ja und ?, Selbe machen ist was anderes... Mach doch ein
TTL-Replikat vom ATTiny....
Latte (Gast) schrieb:
>Der Displaycontroller hat mehr Power als die Gesamte 4Bit CPU.
Für einen Anfänger in Sachen Mikroelektronik ist diese Annahme
vermutlich gerechtfertigt.
Die üblicherweise in den zweizeiligen LCD Displays verwendeten
Controller sind fest verdrahtete Logikbausteine
http://www.adafruit.com/datasheets/HD44780.pdf
und können nicht wie Prozessoren programmiert werden.
Insofern ist Deine Aussage so nutzbringend wie die Aussage "Ein
Elektrofahrrad hat mehr Power als ein Toaster".
Den Merke: Nicht jeder schwarze Halbleiterbausten mit Beinchen ist ein
Mikrocontroller.
Guten Tag!
Ich hatte schon 1980 mit damaligen 8 Bit CPU experimentiert und später
zu meinen Beruf gemacht. Vor einem Jahr hatte ich Sehnsucht nach der
alten Zeit und habe die Nibble CPU aufgebaut.
Die original Platine habe ich vor 1 Jahr in Kanada erworben und mit
neuen Bauteilen bestückt, die EEPROMS selber programmiert. Die Platine
funktioniert Einwand frei. Anbei ein Foto vom Eigenbau. Leider habe ich
jetzt keine Zeit mehr, um mich um die Einplatinen CPU zu kümmern:-(
Deshalb möchte ich die "Nibbler 4 Bit CPU" gerne an interessierte gegen
etwas Geld (meine Kosten - X) abgeben.
Wer möchte kann mich gerne kontaktieren: peter.klingbeil@arcor.de
Ich sehe da 74HCxyz. Das ist ja voellig stillos.
Das muss schon ein echter 74181 sein.
Und auch der Rest!
Der muss mit mindestens 1 Ampere an den 5 V nuckeln.
Nur dann ist er echt!
Hallo,
ich habe noch ein Arduino Uno mit D1Robot LCD-/Keypad-Shield rumliegen.
Das würde sich doch für den Nibbler von Chris gut eignen. Wo bekomme ich
den Arduino-Sketch?
Gruß Micha