Dr. Oniga István DIGITÁLIS TECHNIKA 6
Több bites összeadók I A több bites számokat teljes összeadókból építhetjük meg Soros átvitelű 4 bites összeadó (Ripple carry adder): 7483 A 4 B 4 A 3 B 3 A 2 B 2 A 1 B 1 C 0 A B C in A B C in A B C in A B C in Σ Σ Σ Σ C 4 C 3 S 4 C 1 S 3 C 2 S 2 S 1 Lassú S i és C i eredményt csak azután kapjuk meg amikor C i-1 felvette végső értékét
Soros átvitelű 8 bites összeadó (8-bit Ripple carry adder)
Több bites összeadók II Párhuzamos átvitelű 4 bites összeadó (Look-ahead carry adder) = gyors átvitelképző C i = A B i i + (A i + B )C i = + i 1 (AiBi AiCi 1) + B i C i 1 Keletkező Generate carry átvitel Cgi Cpi Terjedő Propagate átvitel carry A i B i ½Σ C i S i A i-1 A 1 B i-1 B 1 C 0 Átvitelt számoló logikai blokk
Párhuzamos átvitelű 4 bites összeadó A 4 B 4 A 3 B 3 A 2 B 2 A 1 B 1 Look-ahead carry adder = gyors átvitelképző A B C in4 C in A B C in3 C in A B C in2 C in A B C in C in Σ Σ Σ Σ 1 = + C in2 =1 2 = C g2 C in2 = C g2 1 = C g2 ( + )= C g2 + 2 =A 2 B 2 +(A 2 +B 2 ) A 1 B 1 +(A 2 +B 2 ) (A 1 +B 1 ) C in3 =2 3 = C g3 C in3 = C g3 2 = C g3 (C g2 )= C g3 C g2 + C p3 + C p3 C in4 =3 4 =C g4 +C p4 C in4 =C g4 +C p4 3 = C g4 +C p4 (C g3 C g2 ) = C g4 +C p4 C g3 + C p4 C p3 C g2 + C p4 C p3 + C p4 C p3 S um4 C g4 =A 4 B 4 C p4 =A 4 +B 4 3 S um3 C g3 =A 3 B 3 C p3 =A 3 +B 3 2 S um2 C g2 =A 2 B 2 =A 2 +B 2 1 S um1 =A 1 B 1 =A 1 +B 1
Párhuzamos átvitelű 4 bites összeadó 1 = + C in2 =1 2 = C g2 C in2 = C g2 1 = C g2 ( + )= C g2 + 2 =A 2 B 2 +(A 2 +B 2 ) A 1 B 1 +(A 2 +B 2 ) (A 1 +B 1 ) C in3 =2 3 = C g3 C in3 = C g3 2 = C g3 (C g2 )= C g3 C g2 + C p3 + C p3 C in4 =3 4 =C g4 +C p4 C in4 =C g4 +C p4 3 = C g4 +C p4 (C g3 C g2 ) = C g4 +C p4 C g3 + C p4 C p3 C g2 + C p4 C p3 + C p4 C p3 Cg4 Cg3 Cg2 Cg1 Cp4 Cp3 Cp2 Cp1 Sumator B A Cin Cout3 Sumator B A Cin Cout2 Sumator B S A Cin Cout1 Sumator B S A Cin Cin Cout4 S S S4 S3 S2 S1
1 BITES TELJES KIVONÓ
4-bites teljes kivonó A-B=A+(-B) -B N = B N (2) A-B=A+ B N (2) B (2) =B+1 A 3 A 2 A 1 A 0 B 3 B 2 B 1 B 0 NOT NOT NOT NOT A 3 A 2 A 1 A 0 B 3 B 2 B 1 B 0 4 BITES ÖSSZEADÓ C 0 S3 S2 S1 S0 1 S 3 S 2 S 1 S 0
ARITMETIKAI-LOGIKAI EGYSÉGEK (ALU) ALU minden processzorban van, de önálló, diszkrét áramkörként is gyártják. Az ALU egy kombinációs hálózat - a bemeneteikre érkező két számmal (A és B) - S bemeneteken megadott logikai vagy aritmetikai műveletet végzik el - az eredményt az F kimeneteken jelenítik meg. - Összeadás és kivonás művelet elvégzésekor figyelembe veszik az előző helyérték átvitelét (Cn), és az előállított átvitelt továbbítják a következő helyértékre (C). Műveletek: bináris aritmetikai utasítások (összeadás, kivonás, stb.), logikai műveletek (AND, OR, stb.), regiszterműveletek (jobbra-balra léptetés, inkrementálás, dekrementálás),
1 bites ALU (ALU = arithmetic + logic unit) C in_i = _i-1 C in_0 =F 0
Optimalizált 1 bites ALU C in_i = _i-1 C in_0 =F 0
1 bites ALU Simplified version of a circuit in Tanenbaum, Andrew S., Structured Computer Organization, Fourth Edition Prentice-Hall, 1999 [p.138]
Optimalizált 4 bites összeadó/kivonó Összeadás: Kivonás: Mode = 0 => b i =b i Mode = 1 => b i =b i
4-bites ALU - 74LS181 Két 4-bites operandus (A, B) 4 bites eredmény (F) Átvitel: CarryIn/ Out S2: Aritmetikai/ logikai mód választó(mux) S0, S1: művelet kiválasztó Jelzőbitek: carry-in, carry-out átviteleket, előjel bitet(sign), túlcsordulást(overflow), alulcsordulást(underflow).
4-bites ALU tervezése Verilog-ban
Modulok leírása
ALU top modul leírása 4 és 8 bites belső vezetékek