Documente Academic
Documente Profesional
Documente Cultură
X0 Y0
X1 Y1
. CLC .
. .
. .
Xm-1 Ym-1
Fig. 4.1.
Cele n intrări reprezintă vectorul variabilelor binare de intrare iar cele m ieşiri
reprezintă vectorul variabilelor binare de ieşire.
În general se pot scrie următoarele relaţii:
y0 F0 x0 , x1 ,..., x n 1
y1 F1 x0 , x1 ,... , x n 1
.
.
.
y m 1 Fm 1 x 0 , x1 ,... , x m 1
În principiu, orice variabilă de ieşire poate depinde de toate variabilele de intrare însă
nu depinde de timp.
Această exprimare a relaţiilor între vectorul de ieşire şi cel de intrare neglijează
întârzierile introduse de circuitele logice elementare care compun circuitul logic
combinaţional.
Datorită întârzierilor, în practică poate apărea fenomenul de hazard combinaţional care
constă în faptul că dacă la intrare se aplică la momentul t0 vectorul variabilelor de intrare, după
un anumit timp şi într-o succesiune neprevăzută pentru fiecare dintre ieşiri se stabileşte starea
finală a fiecărei ieşiri. Aceasta se datorează întârzierilor intrare - ieşire specifice fiecărei ieşiri
şi care pot diferi de la o ieşire la alta.
Procesul de minimizare constă în uniformizarea întârzierilor intrare - ieşire pentru
fiecare dintre ieşiri.
Evitarea fenomenului de hazard combinaţional se poate face fie prin minimizare, fie
prin utilizarea unei memorii tampon care permite citirea variabilelor logice ale ieşirilor.
În general setul de ecuaţii se poate scrie :
- sub forma canonică disjunctivă.
- sub forma canonică conjunctivă.
Forma canonică disjunctivă este suma logică a tensiunilor de produs logic în care
intervin toate variabilele de intrare iar forma canonică conjunctivă este produsul logic al unor
termeni constituiţi prin suma logică a tuturor variabilelor de intrare.
Circuite logice combinaţionale 43
În afară de forma canonică se utilizează şi forma elementară la care se poate ajunge
prin procedee de minimizare. Acesta are avantajul practic că asigură implementarea CLC cu
un număr minim de componente.
4.1. Codificatoare.
W0 Y0
W1 Y1
. CD .
. .
. .
Wm-1 YK-1
Fig. 4.2.
m 1
yr a n Wn r=0...k–1
n0
Această relaţie sugerează faptul că un codificator poate fi realizat prin însumarea
logică cu ajutorul funcţiei SAU a produselor an Wn .
Exemplu : codificarea binară a numerelor zecimale de la 0 la 9 .
În acest caz m = 10, k = 4 ( numărul de biţi la ieşire necesar pentru a nu avea aceeaşi
combinaţie la ieşire pentru intrări diferite ).
Expresiile celor patru ieşiri se obţine din tabelul de adevăr care conţine intrarea
activată şi valorile dorite pentru variabilele de ieşire :
Intrare activă Y3 Y2 Y1 Y0
W0 0 0 0 0
W1 0 0 0 1
44 Circuite logice combinaţionale
W2 0 0 1 0
W3 0 0 1 1
W4 0 1 0 0
W5 0 1 0 1
W6 0 1 1 0
W7 0 1 1 1
W8 1 0 0 0
W9 1 0 0 1
y0 W1 W 3 W5 W7 W9
y1 W 2 W 3 W6 W7
y 2 W4 W 5 W 6 W 7
y 3 W8 W 9
Schema codificatorului rezultă din implementarea cu porţi SAU a relaţiilor obţinute.
W0
W1
W2
W3
W4
W5
W6
W7
W8
W9
Y0 Y1 Y2 Y3
Fig. 4.3.
Schema codificatorului prezentat funcţionează corect numai dacă intrările sunt activate
pe rând. Astfel, dacă sunt acţionate două sau mai multe intrări simultan la ieşire se obţine
altceva decât cuvântul codat propus.
Codificatoarele sunt în general blocuri în circuite integrate pe scară largă. La realizarea
lor se urmăreşte minimalizarea numărului de componente utilizate şi se încercă realizarea lor
cu un număr minim de tranzistoare.
În practică, pentru realizarea circuitelor SAU se pot folosi matrice cu diode. De
exemplu ieşirea Y3 poate fi implementată astfel ( figura 4.4):
Circuite logice combinaţionale 45
V+
W8
W7
W9
Y1 Y2
Y0
Y3
W3 W6 W7
W2
Fig.
4.6.
Se observă
V1
că pentru
fiecare linie
R
există un
astfel de
subansamblu.
4.2. Decodificatoare
Decodificatorul este un circuit logic combinaţional care serveşte la identificarea unui
cod de intrare prin activarea unei linii de ieşire corespunzătoare acestui cod.
Schema bloc a unui decodificator este:
.. Fig. 4.7. ..
. DCD .
Xm- Ym-1
Relaţia între numărul 1de biţi de intrare şi numărul de biţi de ieşire este:
m = 2n.
46 Circuite logice combinaţionale
Tabelul de adevăr pentru un decodificator cu trei linii de intrare şi opt linii de ieşire
este: ( considerând că variabilei A îi corespunde 20, variabilei B - 21 iar variabilei C - 22 ).
C B A Linia activă
0 0 0 L0
0 0 1 L1
0 1 0 L2
0 1 1 L3
1 0 0 L4
1 0 1 L5
1 1 0 L6
1 1 1 L7
Din tabelul de adevăr rezultă ecuaţiile logice ale ieşirilor, care permit implementarea
decodificatorului.
L0 A B C
L1 A B C
.
.
.
L7 A B C
Schema decodificatorului construită pe baza acestor ecuaţii logice este prezentată în
figura 4.8: C B A
C B A
C B A
L0
A BC
L1
A BC
.
.
.
L7
A BC
E0 E
E1
Fig. 4.8.
Circuite logice combinaţionale 47
Pentru ca schema să funcţioneze ca un decodificator trebuie ca intrarea de validare E
să fie în starea 1 logic. ( Dacă E0 = 0 şi E1 = 0 ).
Dacă se notează cu n numărul de intrări, în general este nevoie de circuite ŞI -
NU cu n intrări la care se adaugă la cerere intrarea de validare E.
Inversoarele de la intrare se pun pentru ca circuitele de intrare care alimentează
decodificatorul să nu fie încărcate cu mai multe de o sarcină TTL.
4.3. Multiplexoare.
A B
A B
A4 A5
W
A B C D
W
Decodificat
D0 – D15 D16 – D31 Fig.
L0 L4.9. L2 L3 D32 – D47 D48 – D63
1
16 16 16 16
În practică se fabrică multiplexoare cu maximum 16 linii de date având deci un cod de
selecţie de 4 biţi. În aceste condiţii pot apărea probleme privitoare la extinderea capacităţii de
multiplexare în cazul în care trebuie multiplexate mai mult de 16 canale de intrare.
În funcţie de numărul de linii de intrare necesare se pot utiliza mai multe multiplexoare
validate succesivMUX MUX 1 Pentru validarea
0 un decodificator.
de către MUX 2
multiplexoarelor MUX 3
se utilizează
intrările de validare E a multiplexoarelor.
w
48 Circuite logice combinaţionale
Fig. 4.10.
Ieşirile celor k multiplexoare se însumează logic folosind un circuit SAU dacă se
dispune de ieşirile w sau de un circuit ŞI - NU dacă se dispune de w .
Multiplexoarele se utilizează rar pentru implementarea unor funcţii logice, pentru că au
o singură ieşire. Dintre aplicaţiile mai importante menţionăm:
- înregistrarea centralizată a datelor numerice ( codul corespunzător adresei liniei de
intrare se modifică secvenţial cu ajutorul unui numărător astfel încât fiecare linie de intrare
este conectată la ieşire un interval de timp T egal cu perioada impulsurilor de tact de la
numărător, rezultând faptul că aceste date se pot înregistra. În intervalul de timp T sunt
selectate toate liniile de intrare.
- conversia paralel - serie a informaţiei binare n biţi sunt aplicaţi simultan la cele m
intrări a multiplexorului după care prin modificarea secvenţială a adresei liniilor de intrare se
obţin la ieşirea w succesiv : D0 , D1 , . . . , Dm.
- transmiterea datelor cu mai mulţi biţi pe o singură linie de transmisie. În acest caz se
utilizează atât multiplexoare cât şi demultiplexoare, datele fiind transmise pe linie bit cu bit şi
recepţionate în mod similar. La locul de transmisie se utilizează un multiplexor, ieşirea căruia
este conectată la linia de transmisie iar la recepţie se utilizează un demultiplexor, ambele
adresate cu un numărător comandat cu aceleaşi impulsuri de tact.
4.4. Demultiplexoare
Demultiplexorul este un circuit logic combinaţional care permite transmiterea datelor
de la o singură linie de intrare pe m linii de ieşire. Alegerea ieşirilor se face printr-un
cod de selecţie.
Numărul biţilor codului de selecţie este legat de numărul liniilor de ieşire m prin
relaţia:
m = 2n
Ca şi demultiplexoare se pot utiliza decodificatoare
cod de selecţie care au intrarea de validare. Modul
de utilizare ca şi demultiplexor a decodificatorului cu 3 biţi de adresă şi 8 linii de ieşire
prezentat anterior, este arătat în schema
A următoare.
B C
E0
D . L0
.
E1 DMUX .
L7
Circuite logice combinaţionale 49
Fig. 4.11.
Se observă că datele în urma a două inversări succesive pe linia de transmisie de ieşire
selectată.
La un moment dat datele de la intrarea D se transmit pe o singură linie de ieşire, cea
selectată în momentul respectiv de codul de selecţie .
Tipuri de circuite integrate care pot fi folosite atât ca decodificatoare cât şi ca
demultiplexoare sunt :
- CDB 442E - care este un decodificator care serveşte la decodificarea numerelor
zecimale codificate binar. Are 10 linii de ieşire şi 4 de intrare. Poate fi folosit ca demultiplexor
cu 3 biţi de selectare / 8 linii de ieşire / 1 linie de intrare.
- 74154 - este un decodificator cu 4 linii de intrare şi 16 linii de ieşire. Şi acest circuit
integrat poate fi folosit ca demultiplexor cu 4 biţi de selecţie / 16 linii de ieşire / 1 linie de
intrare.
Deoarece de obicei nu se fabrică demultiplexoare cu mai mult de 16 linii de ieşire şi în
practică se utilizează mai mult de 16 linii de ieşire, există posibilitatea extinderii domeniului
de ieşire.
Exemplu : folosind demultiplexoare cu 4 biţi de selecţie şi 16 linii de ieşire, se cere să
se realizeze un demultiplexor cu 64 de linii de ieşire.
În acest caz se observă că sunt necesare 4 demultiplexoare care vor fi validate succesiv
prin intermediul uneia dintre intrările de validare comandată de un decodificator.
A4 A5
E0 E1
A B
DCD
Date
E0 E1 E0 E1 E0 E1 E0 E1
4 biţi A0 – A3
DMUX 0 DMUX 1 DMUX 2 DMUX 3
sm-1 sm-1
A . . . N A . . . N
NUM 1 NUM 2
Tk Tk
Semnal
Emisie sincronizare Recepţie
Fig. 4.13.
A
fsk
fek
fik
B
Fig. 4.14.
Dacă numerele binare A şi B sunt pe n biţi atunci fiecare bit este necesar un astfel de
circuit şi folosind cele trei ieşiri ale circuitului şi o logică suplimentară pentru determinarea
inegalităţii în ansamblu se poate realiza un comparator pentru numere binare pe mai mulţi biţi.
Ca exemplu se va analiza cazul unui comparator care compară două numere
reprezentate pe 4 biţi fiecare.
A3 B3 ; A2 B2 sau fs fe
2 3
A3 B3 ; A2 B2 ; A1 B1 sau f s fe fe
1 2 3
A3 B3 ; A2 B2 ; A1 B1 ; A0 B0 f s fe fe fe
0 1 2 3
În acest caz semnalul Fs rezultă cu ajutorul funcţiilor logice ŞI şi SAU potrivit relaţiei:
Fs f s f s f e f s f e f e f s f e f e f e
3 2 3 1 2 3 0 1 2 3
A3 B3 ; A2 B2 sau fi fe 2 3
A3 B3 ; A2 B2 ; A1 B1 sau fi fe fe
1 2 3
A3 B3 ; A2 B2 ; A1 B1 ; A0 B0 fi fe fe fe
0 1 2 3
În acest caz semnalul Fi rezultă cu ajutorul funcţiilor logice ŞI şi SAU potrivit relaţiei:
Fi f i f i f e f i f e f e f i f e f e f e
3 2 3 1 2 3 0 1 2 3
Observând că din cele trei funcţii nu poate fi la un moment dat adevărată decât una se
poate scrie : Fe Fs Fi
Fs Fe Fi
Fi Fe Fs
Din aceste relaţii rezultă că în principiu este necesară implementarea a două din aceste
funcţii, cea de a treia rezultând cu ajutorul unui circuit ŞI şi două inversoare.
În general, în practică se implementează toate funcţiile pentru a asigura întârzierea
globală pentru cele trei ieşiri şi micşorarea hazardului combinaţional.
Pentru conectarea mai multor comparatoare cu mai mulţi biţi se mai adaugă funcţiile
de intrare suplimentare Fe' , Fs' , Fi' provenite de la biţii de rang superior. În acest caz relaţiile
devin:
Fe f e f e f e f e Fe'
0 1 2 3
Fs f s f e f s f e f e f s f e f e f e f s f e f e f e f e Fs'
3 3 2 3 2 1 3 2 1 0 3 2 1 0
Fi f i f e f i f e f e f i f e f e f e f i f e f e f e f e Fi'
3 3 2 3 2 1 3 2 1 0 3 2 1 0
4.6. Sumatoare
Sumatorul este un circuitul logic combinaţional care asigură direct sau indirect
efectuarea operaţiilor aritmetice într-un sistem de calcul.
Circuite logice combinaţionale 53
4.6.1. Semisumatorul - este un circuit logic combinaţional care efectuează suma a
două numere binare de câte 1 bit fără a ţine seama de transferul de la bitul cu semnificaţie
imediat inferioară.
Fie numerele A0 şi B0 două numere binare de 1 bit rezultând că A0 şi B0 sunt intrări
pentru semisumator iar S0 şi C0 sunt două ieşiri reprezentând suma ( S0 ) şi transferul ( C0 ).
Tabelul de adevăr rezultat este:
A0
S0
B0
C0
Fig. 4.15.
1
2
Ci Si
Fig. 4.16.
4.6.2. Sumatorul complet
Sumatorul complet efectuează suma a două numere binare de 1 bit ţinând seama şi de
transferul care poate apărea de la bitul cu semnificaţie imediat inferioară.
În principiu, schema sumatorului complet se poate realiza cu două semisumatoare şi un
circuit SAU conectate în următorul mod:
54 Circuite logice combinaţionale
Ai Bi
.
1 .
2 .
C’i S’i
Ci-1
1
2
C’’i Si
Ci
Fig. 4.17.
Funcţiile logice care descriu funcţionarea sumatorului complet sunt:
C i C i' C 'i' Ai Bi S i' C i 1
S i S 'i C i 1 S i C i 1 Ai Bi C i 1 Ai Bi C i 1 Ai Bi Ai Bi C i 1
Se observă
Ci Si
Fig. 4.18.
În practică pentru implementarea unui sumator nu se merge pe principiul utilizării a
două semisumatoare şi un circuit SAU ci pe baza tabelului de adevăr care are coloanele
corespunzătoare variabilelor de intrare pe Ai , Bi , C i - 1 şi ieşirile Ci şi Si. Din tabelul de adevăr
se deduc relaţiile logice pentru Ci şi Si.
Dacă aceste ecuaţii se minimizează rezultă o variantă de circuit logic combinaţional cu
un număr minim de circuite ( mai puţine decât două semisumatoare şi un circuit SAU ).
A1 B1 A0 B0
A3 B3 A2 B2
C3
3 C2
2 C1
1
C0
0 C-1
S1 S0
S3 S2
Fig. 4.19.
Convertoarele de cod sunt circuite logice combinaţionale care permit trecerea dintr-un
cod binar în altul. Schema circuitului se poate deduce din tabelul de funcţionare sau pe baza
analizei matricei Karnaugh corespunzătoare ieşirilor.
Pentru explicare se va prezenta conversia din codul binar natural în codul binar
reflectat ( codul Gray ) şi reciproc.
Codul Gray se caracterizează prin faptul că trecerea de la un număr la numărul următor
se face prin modificarea unei singure cifre binare a codului. Rezultă deci că în cazul codului
Gray numărarea se face cu un număr minim de tranziţii a cifrelor binare care compun numărul.
4.7.1. Convertorul de cod din codul binar natural în codul binar reflectat
G 3 B3
G 2 B2 B3 B 2 B3 B2 B 3
G1 B1 B2 B1 B2 B1 B2
G0 B0 B1 B0 B1 B0 B1
G2
B2
B1 G1
B0 G0
Fig. 4.20.
G 3 = B3
B1B0
Circuite logice combinaţionale 57
B3B2 00 01 11 10
00 0 0 0 0
01 1 1 1 1
11 0 0 0 0
10 1 1 1 1
G 2 B2 B3 B2 B3 B2 B3
B1B0
B3B2 00 01 11 10
00 0 0 1 1
01 1 1 0 0
11 1 1 0 0
10 0 0 1 1
G1 B1 B2 B1 B2 B1 B2
B1B0
B3B2 00 01 11 10
00 0 1 0 1
01 0 1 0 1
11 0 1 0 1
10 0 1 0 1
G0 B0 B1 B0 B1 B0 B1
4.7.2. Convertor de cod din cod binar reflectat în cod binar natural
Schema convertorului se poate deduce în principiu urmând algoritmul de la punctul
precedent dar este mai simplu să se determine relaţiile de transformare pe cale analitică.
Din relaţiile deduse anterior, prin însumarea a două, trei sau patru funcţii Gi se obţine :
G 3 B3 B3 G 3
G 2 B2 B3 B2 G 3 G 2
G1 B1 B2 B1 G3 G2 G1
G0 B0 B1 B0 G3 G2 G1 G0
Pe baza acestor relaţii se poate desena schema convertorului de cod.
G3 B3
B2
G2
G1 B1
G0 B0
Fig. 4.21.
4.8. Detectorul şi generatorul de paritate.
58 Circuite logice combinaţionale
În procesul transmiterii informaţiilor numerice pot apărea erori . O metodă simplă de
detectare a acestora constă în utilizarea codurilor detectoare de erori (în care verifică paritatea
sau imparitatea ). Aceste coduri se bazează pe faptul că la emisie se formează un nou cuvânt
de cod prin adăugarea unui bit suplimentar la cei existenţi astfel încât numărul de '' 1 '' din
cuvântul nou format să fie par sau impar. La recepţie se verifică paritatea sau imparitatea
numărului de '' 1 '' din cuvântul recepţionat şi în funcţie de rezultatul verificării se decide
asupra corectitudinii cuvântului recepţionat.
Operaţiile descrise anterior se realizează cu circuite logice combinaţionale denumite
generatoare şi detectoare de paritate. Detectorul elementelor de paritate ( pentru cuvinte de 1
bit ) este circuitul de autocoincidenţă ( sumatorul modulo doi).
Schema unui generator sau detector de paritate ( imparitate ) pentru cuvinte de 4 biţi
este prezentată în figura următoare.
A0
A1 S1
Y1
Y3
S3 Y
Y0 S4
A2
A3 S2
P
Fig. 4.22.
Se observă că sumatorul S1 verifică paritatea biţilor A0, A1 şi S2 paritatea biţilor A2 şi
A3. Rezultatul acestor două verificări este verificat de poarta S3 obţinându-se Y3. Astfel Y3 ia
valoarea 1 dacă cuvântul A0 A1 A2 A3 are un număr impar de unităţi şi nivel logic 0 în caz
contrar.
Circuitul S4 şi comanda P asigură pe ieşirea Y nivel logic 1 sau 0 în funcţie de numărul
unităţilor din cuvântul de cod şi de comanda P aplicată astfel :
- pentru P = 0 Y4 = Y3 şi circuitul este un generator de paritate (ieşirea Y4 este pe
nivelul logic 1 dacă numărul de 1 din cuvântul de la intrare este impar).
- pentru P = 1 Y4 = Y3 şi circuitul este un generator de imparitate ( pe ieşirea Y4
apare nivel logic 1 când numărul de unităţi din cuvântul de intrare este par.
A3
A2
A1
A0
A0 A3
A1 A2
Y Y
A2 A1
A3 A0
P A5 P
Cuvinte de cod Cuvinte de cod Decizie privind
Mesaj corectitudinea
transmis recepţionat
Fig. 4.23.
Circuite logice combinaţionale 59
Schema unui lanţ de transmisie cu verificare la paritate pentru cuvinte de 4 biţi este
prezentată în figura 23.
Pentru cazul unor cuvinte de mai mulţi biţi se poate utiliza în practică circuitul integrat
specializat SN 74180 care este un generator – detector de paritate (imparitate) pe 8 biţi cu
posibilităţi de expandare.
Circuitul este prevăzut cu 2 intrări I şi P care permit funcţionarea în regim de generator
sau detector de paritate ( imparitate ). Corespunzător fiecăreia din cele două funcţii, circuitul
este prevăzut cu 2 ieşiri Yi şi YP . Schema bloc a unui astfel de circuit este :
A0 A1 A2 A3 A4 A5 A6 A7
I YI
P SN 74180 YP
Fig. 4.24.
Prin interconectarea mai multor astfel de circuite se pot realiza detectoare sau
generatoare de paritate cu un număr mai mare de biţi. De exemplu schema pentru un generator
( detector ) de paritate pe 16 biţi este:
A0 A1 A2 A3 A4 A5 A6 A7 A0 A1 A2 A3 A4 A5 A6 A7
I YI I YI
YP P YP
P
Fig. 4.25.