8-bit computer op een breadboard

tmdr

Golden Member

Recent kwam ik een kanaal op Youtube tegen van iemand die tot in detail uitlegt hoe hij een 8-bit computer op een breadboard bouwt. Natuurlijk zijn we allemaal wel een beetje bekend met de MCU's van tegenwoordig, maar er zit toch verdomd veel in zo'n kleine IC gepropt. Het is ontzettend informatief (maar natuurlijk met de MCU's compleet waardeloos).

Hier is de afspeellijst te vinden met alle video's tot nu toe (de laatste moet hij nog maken):
https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafgl…

Ondanks dat hier enkele (van lang geleden) al weten hoe dit werkt, wil ik het toch graag even met jullie delen. De video's zijn ook perfect als instructie voor het bouwen van een eigen kopie. Wie weet breng ik iemand op een leuk nieuw project. En wie weet help ik Ben Eater (de Youtuber van de video's) aan wat extra volgers. Enjoy the vids ;-)

Edit:
voor degene die niet te diep in de materie willen duiken en alle filmpjes (die soms best lang zijn) kunnen kijken hier een filmpje van hoe hij een simpel "programma" in het geheugen programmeert (met DIP switches, ja ja) en dat runt:
https://www.youtube.com/watch?v=9PPrrSyubG0

[Bericht gewijzigd door tmdr op maandag 3 april 2017 13:21:50 (14%)

Arco

Special Member

De simpelste picmicro's zitten al gauw meer als 20.000 transistoren in... ;)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
tmdr

Golden Member

Op 3 april 2017 13:52:39 schreef Arco:
De simpelste picmicro's zitten al gauw meer als 20.000 transistoren in... ;)

Bizar toch!
Dan vergeet je al snel dat het toch wel bijzonder is.
Daarom vind ik de filmpjes écht een aanrader.
Op een paar punten pakt hij liever ICs met bijv. de verschillende latches en flip-flops ingebouwd, in plaats van zelf de schakelingen te bouwen, maar dat is ook logisch: kost te veel ruimte op een breadboard.
En voor sommige dingen zoals een 7-segment display controller gebruikt (misbruikt) hij EEPROM omdat het anders écht te veel ruimte in gaat nemen.

Natuurlijk is dit niet te vergelijken met de MCU's van tegenwoordig, maar het is gaaf om de werking er van te leren kennen.

De 4004 had ongeveer 2300 transistoren. In de 6502 (1975) zaten er 3510. Maar dat zijn microprocessors, geen microcontrollers. Een beetje quad core SoC heeft er meer dan een miljard.

Mijn echte naam: Joris | Mijn elektronica website: Fuzzcraft.com
eSe

Honourable Member

tmdr +1 Echt cool, ik weet een klein beetje van microcontrollers, maar om het zo te zien opgebouwd te worden...lekker. Heel lang geleden geprobeerd om de 74 Computer van Elektuur te bouwen, maar het is er nooit van gekomen. Begreep het toen ook niet echt :-) en de bouwbeschrijving was iets te summier voor een groentje.

Groetjes,
eSe

CChheecckk yyoouurr dduupplleexx sswwiittcchh..
Arco

Special Member

Als je ziet dat bijv. de Intel i7 processor 145 Ampere gebruikt in normaal gebruik, is 't geen wonder dat de boel heet wordt...
(al die hongerige transistortjes moeten gevoerd worden... :) )

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
High met Henk

Special Member

aha, ik wilde type wat je bedoelt met 145A...

maar je bedoelt ampere..

hoeveel transistoren zouden erin zitten..

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???
eSe

Honourable Member

(al die hongerige transistortjes moeten gevoerd worden... :) )

Of zijn het de 'kortsluitstroompjes' als het gatekanaal omgewisseld word van 0->1 1->0 ?

CChheecckk yyoouurr dduupplleexx sswwiittcchh..
tmdr

Golden Member

