Documente Academic
Documente Profesional
Documente Cultură
Obiectivele modulului: Implementarea CLC cu componente MSI MUX i DMUX Codorul i decodorul Detectorul de paritate Sumatorul Teste de autoevaluare
10.1.1. Multiplexorul (MUX) Multiplexorul realizeaz transmiterea datelor de pe una din cele m = 2 ci de intrare (I0, I1, I2Im) pe o cale de ieire unic W. Selectarea cii de intrare se face prin intermediul unor intrri de selecie. Notaii: Di = D0D7 variabile de intrare Si = S0,S1 configuraii binare (cuvnt binar) de selecie, prin care este selectat la ieire valoarea de pe una din intrrile Ii. II intrri de date; W ieirea circuitului 129
n
E - intrare de validare (ENABLE), care prin nivelul logic 1/0 aplicat permite
activarea sau inactivarea comandat a circuitului.
INTRRI DE DATE I7 I6 I5 I4 I3 I2 I1 I0
COD DE SELECIE
D7 D6 D5 D4 D3 D2 D1 D0 S1 S2 S3
MUX
W E
0/1
INTRARE DE VALIDARE
IEIRE
Fig. 10.1. Simbolul logic al multiplexorului (MUX) Pentru cazul particular n = 3 (deci variabilele de selecie sunt S0, S1, S2), funcia de transfer a multiplexorului n forma FCD va fi:
W = (D7S2S1S0 + D6S2S1S0 + D5S2 S1S0 + D4S2 S1S0 + D3 S2S1S0 + D2 S2S1S0 M + D1S2 S1S0 + +D0 S2 S1S0 )E
Se observ c pentru: E = 0 (E=1) W = 0 circuitul este inactivat
E = 1 (E=0) W = 1 circuitul este activat. Funcia de multiplexare const n transmiterea (transferarea) datelor de la una din cele m intrri Ii la o cale de ieire unic W, selectarea cii de intrare fcndu-se prin intermediul unui cuvnt binar de selecie de n bii. n Dac numrul intrrilor de date este m = 2 , ntre numrul m de date de n intrare i numrul n al biilor de selecie exist relaia: m = 2 . Implementarea acestui circuit se poate face i cu pori logice discrete, dup cum este exemplificat n figura 10.2, pentru un MUX 8:1. Tipurile de mutiplexoare utilizate curent sunt: - MUX cu 16 intrri de date, cu o intrare de validare (E) i o ieire ( W ) ambele active pe 0 logic (SN74150) - MUX cu 8 intrri de date, o intrare de validare (E) activ pe 0 i dou ieiri complementare ( W, W ) (SN74151). - MUX cu 8 intrri de date, fr intrare de validare i cu o ieire complementar ( W ) .
130
Modulul 10
logic i o ieire ( W ) (MMC 4067) etc. Uneori, intrarea de validare poate lipsi.
D7 S3 S1 S0 E D6 D5 D4 D3 D2 D1 D0
E(D7S2S1S0)
Fig. 10.2. Implementarea unui MUX 8:1 cu pori logice Aplicaiile MUX Cele mai importante aplicaii ale multiplexoarelor sunt urmtoarele: Selecia secvenial; Conversia paralel/serie; Realizarea sistemelor de transmisie a datelor pe un singur canal, de tip Implementarea circuitelor logice combinaionale cu o singur ieire. Implementarea CLC cu MUX Pe lng rolul de a selecta diverse surse de semnal, multiplexorul poate fi folosit pentru a genera i pentru a simplifica (minimiza) funcii logice. Relaia care definete funcionarea unui MUX cu 8 intrri poate fi scris i sub forma: 131
MUX/DMUX;
W = P0D0 + P1D1 + P2D2 + P3D3 + P4D4 + P5D5 + P6D6 + P7D7 unde s-a considerat: E = 1 . n aceast relaie s-au folosit urmtoarele notaii: D0,D1,D7 datele de intrare Pi = S2S1S0 codurile binare de selecie (Pi = CBA). Dac D0 = D1= .= D7 = 1 atunci MUX furnizeaz la ieirea W toi termenii canonici ai FCD. n acest caz, variabilele funciei W realizat de multiplexor sunt variabilele de selecie:
W = S 2 S 1 S 0 + S 2 S 1S 0 + S 2 S 1S 0 + ... + S 2 S 1S 0
Eliminarea unora dintre aceti termeni se poate realiza prin punerea la 0 logic a intrrilor de date corespunztoare intrrii Di. Exemplul 10.1 Implementarea funciei: fi = P0 + P3 + P5 + P7 se realizeaz cu MUX dac se ndeplinesc condiiile: D0= D3= D5= D7= 1 i D1= D2= D4 = D6= 0, ceea ce nseamn c funcia W se va scrie astfel:
f = D(CBA ) + D(CBA ) + D(CBA ) + D(CBA ) + D(CBA ) + D(CBA ) + + D(CBA ) = DP0 + DP3 + DP6 '+DP1 + DP3 '+DP5 + DP7 = = DP0 '+DP1 + 0P2 + 1P3 + 0P4 + DP5 + DP6 + DP7
Aceast funcie se poate implementa cu un MUX cu 2
' ' ' ' ' ' ' ' ' ' ' '
n-1
= 8 intrri de date
Modulul 10
"1" D C B A
D7 D6 D5 D4 D3 D2 D1 D0 S1 S2 S3
"0"
MUX
W E
f(A, B, C)
Fig. 10.3. Implemetarea unei funcii de 4 variabile cu un MUX cu 2 intrri de date i 3 intrri de selecie Plecnd de consideraiile fcute mai sus, pentru funcia din exemplul 10.1 se observ c:
3
P0 = D C B A ;
P0 ' = C B A
deci implementarea funciei f = P0+ P3+ P5+ P7 se poate face ca n fig. 10.4.
"1" D0, D3, D5, D7=1 C B A
D7 D6 D5 D4 D3 D2 D1 D0 S1
"0"
MUX
S3 W E
"0"
f(A,B,C)=P 0+P3+P5+P7
Fig. 10.4. Implementarea cu MUX a funciei din exemplul 10.2 Observaii 1. Implementarea funciilor logice cu MUX are ca suport fizic faptul c un MUX 2 : 1, n nivelul I produce toi termenii produs, pe care apoi i nsumeaz logic n nivelul SAU, o singur dat, pentru realizarea unei singure funcii logice. Aceasta este o limitare intrinsec a acestui circuit logic combinaional. 2. La implementarea circuitelor logice combinaionale cu MUX nu este necesar minimizarea. 133
n
intrri (i nu cu 2 intrri), dac numrul termenilor funciei este mai mic dect
n
numrul de intrri. Aceast soluie este mai economic dect dac s-ar folosi un MUX cu 2 intrri de date. 4. Cele 2 2 =16 funcii logice de 2 variabile se pot implementa cu MUX 4:1, adic cu MUX-uri cu 4 intrri de date i 2 intrri de selecie:
D3 D2 D1 D0 11 10 01 00
2
M U X
D0 D1
f(A,B)
0 1
MUX 2n:1
Dn-2 Dn-1
Sn-1
S0
Fig. 10.5. Multiplexoare 2 :1 i 2 :1 La ieirea acestui multiplexor se obin toate funciile logice de 2 variabile: f 2 = D3 AB + D2 AB + D1 AB + D0 AB ; D3D2D1D0 { 0,1} Cele 16 forme ale acestei funcii se mpart n dou categorii: 6 forme banale:
2n
0; 1; A; B; A; B
AB, AB, AB, AB, A + B, A + B, A + B, A B, A B
10 forme nebanale:
Trebuie remarcat faptul c pentru obinerea formelor banale nu este necesar s se foloseasc un MUX. Ele se pot obine fr nici o procesare, folosind pori logice obinuite: I, SAU, SAU-EXCLUSIV etc. 5. Multiplexorul (MUX) poate fi comparat cu un comutator rotativ multipoziional. Extinderea multiplexrii Extinderea capacitii de multiplexare (selecie) se poate face folosind un numr corespunztor de MUX-uri standard, validate succesiv prin intermediul unui circuit de decodare. n cazul n care sunt disponibile MUX cu mai puine linii de intrare, extinderea multiplexrii se poate realiza prin structurarea pe mai multe nivele, 134
Modulul 10
fiecare nivel avnd MUX-uri de capacitate mai mic. Ieirile MUX-urilor de pe un nivel se aplic pe intrrile MUX-urilor de pe nivelul urmtor. Aceast organizare se numete organizare n arbore, cu divergena de la ieire spre intrare. Spre exemplificare, multiplexarea n cazul a 16 linii de date de intrare, se poate realiza folosind multiplexoare 4:1, aa cum se poate vedea n fig. 10.6
D15D14D13D12
D11D10 D9 D8
D 7 D6 D 5 D 4
D3 D2 D1 D0
A B
S1 S0
MUX 4:1
W
MUX 4:1
W
MUX 4:1
W
MUX 4:1
W
C D
MUX 4:1
W
Fig. 10.6. Multiplexare 16 : 1, realizat pe dou nivele cu MUX 4:1 n aceast structur arborescent, datele de intrare se aplic la ramuri, fiind selectate apoi pe trunchiul arborelui Observaie 1. MUX-ul de pe ultimul nivel va avea intrarea de validare general pentru organizarea extins, toate intrrile de validare ale celorlalte MUX-uri, fiind puse n starea activ E = 0 . 2. Cuvntul de selectare a fost mprit n dou cmpuri: cmpul cu biii cei mai semnificativi se repartizeaz pe ultimul nivel, cmpul cu biii cei mai puin semnificativi se repartizeaz la primul nivel. Selectarea datelor O conversie paralel/serie a datelor se poate realiza uor i simplu cu un MUX 2 :1. Biii unui cuvnt de lungimea 2 se aplic pe cele 2 intrri ale 135
n n n
multiplexorului.
Aplicnd
succesiv
pe
intrrile
de
selecie
n
cuvintele
corespunztoare n cod binar natural de la 0 la n-1, la ieire se transfer succesiv (n ordine) toi biii cuvntului aplicat pe intrri. Serializarea cu un MUX 2 : 1 poate fi fcut n scopul transmisiei seriale pe un singur fir. Citirea secvenial a cte unui singur bit de pe fiecare din cele 2 intrri ale MUX se poate extinde la o citire de k bii prin utilizarea n paralel a k MUX-uri.
n
d0k
d1k
0 1 Yk
MUXk
0 1
2n-1
MUX2
0 1 2n-1 xn-1 x0
Y1
MUX1
Y0
2n-1 xn-1 x0
xn-1
x0
10.1.2. Demultiplexorul (DMUX) Este un circuit logic combinaional care permite transmiterea datelor de pe o cale de intrare I (E sau E) , pe una din cele 2 ci de ieire. Selectarea cii de ieire se face prin aplicarea unui cuvnt de selecie pe cele m intrri de selecie (adres). Se poate afirma c demultiplexorul DMUX este un distribuitor de informaie de pe o linie de intrare pe 2 linii de ieire. 136
n n
Modulul 10
S1 0 0 1 1
S0 0 1 0 1
Y2n-1 Y -2
2n
Y2
DMUX
Y1 Y0
I Y1
Y0
xm-1 xm-2
x0
NIVEL "I"
SELECTARE ADRESE S1 S0
Fig. 10.8. Demultiplexorul: simbolul logic, structura i tabela de adevr a unui DMUX 4:1 De obicei, demultiplexoarele (DMUX) au ieirile Yi active n starea 0, iar intrarea I are rolul de variabil de validare (ENABLE). Ea se obine de obicei printro funcie logic de mai multe semnale (figura 10.9).
S2 S1 S0 Q7 Q6 Y7 Y6
DMUX 8:1
G2A G2B G1 Q0 Y0
I = ENABLE = G1 G 2 A G 2B
137
= Pi
Dac n tabela de adevr sunt mai puine valori de 0 logic dect de 1 logic, se poate face sinteza funciei negate. Prin introducerea minitermenilor negai de la ieirea DMUX, corespunztori valorilor 0 logic din tabela de adevr, ntr-o poart NAND (AND + NON) se obine negata funciei negate, adic funcia propriuzis.
(2, 4, 7) = (0,1, 3, 5, 6)
0 0
Aceast funcie se poate implementa folosind un demultiplexor DMUX 8:1, dup cum se vede n figura 10.10. La ieirea i a DMUX se obine un produs logic Pi:
Yi = Pi = S 0 S 1 S 2 ....S n1
Se observ c implementarea funciei const, de fapt, n colectarea tuturor minitermenilor Pi care au valoarea 1 logic cu o poart NAND, pentru a putea realiza produsul logic negat al mintermenilor negai: 138
Modulul 10
S2 S1 S0
Q7 Q6
DMUX 8:1
E G2A G2B G1
Q0
10.1.3. Codificatorul (codorul) Este un circuit logic combinaional care furnizeaz la ieiri un cuvnt binar de m bii, atunci cnd numai una din cele n intrri ale sale este activat. Operaia se numete codificare sau codare. Codificatorul realizeaz operaia de asignare a unui cuvnt de cod fiecrui element al unei mulimi X:
Cuvintele de intrare sunt numai cele care au un singur bit 1 logic, corespunztor intrrii activate, adic xi = 1. Rezult deci c forma canonic disjunctiv FCD a funciei se scrie astfel:
i = 1, 2,...., n k = 0, 1, 2...., m 1 a {0,1} i
YK = ai xi
i =1
Aceast relaia indic faptul c, fizic, un codificator se poate realiza cu pori SAU (OR).
139
In-1 In-2
C
x3 x2 x1 I3 I2 I1
Exemplul 10.4 Codificarea cifrelor zecimale 1 10. Tabela de adevr a CLC care realizeaz aceast operaie este prezentat n fig. 10.12. L x1 I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 1 0 0 0 0 0 0 0 0 0 x2 0 1 0 0 0 0 0 0 0 0 x3 0 0 1 0 0 0 0 0 0 0 x4 0 0 0 1 0 0 0 0 0 0 INTRRI x5 0 0 0 0 1 0 0 0 0 0 x6 0 0 0 0 0 1 0 0 0 0 x7 0 0 0 0 0 0 1 0 0 0 x8 0 0 0 0 0 0 0 1 0 0 x9 0 0 0 0 0 0 0 0 1 0 x10 0 0 0 0 0 0 0 0 0 1 Y3 0 0 0 0 0 0 0 1 1 1 IEIRI Y2 0 0 0 1 1 1 1 0 0 0 Y1 0 1 1 0 0 1 1 0 0 1 Y0 1 0 1 0 1 0 1 0 1 0
140
Modulul 10
INTRRI
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
CODIFICATOR
Linia activata L
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10
O3 Y3
O2 Y2 Y1
IEIRI
O1
O0 Y0
Fig. 10.12. Codificator binar-zecimal: tabel de adevr i implemetare cu pori logice SAU (OR) Din tabela de adevr se observ c: numrului i. Operaia de codificare este suportat de un nivel logic SAU, deci circuitul poate fi implementat cu funcii SAU (OR). Activarea intrrii (elementului) xi va genera la ieirea Oi codul binar al
Codificatorul prioritar Fa de un codificator uzual, un codificator prioritar genereaz la ieire, dac mai multe intrri sunt activate simultan, codul intrrii activate care are prioritatea cea mai mare (cea mai ridicat). Pentru aceasta, fiecrei intrri i se atribuie o prioritate care crete cu numrul de ordine al intrrii. Codificatorul prioritar este prevzut, n afar de ieirile obinuite i cu alte ieiri i intrri, de exemplu o intrare OE (Output Enable) pentru validarea ieirilor Oi, o ieire (O) care s semnalizeze o operaie eronat, o intrare E pentru validarea circuitului etc. 141
Aplicaie Sistemul de servire a ntreruperilor multiple la P poate fi mbuntit prin utilizarea unui codificator prioritar (fig. 10.13). La solicitarea unui periferic sau a mai multor periferice simultan, microprocesorul P, printr-o rutin de scrutare (POLLING TECHNIQUE) trebuie s identifice numrul perifericului cu prioritate maxim care a solicitat ntreruperea. n funcie de acest numr, P determin adresa de nceput a rutinei pentru servirea perifericului respectiv. Prin folosirea unui codificator prioritar PE, acest timp de rspuns al P la solicitarea unui periferic se micoreaz considerabil [16].
D7 D3 D2 P D1 D0 O2 IRQ O I7 O1 O0 I1 MAGISTRALA DE DATE (DATA BUS)
Vcc
PE
PERIFERICE
Fig. 10.13. Sistem de servire a ntreruperilor multiple la un P Cnd una sau mai multe dintre intrrile I0..I7 devin active, codificatorul prioritar genereaz semnalul (O) care activeaz semnalul de cerere de ntrerupere ctre P - IRQ i totodat nscrie pe magistrala de date codul perifericului cu prioritatea cea mai ridicat care a solicitat ntreruperea. Prin aceasta, se elimin timpul de rulare a rutinei de scrutare pentru identificarea perifericului, deoarece acesta codific prioritar, nscrie un cuvnt de cod pe magistrala de date (DATA BUS) care poate fi utilizat de ctre P n calculul adresei de nceput a rutinei de servire a perifericului. Observaie Dac se noteaz cu N numrul binar exprimat de configuraia de intrare x7x6.x0 i cu M partea ntreag a numrului exprimat prin codul binar Y2Y1Y0, corespondena ntre intrare-ieire pentru un codificator prioritar este: M = [log2N] 142
Modulul 10
Deci, fizic, codificatorul prioritar calculeaz partea ntreag a logaritmului n baza 2 (log2 ) a numrului binar aplicat la intrare [12].
10.1.4. Decodificatorul (decodorul) Decodorul este un CLC cu mai multe ieiri, care servete la identificarea unui cod de intrare prin activarea unei singure linii de ieire, corespunztoare acestui cod. Numrul maxim de linii de ieire distincte m, corespunde numrului de combinaii posibile ale celor n variabile de intrare: m = 2 .
xn-1 xn-2 In-1 In-2 Ym-1 Ym-2
n
n LINII DE
INTRARE
D
x2 x1 x0 I3 I2 I1 Y2 Y1 Y0
m LINII DE
IEIRE
m=2n
Fig. 10.14. Decodificatorul (decodorul) Dac se noteaz cu N = xn-1, xn-2x1, x0 numrul configuraiilor binarede intrare i cu M = ym-1ym-2..y1y0 numrul binar exprimat de configuraiile binare de ieire, atunci decodorul realizeaz funcia M = 2 . Aceast funcie este inversa funciei realizat de codificatorul prioritar. Observaii 1. Dac analizm funcia realizat de un DMUX n care I = 1, rezult c decodorul este, de fapt, un identificator de cod. 2. Decodorul realizeaz aceeai funcie ca circuitul DMUX cu un DMUX 1:2 cu I = 1 este identic cu un decodor n : 2 : 3. Operaia de decodificare este (poate fi) realizat la un nivel NAND, deci decodorul poate fi implementat cu pori NAND.
n n N
I = 1. Deci
Dup cum sugereaz i numele, acest decodor realizeaz decodarea (identificarea) primelor 10 combinaii binare de intrare (de la 0 la 9), pentru fiecare dintre acestea fiind activat una din cele 10 ieiri ale decodorului. Simbolul logic i schema de principiu a decodorului sunt prezentate n figurile urmtoare.
9 D C B A
7442
2 1 0
0=DCBA 1=DCBA 2=DCBA 3=DCBA 4=DCBA 5=DCBA 6=DCBA 7=DCBA 8=DCBA 9=DCBA
Modulul 10
Tabela de adevr a decodorului TTL SN7442 este urmtoarea: Nr. D 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 INTRRI C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 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 IEIRI (DECIMAL OUTPUT) 2 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 4 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 5 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 6 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 8 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 9 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
Principalele tipuri de decodoare: 74145); decodoare binar 7 segmente (BCD 7 segmente), cu 4 intrri i 7 decodor cod Gray/zecimal cu 4 intrri i 10 ieiri (7444); decodor BCD exces 3 n zecimal, cu 3 intrri i 8 ieiri (7443). Observaii 1. Decodoarele se pot implementa att cu pori NAND ct i cu pori NOR. 2. Implementarea decodoarelor ridic probleme de complexitate atunci cnd numrul n al variabilelor de intrare crete ieiri (7446, 7447); decodoare binar-zecimal BCD (Binary Coded to Decimal) cu 4 intrri i 10 ieiri (care pot funciona i ca DMUX cu 3 intrri i 8 ieiri (7442, 7445, 74141,
145
3. Reducerea complexitii decodoarelor se poate face prin mai multe metode: a) mprirea cuvntului de cod de la intrare n dou cmpuri de lungimi
n1
i D2 - n2:2 , pentru
n2
care numrul ieirilor este mai mic dect pentru un singur decodor (figura 10.15): +2
n2
2 ; n = n1 + n2
n1
Ieirile celor 2 decodoare concur la selectarea unor pori NAND cu dou intrri plasate n nodurile unei matrice de dimensiunile 2 cele 2 ieiri.
n
n2
D2
O3 x3x2 O3 x1 O2 O1 x0 O0 x1x0 x1x0 x1x0 x1x0 O2 x3x2 O1 x3x2 O0 x3x2
x3 x2
D1
Fig. 10.16. Reducerea complexitii decodoarelor b) Organizarea decodorului pe 2 nivele, fiecare nivel avnd decodoare de capacitate mai redus: - decodorul trebuie s aib intrri de validare (ENABLE) - cuvntul de intrare se mparte n dou cmpuri - biii cmpului superior se aplic la decodorul din primul nivel - biii cmpului inferior se aplic pe intrrile decodoarelor de la nivelul 2 - semnalele de ieire ale decodorului din primul nivel sunt semnale de validare pentru decodoarele din nivelul 2 (fig. 10.17). n acest mod, fiecare decodor de la nivelul 2 genereaz un numr egal de termeni canonici produs (minitermeni) dar situai n intervale disjuncte. Aceasta este o organizare n arbore", cu divergena de la intrare spre ieire. 146
Modulul 10
10.1.5. Convertorul de cod (transcodorul) Este un circuit logic combinaional care, pentru un cuvnt aplicat la intrare, va genera un alt cuvnt la ieire, deci circuitul realizeaz (mapeaz) o aplicaie ntre o mulime de cuvinte de intrare i o mulime de cuvinte de ieire, lungimile celor dou cuvinte fiind arbitrare. Maparea implementat de un transcodor trebuie s fie de 1:1. De fapt, orice circuit logic combinaional cu ieiri multiple poate fi considerat ca un convertor de cod. Organizarea unui transcodor se bazeaz pe o tabel de adevr care exprim maparea ntre cuvintele de intrare i cuvintele de ieire. Argumentul reprezint codul de intrare iar funcia (de ieire) reprezint codul de ieire.
Intrari ENABLE ENABLE E NIVEL 1 x3 x2
1
x1 x0
D 2:4
D 4:16
16
E NIVEL 2
D 2:4
D 2:4
D 2:4
D 2:4
P11 P10 P9 P8
P7 P6 P5 P4
P 3 P 2 P1 P 0
Fig. 10.17. Organizarea decodorului pe 2 nivele de decodificatoare Structura general a unui transcodor n general, const dintr-o pereche decodificator codificator. codul de intrare de n bii este aplicat mai nti la nivelul de decodificare,
n
nou cod al cuvntului original nivelul SAU (OR). Cele dou nivele AND i OR corespund celor dou operaii necesare implementrii funciei sub forma canonic disjunctiv FCD. Schema bloc a unui transcodor este urmtoarea:
codul de intrare
D n:2n nivel I
2n ieiri 1 activ
2n intrri
codul de ieire
10.1.6. Comparatorul digital Este un circuit logic combinaional utilizat pentru determinarea valorii relative a dou numere binare A i B. Variabilele de intrare sunt cei n bii ai fiecruia dintre cele 2 numere binare A i B. Variabila de ieire arat care din relaiile: A = B; A < sau A > B este adevrat. Considernd dou numere de 1 bit A i B, stabilirea egalitii dintre ele se poate face cu o poart EX OR care ndeplinete funcia logic:
f e = A B = AB + AB = AB + A B
Se constat c pentru: A=B AB fe = 1 fe = 0
A 0 0 1 1
B 0 1 0 1
fe 1 0 0 1
Determinarea inegalitilor A>B i A<B se face utiliznd funcia de superioritate fs i funcia de inferioritate fi: 148
Modulul 10
f s = AB ;
fi = AB
f s = AB = 1 pentru A = 1, B = 0 f i = A B = 1 pentru A = 0, B = 1
O astfel de funcie se poate implementa, pentru bitul de ordinul k, n modul urmtor:
Exemplul 10.6 Comparator pentru 2 numere de 4 bii: A (A3A2A1A0) i B (B3B2B1B0) a) Condiia de egalitate A = B presupune existena egalitilor: A3 = B3; A2 = B2; A1 = B1; A0 = B0. Utiliznd pentru fiecare bit un circuit ca cel anterior, condiiile de mai sus devin: Fe = fe0fe1fe2fe3 funcia de egalitate Aceast funcie ia valoarea 1 logic pentru A = B i 0 logic pentru A B, ceea ce nseamn c poate fi implementat cu o poart I:
Fe (A=B)
b) Condiia A > B presupune ndeplinirea condiiilor: - A3 > B3 (fe3) sau: sau: sau: 149 - A2 > B2 i A3 = B3 (fe3)
Aceste relaii conduc la funcia de superioritate: Fs = fs3 + fs2fe3 + fs1fe2fe3 + fs0fe3fe2fe1 care ia valoarea 1 numai pentru A > B. c) Condiia A < B presupune ndeplinirea condiiilor: - A3 < B3 deci fi3 - A2 < B2 i A3 = B3 deci (fe3) - A1 < B1 i A2 = B2 i A3 = B3 A0 < B0 i A1 = B1 i A2 = B2 i A3 = B3 FI = fi3 + fi2fe3 +fi1fe2fe3 + fi0fe1fe2fe3 Pornind de la observaia c, ntotdeauna, numai una din funciile Fe, Fi i Fs poate fi adevrat, se pot scrie relaiile urmtoare: sau: sau: sau:
Fe = Fi Fs Fi = Fe Fs Fs = Fe Fi
Aceast constatare conduce la concluzia, c, n principiu, este necesar implementarea a numai dou din aceste funcii, cea de a treia obinndu-se cu dou inversoare i o poart I. n practic, se prefer implementarea tuturor celor 3 funcii de la punctele a, b, c n scopul uniformizrii timpilor de propagare pe cele 3 canale de ieire.
fe3 fs2 fe3 fs1 fe2 fe3 fe0 fe1 fe2 fe3 fe0 fe1 fe2 fe3 Fs' P1
P2
FS (A>B) P3
P4
150
Modulul 10
Observaii 1. Funcia de inferioritate Fi se obine n mod similar, ea avnd o structur identic cu Fs, dar mrimile de intrare care au indicele s (superior) se vor scrie cu indicele i (inferior). 1. Fa de relaia de de punctul b), circuitul din figur mai are o poart P4, care realizeaz funcia: P4 = fe0fe1fe2fe3Fs. Aceast poart mai adaug un termen la relaia b) care face posibil interconectarea a 2 sau mai multe comparatoare de 4 bii, intrrile suplimentare Fe, Fs i Fi conectndu-se la ieirile comparatorului de 4 bii de rang inferior. Exemplul 10.7 Comparator de numere de 8 bii Circuitul poate fi realizat cu comparatoare de 4 bii, de tipul SN7485:
+5V A0 A1 A2 A3 B0 B1 B2 B3 A4 A 5 A 6 A7 B4 B 5 B 6 B 7
Fe1'
C1 7485
Fe2'
C2 7485
Fig. 10.19. Comparator de 8 bii realizat cu comparatoare integrate de 4 bii de tipul SN7485 Semnalele de intrare Fe2, Fs2, Fi2 determin ieirile comparatorului C2 n conformitate cu decizia comparatorului C1, numai atunci cnd sunt ndeplinite simultan condiiile: A4 = B4; A5 = B5; A6 = B6; A7 = B7.
10.1.7. Detectorul de imparitate Detectorul de imparitate este un circuit logic combinaional care are rolul de a determina paritatea sau imparitatea numrului de variabile de intrare care au valoarea 1 logic. Realizarea sa se bazeaz pe proprietatea porii logice SAU-EXCLUSIV (EX-OR) de a rspunde cu 1 logic cnd pe una din intrri este 1 logic i pe cea de a 2-a 0 logic (imparitate), sau prin 0 logic atunci cnd pe ambele intrri sunt 1 , respectiv 0 logic (paritate). 151
Aceast proprietate se poate extinde pentru cuvinte de cod de 2, 4, 8...bii, folosind mai multe pori EX-OR. Exemplul 10.8 Detectorul de imparitate pentru 4 variabile de intrare se poate implementa folosind 3 pori logice SAU-EXCLUSIV (XOR), aa cum se poate vedea n fig. 10.20. Se observ c: intrare. D 0
A B C D Y1 Y0 Y2
Y0 = 1 dac numrul variabilelor de intrare 1 este impar; Y0 = 0 dac numrul variabilelor de intrare 1 este par.
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Fig. 10.20. Schema i tabela de adevr a detectorului de imparitate pentru 4 variabile de intrare
Modulul 10
Circuitul se poate obine folosind 2 circuite identice ca cel folosit pentru 4 variabile i aplicnd ieirile Y0 i Y0 ale acestora la intrarea unei pori SAUEXCLUSIV, dup cum se vede n figura 10.20. Din tabela de adevr a circuitului se observ c: Y0 = 1 n caz de imparitate Y0 = 0 n caz de paritate Prin dublarea circuitului astfel obinut i ataarea a nc unei pori SAUEXCLUSIV, se obine un detector de imparitate de 16 bii .a.m.d., dup cum se poate vedea n fig. 10.21
A B C D Y1 Y0' Y2 Y0" (P)
10.1.8. Detectorul de paritate Detectoarele de paritate se obin din detectoarele de imparitate prin complementarea ieirii. Dac se adopt soluia prezentat n exemplul 10.21, pentru Y0 = 1 (P = 1), circuitul funcioneaz ca detector de paritate, iar pentru Y0 = 0 (P = 0), ca detector de imparitate. Acest circuit poate fi privit i ca generator de paritate (imparitate) deoarece pentru P = 1/0 genereaz la ieirea Y0 un bit care semnalizeaz paritatea/ imparitatea. Aplicaie Detectarea erorilor de transmisie a informaiei binare. n cazul transmisiei cu erori, se semnalizeaz acest lucru prin bitul 1 (de exemplu) sau se semnalizeaz transmisia fr erori prin bitul 0. Detectorul de paritate I funcioneaz la locul emisiei informaiei (E) ca generator de imparitate, furniznd la ieirea Ya un bit de imparitate (1) n toate cazurile n care numrul variabilelor de intrare (A, B, C, D) care au valoarea 1 logic este impar. 153
Pe magistrala de date se transmite att bitul Ya ct i variabilele de intrare, care, mpreun, vor avea un numr par de bii egali cu 1. Circuitul II de la locul de recepie (R) a informaiei funcioneaz ca detector de paritate pentru cuvntul de 5 bii transmis. Pentru transmisia fr erori - Yb = 0, iar apariia unei erori de transmisie care produce modificarea paritii, este semnalizat prin Yb = 1. Acest mod de detectare a erorilor se utilizeaz i la codul ASCII 7 la care se adaug al 8 - lea bit (1/0). Astfel se semnalizeaz c transmisia ar putea fi corect sau c este incorect.
A B
C D
A B C D Pa I Ya 1 - impar 0 - par
A B C D Pb II Yb 0/1
10.1.9. Sumatorul Operaia fundamental efectuat n calculatoare este adunarea. Scderea, ca i nmulirea i mprirea, deci toate operaiile aritmetice, se reduc, n esen, tot la operaia de adunare. Sumatorul este un subsistem logic combinaional care asigur, direct sau indirect, efectuarea tuturor operaiilor aritmetice ntr-un sistem de calcul. Semisumatorul este un CLC care servete pentru efectuarea sumei a 2 numere binare de ctre un bit, fr a ine seama de transportul de la bitul de semnificaie imediat inferioar. Sumatorul complet este un CLC care efectueaz suma a 2 numere binare de cte 1 bit, socotind i transportul de la bitul mai puin semnificativ. 154
Modulul 10
a) Semisumatorul este prezentat n fig. 10.23: n aceast reprezentare: - variabilele de intrare sunt: A, B (numere de 1 bit); - variabilele de ieire sunt: suma parial S0 i transportul C0. INTRRI A 0 0 1 1 B 0 1 0 1 00 01 01 10 IEIRI S0 0 1 1 0 C0 0 0 0 1
S0 C0 A B
1/2
Fig. 10.23. Semisumatorul: tabela de adevr i simbolul Din tabela de adevr rezult expresiile sumei S0 i a transportului C0: S 0 = AB + AB ; C 0 = AB Aceste relaii conduc la implementarea semisumatorului folosind o poart SAU-EXCLUSIV i o poart I, conform schemei logice din fig. 10.24. Se observ c n cazul semisumatorului nu se ine seama de bitul de transport.
A B
S0
C0
Fig. 10.24. Implementarea semisumatorului cu pori logice
b) Sumatorul complet Sumatoarele complete realizeaz nsumarea a dou numere (secvene) binare prin nsumarea biilor de acelai rang. Astfel, n rangul i al unui sumator se nsumeaz cei 2 bii Ai i Bi precum i transferul Ci de la rangul anterior. n urma sumrii pe rangul i se genereaz suma Si i transferul urmtor Ci+1. Aceast celul se mai numete sumator (3,2) deoarece are 3 intrri (Ai, Bi, Ci) i 2 ieiri. Din tabela de adevr se observ c: Si = AiBiCi ; Ci+1 = (BiCi) + BiCi 155
Aceste expresii ale Si i Ci+1 conduc la dou implementri ale celulei sumator cu pori X-OR, AND i NAND, aa cum se poate vedea n fig.10.26.
INTRRI Ai 0 0 1 1 0 0 1 1 Bi 0 1 0 1 0 1 0 1 Ci 0 0 0 0 1 1 1 1 IEIRI Si 0 1 1 0 1 0 0 1 Ci+1 0 0 0 1 0 1 1 1
Ai
Ci
a)
b)
Si
Ci+1
Si
Ci+1
Fig. 10.26. Implementarea sumatorului complet cu pori logice Se observ c n figura 10.26 a) transferul urmtor Ci+1 se calculeaz pe 3 nivele logice deci necesit un timp de propagare egal cu 3tp (timpul de propagare printr-o poart). De aceea s-a adoptat schema 10.26 b), unde pentru obinerea transportului Ci+1 sunt necesari doar doi timpi 2tp de ntrziere (propagare). 156
Modulul 10
De fapt, n mod normal, un sumator complet se implementeaz folosind dou semisumatoare, aa cum se exemplific n figura 10.27.
Ai Bi
Ci'
1/2
S i' Ci
Ci+1
Ci"
1/2
Si
Fig. 10.27. Schema bloc a unui sumator complet n sistemele digitale care folosesc structuri integrate de sumatoare, care se cascadeaz pentru nsumarea unor cuvinte binare de mai muli bii (4, 8, 16 etc.). O astfel de structur este constituit din sumatoare complete de 1 bit, conectate ca n fig. 10.28 i n care operaiile decurg n modul urmtor: adunarea biilor se efectueaz paralel; propagarea transportului se efectueaz serie.
O astfel de structur se numete sumator cu transport progresiv (ripple carry adder) sau sumator paralel i are ca deficien principal viteza de calcul redus deoarece sumarea nu este completat pn cnd nu se calculeaz transferul prin celulele sumatorului pentru bitul cel mai semnificativ (de ordin n). Astfel, deoarece transportul se propag succesiv de la o celul la alta, o celul oarecare nu poate genera rspunsul corect al operaiei de nsumare pn nu primete transportul de la cea anterioar ei (de ordin inferior). O astfel de structur integrat pentru un sumator de 16 bii, la care ntrzierea tipic pe o celul este de 30ns, ntrzierea cu care se efectueaz nsumarea este de 480ns [9]. n aplicaiile n care se cere o vitez de calcul mai mare se folosete un alt tip de sumator sumatorul cu transport anticipat (carry look-ahead adder). Ideea pe care se bazeaz funcionarea acestui sumator este urmtoarea [17]: calculul transportului pentru pentru obinerea sumei de rangul i se face nu n funcie de de 157
valorile anterioare ale transporturilor ci n funcie de valorile care se aplic n primul moment la intrrile sumatorului. Exemplificnd pentru sumatorul cu transport progresiv din fig. 10.28, circuitele care vor genera transportul anticipat dup principiul exous anterior sunt principiul prezentate n fig. 10.29. Se poate observa c aceste circuite devin extrem de complicate pe msur ce crete numrul biilor care se nsumeaz. Din aceast cauz, n foarte multe aplicaii se folosesc scheme mixte de sumatoare cu transport progresiv i sumatoare cu transport anticipat, fcndu-se un compromis ransport fcndu-se ntre vitez i cost. Pentru aceasta, aceste sumatoare se realizeaz sub form de blocuri (de cte 4 bii), n interiorul crora transportul se face anticipat, iar ntre blocuri transportul se propag succesiv [9] blocuri [9].
An-1 Bn-1 Ai Bi A0 B0
Cn
n-1
Ci+1
Ci
C1
C0
Sn-1
Si
S0
a)
b) Fig. 10.2 . Sumator cu transpor progresiv pentru cuvinte de n bii 10.28. a) structura de principiu; b) exemplificare pentru un sumator de 4 bii 158
Modulul 10
Exemplul 10.10 Sumator complet de 4 bii (4 bit binary full adders (4 adders). Acest circuit este realizat sub form integrat, circuitul TTL SN7483 fiind unul din tipurile de sumatoare integrate de 4 bii. Capsula i simbolul logic ale circuitului sunt prezentate n figura 10.30. circuitului 10.30.
B 4 4 C 4 C0 B1 A1 1 1 A
16 15 14 13 12 11 10 9
7483
1 2 3 4 5 6 7 8
C0
7483
3 4 C4
B Vcc A4 3 A 3 B3 2 B2 A 2
M U X
f(A,B)
a) 2 : 1 b) 2 : 1 c) 1 : 2
2 4 4
d) 1 : 2
5. Demultiplexorul este un circuit logic combinaional care permite: a) transmiterea datelor de pe o cale de intrare pe una din cele 2 ci de ieire 160
n
Modulul 10
b) distribuirea informaiilor de pe o linie de intrare pe 2 linii de ieire c) implementarea circuitelor logice combinaionale d) oricare din cele de mai sus 6. Circuitul logic combinaional din figura urmtoare este: a) un multiplexor MUX b) un demultiplexor DMUX c) un codificator d) un decodificator
G2A G2B G1
Q0
Y0
a) 1 : 2 c) 1 : 2
2 3
b) 1 : 2
d) 1 : 6 161
8. Codificatorul este un circuit logic combinaional care: a) furnizeaz la ieiri un cuvnt binar de m bii, atunci cnd numai una din cele n intrri ale sale este activat b) servete la identificarea unui cod de intrare prin activarea unei singure linii de ieire, corespunztoare acestui cod c) transmite datele de la una din cele n intrri la o cale de ieire unic d) toate cele de mai sus 9. Decodificatorul este un circuit logic combinaional care: a) furnizeaz la ieiri un cuvnt binar de m bii, atunci cnd numai una din cele n intrri ale sale este activat b) servete la identificarea unui cod de intrare prin activarea unei singure linii de ieire, corespunztoare acestui cod c) transmite datele de la una din cele n intrri la o cale de ieire unic d) toate cele de mai sus 10. Circuitul logic combinaional din figur este:
D C B A
0=DCBA 1=DCBA 2=DCBA 3=DCBA 4=DCBA 5=DCBA 6=DCBA 7=DCBA 8=DCBA 9=DCBA
162
Modulul 10
a) un multiplexor b) un demultiplexor c) un codor (codificator) d) un decodor (decodificator) 11. Circuitul logic combinaional din figur este:
fsk (A>B) A B fek (A=B) fik (A<B)
a) un comparator numeric b) un detector de paritate c) un detector de imparitate d) nici unul din cele de mai sus 12. Circuitul logic combinaional din figur este:
a) un comparator numeric b) un semisumator c) un sumator d) nici unul din cele de mai sus
163