Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
4. CIRCUITE LOGICE COMBINAŢIONALE
Circuitele combinaţionale se caracterizează prin faptul că variabilele de ieşire depind numai de variabilele de intrare şi există doar în prezenţa acestora. Ecuaţia de funcţionare a unui circuit logic combinaţional este de forma (4.1).
1m,1k);x,...,x(fy 01nkk −== − (4.1)
4.1 Analiza circuitelor logice combinaţionale
În analiza CLC (circuit logic combinaţional) se cunoaşte schema şi se determină funcţionarea (tabel de funcţionare, expresie analitică sau altă descriere echivalentă).
Exemplu:
Figura 4.1 Variabilele de intrare şi de ieşire ale unui circuit logic combinaţional
1x 2x 21 xx ⋅ 21 xx ⋅ 2121 xxxxf ⋅+⋅=0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0
xn-1
CLC x1 x0 y0
y1
yn-1
1x
2x21 xx ⋅
21 xx ⋅
f x2 x1
)XOR(EXCLUSIVSAUxxxxxxf 12 →⊕=⋅+⋅=
Figur
2121
a 4.2 Exemplu de analiză a unui circuit logic combinaţional
31
cap.4 Circuite logice combinaţionale
4.2 Sinteza circuitelor logice combinaţionale
În cazul sintezei se cunoaşte funcţia pe care trebuie să o realizeze circuitul şi trebuie determinată structura acestuia. Sinteza unui CLC presupune parcurgerea următoarelor etape:
- definirea funcţiei; - minimizarea funcţiei; - determinarea schemei circuitului.
Schema circuitului poate avea mai multe forme, în funcţie de expresia după care se implementează funcţia:
- cu circuite ŞI, SAU, NU ( AND, OR, NOT ); - cu circuite SAU, ŞI, NU ( OR, AND, NOT ); - cu circuite ŞI - NU ( NAND ); - cu circuite SAU - NU ( NOR ).
Exemplu
Circuitul de anticoincidenţă (exclusive-or, XOR)
x y x ⊕ y 0 0 0 0 1 1 1 0 1 1 1 0
x ⊕ y y
x x \ y 0 1 0 0 1 1 1 0
Figura 4.3 Circuitul SAU – EXCLUSIV (XOR) a) xyyx)y,x(f ⋅+⋅=
x ⊕ yy x
Figura 4.4 Implementarea XOR folosind porţi NOT, AND, OR
b) yyxyxxyxyxyxyx)y,x(f ⋅⋅⋅⋅⋅=⋅=+=
x
x ⊕ y y
Figura 4.5 Implementarea XOR folosind porţi NAND
32
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
c) )yx()yx()y,x(f +⋅+=
d) yyxxyxyxyx)yx)(yx()y,x(f +++++=+++=++=
Figura 4.6 Implementarea XOR folosind porţi NOT, OR, AND
x
y x ⊕ y
x ⊕ y y
x
Figura 4.7 Implementarea XOR folosind porţi NOR
4.3 Exemple de structuri logice combinaţionale 4.3.1 Decodificatoare
Decodificatoarele sunt circuite logice combinaţionale care activează una sau mai multe ieşiri în funcţie de cuvântul de cod aplicat la intrare. Decodificarea este necesară la adresarea memoriei, la selecţia porturilor, la afişarea numerică, la multiplexarea datelor etc. 4.3.1.1 Decodificatoare de adresă
Decodificatoarele de adresă sunt CLC care activează ieşirea a cărei adresă este aplicată pe intrări. Un decodificator de adresă cu n intrări are 2n ieşiri. Tabela de adevăr pentru un decodificator cu 4 intrări este prezentată în figura 4.8.
Pentru cele 16 ieşiri trebuie construite 16 diagrame Karnaugh. Acestea pot fi sintetizate într-o singură diagramă, numită diagramă de referinţă, având în vedere că cele 16 diagrame Karnaugh conţin fiecare câte o valoare 1 în celula care indică numărul ieşirii.
33
cap.4 Circuite logice combinaţionale
x3 x2 x1 x0 y15 y14 ... y1 y0 0 0 0 0 0 0 ... 0 1 0 0 0 1 0 0 ... 1 0
...
...
...
...
...
1 1 1 0 0 1 ... 0 0 1 1 1 1 1 0 ... 0 0
E
y0 x3
DEC
y14
x2
x1
x0
y1
y15
x3 x2 \x1x0 00 01 11 10 00 y0 y1 y3 y2 01 y4 y5 y7 y6 11 y12 y13 y15 y14 10 y8 y9 y11 y10
Figura 4.8 Tabela de adevăr, diagrama de referinţă şi simbolul logic al decodificatorului de adresă
Ecuaţiile decodorului vor fi:
01230
01231
012314
012315
xxxxy
xxxxy
xxxxy
xxxxy
=
=
=
=
M (4.2)
Implementarea acestor ecuaţii conduce la obţinerea decodorului rectangular
de adresă (figura 4.9). În general, decodificatoarele sunt prevăzute cu o intrare de validare E
(activă H) sau E (activă L). Ieşirile corespunzătoare adresei de pe intrări sunt activate numai dacă semnalul de validare este la rândul lui activ.
Costul pentru decodorul rectangular este: CDR4 = (4+1)16+(4+1)=85. În general, CDRn = (n+1)2n +(n+1) = (n+1)(2n+1) .
Ecuaţiile decodorului de adresă cu 4 intrări se pot scrie şi sub forma (4.3).
)xx)(xx(y
)xx)(xx(y
)xx)(xx(y
)xx)(xx(y
0123
0123
0123
0123
0
1
14
15
=
=
=
=
M (4.3)
34
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
E
x3
x2
x1
x0
y7 y2 y5 y6 y4 y3 y1 y15 y14 y13 y12 y11 y10 y9 y8 y0
Figura 4.9 Decodificatorul rectangular de adresă 74154
Se observă că fiecare termen din paranteze (relaţiile 4.3) apare pentru câte 4 ieşiri. Dacă se implementează aceste relaţii se obţine decodorul dual piramidal de adresă (figura 4.10).
x0
x3
y15 y14 y13 y12
x2 x1
E
y9y10
y6 y5 y4
y8 y11
y7
y3 y2 y1 y0
Figura 4.10 Decodificator dual piramidal
35
cap.4 Circuite logice combinaţionale
3n.pt,CC)parn(,2)12)(1n()1n()22()12n(22n2(C
57)14()216()3424(C
DRnDDPn
1n2nn2n2nDDPn
4DDP
≥<+++=++⋅++⋅+⋅=
=++⋅+⋅+⋅=+
(4.4) 4.3.1.2 Decodificatoare BCD - zecimal
Decodificatoarele de adresă realizează practic o decodificare din sistemul binar natural în sistem zecimal. Există şi cazuri în care trebuie realizată o decodificare din alt cod decât cel binar natural, de exemplu BCD8421. Tabelul de adevăr pentru un decodificator BCD8421 - zecimal este prezentat în continuare (figura 4.10).
x3 x2 x1 x0 9y 8y 7y 6y 5y 4y 3y 2y 1y 0y 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
x3 x2 \ x1 x0 00 01 11 10
00 0y 1y 3y 2y
01 4y 5y 7y 6y
11
1
1
1
1
10 8y 9y
1
1
01234
01233
01232
01231
01230
xxxxy
xxxxy
xxxxy
xxxxy
xxxxy
⋅⋅⋅=
⋅⋅⋅=
⋅⋅⋅=
⋅⋅⋅=
⋅⋅⋅=
01239
01238
01237
01236
01235
xxxxy
xxxxy
xxxxy
xxxxy
xxxxy
⋅⋅⋅=
⋅⋅⋅=
⋅⋅⋅=
⋅⋅⋅=
⋅⋅⋅=
(4.5)
Figura 4.11 Tabelul de adevăr, diagrama de referinţă şi ecuaţiile de funcţionare ale decodificatorului BCD-zecimal
36
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
0y
x3
x2
x1
x0
C = 4⋅10 + 4 = 44
1y 2y 3y 4y 5y 6y 7y 8y 9y
0y
1y
2y3y4y
5y6y7y8y9y
DEC
x0 x1
x2 x3
Figura 4.12 Decodificatorul BCD-zecimal 7442
Stările 1010 - 1111 nu fac parte din codul NBCD8421 şi au fost considerate
false. Toate stările sunt decodificate explicit. Ca urmare, eventualele date false de pe intrări determină stabilirea tuturor ieşirilor în starea H (inactive). Din acest motiv decodificatorul se numeşte cu rejecţia datelor false.
Dacă pe intrările acestui decodificator nu se pot stabili date false, nu este necesară rejecţia datelor false. Renunţarea la această protecţie conduce la micşorarea costului (figura 4.13).
(4.6)
x3 x2 \ x1 x0 00 01 11 10
00 9y 9y 9y 9y
01 9y 9y 9y 9y
11
x
x
x
x
10 9y 9y
x
x
0124
0123
0122
01231
01230
xxxy
xxxy
xxxy
xxxxy
xxxxy
⋅⋅=
⋅⋅=
⋅⋅=
⋅⋅⋅=
⋅⋅⋅=
039
038
0127
0126
0125
xxy
xxy
xxxy
xxxy
xxxy
⋅=
⋅=
⋅⋅=
⋅⋅=
⋅⋅=
37
cap.4 Circuite logice combinaţionale
0y 1y 2y 3y 4y 5y 6y 7y 8y 9y
x0
x1
x2
x3
C = 4⋅2 + 3⋅6 + 2⋅2 + 4 =34
Figura 4.13 Decodificator BCD-zecimal fără rejectarea datelor false
Apariţia accidentală a unor date false pe intrare conduce la erori. De exemplu,
cuvântul 1010 pe intrări determină activarea ieşirilor 2 şi 8 simultan. 4.3.2 Codificatoare
Codificatoarele sunt circuite logice combinaţionale la care activarea unei intrări conduce la apariţia unui cuvânt de cod pe ieşire. 4.3.2.1 Codificatoare de adresă
Codificatoarele de adresă furnizează pe ieşiri adresa intrării activate. Pentru un circuit cu 7 intrări şi 3 ieşiri, cu tabela de adevăr din figura 4.14,
ecuaţiile ieşirilor sunt cele prezentate alăturat.
I7
I6
I5
I3
I4
I2
I1
COD
I1 I2 I3 I4 I5 I6 I7 C2 C1 C0
0 0 0 0 0 0 0 0 0 0 1 x x x x x x 0 0 1 x 1 x x x x x 0 1 0 x x 1 x x x x 0 1 1 x x x 1 x x x 1 0 0 x x x x 1 x x 1 0 1 x x x x x 1 x 1 1 0 x x x x x x 1 1 1 1
C0 = I1 + I3 + I5 + I7 (4.7) C1 = I2 + I3 + I6 + I7 C2 = I4 + I5 + I6 + I7
C1 C2 C0
Figura 4.14 Codificator de adresă
38
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
Schema circuitului va fi deci cea din figura 4.15. I1 I2 I3 I4 I5 I6 I7
C0
C2
C1
Figura 4.15 Structura logică a codificatorului de adresă
Dezavantajul acestei scheme este că la activarea simultană a mai multor
intrări, adresa furnizată la ieşire este eronată. De exemplu, I1 şi I4 active simultan determină la ieşire C2C1C0 = 101, ceea ce înseamnă I5 activă.
Dacă nu se poate evita activarea simultană a mai multor ieşiri, se folosesc codificatoare de adresă prioritare, care prezintă la ieşire adresa intrării active cu prioritatea cea mai mare. Vom considera intrarea I7 ca având prioritatea maximă, celelalte intrări având priorităţi descrescătoare. Intrările I7 - I0 sunt active pe nivel L. Circuitul este prevăzut şi cu o intrare de validare EI (enable input), o ieşire GS (group select) activă (pe L) când cel puţin o intrare este activată şi o ieşire EO (enable output), activă când toate intrările sunt inactive. Ieşirile circuitului sunt active tot pe L.
Tabela de adevăr, simbolul logic şi ecuaţiile de funcţionare sunt prezentate în continuare.
I
7 6I 5I 4I 3I 2I 1I 0I EI 2C 1C 0C GS EO
x x x x x x x x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 x x x x x x x 0 0 0 0 0 1 1 0 x x x x x x 0 0 0 1 0 1 1 1 0 x x x x x 0 0 1 0 0 1 1 1 1 0 x x x x 0 0 1 1 0 1 1 1 1 1 0 x x x 0 1 0 0 0 1 1 1 1 1 1 0 x x 0 1 0 1 0 1 1 1 1 1 1 1 0 x 0 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1
39
cap.4 Circuite logice combinaţionale
123456713456715671710
2345671345671671711
456715671671712
0110
012345671
IIIIIIIEIIIIIEIIIEIEC
IIIIIIEIIIIIEIIEIEC
IIIIEIIIEIIEIE
EEEEGS
)8.4(IIIIIIIIEEO
+++=
+++=
+++=
=+=
=
C
EI
0C
GSEO
1C2C
COD
I7
I6
I5
I4
I3
I2
I1 I0
Figura 4.16 Codificator de adresă prioritar
Structura codificatorului de adresă prioritar este prezentată în figura 4.17 şi se
regăseşte in circuitul 74148.
1I
2I
3I
4I
6I
7I
EI
0C
1C
2C
GS
EO
5I
0I
Figura 4.17 Structura codificatorului de adresă prioritar (74148)
40
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
4.3.3 Convertoare de cod
Convertoarele de cod sunt circuite logice combinaţionale ce permit transformarea unui cuvânt de cod dintr-un cod binar în altul. 4.3.3.1 Convertor de cod BCD - Gray
Pentru cazul cuvintelor de 4 biţi, tabela de adevăr este prezentată în figura 4.18. Fiecărui cuvânt binar îi corespunde in cod Gray tot o succesiune de 4 biţi.
b3 b2 b1 b0 g3 g2 g1 g0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0
b3b2 \ b1b0 00 01 11 10
00
0
0
0
0 01
0
0
0
0 11 1 1 1 1 10 1 1 1 1
b3b2 \ b1b0 00 01 11 10
00
0
0
0
0 01 1 1 1 1 11
0
0
0
0 10 1 1 1 1
b3b2 \ b1b0 00 01 11 10
00
0
0
1
1 01 1 1 0 0 11 1 1 0 0 10 0 0 1 1
b3b2 \ b1b0 00 01 11 10
00
0
1
0
1 01 0 1 0 1 11 0 1 0 1 10 0 1 0 1
33 bg = 2323232 bbbbbbg ⊕=+=
2121211 bbbbbbg ⊕=+= 0101010 bbbbbbg ⊕=+=
Figura 4.18 Tabela de adevăr şi diagramele Karnaugh pentru convertorul BCD-Gray
41
cap.4 Circuite logice combinaţionale
b3
b2
b1
b0 g0
g1
g2
g3
Figura 4.19 Structura convertorului de cod BCD-Gray
Aşa cum se observă (figura 4.19) convertorul binar natural – Gray are o structură simplă, constituită din porţi XOR. 4.3.3.2 Convertor de cod Gray - BCD
În cazul conversiei inverse, Gray – BCD, se poate aplica aceeaşi procedură, dar este mai simplă metoda analitică aplicată relaţiilor deja determinate. Mai jos este redat calculul care conduce la determinarea expresiilor analitice ale biţilor de ieşire ai convertorului Gray – BCD pornind de la ecuaţiile convertorului BCD – Gray (relaţiile 4.9 – 4.12).
(4.9)
32100
01122333210
010
121
232
33
321112233321
121
232
33
32223332
232
33
3333
ggggbbbbbbbbgggg
bbgbbgbbg
bg
gggbbbbbbggg
bbgbbg
bg
ggbbbbgg
bbg
bg
gbbg
⊕⊕⊕=⇒
⇒⊕⊕⊕⊕⊕⊕=⊕⊕⊕
⊕=⊕=
⊕=
=
⊕⊕=⇒⊕⊕⊕⊕=⊕⊕
⊕=
⊕=
=
⊕=⇒⊕⊕=⊕
⊕=
=
=⇒=
(4.10)
(4.11)
(4.12)
42
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
b3
b2
b1
b0
g3 g2 g1
g0
Figura 4.19 Convertor de cod Gray – BCD
4.3.3.3 Convertor de cod NBCD - 7 segmente
Codul „7 segmente“ este folosit pentru sisteme de afişare numerice, unde un digit este de forma din figura 4.20, segmentele fiind becuri, LED-uri, cristale lichide etc.
DP
e
gf
d
c
b
a
Figura 4.20 Structura unui digit în cod „7 segmente”
Convertorul de cod va avea 4 intrări (cod NBCD8421) şi 7 ieşiri. Tabela de
adevăr, diagramele Karnaugh pentru sinteza funcţiilor asociate fiecărui segment şi funcţiile obţinute sunt prezentate în continuare.
x3 x2 x1 x0 a b c d e f g 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1
Figura 4.21 Tabela de adevăr pentru decodorul NBCD - 7 segmente
43
cap.4 Circuite logice combinaţionale
x3 x2 \ x1 x0 00 01 11 10 00 1 0 1 1 01 0 1 1 1 11 x x x x 10 1 1 x x
x3 x2 \ x1 x0 00 01 11 10 00 1 1 1 1 01 1 0 1 0 11 x x x x 10 1 1 x x
x3 x2 \ x1 x0 00 01 11 10 00 1 0 1 1 01 0 1 1 1 11 x x x x 10 1 1 x x
x3 x2 \ x1 x0 00 01 11 10 00 1 0 1 1 01 0 1 0 1 11 x x x x 10 1 1 x x
x3 x2 \ x1 x0 00 01 11 10 00 1 0 0 1 01 0 0 0 1 11 x x x x 10 1 0 x x
x3 x2 \ x1 x0 00 01 11 10 00 1 0 0 0 01 1 1 0 1 11 x x x x 10 1 1 x x
x3 x2 \ x1 x0 00 01 11 10 00 0 0 1 1 01 1 1 0 1 11 x x x x 10 1 1 x x
1212013 xxxxxxxg +++=
1201023 xxxxxxxf +++=0102 xxxxe +=
12012230102 xxxxxxxxxxxd ++++=201 xxxc ++=
01012 xxxxxb ++=020231 xxxxxxa +++=
Figura 4.22 Sinteza funcţiilor de segment pentru decodorul NBCD - 7 segmente
44
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
a
c
b
d
e
f
g
*
*
*
*
*
*
*
x3
x2 x1 x0
Figura 4.23 Structura convertorului de cod NBCD - 7 segmente
(7446, 7447) 4.3.4 Multiplexoare
Circuitele de multiplexare sunt CLC care permit trecerea datelor de la una din intrări, selectată de cuvântul de pe intrarea de adresă, către o ieşire unică. Uneori, circuitele de multiplexare sunt prevăzute şi cu o intrare de validare.
Tabela de adevăr pentru un multiplexor cu 8 intrări este prezentată în figura 4.24. Ecuaţia de funcţionare este 4.13.
)IAAAIAAAIAAAIAAA
IAAAIAAAIAAAIAAA(EY
7012601250124012
3012201210120012
++++
++++⋅= (4.13)
45
cap.4 Circuite logice combinaţionale
E A2 A1 A0 Y 1 x x x 0 0 0 0 0 I0 0 0 0 1 I1 0 0 1 0 I2 0 0 1 1 I3 0 1 0 0 I4 0 1 0 1 I5 0 1 1 0 I6 0 1 1 1 I7
E
Y Y
A2
A1
A0
I1 I0 I2 I3 I4 I6 I5 I7
MUX
E
yy
A2
A1
A0
I7 I6 I5 I4 I3 I2 I1 I0
Figura 4.24 Tabela de adevăr, simbolul grafic şi structura de principiu a unui multiplexor -- 74151 (8:1); [74153 (2x4:1); 74157 (4x2:1)]
46
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
4.3.5 Demultiplexoare
Demultiplexoarele sunt CLC care permit trecerea datelor de pe o intrare comună către una din ieşiri, selectată prin cuvântul de pe intrările de adresă.
Tabela de adevăr pentru un demultiplexor cu 8 ieşiri şi sinteza sa sunt prezentate în continuare (figura 4.25).
E A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 0 0 0 D 0 0 0 0 0 0 0 0 0 0 1 0 D 0 0 0 0 0 0 0 0 1 0 0 0 D 0 0 0 0 0 0 0 1 1 0 0 0 D 0 0 0 0 0 1 0 0 0 0 0 0 D 0 0 0 0 1 0 1 0 0 0 0 0 D 0 0 0 1 1 0 0 0 0 0 0 0 D 0 0 1 1 1 0 0 0 0 0 0 D 1 x x x 0 0 0 0 0 0 0 0
DAAAEY
DAAAEY
DAAAEY
0127
0121
0120
=
=
=
M
(4.9)0
E
Y4
A2
A1 A0
Y0Y1Y2Y3
D
Y5Y6Y7
DMUX
ED
A2
A1
A0
Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
Figura 4.25 Demultiplexor cu 8 ieşiri
47
cap.4 Circuite logice combinaţionale
4.3.6 Comparatoare numerice
Comparatoarele sunt circuite logice combinaţionale care permit compararea a două numere.
Comparatoarele de un bit permit compararea a două numere de câte un bit, indicând la ieşire situaţiile: „>” , „=” , „<” . Tabela de adevăr şi sinteza comparatorului de un bit este cea de mai jos (figura 4.26).
Ai Bi Ai > Bi Ai = Bi Ai < Bi
0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0
iiii
iiiiiiii
iiii
BA)BA(BABABA)BA(
BA)BA(
⋅=<
⊕=⋅+⋅==
⋅=>
Ai
Ai > Bi
Ai = Bi
Ai < Bi
Bi
(4.10) Bi Ai
Ai < BiAi = BiAi > Bi
CMP
Figura 4.26 Comparatorul numeric de un bit
A3:B3 A2:B2 A1:B1 A0:B0 (A>B)i (A<B)i (A=B)i (A>B)0 (A<B)0 (A=B)0
A3>B3 x x x x x x 1 0 0 A3<B3 x x x x x x 0 1 0 A3=B3 A2>B2 x x x x x 1 0 0
A2<B2 x x x x x 0 1 0 A2=B2 A1>B1 x x x x 1 0 0 A1<B1 x x x x 0 1 0 A1=B1 A0>B0 x x x 1 0 0 A0<B0 x x x 0 1 0 A0=B0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1
Figura 4.27 Tabela de adevăr pentru comparatorul numeric pe 4 biţi
48
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
A0 B0
A1 B1
A2 B2
A3 B3
(A=B)0
(A>B)0
(A<B)0
A3>B3
A3<B3
A0=B0
A1=B1
A2=B2
A3=B3
(A=B)i
(A>B)i
(A<B)i
Figura 4.28 Structura internă a comparatorului numeric pe 4 biţi (7485)
Prin interconectarea a n comparatoare de un bit se pot realiza comparatoare
de n biţi. Vom considera în continuare două numere de n biţi.
)BB...BB(2B2B...2BB
)AA...AA(2A2A...2AA
)2(011n0
01
11n
1n
)2(011n0
01
11n
1n
−−
−
−−
−
=+++=
=+++= (4.11)
Procesul de comparare începe cu compararea biţilor celor mai semnificativi,
adică ( An-1 : Bn-1 ). Dacă An-1 > Bn-1 sau An-1 < Bn-1 rezultă A > B, respectiv A < B
49
cap.4 Circuite logice combinaţionale
indiferent de valoarea biţilor mai puţin semnificativi ( An-2 … A0 , Bn-2 … B0 ). Dacă An-1 = Bn-1, pentru determinarea relaţiei A : B este necesară compararea biţilor An-2, Bn-2 , ş.a.m.d. Tabela de adevăr a unui comparator pe 4 biţi este prezentată în figura 4.27 iar structura sa internă este detaliată în figura 4.28. Dacă se doreşte compararea a două numere ale căror lungimi depăşesc posibilităţile comparatorului disponibil, se recurge la expandate folosind intrări prevăzute în acest scop.
Simbolul logic al unui comparator pe 4 biţi cu intrări de expandare şi modul de expandare pentru cuvinte de 8 biţi este prezentat în figura 4.29.
A3÷0 B3÷0
0
1 >
=
O
<
A=B
A>B
A<B
CMP I =
>
<
CMP(A=B)i
(A>B)i
(A<B)i
(A=B)o
(A>B)o
(A<B)o
CMP
B7÷4 B3÷0 A7÷4 A3÷0
Figura 4.29 Simbolul logic al comparatorului binar pentru cuvinte de 4 biţi şi expandarea acestuia pentru cuvinte de 8 biţi
4.3.7 Sumatoare
Sumatoarele elementare sunt circuite logice combinaţionale care adună două numere de câte un bit şi un bit de transport din rangul inferior, generând suma şi un bit de transport spre rangul următor, conform tabelei de adevăr din figura 4.30.
xi yi ci -1 si ci
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
∑i
si
ci ci-1
yi xi
Figura 4.30 Sumator elementar, tabelă de adevăr şi simbol
Sumatorul elementar are trei intrări, xi, yi şi ci-1 şi două ieşiri, si şi ci. Bitul de transport ci, ca şi suma si, depinde de variabilele de intrare şi de intrarea de transport ci-1. Aşadar, si fiind funcţie de ci-1 va fi implicit şi funcţie de ci. Această observaţie ne permite să sintetizăm suma si ca funcţie de 4 variabile, xi, yi, ci-1 şi ci (figura 4.31).
50
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
(4.12)
ci-1\ xi yi 00 01 11 10 0 0 0 1 0 1 0 1 1 1
ci-1 ci \ xi yi 00 01 11 10 00 0 1 x 1 01 x x 0 x 10 x 0 1 0 11 1 x x x
)yxc(cyxcs ii1iiii1ii +++= −−
i1ii1iiii ycxcyxc −− ++=
si
ci
xi yi ci-1
Figura 4.31 Sinteza sumatorului elementar
Pentru a aduna două numere pe n biţi sunt necesare n sumatoare elementare
conectate ca în figura 4.32. Prin conectarea a 4 sumatoare elementare se obţine sumatorul pe 4 ranguri
(figura 4.33).
c-1
y1 y0 x0 x1
s0 s1
cn-3
sn-2 sn-1
cn-1
yn-1 yn-2 xn-2 xn-1
∑0 ∑1 ∑n-2∑n-1
Figura 4.32 Cascadarea sumatoarelor elementare pentru sumarea cuvintelor binare de n biţi
51
cap.4 Circuite logice combinaţionale
x3 x2 x1 x0 y3 y1 y0y2
)sy,x(p
)cc(p
)cy,x(p
)sc(p
iii
31
300
31
t
t
t
t
→
→
→
→
−
−
s0s1
c-1
s3 s2
c3 ∑(4)
timpi de propagare
Figura 4.33 Sumator binar pe 4 ranguri (7483)
Pentru realizarea unui sumator pe n ranguri folosind sumatoare pe 4 ranguri
sunt necesare n/4 = k circuite sumatoare pe 4 ranguri (figura 4.34). Timpul de rezoluţie al schemei este calculat în situaţia cea mai dezavantajoasă, adică la sumarea 011…111 + 000…001.
)sc(p)cc(p)cy,x(pr 3131300tt)2k(tt →→→ −−
+−+= (4.13) unde tr creşte liniar cu n, datorită transportului succesiv între ranguri.
x0 y0 xn-1 yn-1
s0
„0” ∑(4)
sn-1
cn-1 ∑(4)
Figura 4.34 Sumator pe n ranguri realizat cu sumatoare pe 4 ranguri
Pentru reducerea timpului de rezoluţie se foloseşte sumatorul cu transport anticipat, descris de ecuaţiile de mai jos (4.14). Gi şi Pi se numesc transport generat respectiv transport propagat. Ieşirea de transport şi suma pot fi exprimate în funcţie de transportul generat Gi şi transportul propagat Pi.
321013210321323
3210121021233233
2101210212210110122122
101101101011011
0100
i1iii
iiiiii
1iiiiiii
ii1iiii
PPPPcPPPGPPGPGGP)PPPcPPGPGG(GPcGc
PPPcPPGPGGP)PPcPGG(GPcGcPPcPGGP)PcG(GPcGc
PcGcPcGc
iătraverseazc1yx: propagattransportyxP
cdeindiferent 1c1yx: generattransportyxG)yx(cyxc
−
−
−−
−−
−
−
−
−
++++=
=++++=+=
+++=+++=+=
++=++=+=
+=+=
⇒=+−+=
=⇒=−=++=
∑
(4.14)
52
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
2334
1223
0112
1001
iiiiiiiiiiii
ii1iii1iii1iiiii1iiiii1ii
cPGs
cPGs
cPGs
cPGs
yx)yx)(yx()yx(yxPG
yxc)yx(c)yx(c)yxyx(c)yxyx(cs
⊕=
⊕=
⊕=
⊕=
⊕=++=+=
⊕⊕=⊕+⊕=+++=
−
−−−−−
(4.15)
Structura logică descrisă de ecuaţiile (4.14) şi (4.15) se regăseşte în circuitul
74LS83A.. 4.3.8 Unităţi aritmetico-logice (ALU) ALU sunt circuite logice combinaţionale complexe care execută, pe baza unor comenzi, funcţii de tip aritmetic şi logic. ALU se utilizează în sisteme digitale complexe sau ca părţi componente în unităţile de prelucrare ale sistemelor de calcul.
ALU de 4 biţi are următoarele intrări şi ieşiri tipice:
- intrări pentru operanzi: A3÷0, B3÷0 - intrare de transport : 1−c - intrare de mod: M = 0 → funcţii aritmetice = 1 → funcţii logice - intrări pentru selectarea funcţiei : S3÷0 - ieşiri pentru funcţie : F3÷0 - ieşire pentru transport: 3c - ieşire pentru indicarea egalităţii operanzilor: (A=B) - ieşiri pentru transport anticipat: P,G.
Un circuit care înglobează funcţiile descrise (ALU) este 74181 (figura 4.35).
ci-1 \ xi yi 00 01 11 100 0 1 0 1 1 1 0 1 0
1c− 3c
P G
(A=B)
F
S
M ALU(4)
B A
Figura 4.35 Unitate aritmetico - logică
53
cap.4 Circuite logice combinaţionale
Pentru realizarea unor ALU pe mai mulţi biţi, în condiţiile în care nu se urmăreşte neapărat obţinerea unor viteze mari de prelucrare, se foloseşte transportul succesiv prin conectarea 3c de la un circuit la 1−c de la circuitul următor, ca in figura 4.36.
Figura 4.36 Expandarea ALU M
S
(A=B)
“1” C7
F0÷3 F4÷7
A4÷7 B4÷7B0÷3A0÷3
ALU(4)ALU(4)
Pentru operaţii de mare viteză , ALU sunt combinate cu circuite de generare anticipată a transportului (GTA), prevăzute cu patru intrări de transport propagat (P0÷3), patru intrări de transport generat (G3÷0), o intrare pentru transport din rangul inferior ( 1−C ). GTA generează transporturile xC+ , y+C , zC+ . Pentru dezvoltarea sistemului de transport, GTA sunt prevăzute şi cu două ieşiri de transport generat (G) şi de transport propagat (P).
P
xC+ yC+ zC+
1C−
G
P2 P3 G1 P0 G2 P1 G3 G0
GTA
3210
3210321323
2101210212z
101101y
010x
PPPPPPPPGPPGPGGG
PPPCPPGPGG
PPCPGGC
PCGC
=
+++=
+++=
++=
+=
−−
−−
−−
C
(4.16)
Figura 4.37 Circuit pentru generarea anticipată a transportului GTA (74182)
C31
xc+ yc+ zc+ xc+ yc+ zc+
Figura 4.38 Expandarea GTA pe două nivele
PG
GTA
P P3
G G3
P P2
G G2
P P1
G G1
P P0
G G0
G P
GTA
ALU
G G0
P P0
ALU
G G1
P P1
ALU
G G2
P P2
ALU
G G3
C-1 ALU ALU ALU ALUC-15
P P3
54
BAZELE PROIECTĂRII CIRCUITELOR NUMERICE
Expandarea ALU cu generarea anticipată a transportului se poate face pe două sau mai multe nivele (figura 4.38, figura 4.39). 4.3.9 Generatoare şi detectoare de paritate Pentru detectarea eventualelor erori în transmisia datelor se poate folosi un cod cu bit de paritate. La emisie, la cuvintele de transmis se mai adaugă un bit “0” sau “1” astfel încât toate cuvintele transmise sa aibă un număr par (impar) de biţi “1”. La recepţie se verifică paritatea (imparitatea) numărului de biţi “1” din cuvântul recepţionat. Aceste operaţii sunt realizate de CLC numite generatoare, respectiv detectoare de paritate. Detectorul elementar de paritate este circuitul de anticoincidenţă, XOR (figura 4.40).
Dacă pe lângă cuvântul de transmis b0b1 se mai transmite şi bitul de paritate y, se obţine o transmisie în cod cu bit de paritate pară. Dacă se mai foloseşte încă o poartă XOR, se poate stabili şi felul parităţii (pară sau impară – figura 4.40).
În cazul unor cuvinte de 8 biţi se poate folosi circuitul din figura 4.41 (74180). Circuitul este prevăzut cu intrările P (par) şi I (impar) care permit funcţionarea ca generator/detector de paritate sau imparitate. Corespunzător, circuitul are şi două ieşiri YP şi YI. Aceste intrări şi ieşiri permit expandarea circuitului.
Utilizarea circuitului generator/detector de paritate la transmisii de date este exemplificată in figura 4.42.
b1 b0 y 0 0 0 0 1 1 1 0 1 1 1 0
Figura 4.40 Generator/detector de paritate elementar
Figura 4.39 Expandarea ALU cu GTA pe mai multe nivele
G G0
b1
b0
bp
p
p=0 – paritate pară p=1 – paritate impară
y b1
b0
xc+ yc+ zc+ xc+ yc+ zc+ xc+
xc+ xc+
P P1
G G1
P P0
G G0
GTA
GTA
P P1
G G1
ALU
P P0
G G0
ALU
GTA
P P3
G G3
ALU
P P2
G G2
ALU
P P1
G G1
ALU
P P0
G G0
ALU C-1
GTA
P P3
G G3
ALU
P P2
G G2
ALU
P P1
G G1
ALU
P P0
ALU
55
cap.4 Circuite logice combinaţionale
56
I P
YI
YP
A6 A7
A4 A5
A2 A3
A0 A1
YI
YPPI
A15 A8
G/DP “1”
“0” YI
YPP
I
A7 A0
G/DP
YI
YP P
I
A7 A0
G/DP
Figura 4.41 Generator/detector de paritate 74180
A7
A0
Er YP
PI
G/DP“1”
“0” YP
P
I
A7
A0
G/DP
Figura 4.42 Utilizarea generatorului/detectorului de paritate în transmisiunile de date
4.4 Timpi de propagare pentru o structură logică combinaţională
Modificarea unor variabile la intrările unui circuit logic combinaţional poate produce modificarea unor variabile la ieşirea lui. Aceste modificări sunt afectate de timpii de comutaţie ai circuitelor utilizate. Evidenţierea acestor întârzieri a fost abordată în capitolul 3.3.4. Timpii de propagare se pot individualiza pentru diverse puncte ale unei structuri combinaţionale, de la poarta xi la ieşirea yj, de exemplu.