Sunteți pe pagina 1din 12

Cursul 6

4.2.6. Circuite logice de comparare

Circuitele logice de comparare pot furniza informaţii despre relaţiile în care se află două
numere A şi B codificate binar (natural): egal (A = B), mai mic (A < B), mai mare (A > B).

Comparatoarele pentru indicarea egalităţii se pot realiza cu porţi logice de tipul XOR sau
NXOR. În Fig. 4.28 sunt prezentate comparatoare simple, pe un bit, pentru indicarea egalităţii (a) sau
a inegalităţii (b).

În tabelul 4.6 sunt prezentate funcţia egalitate (EQ) şi funcţia inegalitate (INEQ) pentru un bit.
Utilizând mai multe porţi de acest tip se pot realiza comparatoare pentru indicarea egalităţii pe mai
mulţi biţi (Fig. 4.29). În acest caz, EQ = 1 dacă sunt îndeplinite simultan condiţiile: A0 = B0, A1 = B1, A2 =
B2 şi A3 = B3

Fig.4.28. Comparatoare simple pentru indicarea egalităţii.

Tabelul 4.6. Tabelul de adevăr pentru funcţia EQ şi pentru funcţia INEQ.

A B EQ INEQ

0 0 1 0
0 1 0 1
1 0 0 1
1 1 1 0

Fig. 4.29. Comparator pe 4 biţi pentru indicarea egalităţii.


Există comparatoare pe 4 biţi, realizate ca circuite integrate pe scară medie, pentru indicarea
uneia dintre cele trei stări posibile: A = B, A < B, A > B (Fig. 4.30) şi având posibilităţi de
interconectare, pentru a putea fi extins la mai mulţi biţi. Semnificaţiile notaţiilor din figură sunt
următoarele:

➢ A0, A1, A2, A3 – biţii corespunzători numărului A;


➢ B0, B1, B2, B3 – biţii corespunzători numărului B;
➢ ALTB OUT – ieşire pentru A < B;
➢ AEQB OUT – ieşire pentru A = B;
➢ AGRB OUT – ieşire pentru A > B;
➢ ALTB IN – intrare pentru A < B (egală cu 1, dacă A < B în etajul anterior, în cazul în care există o
conexiune în lanţ a modulelor în vederea comparării a două numere reprezentate pe un număr mai
mare de biţi);
➢ AEQB IN – intrare pentru A = B (egală cu 1, dacă A = B, în etajul anterior);
➢ AGRB IN – intrare pentru A > B (egală cu 1, dacă A > B, în etajul anterior).

Fig. 4.30. Simbolul comparatorului pe 4 biţi 74x85.

Se precizează că:

ALTB OUT = 1, dacă (A < B la nivelul actual) sau [(A = B la nivelul actual) şi (ALTB IN = 1)];

AEQB OUT = 1, dacă (A = B) şi (AEQB IN = 1);

AGRB OUT = 1, dacă (A > B la nivelul actual) sau [(A= B la nivelul actual) şi (AGRB IN = 1)]

În cuvântul binar de ieşire, unul şi numai unul singur dintre cei trei biţi este egal cu 1.
Fig. 4.31. Comparator pe 12 biţi realizat cu trei comparatoare pe 4 biţi standard (de tip 74x85).

Pentru extinderea capacităţii în biţi a comparatoarelor, se conectează mai multe comparatoare


standard (cu număr fixat de biţi) în casacadă, ca în Fig. 4.31.

4.2.7. Detectoare de paritate / imparitate

În cazul codurilor detectoare de erori, bazate pe bit de paritate, este posibilă detectarea
parităţii/imparităţii numărului de biţi ai cuvântului de cod. Ţinând seama de structura cuvântului de
cod, nerespectarea parităţii/imparităţii impuse semnifică apariţia unei erori în cuvântul respectiv.
Această problemă se poate rezolva simplu, printr-o operaţie de tip SAU EXCLUSIV asupra biţilor
componenţi ai cuvântului de cod.

Fie în acest sens x0, x1, ...., xn-1 biţi unui cuvânt de cod. Se poate cosidera funcţia logică
IMPAR(x0, x1, ...., xn-1) care ia valoarea 1 dacă:

x0  x1  ...  xn−1 = 1
Analog, se poate considera funcţia logică PAR(x0, x1, ...., xn-1), care ia valoarea 1 dacă :

