Image of eBits Academy fundamentals illustration

Introduktion till konstruktion av digitala kretsar

  • February 27, 2023
  • |
  • Jonas Rothausen

Introduktion


Datorer tänker på ett lite roligt sätt: binärt, så de bara har 0 och 1 i tankarna. I digitala kretsar betyder binärt ett sätt att representera information med bara två möjliga värden eller tillstånd. De skrivs vanligtvis som 0 och 1 och motsvarar ”av” och ”på” i kretsen.

Digitala kretsar, exempelvis i mikrokontroller, använder binära signaler för att kommunicera och behandla data. Signalerna skapas genom att ändra spänningsnivåerna för de elektriska signalerna i kretsen. 


En mikrokontroller kan exempelvis styra en lysdiod med en binär signal. Värdet 1 kan tända lysdioden medan 0 släcker den.

Binära tal

Binärt används också för att representera tal i digitala kretsar. Varje siffra kan bara vara 0 eller 1. Hur räknar man då med bara 0 och 1?
Att räkna binärt liknar faktiskt att räkna decimalt, men det finns bara två möjliga siffror! Låt oss lära oss räkna till 15 binärt.

För att räkna till 15 binärt behöver vi fyra platser för siffrorna 0 och 1.
Vi börjar med nollor på alla platser [0 0 0 0], vilket är lika med 0. Så långt så bra! Ändrar vi siffran längst till höger till 1 [0 0 0 1] har vi talet 1 binärt.
Vad händer med 2? Vi flyttar 1 ett steg åt vänster [0 0 1 0]. Nu är platsen längst till höger 0 igen. Ändras den till 1 räknar vi ett steg upp: 3 är [0 0 1 1]. För att få 4 kan vi inte bara ändra en nolla till 1. Vi ersätter ettorna på tredje och fjärde plats med nollor och sätter 1 på andra plats: [0 1 0 0]. Det är samma metod som vi använde från 1 till 2.
Så räknar man binärt. Prova själv och se om du förstår talen i figur 1: 


Figur 1: Decimaltal och deras binära representation till och med 15.

Du har kanske gissat att tal över 15 kräver mer än fyra platser. Så räknar en dator och tar i grunden emot och levererar all information, från skärmens pixlar till de mest komplexa beräkningarna i ditt favoritspel. Datorer är helt enkelt mycket snabba på att räkna binärt!


Logiska grindar

Logiska grindar är de grundläggande byggstenarna i en digital krets. Som LEGO kan de sättas ihop till olika konstruktioner. Några heter AND, OR, NOT, NAND, NOR, XOR och XNOR. 

De visade grindarna har två ingångar och en utgång, förutom NOT med en ingång. Andra utföranden kan ha fler ingångar. NOT kallas också inverterare eftersom den ändrar 1 till 0 och tvärtom. Varje grind har en symbol i digitala kretsar, se figur 2:


Figur 2: Logiska grindar. Ingångarna är de två linjerna till vänster och utgången är den ensamma linjen till höger.

AND ger bara logisk 1 på utgången när alla ingångar är logisk 1.
Om utgången är 0 eller 1 beror alltså på ingångskombinationen för den aktuella grinden. Här är en översikt för övriga grindar:

OR-grind: Ger logisk 1 när minst en ingång är logisk 1.

NOT-grind: Ger komplementet till ingången: logisk 1 blir logisk 0 och tvärtom.

NAND-grind: Kombination av AND och NOT. Ger bara logisk 0 när alla ingångar är logisk 1.

NOR-grind: Kombination av OR och NOT. Ger bara logisk 1 när alla ingångar är logisk 0.

XOR-grind: Ger logisk 1 när exakt en ingång är logisk 1.

XNOR-grind: Kombination av XOR och NOT. Ger logisk 1 när båda ingångarna är lika.

När grindar sätts ihop i en digital krets fattar de beslut utifrån kombinationer av digitala insignaler. Färre onödiga grindar kan minska yta, effektförbrukning och kostnad, men timing beror på logikdjup, fan-out och implementering; antalet grindar avgör inte ensamt CPU-prestandan. Därför används boolesk algebra, en matematisk metod för att hitta en effektiv grinduppbyggnad som uppfyller tillämpningens krav.

Boolesk algebra


Låt oss gå vidare genom att undersöka AND-grinden. Figur 3 nedan visar uppbyggnaden av en AND-krets.


Figur 3En krets för en AND-grind.
Spänningskällor: Vin, A och B
Transistorer: T1 och T2.
Motstånd: Ra , Rb och Rout


I bloggen om analoga kretsar lärde vi oss att om 5 V ansluts till transistor T1:s kollektor (Vin) i figur 3, och A och B inte har någon spänning, blir utspänningen noll (Vout). Ändras A till 5 V finns fortfarande ingen utspänning. Detsamma gäller B. Först när både A och B får 5 volt blir utgången 5 volt, eftersom båda transistorerna då är ledande.
Denna AND-princip visas i figuren nedan.

 


Figur 4: Observera att utgången bara blir 5 V när både A och B har 5 V. 

I digital elektronik finns bara logiknivåerna hög och låg, 1 och 0.
Om vi ersätter 5 V och 0 V med ettor och nollor får vi sanningstabeller. Detta är början på digital elektronik.


