En adderer i kybernetik er en enhed, der konverterer informationssignaler (analoge eller digitale) til et signal svarende til summen af disse signaler [1] ; en enhed , der udfører en tilføjelsesoperation .
Afhængig af præsentationsformen af information skelnes der mellem analoge og digitale addere [1] .
Tabeladdere blev først brugt i relæberegnere i USA før Anden Verdenskrig.
En binær adderer kan beskrives på tre måder:
Da formler og kredsløb kan transformeres identisk, så kan én sandhedstabel for en binær adderer svare til mange forskellige logiske formler og logiske kredsløb. Derfor, fra synspunktet om at opnå resultatet uden at tage hensyn til den tid, der bruges på at beregne summen, er den tabelformede metode til bestemmelse af den binære adder den vigtigste. Den sædvanlige tabelformede og sædvanlige formelbeskrivelse af addereren tager ikke højde for forsinkelsestiderne i reelle logiske elementer og er ikke egnede til at bestemme ydeevnen af rigtige addere.
x 0 =A | en | 0 | en | 0 | en | 0 | en | 0 | ||
---|---|---|---|---|---|---|---|---|---|---|
x 1 =B | en | en | 0 | 0 | en | en | 0 | 0 | ||
x 2 = | en | en | en | en | 0 | 0 | 0 | 0 | Navn på handling (funktion). | Funktionsnummer _ |
en | 0 | 0 | en | 0 | en | en | 0 | Sum bit modulo 2 | F3.150 | |
en | en | en | 0 | en | 0 | 0 | 0 | Bær lidt | F3.232 |
En bæreenhed forekommer 4 ud af 8 gange.
SDNF summerer modulo 2:
bære bit SDNF :
Et kredsløb, der giver tilføjelsen af to en-bit-numre A og B uden at modtage en carry-bit fra den forrige bit, kaldes en halv-adder . Halvadderen har 4 signallinjer: to indgange til signaler, der repræsenterer encifrede binære tal A og B, og to udgange: summen af A og B modulo 2 (S) og bæresignalet til den næste bit (P). I dette tilfælde er S den mindst signifikante bit, og P er den mest signifikante bit.
Ved at kombinere to halve addere og tilføje et ekstra OR-kredsløb, kan du oprette en tre-trins fuld adder med en ekstra input Pi -1 (i figur 1), der modtager bæresignalet fra det forrige kredsløb. Det første trin på halvadderen udfører tilføjelsen af to binære tal og genererer den første partielle bærebit, det andet trin på halvadderen tilføjer resultatet af det første trin med det tredje binære tal og genererer den anden partielle bærebit , genererer det tredje trin på det logiske element 2OR den resulterende bærebit til den mest signifikante bit.
Et fuldt adderkredsløb kan bruges som "byggeklodser" til at bygge multi-bit adderkredsløb ved at tilføje single-bit fuld addere. For hvert ciffer, som kredsløbet skal kunne håndtere, bruges én fuld adderer.
I adderen i fig. 1 er tiden til at beregne summen modulo 2 2dt, tiden til at beregne carry er 3dt, hvor dt er forsinkelsestiden i et typisk logisk element. I en m-bit adder i værste fald (bære enheder i alle bits), går bæresignalet gennem m-1 bit indtil den sidste bit, og summen vil være klar om yderligere 2dt, så den maksimale additionstid er:
De maksimale additions- og transportberegningstider for flere bit er vist i Tabel 1:
Tabel 1.
antal cifre i adderen | en | 2 | fire | otte | 16 | 32 | 64 |
---|---|---|---|---|---|---|---|
tillægstid, dt | 2 | 5 | elleve | 23 | 47 | 95 | 191 |
overførselsberegningstid, dt | 3 | 6 | 12 | 24 | 48 | 96 | 192 |
En binær en-bit fuld adder er en fuld trinær (tre-operand) binær logikfunktion med en binær (to-bit) udgang. Alle tre operander og begge outputbits er en-bit.
Decimaladderen kan angives i form af to tabeller:
med nul overført fra det foregående ciffer:
+ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|---|---|---|
+ | 0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 |
0 | 0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 |
en | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti |
2 | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve |
3 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 |
fire | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 |
5 | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten |
6 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten |
7 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 |
otte | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 |
9 | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten |
og med en overførsel fra det foregående ciffer:
+ | en | en | en | en | en | en | en | en | en | en |
---|---|---|---|---|---|---|---|---|---|---|
+ | 0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 |
0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti |
en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve |
2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 |
3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 |
fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten |
5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten |
6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 |
7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 |
otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten |
9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten | 19 |
eller i form af en enkelt tabel, hvor bæreenheden fra den forrige bit flytter en kolonne til højre:
+ | 0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti |
en | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve |
2 | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 |
3 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 |
fire | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten |
5 | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten |
6 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 |
7 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 |
otte | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten |
9 | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten | 19 |
Med den passende firmware kan en hexadecimal adderer og en 27 adder-subtraktor på ROM fungere som en decimal adder (decimal).
Parallelle addere er hurtige nok til hurtigt at tilføje et lille antal numre med fast længde. Da bitvis tilføjelse i sagens natur er sekventiel, når der er rigtig mange tilføjelser, er det mere fordelagtigt at omkonfigurere den samme hardware ( ALU ) til at udføre flere serielle tilføjelser parallelt eller ikke samtidigt.
For eksempel vil en parallel 64-bit binær adderer på 64 binære adderer med komplekse fast-carry-skemaer tilføje 1 par 64-bit-tal i de bedste skemaer i ca. 5dt og 32 par 64-bit-tal i ca. 32*5dt = 160 dt.
32 på hinanden følgende binære addere uden bit-for-bit fremspolingskredsløb vil tilføje 32 par 64-bit tal i cirka 64*2dt=128dt.
32 på hinanden følgende kvaternære addere uden hurtige overføringskredsløb vil tilføje 32 par 64-bit tal i ca. (64/lg 2 4)*2dt=64dt.
32 på hinanden følgende hexadecimale addere uden hurtige overføringskredsløb vil tilføje 32 par 64-bit tal i cirka (64/lg 2 16)*2dt=32dt.
32 på hinanden følgende 250-seks addere uden fast-carry-kredsløb vil tilføje 32 par 64-bit tal i cirka (64/lg 2 256)*2dt=16dt, dvs. omkring ti gange hurtigere end en parallel 64-bit adder med hurtige bærekredsløb.
32 på hinanden følgende fire tusinde seksoghalvfems addere uden hurtige overføringskredsløb vil tilføje 32 par 64 bit tal i ca. (64/lg 2 4096)*2dt=10,67dt.