x0  x1  ...  xn−1 = 0

Având în vedere faptul că porţile XOR elementare sunt realizate în varianta cu două intrări, o
schemă pentru determinarea imparităţii/parităţii conţine mai multe astfel de porţi ce pot fi
conectate în mai multe moduri. Unul dintre ele, bazat pe simetria circuitului, este prezentat în Fig.
4.32.

Evident, ieşirea Y va fi:

Y = 0, pentru un număr par de 1 în cuvântul binar x0, x1, ...., xn-1 şi

Y = 1, pentru un număr impar de 1 în cuvântul binar x0, x1, ...., xn-1.

Astfel de porţi sunt integrate pe o singură capsulă (cazul circuitului de paritate 74x280,
pentru cuvinte de opt biţi).

Fig. 4.32. Detector de (paritate) imparitate pentru opt biţi.

Ieşirea circuitului din Fig. 4.32 este y=1, pentru un număr impar de 1-uri (detector de
imparitate).

4.2.8. Sumatoare şi unităţi aritmetice logice


Sumatoarele, circuitele de scădere şi unităţile aritmetice-logice, realizează funcţii aritmetice
utilizând circuite logice.
În cazul sumării a două numere binare de un bit (Tabelul 4.7), rezultatul este furnizat pe doi
biţi, un bit pentru sumă (S) şi un bit pentru transport în rangul superior – carry (C). Acest CLC se
numeşte semisumator. Simbolul lui este dat în Fig. 4.33.

Pentru ca acest sumator elementar să poată fi utilizat la implementarea unui sumator pe mai
mulţi biţi este necesară încă o intrare şi anume transportul din rangul inferior Cin. În acest caz, C = Cout
(Tabelul 4.8) iar sumatorul pe un bit se numeşte sumator complet. Simbolul unui sumator complet
este dat în Fig. 4.34.

Tabelul 4.7. Tabela de adevăr pentru un semisumator.

A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

operand x operand y

A B transport
C

Σ
sumă
S
Fig. 4.33. Simbol unui semisumator.

Funcţiile logice corespunzătoare lui S (4.5) şi COUT (4.6) se pot implementa direct din tabelul
de adevăr, considerând FCD:

COUT = A'B  C IN + A  B'C IN + A  B  C IN


'
+ A  B  C IN (4.5)

S = A'B'C IN + A'B  C IN
'
+ A  B'C IN
'
+ A  B  C IN (4.6)
Tabelul 4.8. Tabelul de adevăr pentru un sumator complet pe un bit.

A B Cin S 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

operand x operand y

A B
transport din CIN COUT transport în
rangul inferior rangul superior
Σ
sumă
S
Fig. 4.34. Simbol unui sumator complet pe un bit.

Expresiile celor două funcţii logice pot fi simplificate utilizând proprietăţile algebrei logice şi
porţi de tip XOR. Astfel, relaţia (4.5) devine:

