Van eenvoudige transistoren tot complexe systemen: dit artikel behandelt de bouwstenen van digitaal logica en laat zien hoe deze krachtige componenten parallel informatie verwerken met indrukwekkende snelheden.
Digital logic ontwerpen doen echt geweldige dingen. Ze kunnen complexe toestandsmachines implementeren met een vertraging van slechts enkele nanoseconden. Ze kunnen parallelle digitale signaalverwerking uitvoeren met snelheden van meerdere dvd-films per seconde. Ze kunnen eenvoudige halfgeleiderchips elektrisch met elkaar verbinden tot een geavanceerd circuit. In tegenstelling tot CPU’s kunnen digital logic schakelingen alles parallel doen (alle taken tegelijk) in plaats van sequentieel (één taak na de andere).
CMOS transistor basistheorie
De MOSFET (“metal-oxide-Semiconductor Field-effect transistor”) is het bouwblok van moderne digitale chipontwerpen. De lange geschiedenis begon met een patent dat de in Oostenrijk-Hongarije geboren natuurkundige Julius Edgar Lilienfeld in 1925 indiende voor een apparaat dat een elektrisch veld gebruikte om stroom te regelen. William Shockley en anderen ontwikkelden het concept verder, wat uiteindelijk in de jaren 1950 leidde tot een werkende Junction Field-Effect Transistor (JFET). In 1955 groeiden Lincoln Derrick en Carl Frosch een siliciumdioxidelayer op een siliciumwafer en zagen oppervlaktepassivatie-effecten. Deze ontdekking leidde ertoe dat Mohamed Atalla en Dawon Kahng in 1959 bij Bell Labs de MOSFET uitvonden.
Opmerking: JFETs worden nog steeds gebruikt in analoge toepassingen met weinig ruis, terwijl MOSFETs de digitale wereld domineren.
Door twee soorten MOSFETs (P en N) te combineren, ontstaat een CMOS-poort. MOSFETs regeren de moderne digitale wereld omdat ze klein zijn, eenvoudig te produceren, snel en zeer energiezuinig. Elke seconde worden er meer dan 20 biljoen MOSFETs geproduceerd.
Figuur 1. MOSFET
Om een MOSFET te maken, begin je met een siliciumwafer en dopeer je regio’s om twee kleine n+-gebieden te creëren die het standaard p-gebied van de wafer omringen. SiO2 wordt (meestal) boven die NPN-structuur afgezet om een zeer dunne gate-oxide isolator te vormen. Verbind wat metaal met de twee n+-gebieden, het substraat en de gate-oxide, en je hebt een MOSFET. Moderne MOSFETs gebruiken meestal een geleidende polysiliciumconnector naar de gate-oxide. Misschien zouden ze eigenlijk PSOSFETs genoemd moeten worden.
Het bijzondere aan silicium is dat het geen goede geleider is. Door een kleine hoeveelheid van een element zoals fosfor of boor toe te voegen (die vergelijkbaar zijn met silicium maar een extra of ontbrekende valentie-elektron hebben) wordt het pas echt interessant. Dit heet doping. Het dopen verbreekt het evenwicht in het aantal elektronen en gaten in de kristalroosterstructuur, waardoor de geleidbaarheid toeneemt. Het resultaat is een materiaal dat op commando zowel als sterke isolator of als geleider kan functioneren.
Ik vergelijk silicium graag met koekjesdeeg: op zichzelf niet erg interessant, maar voeg wat chocolade- of butterscotch-chips toe en je hebt iets heel bijzonders gemaakt.
Zodra de NPN-gedopeerde siliciumstructuur is gevormd (zoals weergegeven in de figuur hierboven), creëert het p-type gebied direct onder de gate de kanaalregio, die al dan niet een elektronenstroom toelaat.
Belangrijke kenmerken van een CMOS-poort:
Geïsoleerde besturing: de gate is gescheiden van het kanaal door een dunne laag silicium
dioxide (SiO2), wat een hoge ingangsimpedantie creëert.
Elektrisch veld activatie: door spanning op de gate te zetten ontstaat een elektrisch veld,
waardoor stroom kan vloeien tussen drain en source.
Capacitief gedrag: de gate gedraagt zich als een condensator.
Elektrisch gezien lijkt de gate van de NMOS-transistor op een condensator. Afgezien van kleine hoeveelheden lekstroom vereist de gate van de transistor alleen energie bij het schakelen, om zijn capaciteit te laden en te ontladen. Wanneer de gate op GND-potentiaal staat, kan er geen stroom door de kanaalregio van de NMOS-transistor vloeien. Wanneer een VCC-spanning wordt toegepast op de gate, ontstaat er een elektrisch veld in de kanaalregio en kan er stroom vloeien tussen de drain en de source.
Opmerking: analoge ontwikkelaars gebruiken vaak VDD en VSS om de positieve voedingsrail en aardknopen aan te duiden. In dit boek gebruik ik VCC en GND, verschillende namen voor hetzelfde, net zoals koriander en cilantro. Transistorontwikkelaars zullen deze keuze misschien niet waarderen, maar dit is mijn boek en zij zijn vrij om hun eigen te schrijven.
Het energieverbruik van CMOS-transistors wordt voornamelijk bepaald door CV2F, waarbij:
F de schakelfrequentie van de gate is.
C de gate-capaciteit is (inclusief parasitaire bedrading).
V2 het kwadraat is van de spanning op de gate.
Omdat transistors steeds kleiner worden, nemen zowel V als C af, wat leidt tot lager energieverbruik en hogere schakelsnelheden.
De “C” in “CMOS” staat voor “Complementary”. MOSFETs komen in complementaire paren, NMOS en PMOS genoemd. De NMOS-transistor is gebouwd uit de hierboven beschreven NPN-structuur en wordt gebruikt om stroom via zijn drain naar een met GND verbonden source af te voeren. De PMOS-transistor is het omgekeerde. Gebouwd uit een PNP-structuur, wordt hij gebruikt om stroom via zijn source naar zijn drain te leveren. De NMOS wordt “Aan” gezet door VCC op zijn gate te zetten. De PMOS wordt “Aan” gezet door GND op zijn gate te zetten.
Opmerking: De termen PFET (P-channel Field-Effect Transistor) en NFET (N-channel Field-Effect Transistor) worden ook vaak gebruikt om respectievelijk PMOS (P-channel MOSFET) en NMOS (N-channel MOSFET) aan te duiden.
Figuur 2. Complementaire NMOS en PMOS transistors
Wanneer ik aan MOSFETs denk, stel ik me drie koekjes op een rij voor: chocolate chip, butterscotch chip en chocolate chip. Je zet het koekjeskanaal aan door een zak chocoladestukjes (extra elektronen) naast het butterscotch-koekje (bij de gate) te gooien. Elk butterscotch-stukje wordt verdrongen door de chocoladestukjes, en nu heb je drie chocolate chip koekjes op een rij (en de stroom vloeit). Nog iemand trek in een koekje?
Tip: Het is belangrijk om alleen digitale signalen aan te sluiten op de digitale ingang van een CMOS-apparaat. Het aansluiten van een analoog signaal op een digitale ingang riskeert gelijktijdige geleiding, een CMOS-toestand waarbij zowel NMOS- als PMOS-transistors tegelijkertijd geleiden, waardoor een resistieve kortsluiting ontstaat tussen VCC en GND. Stel je een piepklein gloeilampje voor in je chip. Dit verspilt niet alleen energie, maar riskeert ook schade aan de transistors door oververhitting. Gebruik in plaats daarvan een analoge comparator en volg altijd de VIL- en VIH-specificaties voor een CMOS-ingang om dit te voorkomen. Je kleine CMOS-transistors zullen je dankbaar zijn. Het negeren van CMOS-gelijktijdige geleiding vormt een ernstig risico voor de betrouwbaarheid op lange termijn.
Om wat voor reden dan ook is er geen universeel overeengekomen symbolenset voor NMOS- en PMOS-transistors. De figuur hierboven is slechts één van de vele die je in literatuur kunt tegenkomen. Om die reden maak ik mijn eigen symbolen om in dit hoofdstuk te gebruiken, omdat ik vind dat ze belangrijke informatie duidelijk maken. Bovendien is dit mijn boek en niemand kan me tegenhouden.
Figuur 3. CMOS vereenvoudigde “schakelaar”-symbolen
NMOS symbool: de gate zet het kanaal aan met een hoog (VCC) signaal.
PMOS symbool: de gate zet het kanaal aan met een laag (GND) signaal.
De NMOS en PMOS kun je zien als gate-gestuurde schakelaars die een kleine weerstand in serie met hun schakelaar hebben. Het tekenen van een CMOS-inverter met aangepaste NMOS- en PMOS-symbolen laat zien hoe eenvoudig het is om CMOS-poorten uit MOSFETs te bouwen. Deze configuratie staat bekend als een CMOS-totempaalstructuur. De pijlen in de MOSFET-symbolen vertegenwoordigen geen diodes; ze geven de stroomrichting aan wanneer het kanaal wordt gevormd.
Figuur 4. CMOS Inverter
De geproduceerde inverter zou er als volgt uitzien in een zijaanzicht van een siliciumwafer.
Figuur 5. CMOS Inverter Layout
Door slechts een paar extra NMOS- en PMOS-transistors in serie en parallel toe te voegen, kunnen eenvoudigere poorten zoals NANDs en NORs worden gemaakt. Door ze te volgen met een ander NMOS-PMOS-paar (inverter) ontstaan AND- en OR-poorten.
Door digitale logische poorten zoals ANDs en ORs te combineren, kunnen complexere logische structuren zoals adders, subtractors, comparators en multipliers worden gemaakt. Deze geavanceerde structuren hebben echter beperkte functionaliteit, omdat ze geen geheugen bevatten. Ze kunnen een antwoord berekenen maar het niet opslaan voor een ander logisch blok om te gebruiken. Hiervoor is een digitaal geheugenelement nodig.
D-Type Flip-Flop
De D Flip-Flop is het primaire bouwblok van digital logic ontwerp. Omdat een digital logic ontwerp werkt met binaire bits, bewaart de eenvoudige D Flip-Flop die bits. De kleinste D Flip-Flop die ik ben tegengekomen was gemaakt met twintig NMOS- en PMOS-transistors, zie Figuur 8. Je hoeft niet te weten hoe hij werkt, maar je moet weten dat die transistors er zijn. De acht transistors met kloksignalen op hun gates zijn vooral belangrijk.
Figuur 7. D-Type Flip-Flop
Het is heel gemakkelijk om de CMOS-transistorstructuur van een D Flip-Flop te vergeten. Toch is het belangrijk dat niet te doen. Het is ook verleidelijk om te veronderstellen dat een flip-flop met statische ingang en uitgang weinig energie verbruikt. Die veronderstelling is onjuist. De acht transistor-gates die door een klok worden aangedreven, vertegenwoordigen acht capacitieve belastingen die, bij CV²F, een aanzienlijk deel van het totale energieverbruik in CMOS digital logic uitmaken. Uit mijn ervaring verbruiken CMOS-klokstructuren binnen een chip doorgaans ongeveer een derde van het totale energieverbruik van het apparaat.
Figuur 8. CMOS D-Type Flip-Flop in transistors
Tip: om energie te besparen in een digital logic ontwerp, schakel de klok naar een flip-flop alleen in wanneer dat nodig is. Wanneer de klok wordt uitgeschakeld, behoudt de Q-uitgang zijn logische toestand en wordt het energieverbruik van de flip-flop vrijwel nul.
Pipelining, flip-flops toevoegen tussen combinatorische logische stadia, is een belangrijk aspect van digital logic ontwerp om timing te respecteren. Pipelining brengt echter aanzienlijke kosten met zich mee in zowel oppervlakte als energieverbruik. Een goede digitale ontwikkelaar weet hoe hij een ontwerp precies genoeg moet pipelinen om de timing te halen, maar niet zo veel dat het onnodig te veel oppervlakte en energie verbruikt.
De Intel Pentium 4 is een klassiek voorbeeld van een over-gepipelined ontwerp. In de jaren negentig ging de 80x86-architectuur snel van 100 MHz naar 1 GHz kloksnelheden. Het plan van Intel voor desktop CPU’s in de jaren 2000 was toen om van 1 GHz naar 10 GHz te gaan. Dit resulteerde in de NetBurst-microarchitectuur, die de traditionele 80x86-pipelining meer dan verdubbelde. Uiteindelijk kwam de Pentium 4 niet verder dan 3,8 GHz. Intel liet NetBurst vallen ging verder met de veel energiezuinigere Pentium M (Mobile)-architectuur, die oorspronkelijk alleen voor laptops bedoeld was.
Met CMOS-klokfrequenties die een plafond van rond de 5 GHz bereiken, is de focus van de industrie verschoven naar parallelle verwerking, wat nu de opkomst van GPU’s in AI aanjaagt. Ondertussen spelen FPGA’s een cruciale rol in parallel computing, met veel groeipotentieel voor massaal parallelle signaalverwerking.
Meer Over Digital Logic Ontwerp
Voor meer informatie over digital logic ontwerp, raadpleeg het boek van Kevin Hubbard, Mastering FPGA Chip Design(Elektor 2025), waaruit dit artikel (Hoofdstuk 1) afkomstig is.
Discussie (0 opmerking(en))