Op 3 april 2017 14:13:30 schreef eSe:
tmdr +1 Echt cool, ik weet een klein beetje van microcontrollers, maar om het zo te zien opgebouwd te worden...lekker. Heel lang geleden geprobeerd om de 74 Computer van Elektuur te bouwen, maar het is er nooit van gekomen. Begreep het toen ook niet echt :-) en de bouwbeschrijving was iets te summier voor een groentje.

Groetjes,
eSe

Hoe Ben het uitlegt is met het idee van de werking van logic gates geheel te bevatten. Volgens mij heeft hij ook een filmpje waarin hij uitlegt hoe logic gates gemaakt kunnen worden van transistoren. Vanaf daar is alles super makkelijk te volgen, mits je het in de volgorde van publicatie bekijkt. Hij kan heel goed en duidelijk uitleggen en heeft super edit-skills waardoor de filmpjes onwijs goed lopen en goed te volgen zijn.

Als het je interesseert is het zeker een aanrader. Ik ben zelf vooral van de software, maar dit is toch zeker heel relevant. Veel van geleerd!

Edit:
De maker geeft ook de mogelijkheid om hem te supporten. Ik heb zelf ingesteld dat er via Paypal voor elk filmpje dat hij maakt één euro wordt overgemaakt (ben ook een student :P). Gaat automatisch. Ben van mening dat iemand die zulke gave dingen maakt welk wat steun mag verwachten!

[Bericht gewijzigd door tmdr op maandag 3 april 2017 14:50:34 (13%)

Arco

Special Member

hoeveel transistoren zouden erin zitten..

Zo'n 731 miljoen... :) ( https://nl.wikipedia.org/wiki/Aantal_transistors )

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
eSe

Honourable Member

@tmdr Ik ben ook nog student en zal het voor de rest van mijn leven blijven :-) Ik ben nu geen groentje meer, eerder grijs :-D. De onderdelen die we nu hebben geven mogelijkheden om (goedkoop) dingen te bouwen waar ik als jonge knaap van droomde. Maar af en toe 'back to basics' geeft ook voldoening en een vleugje jeugdsentiment/nostalgie. Die 74 Computer waar ik het over had, was in de jaren 70 (ja, vorige eeuw :-) ) en bestond volledig uit 74xx TTL logica. Ik was +/- 15 jaar en geen hogere opleiding, enkel interesse en leergierig.

"The cure for boredom is curiosity.
There's no cure for curiosity"

Groetjes,
eSe

CChheecckk yyoouurr dduupplleexx sswwiittcchh..
tmdr

Golden Member

@eSe: enerzijds is het inderdaad een gevoel van nostalgie, maar voor mij geeft het vooral inzicht in hoe computers tot stand zijn gekomen. Bijzonder dat dit allemaal ooit bedacht is; kleine dingen als flip-flops en latches die uiteindelijk geïntegreerd zijn. Ze hebben het allemaal maar mooi bedacht!

Zijn er hier mensen die misschien ooit zelf ook zoiets hebben gebouwd en daar foto's of video's van hebben? Zou dat ontzettend gaaf vinden.

Op 3 april 2017 14:33:46 schreef eSe:
Of zijn het de 'kortsluitstroompjes' als het gatekanaal omgewisseld word van 0->1 1->0 ?

Zoek het datasheet van de 74HCU04. Dan zie je dat die net als een klassieke CMOS inverter twee mosfets bevat. Als je netjes de boel tot VCC of GND uitstuurt is er 1 uit en de andere "aan". Maar omdat ie ook bij 2V nog moet werken, zijn de thresholds (ruim) onder de 2V. Dus zet je VCC op 6V en biedt je 3V aan gaat er een forse stroom lopen: Beide mosfets staan gewoon "aan". Dat is die kortsluiting waar jij het over hebt.

Zo'n pentium die op minder dan een volt draait heeft mosfets die het aardig doen bij die spanning, maar hopelijk kunnen ze het zo mikken dat de ene uit gaat voordat de andere aan gaat.

