Transistor logica

From Frack - Hackerspace Friesland
Jump to navigationJump to search
Project: Transistorlogica
NoProjectPicture.jpg
Status onderbroken
Betrokkenen
Gebruiker Elmer.jpg Elmer
Gebruiker Elmer.jpgElmer de Looff (Elmer) Rol: niet-deelnemer Deskundig met: Arduino, ENC28J60, Elektronica, GnuCash, HTML, LPD8806, Linux, MediaWiki, Mercurial, Netwerken, OpenVPN, Programmeren, Python, SSH, Software, Solderen Beginnend met: Dm-crypt, Javascript Werkt aan: Geen projecten :(
,
Gebruiker CodeHunger.jpg CodeHunger
Gebruiker CodeHunger.jpgCodeHunger (CodeHunger) Rol: niet-deelnemer Deskundig met: Arduino, HTML, Javascript, Mustache, Programmeren, Python, Sammy Werkt aan: Geen projecten :(
Afgeleide projecten Electronic Boolean algebra Puzzle
ProjectoverzichtProject toevoegen

Met transistors booleaanse algebra construeren en onderdelen van een computer reconstrueren.

Totstandkoming

Elmer wil(de) een Intel 4004 (4-bit) CPU nabouwen in discrete transistors, en daarbij visualiseren hoe een CPU intern werkt (door middel van LEDs op strategische plaatsen).

Een van de problemen hierbij is dat zelfs deze enorm simpele CPU een transistorcount van 2300 heeft. Daarbij is dit een PMOS transistordesign, wat in de moderne tijd in verval is gekomen. Ter leering ende vermaeck gaan we dus beginnen met NMOS logica (gebaseerd op NPN transistors). Hiervoor is een stuk meer documentatie te vinden dan voor PMOS schakeling. Een derde optie, CMOS is wat men in moderne CPUs en chips gebruikt, en leent zich beter voor hogere schakelfrequenties (boven 20MHz). Hier is aanzienlijk meer documentatie voor de vinden, maar de complexiteit is een stuk hoger. De werkelijke component-count verschilt niet veel, daar CMOS geen pulldown/pullup weerstanden nodig heeft.

De keuze voor NMOS is dus gebaseerd op een afweging tussen documentatie (PMOS vs NMOS) en complexiteit (CMOS vs alles). Het is niet onwaarschijnlijk dat we op enig moment overstappen op CMOS, gezien dat een aantal interessante eigenschappen heeft waardoor schakelingen met minder transistors gemaakt kunnen worden dan de booleaanse algebra voorspelt.

Ook is het behoorlijke waanzin om als eerste stap een schakeling te bouwen die zelfs in SMD ongeveer 20x40 cm in gaat nemen (gebaseerd op enkel de transistors, zonder verdere weerstanden of LED indicators). Vandaar dat we beginnen met wat simpelere schakelingen, zoals hieronder beschreven.

Doelen

  • Klok / pulsgenerator bouwen uit een aantal basiscomponenten: [1]
  • T-Latch versimpelen en de button dendervrij maken, daarna op prototype board een aantal verwezenlijken.
  • 4-bit counter met LED indicatie van positie (button voor klokpulsen)
  • 4-bit Full Adder bouwen
  • 4-bit adder uitbreiden met Carry Lookahead
  •  ???
  • Intel 4004!

Mijlpalen

  • Alle spullen besteld en ontvangen;
  • Constructie van basis boolean gates. Schema's hiervan liggen op de werkbank, alsmede een XOR voorbeeld schakling.
  • RS flip-flop met drukknopbediening. Voorbeeldschakeling op het moment op breadboard gemaakt.
  • 1 bit button-toggled geheugen in de vorm van een Gated T flip-flop
  • 2-bit Full Adder (2x 2b in, 3b out)

Zie ook Elmer's publieke G+ stream voor circuit plaatjes en beknopte uitleg. (is zonder enige vorm van account te bekijken, als het niet werkt ligt het aan jou :-))

Benodigdheden

  • Printpennen, om prototype boards te voorzien van makkelijk aan te sluiten inputs en power.