Image of eBits Academy fundamentals illustration

Introduktion til design af digitale kredsløb

  • February 27, 2023
  • |
  • Jonas Rothausen

Introduktion


Computere tænker på en lidt sjov måde: binært, så de kun har 0 og 1 i tankerne. I digitale kredsløb betyder binær en måde at repræsentere information med kun to mulige værdier eller tilstande. De skrives typisk som 0 og 1 og svarer til ”slukket” og ”tændt” i kredsløbet.

Digitale kredsløb, eksempelvis i mikrocontrollere, bruger binære signaler til at kommunikere og behandle data. Signalerne skabes ved at ændre spændingsniveauerne for de elektriske signaler i kredsløbet. 


En mikrocontroller kan eksempelvis styre en LED med et binært signal. Værdien 1 kan tænde LED’en, mens 0 slukker den.

Binære tal

Binær bruges også til at repræsentere tal i digitale kredsløb. Hvert ciffer kan kun være 0 eller 1. Hvordan tæller man så med kun 0 og 1?
At tælle binært ligner faktisk at tælle decimalt, men der er kun to mulige cifre! Lad os lære at tælle til 15 binært.

For at tælle til 15 binært skal vi bruge fire pladser til cifrene 0 og 1.
Vi starter med nuller på alle pladser [0 0 0 0], som er lig 0. Så langt så godt! Ændrer vi cifferet længst til højre til 1 [0 0 0 1], har vi tallet 1 binært.
Hvad så med 2? Vi flytter 1 én plads til venstre [0 0 1 0]. Nu er pladsen længst til højre 0 igen. Ændres den til 1, tæller vi én op: 3 er [0 0 1 1]. For at få 4 kan vi ikke blot ændre et 0 til 1. Vi erstatter ettallerne på tredje og fjerde plads med nuller og sætter 1 på anden plads: [0 1 0 0]. Det er samme metode, som vi brugte fra 1 til 2.
Sådan tæller man binært. Prøv selv, og se, om du forstår tallene i figur 1: 


Figur 1: Decimaltal og deres binære repræsentation til og med 15.

Du har måske gættet, at tal over 15 kræver mere end fire pladser. Sådan tæller en computer og modtager og leverer i bund og grund al information, fra skærmens pixels til de mest komplekse beregninger i dit yndlingsspil. Computere er ganske enkelt meget hurtige til at tælle binært!


Logiske gates

Logiske gates er de grundlæggende byggesten i et digitalt kredsløb. Som LEGO kan de samles til forskellige konstruktioner. Nogle hedder AND, OR, NOT, NAND, NOR, XOR og XNOR. 

De viste gates har to indgange og én udgang, bortset fra NOT med én indgang. Andre udgaver kan have flere indgange. NOT kaldes også en inverter, fordi den ændrer 1 til 0 og omvendt. Hver gate har et symbol i digitale kredsløb, se figur 2:


Figur 2: Logiske gates. Indgangene er de to linjer til venstre, og udgangen er den enkelte linje til højre.

AND giver kun logisk 1 på udgangen, når alle indgange er logisk 1.
Om udgangen er 0 eller 1 afhænger altså af indgangskombinationen for den enkelte gate. Her er en oversigt for de øvrige gates:

OR-gate: Giver logisk 1, når mindst én indgang er logisk 1.

NOT-gate: Giver komplementet til indgangen: logisk 1 bliver logisk 0 og omvendt.

NAND-gate: Kombination af AND og NOT. Giver kun logisk 0, når alle indgange er logisk 1.

NOR-gate: Kombination af OR og NOT. Giver kun logisk 1, når alle indgange er logisk 0.

XOR-gate: Giver logisk 1, når præcis én indgang er logisk 1.

XNOR-gate: Kombination af XOR og NOT. Giver logisk 1, når begge indgange er ens.

Når gates samles i et digitalt kredsløb, træffer de beslutninger ud fra kombinationer af digitale indgangssignaler. Færre unødvendige gates kan mindske areal, effektforbrug og pris, men timing afhænger af logikdybde, fan-out og implementering; gateantal alene bestemmer ikke CPU-ydeevnen. Derfor bruges boolsk algebra, en matematisk metode til at finde en effektiv gateopbygning, der opfylder anvendelsens krav.

Boolsk algebra


Lad os gå lidt videre ved at undersøge AND-gaten. Figur 3 nedenfor viser opbygningen af et AND-kredsløb.


Figur 3Et kredsløb for en AND-gate.
Spændingskilder: Vin, A og B
Transistorer: T1 og T2.
Modstande: Ra , Rb og Rout


I bloggen om analoge kredsløb lærte vi, at hvis 5 V tilsluttes transistor T1’s collector (Vin) i figur 3, og A og B ikke har nogen spænding, bliver udgangsspændingen nul (Vout). Ændres A til 5 V, er der stadig ingen udgangsspænding. Det samme gælder B. Først når både A og B får 5 volt, bliver udgangen 5 volt, fordi begge transistorer da er ledende.
Dette AND-princip vises i figuren nedenfor.

 


Figur 4: Bemærk, at udgangen kun bliver 5 V, når både A og B har 5 V. 

I digital elektronik findes kun logikniveauerne høj og lav, 1 og 0.
Hvis vi erstatter 5 V og 0 V med ettaller og nuller, får vi sandhedstabeller. Dette er begyndelsen på digital elektronik.


