Sida 1 av 2

Albert - En transistorbaserad dator

Postat: 18 juni 2011, 21:15:18
av cosmox
Hej på er,

Jag tänkte att det börjar bli dags att dela med mig av ett projekt som har legat och pyrt en längre tid.

Tanken är att skapa en fungerade dator av individuella transistorer.

Bakgrund:
Jag har alltid varit fascinerad av hur enkla logiska funktioner kan kopplas samman och bilda ett komplext system. När jag läste till elektriker (för ca 12 år sedan) satt jag ofta kvar efter skolan och pulade med skolans digitala labplattor. Det var väl egentligen då som drömmen om att bygga ett system började gro. Då tänkte jag använda mig av TTL-kretsar och jag läste så mycket jag kunde hitta (vilket inte var så mycket då) på nätet om folks olika kreationer. Jag gjorde en enkel 4-bitars krets baserad på en 74xx181 som kunde räkna lite och utföra lite olika logiska operationer. Den var helt manuell och man var tvungen att, med hjälp av brytare, läsa och skriva till register samt ange värden etc. Som med så mycket annat hamnade den till slut på hyllan bland annat bråte och drömmen föll i glömska för en stund.
Några år senare fick jag inspirationen tillbaka efter att ha sett Bill Buzbee's Magic 1, en TTL-baserad dator som man till och med kunde telnetta till! Helt fantastiskt! Jag började då spåna vidare på en TTL-maskin.
Till slut byggde jag en 8-bitars variant med i stort sett samma struktur som den tidigare 4-bitars mojängen. Denna var också manövrerad av brytare och kändes ganska klumpig om än fungerande. Det hela föll efter en stund i glömska igen.
Något år senare såg jag Harry Porters relä basedare dator. Wow!
Det var då tanken om att bygga en transistorbaserad maskin började sätta fart.


Tanken:
- Tanken är att bygga en fungerande dator av transistorer.

- 8-bits databus.

- Typen av transistorer som kommer att användas är BJT

- Till att börja med kommer den vara mycket simpel, en ALU, lite latchar för att hålla data, manuell I/O.

- Jag har inte bestämt mig för hur slut resultatet kommer se ut men som första mål har jag tänkt att den ska kunna räkna lite fibonacci serier samt utföra en del logiska operationer.

- De grindar som kommer användas är baserade på TTL kretsar tex. så kommer ALU'n vara baserad på 74xx181.

- Alla individuella grindar kommer ha LED's för att visa vilket tillstånd de befinner sig i.

- Det hela kommer byggas "på bredden". Dvs uppsmällt på en platta så man kan se hur data flyter genom de olika delarna.

- Ytmonterad konstruktion. Jag tänkte ett tag göra den "point 2 point" men insåg ganska fort att bygget skulle bli ganska enormt.

- Evighetsprojekt.


Kvar att göra just nu:
Rita klart ett blockschema för ALU.
Rita klart samt simulera ALU.
Rita och simulera alla latchar.
Göra kretskort för ALU. - Pågående.
Göra kretskort för alla latchar.


Blockschema - ALU
block1.png

Schema över ALU
181-TRANNY-v4.png

En ALU innehåller ca 355 transistorer. Anledningen till att det blir så många är framförallt LED indikeringen som kräver 2 transistorer per grind. En ALU innehåller 67 olika grindar. Jag har inte ritat in I/O eller kontrollen för de olika latcharna.


Exempel på några grindar i ALU:

Inverter:
inv1.png
4-input NOR:
4nor.png
3-input AND:
3and.png
XOR:
xor.png

Simuleringarna är klara för ALU'n och den beter sig som den integrerade kretsen. Det gick ganska trögt att simulera mot slutet men alla funktioner i tabellen fungerar som det ska och jag hoppas innerligt att inget är fel i schemat så det var ganska jobbigt att felsöka bland alla subkretsar.

Jag har en del huvudbry över dimensioneringen av resistorerna i grindarna, dessa värden var de enda som inte gjorde att vissa kretsar hamnade i hysteres. Frågan är bara om det är "rätt" att ha dessa värden. Jag hoppas någon här kan ge mig svar på den frågan. Proteus tyckte förövrigt att kretsen skulle dra 70A (!) så de fel som yttrade sig kanske inte gör det i verkligheten. Det är lurigt med PSpice på det sättet. Att simulera några enstaka grindar fungerade bra med andra värden (jag hade 10k på kollektorn och 100k på baserna förut)

Något som inte syns i schemat är logiken för lysdioderna. Men det är inget konstigt egentligen. Ett par inverterare bara. Jag har även gömt alla kondensatorer (det sitter en liten konding i varje grind för att minska störningarna)

Så, nu är det ute ur garderoben. Jag reserverar mig för att den här tråden inte kommer att uppdaterad dagligen då tiden är knapp men nu när det är postat känner jag mig mer tvingad att färdigställa det :)

Ser fram emot alla former av synpunkter och kritik!


/Hampus

