Image of eBits Academy fundamentals illustration

Introduktion til Digitale Kredsløb

  • March 08, 2023
  • |
  • Jonas Rothausen

Introduktion


Computere tænker på en lidt sjov måde. De tænker binært, så det eneste, de tænker på, er 0'er og 1-taller. I forbindelse med digitale kredsløb refererer binær til et system til repræsentation af information eller data ved hjælp af kun to mulige værdier eller tilstande. Disse værdier er typisk repræsenteret som 0 og 1, hvilket svarer til tilstandene "off" og "on" i et digitalt kredsløb.

Digitale kredsløb, såsom dem, der findes i mikrocontrollere, bruger binære signaler til at kommunikere og behandle data. De binære signaler skabes ved at manipulere spændingsniveauerne for de elektriske signaler, der strømmer gennem kredsløbet.

For eksempel kan en mikrocontroller bruge et binært signal til at styre en LED. En binær værdi på 1 kan bruges til at tænde LED'en, mens en binær værdi på 0 bruges til at slukke den.

Binære tal


Binært data bruges også til repræsentation af tal i digitale kredsløb. I binær kan hvert ciffer kun have en værdi på 0 eller 1. Så hvordan kan man tælle, hvis man kun kan bruge 0 og 1? Faktisk svarer det til at tælle i decimal, bortset fra at binær kun har to mulige værdier!

Lad os fortsætte med at lære at tælle til 15 i binær.
For at tælle til 15 i binær har vi brug for 4 pladser til vores tal 0 og 1. Vi starter med alle at pladser,  holder et nul [0 0 0 0] - dette er lig med 0. Ok, så langt så godt! Hvis vi derefter vender det ciffer, der er mest til højre til 1, således [0 0 0 1], så har vi tallet 1 repræsenteret i binær.

Hvad så med tallet 2? For nummer 2 flytter vi vores ciffer 1 en plads til venstre [0 0 1 0]. Nu har vi det pladsen mest til højre til at holde et 0, som vi havde med den binære repræsentation af 0. Hvis vi derefter flipper den plads til et 1-tal, tæller vi et enkelt ciffer op - så 3 i binær ville være [0 0 1 1]. For den binære repræsentation af 4 bemærker vi, at vi ikke kan flippe et 0 til en 1 for at tælle op, så vi erstatter 1'erne på fjerde- og tredjepladsen med 0 og placerer en 1 på andenpladsen.  Så 4 i binær ser sådan ud [0 1 0 0]. (Dette var også den metode, vi brugte, da vi talte fra 1 til 2 i binær). Dette er metoden til at tælle i binær. Prøv selv og se om I kan forstå de binære tal i figur 1:


Figur 1: viser decimaltallene og deres tilsvarende binære repræsentation op til tallet 15.

Du har måske allerede gættet, at hvis vi ville repræsentere et tal større end 15, ville vi have brug for mere end 4 steder for at holde cifrene. Det er sådan, en computer tæller og dybest set modtager og leverer al information,  lige fra pixels til din skærm til de mest komplekse beregninger, når du spiller dit yndlingscomputerspil! Lad os bare sige, at computere er meget hurtige til at tælle binære tal.

 

Logiske porte


Logic gates er som de grundlæggende byggesten i et digitalt kredsløb. Ligesom lego kan vi sætte dem sammen i forskellige konstruktioner med forskellige formål. Nogle af disse porte kaldes AND, OR, NOT, NAND, NOR, XOR og XNOR.

De viste porte har to indgange og én udgang, bortset fra NOT, som har én indgang. Porte med flere indgange findes også. NOT-porten kaldes en inverter, fordi den ændrer 1 til 0 og omvendt. Hver port har et symbol i digitale kredsløb, se figur 2:

Figur 2: Logic Gates. Indgangene er repræsenteret med de to linjer til venstre ind i portene. Udgangen er den enkelte linje til højre for portene.



AND-porten producerer kun logic 1-output, når alle dets indgange er logic 1. Om outputtet er 0 eller 1 af logic gates afhænger af kombinationen af de to indgange for den pågældende logic gate. Nedenfor er en oversigt over disse kombinationer for resten af de nævnte logic gates:

OR: Denne port producerer et logic 1-output, når mindst en af dens indgange er logic 1.

NOT: Denne port producerer komplementet af dens input; det vil sige, at en logic 1-indgang producerer en logic 0-udgang og omvendt.

NAND: Denne gate er en kombination af en AND gate og en NOT gate. Det producerer kun et logisk 0-output, når alle dets input er logic 1.

NOR: Denne port er en kombination af en OR-port og en NOT-port. Det producerer kun et logic 1-output, når alle dets input er logic 0.

XOR: Denne port producerer en logic 1-udgang, når nøjagtigt en af dens indgange er logic 1.

XNOR: Denne port er en kombination af en XOR-port og en NOT-port. Det producerer en logic 1-udgang, når begge dens indgange er de samme.

Ved at samle portene kan et digitalt kredsløb træffe beslutninger ud fra digitale indgangssignaler. Færre porte kan reducere areal og effektforbrug, men timing og pålidelighed afhænger også af implementeringen. Boolsk algebra giver matematiske metoder til at forenkle logiske udtryk og samtidig bevare den ønskede funktion.

 

 

boolsk algebra

Lad os dykke lidt længere ned i dette ved at udforske AND-gaten. I figuren nedenfor, figur 3, kan du se konstruktionen af et kredsløb af en AND-gate.


Figur 3: Illustrerer kredsløbet 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, hvordan transistorer fungerer som kontakter. I principeksemplet forbindes en 5 V forsyning til T1 ved Vin, mens A og B styrer transistorerne. Når en af transistorerne er slukket, er udgangen Vout lav. Når begge leder, kan udgangen være høj. Et fysisk transistorkredsløb giver ikke automatisk præcis 5 V: spændingsfald, belastning og drivning spiller ind. Figurerne viser logisk funktion og erstatter ikke et komplet elektrisk design.