De stroom gaat hem vooral zitten in het opladen van al die gate capaciteiten van de fetjes die aangestuurd moeten worden.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Hallo,

Inderdaad een leuke serie filmpjes. Ik ben ze een poos geleden ook al eens tegen gekomen. Ondanks ze de cpu als uitgangspunt hebben kun je er ook veel van leren op digitaal gebied.

Zelf heb ik ook het boek "computer organization and design The arm edition". Zeker een aanrader als je deze materie interessant vind.

Ik heb ook ergens wel eens gezien dat je maar een paar instructies nodig hebt om in theorie alle applicaties te kunnen maken.

PE2BAS

Op 3 april 2017 14:21:14 schreef Arco:
Als je ziet dat bijv. de Intel i7 processor 145 Ampere gebruikt in normaal gebruik, is 't geen wonder dat de boel heet wordt...
(al die hongerige transistortjes moeten gevoerd worden... :) )

Nou, hongerig? Niet echt. Per transistor maar 200nA

tmdr

Golden Member

Op 3 april 2017 19:30:15 schreef hardbass:
Hallo,

Inderdaad een leuke serie filmpjes. Ik ben ze een poos geleden ook al eens tegen gekomen. Ondanks ze de cpu als uitgangspunt hebben kun je er ook veel van leren op digitaal gebied.

Zelf heb ik ook het boek "computer organization and design The arm edition". Zeker een aanrader als je deze materie interessant vind.

Ik heb ook ergens wel eens gezien dat je maar een paar instructies nodig hebt om in theorie alle applicaties te kunnen maken.

Dat is inderdaad een leuke ja. En je kunt nog een stuk verder gaan, dan kom je op (eerder theoretische) modellen. Een Turing machine is natuurlijk de meest simpele waarmee je in feiten alles kunt maken.
Al kan dat soms best lastig zijn.
Ook dat is zeer interessante materie, maar dat neigt ook vooral richting de Computer Science (mijn studie).

eSe

Honourable Member

De stroom gaat hem vooral zitten in het opladen van al die gate capaciteiten van de fetjes die aangestuurd moeten worden.

Da's wat ik bedoelde met 'kortsluitstroom', een manier om het in mijn hoofd te hebben, het heel snel ompolen van al die capaciteitjes. Kleine cap's maar wel heel veel :-) En dat lijkt op een kortsluiting.

Groetjes,
eSe

CChheecckk yyoouurr dduupplleexx sswwiittcchh..
tmdr

Golden Member

Inmiddels ben ik begonnen met het bouwen van een eigen kopie van deze computer. De clock module is klaar en werkt goed. Volgende waar ik alle onderdelen voor binnen had was de program counter. Echter heb ik een vreemd probleem. De 74LS161 (4-bit counter) lijkt zichzelf constant te resetten. De counter komt vaak niet voorbij 1, soms 2 of 3. Wanneer ik iets op het breadboard (cheap ding uit China) aanraak, bijv. een GND connectie, gaat het wel goed. Zodra ik los laat reset de IC weer de hele tijd.