Figur 5: Sandhedstabel for AND-gaten.

 
Sandhedstabeller kan beskrives med ligninger. Alle gates har sandhedstabeller og tilhørende ligninger, men matematikken er anderledes end almindelig matematik og kaldes som nævnt boolsk algebra.

Forestil dig et mere komplekst digitalt kredsløb som nedenfor. Her er tre indgange, A, B og C, og én udgang, Z.


Figur 6: Et digitalt kredsløb.
Indgange: A, B og C
Udgang: Z


Det ser smart og praktisk ud, men måske kan vi gøre det bedre.
Hvordan? Vi bruger boolsk algebra.
Vi starter med at skrive det boolske udtryk for kredsløbet i figur 7.

Udtrykket for kredsløbet ovenfor er:

Figur 7
: Boolsk udtryk for kredsløbet i figur 6.

Derefter bruger vi boolsk algebra til at reducere udtrykket til dets enkleste form.


Figur 8: Forskellige udtryk udledt med boolsk algebra for kredsløbet i figur 6.

Alle udtrykkene ovenfor er ækvivalente. De kan beskrive forskellige opbygninger, men kredsløbene gør præcis det samme. Deres opførsel kan derfor beskrives med den samme sandhedstabel nedenfor.

         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: Sandhedstabel for kredsløbet i figur 6 og alle udtrykkene i figur 8.

Vi startede altså med det store kredsløb i figur 6 og reducerede det med boolsk algebra til et kredsløb med samme sandhedstabel, men kun tre gates.


Figur 10: Det reducerede kredsløb fra figur 6.

Kredsløbet bruger færre gates, hvilket kan mindske areal, effektforbrug og pris. Hastighed og pålidelighed afhænger stadig af komponentvalg, logikdybde og fysisk design. Derfor er boolsk algebra et meget stærkt værktøj til at designe digitale kredsløb og computere. 

Den boolske algebras love
For at bruge dette nyttige værktøj skal vi kende lovene.
Det kræver øvelse, for der er en del love at lære.
Lovene er:

  • Nul- og etlovene
  • Identitetsloven
  • Idempotensloven
  • Komplementloven
  • Dobbelt negation
  • De Morgans love
  • Associativitet
  • Kommutativitet
  • Distributivitet
  • Absorption
     

Hvis du vil gå videre og udvide forståelsen af digitale kredsløb med mere boolsk algebra, er dette sted et godt udgangspunkt. Alt forklares fra bunden, efterfulgt af eksempler på boolsk algebra.
Handlinger udført af digitale kredsløb bliver ofte husket af computeren i hukommelseselementer og registre.

Hukommelseselementer og registre
Dette er kredsløb, der lagrer binær information, såsom RAM, ROM og EPROM. Tænk på et bibliotek, der kategoriserer og gemmer information i bestemte afsnit, så den er let at finde og bruge. At opbygge registre kræver god forståelse for kodning og en indsats for at lære det, ligesom boolsk algebra. Hvorfor gemme data? Der er mange grunde: Måske vil vi bearbejde, sammenligne eller dele informationen i vores hukommelseselementer og registre. Det sker med sekventielle kredsløb.

 

Sekventielle kredsløb

Sekventielle kredsløb er digitale kredsløb, hvis opførsel afhænger af lagret tilstand såvel som aktuelle indgange. De kan være synkrone med en clock eller asynkrone uden fælles clock. Det er sådan, en computer planlægger beregninger i en bestemt rækkefølge for at opfylde sit formål effektivt. De to typer er synkrone og asynkrone sekventielle kredsløb.


Synkrone sekventielle kredsløb
I synkrone sekventielle kredsløb lagres tilstanden i hukommelseselementer som flip-flops og opdateres ved bestemte clockhændelser. Kombinatorisk logik beregner næste tilstand ud fra den nuværende tilstand og indgangene. Korrekt funktion kræver, at timingkrav som setup- og holdtid overholdes.

Asynkrone sekventielle kredsløb
Asynkrone sekventielle kredsløb har lagret tilstand og bruger ikke en fælles clock. Tilstanden ændres ved indgangshændelser og intern signaludbredelse; tilbagekobling og lagring adskiller dem fra rent kombinatoriske kredsløb. Designet skal tage højde for kapløbstilstande og transientfejl.

Aritmetiske kredsløb
Disse kredsløb udfører regneoperationer som addition, subtraktion, multiplikation og division.

Dataomformere

Disse kredsløb omformer digitale signaler til analoge og omvendt, eksempelvis ADC’er og DAC’er. De er nyttige til at forbinde den virkelige analoge verden med den digitale og kan ses som oversættere mellem de to.
Har du undret dig over, hvordan en termostat kender og viser den rigtige temperatur? Den måler den analoge temperatur med en sensor og omsætter værdien i en beregning, så den rigtige temperatur kan vises digitalt.

Forenklet logikmodel: 0V og 5V i BJT-AND-eksemplet er idealiserede logikniveauer. Reelle transistorspændingsfald og belastning skal kontrolleres mod den modtagende indgangs grænser; tilslut ikke 5V til en indgang, der ikke tåler 5V.

Efterlad en kommentar

Bemærk venligst, at kommentarer skal godkendes, før de offentliggøres.