Figur 4: Den idealiserede AND-funktion giver kun høj udgang, når både A og B er høje.

 

I digital elektronik er der kun høj og lav, 1 og 0. Hvis vi så erstatter 5 V og 0 V med 1-taller og 0'ere, får vi det, der kaldes sandhedstabeller. Dette koncept er begyndelsen på digital elektronik.

Figur 5: Sandhedstabel for en AND-gate.

 

Sandhedstabels kan beskrives ved hjælp af en ligning. Alle gates har sandhedstabeller og deres egne ligninger, selvom matematikken, der bruges i digital elektronik, er forskellig fra almindelig matematik. Som vi nævnte lidt tidligere, hedder denne matematik boolsk algebra.

 

Vi kan forestille os, at vi havde et rimeligt kompleks digital kredsløb som den, der er vist nedenfor. Her har vi tre input: A, B og C. Og et output: Z

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

 

Dette kan se meget smart og praktisk ud, men måske kan vi gøre det lidt bedre. Så hvordan gør vi det? Vi bruger boolsk algebra. Vi starter med at skrive det boolske udtryk for det digitale kredsløb i figur 6.


Udtrykket for det digitale kredsløb ovenfor er:

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

 

Derefter bruger vi boolske algebrametoder til at reducere dette komplekse udtryk til sin enkleste form.


Figur 8: Forskellige udtryk udleddet ved brug af boolsk algebra. Hvert led beskriver kredsløbet, der ses på figur 6.

 

Alle de udtryk, der ses lige ovenfor, er ækvivalente. De kan hver især beskrive en anden konstruktion af et kredsløb, men alle disse kredsløb gør nøjagtigt det samme. Det betyder, at adfærden af alle disse kredsløb kan beskrives ved det samme sandhedstabel vist nedenfor.

Figur 9: Sandhedstabel for kredsløbet i figur 6 og for alle udtryk set i figur 8.

 

Så vi startede med dette store komplekse digitale kredsløb set i figur 6, og ved at bruge boolsk algebra reducerede vi det kredsløb til et, der kan beskrives af det samme sandhedstabel, men med 2 gates i stedet for 7.

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

Det reducerede kredsløb kræver færre komponenter, hvilket kan reducere pris, effektforbrug og forsinkelse. Faktisk timing og pålidelighed skal stadig kontrolleres. Derfor er boolsk algebra et stærkt værktøj til digitale kredsløb og computere.

 

 

Lovene for boolsk algebra

For at vi kan bruge dette yderst nyttige værktøj, er vi nødt til at vide om dets love. Dette vil kræve lidt øvelse, da der er en hel del love at lære. Disse love er:

  • Nul- og etregler
  • Identitetsregler
  • Idempotens
  • Komplement
  • Dobbelt negation
  • De Morgans lov
  • Associativitet
  • Kommutativitet
  • Distributivitet
  • Absorption

 

Hvis du føler dig klar til at gå endnu længere og udvide din forståelse af digitale kredsløb ved at lære mere om boolsk algebra, giver dette sted en god måde at komme i gang på. Alt forklares fra bunden, og derefter vises et par eksempler for boolsk algebra.

De aktioner, der udføres af digitale kredsløb, huskes ofte af computeren i det, der kaldes hukommelseselementer og registre.


Hukommelseselementer og Registre
Disse kredsløb gemmer binær information. Registre og hukommelser som RAM, ROM og EPROM har forskellige strukturer og formål. Forestil dig et bibliotek, der kategoriserer og gemmer information i bestemte afdelinger, så den nemt kan findes og bruges. Design af sådan lagring kræver forståelse for digital logik og styring. Hvorfor gemme data? Vi kan ønske at behandle, sammenligne eller dele information i hukommelseselementer og registre. Det involverer sekventielle kredsløb.

 

Sekventielle kredsløb

Sekventielle kredsløb har tilstand: Udgangene afhænger af indgange og gemt tidligere information. Synkrone kredsløb opdaterer tilstand efter et clock-signal; asynkrone kredsløb kræver ikke en fælles clock. De organiserer forløb af operationer og kan opdeles i disse to typer.

 

Synkrone sekventielle kredsløb
I synkrone sekventielle kredsløb opdateres tilstandselementer som flip-flops ved bestemte clock-flanker. Kombinatorisk logik beregner næste tilstand og udgange ud fra aktuelle indgange og gemt tilstand. Designet skal overholde timingkrav, så værdierne samples pålideligt.

Asynkrone sekventielle kredsløb
Asynkrone sekventielle kredsløb ændrer tilstand uden fælles clock som reaktion på indgangsændringer og intern timing. De har stadig tilstand og kan bruge feedback; de er ikke rent kombinatoriske kredsløb. Funktionen afhænger af indgange og tidligere tilstand, så timing og hazards kræver omhyggeligt design.

Aritmetiske kredsløb
Disse kredsløb udfører aritmetiske operationer, såsom addition, subtraktion, multiplikation og division.

 

Datakonvertere

Data converter er kredsløb, der konverterer digitale signaler til analoge signaler og omvendt, såsom ADC'er og DAC'er. ADC'er og DAC'er er meget nyttige til at forbinde den virkelige analoge verden med den digitale verden. Du kan tænke på dem som oversættere mellem de to. Har du nogensinde spekuleret på, hvordan en termostat kender og viser den korrekte temperatur? Jamen det gør den det ved at måle den analoge temperatur ved hjælp af en sensor, og så mapper den denne værdi i sin beregning for at vise den korrekte temperatur digitalt.

Efterlad en kommentar

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