Upload
duongdiep
View
219
Download
1
Embed Size (px)
Citation preview
Copyright Paul GASNERCopyright Paul GASNER
2. Circuite logice2. Circuite logice2.5. Sumatoare şi 2.5. Sumatoare şi
multiplicatoaremultiplicatoare
Copyright Paul GASNERCopyright Paul GASNER 2
Adunarea în sistemul binar Adunarea în sistemul binar Adunarea se poate efectua în mod identic ca la adunarea obişnuită cu cifre arabe în sistemul zecimalAtenţie la faptul ca 1+1=10 !!!
1 1 1 0 Depăşire - Carry in1 0 1 1 +1 1 1 0
1 1 0 0 1
carry implicit 0
bitul cel mai semnificativmost significant bit - MSB
bitul cel mai puţin semnificativ(least significant bit - LSB)
Copyright Paul GASNERCopyright Paul GASNER 3
Adunarea a doi bitsAdunarea a doi bitsDupă cum s-a observat la decodoare, adunarea a doi bits are ca rezultat un cuvânt pe 2 bits, bitul din dreapta fiind “suma” iar cel din stânga “carry” (half-adder)
0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 10
C = XY
S = X’ Y + X Y’= X ⊕ Y
Copyright Paul GASNERCopyright Paul GASNER 4
Adunarea a trei bitsAdunarea a trei bitsÎn realitate, la adunarea a două numere binare trebuie realizată suma a trei biţi, doi care provin de la operanzi şi al treilea bitul de depăşire (carry)
1 1 1 01 0 1 1 +1 1 1 0
1 1 0 0 1
X Y Cin Cout S0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1
0 + 0 + 0 = 000 + 0 + 0 = 010 + 1 + 0 = 010 + 1 + 1 = 101 + 0 + 0 = 011 + 0 + 1 = 101 + 1 + 0 = 101 + 1 + 1 = 11
(Sunt aceleaşi funcţii ca în exemplele de la decodor şi multiplexor)
Copyright Paul GASNERCopyright Paul GASNER 5
Ecuaţiile sumatorului completEcuaţiile sumatorului completUn sumator complet (full-adder) are la intrare 3 bits, iar ieşirea este un cuvânt de 2 bits (sumă + depăşire)
X Y Cin Cout S0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1
S = Σm(1,2,4,7)= X’ Y’ Cin + X’ Y Cin’ + X Y’ Cin’ + X Y Cin
= X’ (Y’ Cin + Y Cin’) + X (Y’ Cin’ + Y Cin)= X’ (Y ⊕ Cin) + X (Y ⊕ Cin)’= X ⊕ Y ⊕ Cin
Cout= Σm(3,5,6,7) = X’ Y Cin + X Y’ Cin + X Y Cin’ + X Y Cin
= (X’ Y + X Y’) Cin + XY(Cin’ + Cin)= (X ⊕ Y) Cin + XY
Copyright Paul GASNERCopyright Paul GASNER 6
Sumatorul completSumatorul completUn sumator complet poate fi construit din două sumatoare simple
S = X ⊕ Y ⊕ Cin
Cout = (X ⊕ Y) Cin + XY
Copyright Paul GASNERCopyright Paul GASNER 7
Sumator pe 4 bitsSumator pe 4 bitsPatru sumatoare complete formează un sumator pe 4 biţi9 inputs:
2 numere pe 4 bits A3 A2 A1 A0 şi B3 B2 B1 B01 depăşire la intrare (carry in) CI
5 ouputsSuma pe bits1 depăşire la ieşire (carry out) CO
Tabela de adevăr cuprinde 512 linii
Copyright Paul GASNERCopyright Paul GASNER 8
ExempluExempluSă se adune A=1011 (11) B=1110 (14)
1 1 1 0 1 1 0 1
0
1. Se completează intrările, inclusiv CI=0
0
2. Circuitul produce C1 şi S0 (1 + 0 + 0 = 01)
1
1
3. C1 împreună cu A1 şi B1 produc C2 şi S1 (1 + 1 + 0 = 10)
0
1
4. C2 şi A2 B2 calculează C3 şi S2 (0 + 1 + 1 = 10)
01 1
5. C3 împreună cu A3 şi B3 conduc la CO şi S3 (1 + 1 + 1 = 11)
Suma finală este 11001 (25)
Copyright Paul GASNERCopyright Paul GASNER 9
OverflowOverflowOperanzii din exemplu sunt numere pe 4 bits, pe când suma este un număr pe 5 bits – overflowDacă sistemul de calcul este construit pe 4 bits, răspunsul obţinut mai sus nu poate fi utilizat chiar dacă el este corectOverflow se marchează prin valoare 1 a bitului de depăşire la ieşire CO
Copyright Paul GASNERCopyright Paul GASNER 10
Sumatoare cascadateSumatoare cascadateCI este utilă la cascadarea sumatoarelor, pentru a obţine sumatoare mai mari:
Sumator pe 8 bits
Copyright Paul GASNERCopyright Paul GASNER 11
Timpi de răspunsTimpi de răspunsPrin întârzierea unui circuit (poartă logică de exemplu) se înţelege intervalul temporal scurs de la apariţia semnalului de intrare şi apariţia răspunsului corect la ieşire (gate delay)Presupunem aceeaşi constantă de răspuns pentru toate porţile
x
x’
1
0
delay
Copyright Paul GASNERCopyright Paul GASNER 12
Sumatorul ripple carrySumatorul ripple carrySchema detaliată a sumatorului pe 4 biţi este prezentată în figura de mai josSumatoarele ripple carry sunt foarte lente:
pentru sumatorul pe 4 biţi, sumarea se execută în 5 etape şi se parcurg 9 porţila un sumator pe n biţi se parcurg 2n+1 porţi
Copyright Paul GASNERCopyright Paul GASNER 13
Minimizarea întârzierilorMinimizarea întârzierilorÎntârzierea cea mai importantă la un sumator cascadat este dată de timpii necesari calculării succesive ale COSunt necesare două funcţii pentru fiecare poziţie i:
existenţa depăşirii la ieşiregi = AiBi
propagarea depăşiriipi = Ai ⊕ Bis
Funcţia depăşire la ieşire poate fi scrisă:ci+1 = gi + pici
Ai Bi Ci Ci+1
0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1
gi pi
Copyright Paul GASNERCopyright Paul GASNER 14
Minimizarea întârzierilorMinimizarea întârzierilorPentru sumatorul pe 4 bits se obţin următoarele ecuaţii:
c1 = g0 + p0c0
c2 = g1 + p1c1
= g1 + p1(g0 + p0c0)= g1 + p1g0 + p1p0c0
c3 = g2 + p2c2
= g2 + p2(g1 + p1g0 + p1p0c0)= g2 + p2g1 + p2p1g0 + p2p1p0c0
c4 = g3 + p3c3
= g3 + p3(g2 + p2g1 + p2p1g0 + p2p1p0c0)= g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0c0
Copyright Paul GASNERCopyright Paul GASNER 15
Minimizarea întârzierilorMinimizarea întârzierilor
Copyright Paul GASNERCopyright Paul GASNER 16
Minimizarea întârzierilorMinimizarea întârzierilorCea mai lungă cale care trebuie parcursă acum este formată din 4 porţi, nu 9 ca în cazul precedentCascadarea în continuare a sumatoarelor trebuie implementată după acelaşi procedeu
se poate obţine un sumator pe 16 bits care necesită doar 8 porţi pe cel mai lung drumsumatorul modern pe 64 bits are 12 porţi pe cel mai lung drum, faţă de 129 :)
Deşi creşte complexitatea circuitului, întârzierile din aceste sumatoare cresc logaritmic cu numărul de biţi, nu direct proporţional
Copyright Paul GASNERCopyright Paul GASNER 17
MultiplicareaMultiplicareaMultiplicarea este o adunare repetatăCu ajutorul sumatoarelor se poate obţine şi înmulţireaProdusul logic AND este echivalent cu înmulţirea a doi bits
a b a×b0 0 00 1 01 0 01 1 1
a b ab0 0 00 1 01 0 01 1 1
Copyright Paul GASNERCopyright Paul GASNER 18
Multiplicarea în binarMultiplicarea în binar
Dacă operanzii sunt numere de 4 bits, atunci şi produsele parţiale sunt tot de 4 bitsProdusele parţiale se sumează cu ajutorul a 3 sumatoare pe 4 bits
1 1 0 1 x0 1 1 0
0 0 0 0 +1 1 0 1
1 1 0 10 0 0 0
1 0 0 1 1 1 0
Copyright Paul GASNERCopyright Paul GASNER 19
Multiplicatorul 2x2Multiplicatorul 2x2Porţile AND produc produsele parţialeÎn general se utilizează sumatoare complete, dar în acest caz particular sunt suficiente sumatoare half
B1 B0 ×A1 A0
A0B1 A0B0 +A1B1 A1B0
C3 C2 C1 C0
Copyright Paul GASNERCopyright Paul GASNER 20
Multiplicatorul 4x4Multiplicatorul 4x4
Copyright Paul GASNERCopyright Paul GASNER 21
ObservaţiiObservaţiiRezultatul înmulţirii a 2 numere de 4 biţi este un număr de 8 biţi
se pot păstra toţi cei 8 bitsse pot păstra doar cei 4 biţi mai puţin semnificativi C3...C0, restul fiind interpretaţi ca overflow
La înmulţirea unui număr pe m bits cu un număr de n bits apar:
n produse parţiale pe m biţisunt necesare n-1 sumatoare pe m biţi
Copyright Paul GASNERCopyright Paul GASNER 22
Multiplicarea cu 2Multiplicarea cu 2În zecimal:
128 x 10 = 1280În binar cuvântul se deplasează spre stânga cu un bit la înmulţirea cu 2:
11 x 10 = 110 (în zecimal 3 x 2 = 6)În binar cuvântul se deplasează spre stânga cu doi biţi la înmulţirea cu 4:
11 x 100 = 1100 (în zecimal, 3 x 4 = 12)În binar cuvântul se deplasează spre dreapta cu un bit la împărţirea cu 2:
110 ÷ 10 = 11 (în zecimal, 6 ÷ 2 = 3)
Copyright Paul GASNERCopyright Paul GASNER 23
Adunarea şi înmulţirea. ConcluziiAdunarea şi înmulţirea. ConcluziiSumatoarele şi multiplicatoarele:
construite conform algoritmilor clasici de calculse construiesc pe structuri ierarhice (cascadare)nu se pot aplica scheme de optimizare de tipul diagramelor Karnaugh
Depăşirea numărului de biţi la sumatoare generează fenomenul overflowÎnmulţirea şi împărţirea cu puterile lui 2 se poate realiza prin deplasarea biţilor numărului spre stânga respectiv dreapta