Figur 5: Sanningstabell för AND-grinden.

 
Sanningstabeller kan beskrivas med ekvationer. Alla grindar har sanningstabeller och tillhörande ekvationer, men matematiken skiljer sig från vanlig matematik och kallas som nämnts boolesk algebra.

Föreställ dig en mer komplex digital krets som nedan. Här finns tre ingångar, A, B och C, och en utgång, Z.


Figur 6: En digital krets.
Ingångar: A, B och C
Utgång: Z


Det ser smart och praktiskt ut, men kanske kan vi göra det bättre.
Hur? Vi använder boolesk algebra.
Vi börjar med att skriva det booleska uttrycket för kretsen i figur 7.

Uttrycket för kretsen ovan är:

Figur 7
: Booleskt uttryck för kretsen i figur 6.

Därefter använder vi boolesk algebra för att reducera uttrycket till dess enklaste form.


Figur 8: Olika uttryck härledda med boolesk algebra för kretsen i figur 6.

Alla uttrycken ovan är ekvivalenta. De kan beskriva olika uppbyggnader, men kretsarna gör exakt samma sak. Deras beteende kan därför beskrivas med samma sanningstabell nedan.

         A          B          C        Z
         0          0          0        0
         0          0          1        0
         0          1          0        1
         0          1          1        1
         1          0          0        0
         1          0          1        1
         1          1          0        1
         1          1          1        1


Figur 9: Sanningstabell för kretsen i figur 6 och alla uttrycken i figur 8.

Vi började alltså med den stora kretsen i figur 6 och reducerade den med boolesk algebra till en krets med samma sanningstabell men bara tre grindar.


Figur 10: Den reducerade kretsen från figur 6.

Kretsen använder färre grindar, vilket kan minska yta, effektförbrukning och kostnad. Hastighet och tillförlitlighet beror fortfarande på komponentval, logikdjup och fysisk utformning. Därför är boolesk algebra ett mycket kraftfullt verktyg för att konstruera digitala kretsar och datorer. 

Den booleska algebrans lagar
För att använda detta praktiska verktyg måste vi känna till lagarna.
Det kräver övning eftersom det finns en del lagar att lära sig.
Lagarna är:

  • Noll- och ettlagarna
  • Identitetslagen
  • Idempotenslagen
  • Komplementlagen
  • Dubbel negation
  • De Morgans lagar
  • Associativitet
  • Kommutativitet
  • Distributivitet
  • Absorption
     

Om du vill gå vidare och utöka förståelsen av digitala kretsar med mer boolesk algebra är denna sida en bra utgångspunkt. Allt förklaras från grunden, följt av exempel på boolesk algebra.
Handlingar som utförs av digitala kretsar blir ofta ihågkomna av datorn i minneselement och register.

Minneselement och register
Detta är kretsar som lagrar binär information, såsom RAM, ROM och EPROM. Tänk på ett bibliotek som kategoriserar och lagrar information i bestämda avdelningar så att den blir lätt att hitta och använda. Att bygga register kräver god förståelse för kodning och en insats för att lära sig, precis som boolesk algebra. Varför lagra data? Det finns många skäl: Vi kanske vill bearbeta, jämföra eller dela informationen i våra minneselement och register. Det görs med sekventiella kretsar.

 

Sekventiella kretsar

Sekventiella kretsar är digitala kretsar vars beteende beror på lagrat tillstånd och aktuella ingångar. De kan vara synkrona med en klocka eller asynkrona utan gemensam klocka. Så planerar en dator beräkningar i en bestämd ordning för att uppfylla sitt syfte effektivt. De två typerna är synkrona och asynkrona sekventiella kretsar.


Synkrona sekventiella kretsar
I synkrona sekventiella kretsar lagras tillståndet i minneselement som vippor och uppdateras vid bestämda klockhändelser. Kombinatorisk logik beräknar nästa tillstånd utifrån nuvarande tillstånd och ingångar. Korrekt funktion kräver att timingkrav som setup- och hålltid uppfylls.

Asynkrona sekventiella kretsar
Asynkrona sekventiella kretsar har lagrat tillstånd och använder ingen gemensam klocka. Tillståndet ändras genom ingångshändelser och intern signalutbredning; återkoppling och lagring skiljer dem från rent kombinatoriska kretsar. Konstruktionen måste ta hänsyn till kapplöpningstillstånd och transientfel.

Aritmetiska kretsar
Dessa kretsar utför räkneoperationer som addition, subtraktion, multiplikation och division.

Dataomvandlare

Dessa kretsar omvandlar digitala signaler till analoga och tvärtom, exempelvis ADC:er och DAC:er. De är användbara för att koppla den verkliga analoga världen till den digitala och kan ses som översättare mellan de två.
Har du undrat hur en termostat känner till och visar rätt temperatur? Den mäter den analoga temperaturen med en sensor och använder värdet i en beräkning så att rätt temperatur kan visas digitalt.

Förenklad logikmodell: 0V och 5V i BJT-AND-exemplet är idealiserade logiknivåer. Verkliga transistorspänningsfall och belastning måste kontrolleras mot den mottagande ingångens gränser; anslut inte 5V till en ingång som inte tål 5V.

Lämna en kommentar

Observera att kommentarer måste godkännas innan de publiceras.