COUT = ( A'B + A  B' )  C IN + A  B  (CIN' + CIN ) = ( A  B)  CIN + A  B (4.7)

Considerând transformarea (4.8):

A'B'+ A  B = (( A'B'+ A  B)' )' = (( A'B' )'( A  B)' )' = (( A + B)  ( A'+ B' ))' =

= ( A  B'+ A'B)' = ( A  B)' (4.8)

relaţia (4.6) se poate scrie în modul următor:

S = ( A'B'+ A  B)  C IN + ( A'B + A  B' )  C IN' = ( A  B)'C IN + ( A  B)  C IN' =

= A  B  C IN (4.9)

Implementarea celor două funcţii logice Cout şi S este reprezentată prin circuitul logic
combinaţional din Fig. 4.35.
Fig. 4.35. Implementare funcţiilor S şi Cout.

O altă expresie pentru Cout se poate obţine prin minimizarea funcţiei logice (4.5) cu ajutorul
diagramelor Karnaugh (Fig. 4.36).

Fig. 4.36. Diagrama Karnaugh pentru funcţia logică Cout.

Din minimizarea funcţiei conform diagramei Karnaugh de mai sus rezultă:

COUT = B∙A + A∙CIN + B∙ CIN = A∙B + CIN ∙ (A + B) (4.10)

Adunarea a două numere binare pe mai mulţi biţi se face, utilizând transportul în rangul
următor, după regula obişnuită.

Observaţie

CIN (rang i) = COUT (rang i-1)

Conform observaţiei precedente, pentru a putea realiza sumatoare pe mai mulţi biţi
sumatoarele complete pe un bit pot fi conectate în cascadă pe liniile de transport. Astfel, în Fig. 4.37
se prezintă un sumator pe n biţi obţinut prin legarea în cascadă a n sumatoare complete de un bit.
Fig. 4.37. Sumator pe n biţi obţinut prin legarea în cascadă a n sumatoare complete pe un bit.

Sumatorul de mai sus prezintă dezavantajul că, prin legarea in cascadă semnalul de transport
este întârziat foarte mult, proporţional cu numărul de celule conectate. Prin întârzierea semnalului
de transport apar semnale de ieşire false pe durata regimului tranzitoriu.

Pentru un număr mic de biţi (de exemplu, patru biţi) se poate realiza o schemă de sumator ce
calculează Ci direct din Aj, Bj şi C0, j = 0,1,...,i-1, ocolind legarea în cascadă a sumatoarelor pe un bit.
Aceste sumatoare se numesc sumatoare cu anticiparea transportului sau sumatoare rapide (de
exemplu, sumatorul pe patru biţi 74x283).

Structura unei celule a sumatorului rapid este prezentată in Fig. 4.38.

Fig. 4.38. Structura unei celule a sumatorului rapid.

În figură, CLCi este un circuit logic combinaţional pentru calculul direct al transportului Ci.
Acesta se bazează pe relaţia de recurenţă obţinută din (4.10). S-a considerat: COUT = Cn, CIN = Cn-1, A =
An-1, B = Bn-1.

Cn = An−1  Bn−1 + Cn−1  ( An−1 + Bn−1 ), n = 1,2,... (4.11)


În cazul sumatorului rapid pe patru biţi având intrările C0, A0, A1, A2, A3, B0, B1, B2, B3 şi
ieşirile S0, S1, S2, S3, C4 (Fig. 4.39), transporturile intermediare C1, C2, C3 şi transportul de ieşire C4, se
determină din relaţiile următoare:

C1 = A0  B0 + C0  ( A0 + B0 )

C 2 = A1  B1 + C1  ( A1 + B1 ) = A1  B1 + A0  B0  ( A1 + B1 ) + C0  ( A0 + B0 )  ( A1 + B1 )

C3 = A2  B2 + C2  ( A2 + B2 ) = A2  B2 + A1  B1  ( A2 + B2 ) +
+ A0  B0  ( A2 + B2 )  ( A1 + B1 ) + C0  ( A2 + B2 )  ( A1 + B1 )  ( A0 + B0 )
Schema unui sumator rapid, integrat, pe patru biţi (74x283) este prezentată în Fig. 4.39.
Semnificaţia notaţiilor sunt următoarele: C0 - intrarea de transport, A3, A2, A1, A0 - biţii primului
operand, B3, B2, B1, B0 - biţii celui de-al doilea operand, S3, S2, S1, S0 – biţii sumei (ieşirea), C4 –ieşirea
de transport.

Fig. 4.39. Schema unui sumator rapid, integrat, pe 4 biţi.

4.2.9. Circuite de scădere


Utilizând un sumator paralel, se poate realiza un circuit de scădere (ce realizează operaţia x-y)
pe baza complementării faţă de 2 a scăzătorului y luat cu semnul minus. Pentru complementare, biţii
numărului y se inversează, iar C0 se conectează la Vcc (1 logic) - Fig. 4.40.

Observaţie

Circuitul sumator paralel poate fi folosit ca sumator/scăzător în aceeaşi configuraţie utilizând


comanda de adunare/scădere (ADD/SUB) şi punând 0 pentru adunare şi 1 pentru scădere (Fig. 4.41).
Circuitele XOR joacă rolul unor inversoare programate.
Fig. 4.40. Configurarea unui sumator pe patru biţi ca dispozitiv de scădere.

Considerând MSB bitul de semn (𝑥7 pentru x şi 𝑦7 pentru y), se poate semnaliza depăşirea
formatului de opt biţi, examinând cele două situaţii din tabelul de adevăr: prima, când se adună două
numere pozitive şi bitul de semn rezultat (𝑠7 ) este 1, şi a doua, când se adună două numere negative
şi bitul de semn rezultat este 0 (Tabelul 4.9).

Fig. 4.41. Sumator/scăzător pe opt biţi în C2.

Tabelul 4.9. Tabelul de adevăr pentru funcţia Detector de depăşire (DD) (overflow)

𝑥𝑛−1 𝑌𝑛−1 𝑠𝑛−1 DD


0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0

Astfel, pentru n = 8, rezultă funcţia logică a detectorului de depăşire DD în forma canonică


disjunctivă:
DD = x7'  y 7'  s7 + x7  y 7  s7'

Circuitul logic prin care este implementată această funcţie este prezentat în Fig. 4.42.

Fig. 4.42. Implementarea circuitului DD utilizând biţii de semn.

4.2.10. Unitaţi artimetice-logice (ALU)


O unitate aritmetică-logică (ALU) este un CLC capabil să realizeze o serie de operaţii
aritmetice sau logice cu doi operanzi pe n biţi (de obicei, o astfel de unitate, de tip MSI, are n = 4). De
asemenea, există un set de intrări pentru selectarea funcţiei pe care o execută ALU. Unele ALU au
prevăzute ieşiri pentru generarea transportului rapid (anticipat) şi în cazul conectării mai multor ALU
standard de patru biţi (de exemplu, 74x181 sau 74x381) în paralel, fără întârzierea transportului.
Generarea transportului anticipat pe grupe de patru biţi se face cu ajutorul unui CLC integrat 74x182
(până la patru grupe).

Exemplul 4.8. Unitate aritmetică-logică pe patru biţi.

Circuitul integrat 74x381, ALU de patru biţi este prezentat în Fig. 4.43, iar funcţiile realizate, în
Tabelul 4.10.

Funcţia realizată de circuitul integrat 74x381 este selectată cu ajutorul intrărilor S2, S1, S0.
Cuvintele binare A şi B, care reprezintă cei doi operanzi, au biţii A3, A2, A1, A0, şi, respectiv, B3, B2, B1,
B0. De asemenea, există o intrare de transport CIN şi două ieşiri active în 0, G şi P, utilizate pentru
generarea transportului anticipat în rangul următor, cu ajutorul circuitului integrat 74x182.

Tabelul 4.10. Funcţiile realizate de ALU 74x381


S2 S1 S0 Funcţia (F3,F2,F1,F0)
0 0 0 0 0 0 0 (iniţializare 0)
0 0 1 B-A-1+CIN (aritmetică)
0 1 0 A-B-1+CIN (aritmetică)
0 1 1 A+B+CIN (aritmetică)
1 0 0 A  B (logică)
1 0 1 A+B (logică)
1 1 0 A∙B (logică)
1 1 1 1 1 1 1 (iniţializare 1)
S0
G
S1
P
S2
F0
S1
Cin
F1
A0
B0 F2
F3
A1
B1
A2
B2

A3
B3

Fig. 4.43. Circuitul integrat 74x381, ALU de patru biţi.

4.2.11. Realizarea multiplicării cu ajutorul CLC


Pentru implementarea unui multiplicator combinaţional se foloseşte algoritmul obişnuit, care
utilizează deplasări şi adunări.

De exemplu, pentru înmulţirea a două numere de patru biţi: x3x2x1x0 şi y3y2y1y0, se aplică
schema din Fig. 4.44.

Se observă ca operaţiile elementare principale ale produsului (considerat ca operaţie


aritmetică) sunt: înmulţirile pe un bit (operaţie logică), deplasările cu un bit şi adunarea (operaţie
aritmetică) pe mai mulţi biţi. Pentru fiecare ieşire: P6, P5, … , P0, se pot implementa funcţiile logice
corespunzătoare, sub forma unor circuite logice combinaţionale.

x3  y 0 x2  y0 x1  y0 x0  y0

+ + +
x3  y1 x2  y1 x1  y1 x0  y1

+ + +
x3  y 2 x2  y 2 x1  y 2 x0  y 2

+ + +
x3  y3 x2  y3 x1  y3 x0  y3

P7 P6 P5 P4 P3 P2 P1 P0

Fig. 4.44. Schemă pentru realizarea multiplicatorului combinaţional pe 4 biţi.

S-ar putea să vă placă și