Den Binära adderaren

Den binära adderaren är en relativt simpel krets som ligger som idag finns i oräkneliga mängder i olika processorer, FPGAer eller implementerade av diskreta komponenter.

Den binära adderaren räknar i princip som en människa gör i decimalsystemet

ex 17 + 25:Steg 1Steg 2Steg 3fast istället för att summor på tio eller mer leder till att en rest skickas till spalten till vänster så skickar summor på två en etta åt vänster (mer signifikanta bitar)

Ex 17+25:

Steg 1Steg 2

Steg 3

En en bits adderare behöver då ta Tal A, Tal B och sedan generera resultatet R samt Resten Cout enligt sanningstabellen

A B | R Cout
0 0 | 0 0
0 1 | 1 0
1 0 | 1 0
1 1 | 0 1

Utifrån denna sanningstabell kan vi konstruera ”halvadderaren”

HalfadderFör att utöka denna1-bits adderare (som inte är så praktisk i sig själv eftersom de flesta kan räkna till två) till en fler-bitars adderare vill man ställa flera adderare bredvid varandra där varje adderare tar hand om en av talets bitar. För att detta ska fungera måste Cout skickas som indata till adderaren för nästa bit. Dvs. adderaren för bit n i talet utför operationen An + Bn + Coutn-1 => Rn, Coutn. Som synes så klarar inte halv-adderaren av detta själv utan en ingång för rest-biten måste tas in och adderas till A och B. Sanningstabellen för detta blir då

Cin A B | R Cout
0 0 0 | 0 0
0 0 1 | 1 0
0 1 0 | 1 0
0 1 1 | 0 1
1 0 0 | 1 0
1 0 1 | 0 1
1 1 0 | 0 1
1 1 1 | 1 1

Den digitala kretsen som utför denna operation kallas för fullständig adderare (full adder).

Fullständig adderare

Denna en-bits-adderare går nu att länka samman genom att skicka Cout till Cin i adderarenför biten till höger om nuvarande (mer signifikanta) bit.

4-bit adder

Ovanstående skiss visar en 4-bitars adderare, där Cin för bit 0 alltid är 0 (det finns ingen mindre signifikant bit som kan skicka data). Ifall vi vill utföra operationen 3 (0011) + 2 (0010) får vi alltså att

A[0] + B[0] + 0 = 1 + 0 + 0 => R[0] = 1, Cout[0] = 0

A[1] + B[1] + Cout[0] = 1 + 1 + 0 => R[1] = 0, Cout[1] = 1

A[2] + B[2] + Cout[1] = 0 + 0 + 1 => R[2] = 1, Cout[2] = 0

A[3] + B[3] + Cout[2]  = 0 + 0 + 0 => R[3] , Cout[3] = 0

R = 0101 = 5

Restbiten för den mest signifikanta biten används ofta för att ange ifall beräkningen gick över vad resultatet kan visa.

Planen var att gå igenom addition med teckenbitar också men det här inlägget är nog långt som det är så det blir framöver. efter det har jag också tänkt gå igenom hur binära multiplikatorer och divisionskretsar arbetar.

Keep Watching the Sky!

Etiketter: , ,

5 svar to “Den Binära adderaren”

  1. Wenner Says:

    Alkoholpåverkad huggorm?

    You’ve got mail! (inte att förväxla med filmen)

  2. akeinexile Says:

    Det är precis lika lätt att förstå dina kommentarer som vanligt =)

  3. Marcus Says:

    Oooh, det där var nog det nördigaste blogginlägget jag någonsin sett.
    I want more… :D

  4. Wenner Says:

    Ja, full adder = alkoholpåverkad huggorm….
    klart som en solstråle enligt mig =)

  5. Wenner Says:

    Och du,
    det finns bara 10 sorters människor på jorden
    De som förstår binära tal
    och de som inte gör det…

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s


%d bloggare gillar detta: