Documente Academic
Documente Profesional
Documente Cultură
0
1
e
A
E
0
b
B
Y (n biti)
Figura 1
a,e,b - se numesc intrri de transport de informaie;
A,E,B - se numesc ieiri de transport de informaie;
X,Y - se numesc valori proprii ale comparatorului.
Comparaia valorilor este un proces care propag informaia de la stnga la dreapta (MSB la
LSB). Cei trei bii de transport {a,e,b} au prioritate n deteminarea ieirilor {A,E,B}.
a
e
b
A
E
B
Semnificaie
prioritate
1
0
0
1
0
0
Canal X>Y
valorile proprii decid
0
1
0
0
1
0
Egalitate dac X = Y
prioritate
0
0
1
0
0
1
Canal Y > X
0
0
0
0
0
0
0
1
1
0
1
1
Aceste combinaii sunt
funcionare eronat
1
1
0
1
1
0
interzise !
0
1
1
0
1
1
1
1
1
1
1
x23..16
x15..08
x07..00
A
a
e
b
A a
Comp.
Comp.
BYTE
3
eb
BYTE
2
y31..24
y23..16
y15..08
eb
Comp.
Comp.
BYTE
1
eb
BYTE
0
y07..00
Figura 2
c) Proiectarea logic a comparatoarelor binare.
Pentru compararea valorilor proprii X cu Y, se vor defini urmtoarele funcii
logice intermediare :
= 1, dac X > Y A = a + e *
= 1, dac X = Y E = e *
= 1, dac X < Y B = b + e *
Se observ c dac se compar numere de cte n bii atunci egalitatea = 1 (X =
Y)
are loc pentru 2n cazuri, = 1 (X > Y), respectiv = 1 (Y >X) n cte (22n-1 - 2n-1)
cazuri, din totalul de 22n combinaii binare.
Funciile A i B se prelucreaz pe 2 nivele de prelucrare ;
Funcia E se prelucreaz pe un singur nivel.
Proiectarea logic a funciilor intermediare , , pentru comparatoare de
1 bit, 2 bii i 3 bii
1) Comparatorul pe 1 bit.
y0
0
1
y0
0
1
y0
0
1
x0
x0
x0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
= x0 *
y0
= x0 *
y0
+
x0
* y0
=
x0 * y0
y1
y0
y1
y0
y1
y0
11
00
01
11
10
00
01
11
10
00
01
10
x1
x0
x1
x0
x1
x0
00
00
1
00
1
1
1
01
1
01
1
01
1
1
11
1
1
1
11
1
11
10
1
1
10
1
10
1
x0 *
y1 * y0
1
0
0
01 = 1
>
00 = 0
x1 *
y
1
1
0
10 = 2
>
01 = 1
x1 * x0 * y0
1
1
0
11 = 3
>
10 = 2
Analizm termenii funciei din tabel n modul urmtor :
Pentru numrul X s-au presupus valorile (dont care) la valoarea binar 0,
rezultnd valoarea zecimal minim pe care o poate avea conform combinaiei
binare a lui X;
Pentru numrul Y s-au presupus valorile (dont care) la valoarea binar 1,
rezultnd valoarea zecimal maxim pe care o poate avea, conform combinaiei
binare a lui Y.
In concluzie, condiia logic se poate exprima n limbaj natural , acoperind
toate cazurile, ca:
= (minx 1 > maxy 0) + (minx 2 > maxy 1) + (minx 3 > maxy 2)
Note : 1. Funcia se obine prin permutarea biilor xi i yi;
2. Funcia impune egalitatea xi = yi, care se poate exprima: = (x1 y1) +
(x0 y0).
3) Comparatorul pe 3 bii
y2
y1
y0
000
001
011
010
110
111
101
100
x2
x1
x0
000
001
1
011
1
1
1
010
1
1
110
1
1
1
1
1
1
6
111
1
1
1
1
1
1
1
101
1
1
1
1
1
5
100
1
1
1
1
0
1
3
2
6
7
5
4
x1
x0
y2
y1
y0
minx
Relaie
maxy
x0 *
y2* y1 * y0
1
0
0
0
001 = 1
>
000 = 0
x1 *
y2* y1
1
0
0
010 = 2
>
001 = 1
x1 * x0
* y2 * y0
1
1
0
0
011 = 3
>
010 = 2
x2
1
0
100 = 4
>
011 = 3
*
y2
x2
* x0
1
1
0
0
101 = 5
>
100 = 4
*
y
1*
y
0
x2
* x1
1
1
0
110 = 6
>
101 = 5
*
y
1
x2
* x1
* x1 *
y
0
1
1
1
-
0
111 = 7
>
110 = 6
4) Comparatorul pe n bii
Concluziile de mai sus se pot extrapola pentru comparatoare binare pe n bii ; 1.
= (minx 1 > maxy 0) + (minx 2 > maxy 1) + (minx 3 > maxy 2) + ... + (minx 2n-1 >
maxy 2n-2)se obtine prin permutarea biilor xi i yi;
1. = (miny 1 > maxx 0) + (miny 2 > maxx 1) + (miny 3 > maxx 2) + ... + (miny 2n1 > maxx 2n-2) (se obine prin permutarea biilor xi i yi ) ;
3. Egalitatea xi = yi, care se poate exprima: = (xi yi), pentru i [ 0, n-1 ].
4.2.
Sumatoare binare
Sumatorul binar este un circuit logic combinaional care realizeaz suma aritmetic
a dou numere ntregi X i Y reprezentate n cod binar, fiecare pe n bii. Regulile
de nsumare sunt aceleai ca n cazul numerelor zecimale.
In tabela urmtoare este ilustrat un exemplu de nsumare S = X + Y a dou numere
reprezentate pe 8 bii.
Binar
28
27
26
25
24
23
22
21
20
hex
dec
X
0
1
1
0
1
0
1
1
6B
107
Y
1
1
0
0
1
1
1
0
CE
206
Carry
1
1
0
0
1
1
1
0
cin=0
S
1
0
0
1
1
1
0
0
1
139
313
Rezultatul arat o depaire binar deoarece suma este S = 139 hex >FF, respectiv S
=
313dec>255.
X (xn-1, ..., x0)
Schema bloc din figura 3 folosete notatiile X, Y valorile proprii de 2n bii, cin
transport (carry) de intrare i cout transport (carry) de ieire care va deveni transport
de intrare pentru un sumatorul de rang superior.
X (x2n-1, ..., xn)
X (xn-1, ..., x0)
n bii
n bii
Ssup
Sinf
cout
15_8
cin
cout
7_0
cin
n bii
n bii
Y (y2n-1, ..., yn)
Y (yn-1, ..., y0)
Figura 3
Operaia de adunare se face modulo2 la nivel de bit deoarece numerele sunt
reprezentate n binar. Blocul are 4n+1 intrri i 2n+1 ieiri. Operaia de nsumare
propag bitul de transport de la celule de rang inferior la cele de rang superior.
Realizarea sumei se face pe 2n bii adic aceiai lungime pe care o au numerele
aplicate la intrare. In cazul blocului din figura 3, suma este de tip modulo 22n.
0
0
1
0
1
1
1
0
1
0
s0
a0 b0
00
01
11
10
ci
0
0
0
1
0
1
0
1
1
1
cout
Observaie :
Suma s0 este egal cu 1 atunci
cnd numrul de bii egal cu 1 n
procesul de nsumare este impar.
a1
cout
t
ci
s1
a0
s
b1
b0
Figura 4
a b c
0 0i
000
001
011
010
110
111
101
100
a b c
0 0i
000
001
011
010
110
111
101
100
a1b1
a1 b1
00
1
1
1
1
00
01
1
1
1
01
1
1
1
1
11
1
1
1
1
11
1
1
1
1
1
1
1
1
10
1
1
1
1
10
1
1
1
1
s1
cout
Figura 5
s1 = a1*b1*a0*ci + a1*b1*b0*ci + a1*b1*a0*b0
+
cout = a1*a0*ci + a1*b0*ci + a1*a0*b0 +
+ a1*b1*a0*ci + a1*b1*b0*ci + a1*b1*a0*b0
+
+ b1*a0*ci + b1*b0*ci + b1*a0*b0 +
+
+ a1*b1
+ a1*b1*a0*ci + a1*b1*b0*ci + a1*b1*a0*b0
In forma disjunctiv elementar funcia sum s1 este format din 12 termeni de cte 4
bii, iar cout este format din 6 termeni de cte 3 bii i un termen de 2 bii, ceea ce
conduce la concluziile:
In general sunt necesare 3 nivele de procesare logic: negaie, conjuncie,
disjuncie.
Funcia cout utilizeaz numai conjuncie i disjuncie, deci 2 nivele de procesare
logic
Dac se noteaz cu ntrzierea fizic de rspuns a porilor logice se vor obine
ntrzieri de 3, respectiv 2 pentru stabilizarea valorilor logice ale ieirilor.
a3
b3
a2
b2
a1
b1
a0
b0
cout
8
6
4
2
ci
9
7
5
3
s3
s2
s1
s0
Figura 6
Pentru implementarea unui sumator complet pe 4 bii cu accelerarea
transportului (Carry-lookahead adder), abreviat CLA, se va restructura circuitul
conform figurii 7. Ideea de baz este de a genera n mod paralel cei 4 bii de
transport c1, c2, c3 i c4 prin funcii logice complexc dependente de cei nou bii
de intrare.
a3
b3
1 bit
1 bit
1 bit
1 bit
c0
adder
adder
adder
a2
b2
a1
b1
a0
b0
adder
s3
s2
s1
s0
p3
g3
c
p
2
g
2
c
p1
g1
c
1
p0
g0
c4
3
Figura 7
Se introduc dou funcii logice generale:
gi = ai * bi denumit carry generate;
pi = ai bi denumit carry propagate.
Utiliznd notaiile de mai sus, se pot scrie funciile logice ale sumei i
transportului pentru fiecare rang astfel:
si = ai bi ci = pi ci
ci+1 = ai*bi + ci*ai + ci*bi = ai*bi + ci*(ai + bi) = ai*bi + ci*(ai bi) = gi + ci * pi
Nota: echivalena expresiilor ai*bi + ci*(ai + bi) i ai*bi + ci*(ai bi) se poate
demonstra prin oricare dintre metodele cunoscute: tabele de adevr, diagrame
Karnaugh sau raionament
sintetic.
Se vor folosi relaiile (i) i (ii) pentru a determina funciile logice ale biilor de
transport ci astfel:
c1 = g0 + p0*c0
c2 = g1 + p1*c1 = g1 + p1*g0 + p1*p0*c0
c3 = g2 + p2*c2 = g2 + p2*g1 + p2*p1*g0 + p2*p1*p0*c0
c4 = g3 + p3*c3 = g3 + p3*g2 + p3*p2*g1 + p3*p2*p2*c0 +
p3*p2*p1*p0*c0
Procesarea celor 4 bii de transport se relizeaz pe dou nivele, and i or
respectiv nand i nand, deci timpul de propagare este 2, n timp ce
propagarea biilor pi = ai bi este 3.
In concluzie, ntrzierea de stabilizare a valorii celor 4 bii de transport are
valoarea maxim 5, ceea ce conduce la un spor semnificativ al vitezei de
calcul prin utilizarea acceleratorului
Carry lookahead generator.