P.s Jag glömde nästan skriva att en annan som fått mig att sparka igång detta projekt igen är Nablaman här på forumet. Kul att se att din maskin börjar bli färdig och tack för all inspiration. Bra jobbat!

Re: Albert - En transistorbaserad dator.

Postat: 18 juni 2011, 21:33:10
av nablaman
Kul (och ambitiöst!) projekt! :tumupp:

Är tanken alltså att du ska designa datorn med TTL-kretsar, och sen överföra varje TTL-krets till en transistor-ekvivalent?
Du lär om inte annat få vansinnigt mycket lödövning låter det som... ;)

Nu uttalar jag mig nog om saker som jag inte riktigt har koll på - men slipper man inte en hel del motstånd om man bygger med MOS-transistorer istf. bipolära?

Tack för tacket! - Kul att höra att jag hade någon del i inspirationen! : :D

Re: Albert - En transistorbaserad dator.

Postat: 18 juni 2011, 21:41:07
av cosmox
Tack :)

I vissa fall kommer jag använda TTL-kretsar som grund och bygga transistorbaserade "kloner" av de.
Det kommer alltså inte vara några TTL-kretsar i konstruktionen.

Den största anledningen till att jag valde BJT är att jag har ett par tusen på rulle. :)
Men FETar är nog egentligen smidigare som du säger.

Re: Albert - En transistorbaserad dator.

Postat: 18 juni 2011, 21:45:57
av blueint
Pick'n'place maskin kanske vore trevligt? :vissla:

Re: Albert - En transistorbaserad dator.

Postat: 18 juni 2011, 21:47:17
av cosmox
Hehe, Nä, det hade nog inte varit dumt alls :)

Re: Albert - En transistorbaserad dator.

Postat: 18 juni 2011, 22:07:43
av kankki
Ska bli mycket intressant att följa! :)

Re: Albert - En transistorbaserad dator.

Postat: 19 juni 2011, 00:29:38
av blueint
Något jag funderat på är hur pass enkel CPU man kan göra som är effektiv nog att t.ex konfigurera chip via I2C osv. T.ex ställa in en I2C styrd tuner till en viss frekvens. Eller ladda en FPGA med bitfil osv..

Re: Albert - En transistorbaserad dator.

Postat: 19 juni 2011, 20:36:48
av 4kTRB
Du "caddar" väl den med gnuggisar?

Re: Albert - En transistorbaserad dator.

Postat: 20 juni 2011, 16:26:12
av Mizzarrogh
Kommer att följas med absolut största intresse. :)

Re: Albert - En transistorbaserad dator.

Postat: 20 juni 2011, 18:18:38
av TomasL
cosmox skrev:Hehe, Nä, det hade nog inte varit dumt alls :)
Tja är det ytmonterat, så hör av dig.

Re: Albert - En transistorbaserad dator.

Postat: 20 juni 2011, 20:04:13
av persika
Här borde ju 4kTRB's transistor-X-nor passa fint ?
länk till tråd

Re: Albert - En transistorbaserad dator.

Postat: 27 juni 2011, 23:42:35
av Sikmeister
Jag sprang på den här för ett tag sen: RTL Cookbook.

Den får väl ses som den definitiva referensen för ett sånt här bygge. Anmärkningsvärt är de lågohmiga basmotstånden på bara 470 ohm i förhållande till kollektormotstånden på 640 ohm. Om detta beror på att transistorerna hade låg förstärkning eller om det var för att uppnå högre hastigheter eller något annat vågar jag inte svara på. Någon vidare fan-out blir det iallafall inte.

Edit: Om man kollar på sida 86 kan man se att strömförstärkningsfaktorn verkar ligga runt 60-80. Varje grind drar runt 5 mA vid 3,6 V, vilket kan ge en fingervisning för en RTL-dators totala effektförbrukning.

Hursomhelst är det ett intressant och ambitiöst projekt av den typen de flesta nog har drömt om men aldrig kommit sig för att starta eller insett att man aldrig skulle klara av att slutföra.

Re: Albert - En transistorbaserad dator.

Postat: 28 juni 2011, 00:08:06
av TomasL
Hmm, du hittar i princip hela servicemanualen med schemor osv till CRAY1 på min hemsida, bara att börja bygga :lol: :lol: :lol: 8)

Re: Albert - En transistorbaserad dator.

Postat: 28 juni 2011, 00:38:28
av Sikmeister
Hmm... Jag läser på Wikipedia att Cray 1 innehöll 200000 grindar. Om man ska bygga dem diskret krävs det lite mer än någon rulle transistorer :)

Re: Albert - En transistorbaserad dator.

Postat: 28 juni 2011, 00:56:50
av cosmox
Sikmeister: Tack för tipdset! Det fanns en del intressant i den boken. Blir något för printern på jobbet :)

ThomasL: Ganska kul läsning det där. CRAY-burkarna var ju ganska banbrytande på sin tid. Jag lyckades däremot inte hitta någa scheman på din sida. Heter dom något speciellt?