Ik heb het voltage al gecontroleerd. Overal ruim binnen de marges. Verder heb ik een ander breadboard geprobeerd en een andere 74LS161, maar geen resultaat.
Hieronder een foto van hoe het er bij mij ook uit ziet (komt uit de video's):

Iemand enig idee?

(helaas geen scope tot m'n beschikking om het clock signaal te bekijken)

fatbeard

Honourable Member

Ontkoppelcondensatoren?
Ík zie ze niet...

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
tmdr

Golden Member

fatbeard

Honourable Member

Een ontkoppelcondensator is zowat bij elke digitale bouwsteen noodzakelijk voor een betrouwbaar correcte werking: iets tussen de 10 en 100n, zo dicht mogelijk bij de voedingsaansluitingen van het IC.

Maar het zal ook ENORM helpen als je de CLR ingang aan VCC legt inplaats van te laten zweven...

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
tmdr

Golden Member

Daar ga ik dan eens wat over lezen.
In ieder geval goed nieuws. Het probleem zat inderdaad in de zwevende CLR! Nu gaat het als een trein. Super bedankt!

Op 3 april 2017 14:33:46 schreef eSe:
[...]
Of zijn het de 'kortsluitstroompjes' als het gatekanaal omgewisseld word van 0->1 1->0 ?

Als je kijkt naar het datasheet van een 74HCU04, dan zie je duidelijk dat daar een kortsluitstroom van rond de 20-30mA kan gaan lopen.

Maar dat wordt minder als je voeding minder wordt dan de som van de threshold spanningen. En tegen de tijd dat zo'n CPU op 0.7V draait (dat gok ik op basis van 145A van arco) dan zal dat toch niet meer zijn dan de som van de threshold spanningen?

Op 10 juni 2017 19:23:56 schreef tmdr:
[ontkoppel condensatoren] Daar ga ik dan eens wat over lezen.

Ontkoppel condensatoren zijn nodig. Dwz. In 99% van de gevallen werkt het ook zonder. Maar in die 1% van de gevallen zijn de problemen die je krijgt zodanig vaag en lastig te vinden dat je uiteindelijk veel liever 99 nodeloze condensatoren plaatst...

[Bericht gewijzigd door rew op zaterdag 10 juni 2017 22:51:14 (26%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 3 april 2017 18:31:19 schreef tmdr:
Zijn er hier mensen die misschien ooit zelf ook zoiets hebben gebouwd en daar foto's of video's van hebben? Zou dat ontzettend gaaf vinden.

Hallo,

Ik heb met net aangemeld op dit forum en las je berichten over Ben Eater's video's. Net als jij heb ik ze gezien en ben er enorm door geïnspireerd om zelf ook zo'n ding te gaan bouwen. Verslagen kun je op mijn website vinden in de vorm van blog-posts vanaf ongeveer begin mei.

In plaats van zijn 16 BYTE geheugen heb ik gekozen voor een 256 byte geheugen, hetgeen betekent dat ik mijn volledige instructie-set zelf moest ontwerpen met de bijbehorende micro-code. Leuk!

Begonnen op breadboards, maar nu ben ik bezig het hele ding om te zetten naar Euro-prints.

Gerard

Ain't no place like 127.0.0.1
tmdr

Golden Member

Hey Gerard,

Wat gaaf om te horen.
Heb je website even doorgespit. Je bent al flink op weg zie ik.

Wat betreft de instructie-set. Hoe heb je dat gedaan?
Ik neem aan dat je 2-byte instructies hebt?
Heb je ook single-byte instructies; wanneer een instructie geen address nodig heeft?

Zelf wil ik, op termijn, de boel ombouwen om 64k geheugen (64kb RAM, of 32kb ROM + 32kb RAM) te kunnen gebruiken. Hiervoor moet ik wel een aparte address bus gaan aanleggen, aangezien 64kb natuurlijk 16-bit addresses heeft.
Hierdoor kom ik uit op single-, 2- en 3-byte instructies. Met 3-byte instructies is absolute addressing mogelijk en met 2-byte instructies alleen relative addressing.
Dit zijn echter toekomstplannen, dus heb ik nog niet alles helemaal helder.

Hoe heb je de ALU aangepakt?
Zelfde als Ben Eaters design?
edit: lees nu pas één van je eerdere artikelen waar je dit beschrijft. Heb je misschien wat meer info over hoe je dit hebt aangepakt?
Ik wil op termijn over gaan naar de 74LS181. Just for the fun of it.

Ik ga je website in de gaten houden! Super gaaf.
Misschien kan ik op termijn ook wat foto's plaatsen in dit topic. Moet eerst nog wat werken aan de control logic.