Dan NICULA
ELECTRONIC
˘
A DIGITAL
˘
A
Carte de ˆınat¸˘atur˘a 2.0
Editura Universit˘at¸ii TRANSILVANIA din Bra¸sov
ISBN 978-606-19-0563-8
2015
Lect¸ia 8
Codificatoare ¸si decodificatoare
8.1 Not¸iuni teoretice
Decodificatorul N : 2
N
are N intr˘ari de date pe care prime¸ste codul binar al unui num˘ar ˆın domeniul ˆıntre 0 ¸si
2
N
1. La un moment dat, o singur˘a ie¸sire a decodificatorului este activ˘a: cea cu indexul egal cu num˘arul prezentat
la intrare. Starea activ˘a a ie¸sirii poate ˆın 0 sau ˆın 1. Se poate considera a decodificatorul genereaz˘a pe cele 2
N
ie¸siri tot¸i mintermii celor N variabile prezentate la intrare.
Un decodificator poate avea o intrare de validare. Dac˘a intrarea de validare este activat˘a, decodificatorul funct¸ioneaz˘a
¸si prezint˘a la ie¸sire valoarea deco dificat˘a a intr˘arii (o singur˘a ie¸sire activat˘a). Dac˘a intrarea de validare nu este activat˘a,
toate ie¸sirile decodificatorului sunt ˆın starea inactiv˘a. Intrarea de validare ofer˘a suport pentru extinderea capacit˘at¸ii
de decodificare.
a) b)
Figura 8.1 a) Simbol de decodificator 3 : 8, b) Simbol de codificator prioritar de 8 bit¸i.
Codificatorul prioritar de 2
N
bit¸i are 2
N
intr˘ari ¸si N ie¸siri. La ie¸sire se prezint˘a codul binar al celei mai
prioritare intr˘ari activate. Codificatorul poate avea o ie¸sire care semnaleaz˘a aparit¸ia pe intrare a unei configurat¸ii
valide (cu cel put¸in un bit egal cu 1).
Orice funct¸ie logic˘a cu N intr˘ari poate implementat˘a cu urm˘atoarele resurse: decodificator N : 2
N
¸si o poart˘a
logic˘a de maximum 2
N1
intr˘ari.
Pentru implementarea unei funct¸ii de N variabile cu un DCD N : 2
N
funct¸ia nu trebuie minimizat˘a deoarece ˆın
nivelul AND sunt produ¸si tot¸i mintermii de N variabile.
Circuitul DCD N : 2
N
produce la ie¸sire tot¸i cei 2
N
mintermi de N variabile. Orice funct¸ie poate scris˘a sub
forma canonic˘a disjunctiv˘a (FCND) ca o ”sum˘a de mintermi”. Existˆand generat¸i tot¸i cei 2
N
mintermi la ie¸sirile
decodificatorului, mintermii necesari funct¸iei sunt selectat¸i ˆıntr-un nivel de logic˘a cu o poart˘a OR.
100 LECT¸ IA 8. Codificatoare ¸si decodificatoare
ˆ
In cazul ˆın care decodificatorul are ie¸sirile negate (ie¸siri active ˆın stare 0), mintermii sunt generat¸i negat¸i. Din
acest motiv, pentru implementarea unei funct¸ii exprimate prin FCND ˆın exteriorul decodificatorului trebuie
ad˘augat˘a o poart˘a NAND.
Pentru cazul ˆın care funct¸ia ˆınsumeaz˘a un num˘ar de mintermi mai mare decˆat jum˘atatea celor existent¸i 2
N1
,
se poate face sinteza funct¸iei negate F , deoarece aceasta se poate exprima cu mai put¸ini mintermi, ¸si ulterior se
neag˘a ie¸sirea.
Pentru cazul and decodificatorul are intr˘arile active ˆın 1, se poate exprima funct¸ia astfel ˆıncˆat a necesite ˆın
exterior o poart˘a NOR.
ˆ
In concluzie, implementarea optim˘a a unei funct¸ii exprimate ˆın FCND cu circuit decodificator se realizeaz˘a astfel:
Dac˘a decodificatorul are ie¸sirile active ˆın 1, iar funct¸ia un num˘ar de mintermi mai mic decˆat jum˘atate, colectarea
ˆıntr-o poart˘a OR a mintermilor existent¸i.
Dac˘a decodificatorul are ie¸sirile active ˆın 0, iar funct¸ia un num˘ar de mintermi mai mic decˆat jum˘atate, colectarea
ˆıntr-o poart˘a NAND a mintermilor existent¸i.
Dac˘a decodificatorul are ie¸sirile activeˆın 1, iar funct¸ia un num˘ar de mintermi mai mare decˆat jum˘atate, colectarea
ˆıntr-o poart˘a NOR a mintermilor inexistent¸i.
Dac˘a decodificatorul are ie¸sirile activeˆın 0, iar funct¸ia un num˘ar de mintermi mai mare decˆat jum˘atate, colectarea
ˆıntr-o poart˘a AND a mintermilor inexistent¸i.
8.2 Pentru cei ce vor doar a promoveze examenul
1. a se implementeze cu decodificator 3:8 funct¸iile:
a) F
a
(A, B, C) =
(0, 1, 7)
b) F
b
(A, B, C) =
(0, 1, 2, 5, 7)
2. a se implementeze cu decodificator 4:16 funct¸iile:
a) F
a
(A, B, C, D) =
(0, 1, 11)
b) F
b
(A, B, C, D) =
(3, 4, 12, 14)
3. a se implementeze cu un singur circuit DCD 3:8 si port¸i logice adit¸ionale) un circuit logic combinat¸ional cu
ie¸siri multiple definit de funct¸iile:
F
a
= m
0
+ m
3
+ m
5
+ m
7
F
b
= m
1
+ m
2
+ m
4
+ m
5
F
c
= m
3
+ m
4
+ m
6
F
d
= m
1
+ m
2
+ m
5
+ m
6
+ m
7
8.3 Pentru cei ce vor a ˆınvet¸e
1. a se implementeze cu decodificator 3:8 funct¸ia: F (A, B, C) =
(0, 1, 3, 5, 7).
Solut¸ie
Circuitul DCD 3 : 8 produce la ie¸sire tot¸i cei 2
3
= 8 mintermi de 3 variabile. Orice funct¸ie poate scris˘a sub
forma canonic˘a disjunctiv˘a (FCND) ca o ”sum˘a de mintermi”. Existˆand generat¸i tot¸i cei 8 mintermi la ie¸sirile
decodificatorului, mintermii necesari funct¸iei sunt selectat¸i ˆıntr-un nivel de logic˘a cu o poart˘a OR:
F (A, B, C) =
(0, 1, 3, 5, 7) = m
0
+ m
1
+ m
3
+ m
5
+ m
7
ˆ
In cazul ˆın care decodificatorul are ie¸sirile negate (ie¸siri active ˆın stare 0), mintermii sunt generat¸i negat¸i. Din
acest motiv, pentru implementarea unei funct¸ii exprimate prin FCND ˆın exteriorul decodificatorului trebuie
ad˘augat˘a o poart˘a NAND:
8.3. Pentru cei ce vor a ˆınvet¸e 101
F (A, B, C) =
(0, 1, 3, 5, 7) = m
0
+ m
1
+ m
3
+ m
5
+ m
7
= m
0
· m
1
· m
3
· m
5
· m
7
Pentru cazul ˆın care funct¸ia ˆınsumeaz˘a un num˘ar de mintermi mai mare decˆat jum˘atatea celor existent¸i 2
31
=
2
2
= 4, se poate face sinteza funct¸iei negate F , deoarece aceasta se poate exprima cu mai put¸ini mintermi, ¸si
ulterior se neag˘a ie¸sirea.
F (A, B, C) = m
0
+ m
1
+ m
3
+ m
5
+ m
7
= m
2
+ m
4
+ m
6
= m
2
+ m
4
+ m
6
= m
2
· m
4
· m
6
. Rezult˘a, a ˆın
exterior trebuie ad˘augat˘a o poart˘a AND cu trei intr˘ari:
F (A, B, C) = m
2
· m
4
· m
6
Pentru cazul and decodificatorul are intr˘arile active ˆın 1, se poate exprima funct¸ia astfel ˆıncˆat a necesite ˆın
exterior o poart˘a NOR:
F (A, B, C) = m
2
+ m
4
+ m
6
Figura 8.2 prezint˘a variantele de implementare cu decodificator a funct¸iei F (A, B, C) =
(0, 1, 3, 5, 7).
Figura 8.2 Implementarea funct¸iei F (A, B, C) =
(0, 1, 3, 5, 7) cu circuit decodificator, pentru problema 1.
2. Care din urm˘atoarele funct¸ii este implementat˘a pe circuitul din figura 8.3?
Figura 8.3 Circuit cu decodificatoare, pentru problema 2.
a) F (A, B, C) =
7
0
(0, 1, 3, 5, 6, 7)
b) F (A, B, C) =
7
0
(1, 2, 3, 5, 6, 7)
c) F (A, B, C) =
7
0
(1, 2, 3, 5, 6, 7)
d) F (A, B, C) =
7
0
(0, 1, 2, 4, 6, 7)
e) F (A, B, C) =
7
0
(1, 5)
102 LECT¸ IA 8. Codificatoare ¸si decodificatoare
Solut¸ie
Tabelul de adev˘ar al funct¸iei este:
A B C w
0
w
1
w
2
w
3
w
4
w
5
w
6
w
7
F
0 0 0 0 1 1 1 1 1 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1
0 1 0 1 0 1 1 1 1 0 1 1
0 1 1 1 1 0 1 1 1 0 1 1
1 0 0 1 1 1 0 1 1 0 0 0
1 0 1 1 1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 0 1 1 0 1
1 1 1 1 1 1 1 1 0 1 0 1
w
0
= A · B · C = m
0
= M
0
w
1
= A · B · C = m
2
= M
2
w
2
= A · B · C = m
3
= M
3
w
3
= A · B · C = m
4
= M
4
w
4
= A · B · C = m
6
= M
6
w
5
= A · B · C = m
7
= M
7
w
6
= w
0
· w
1
· w
2
· w
3
= M
0
· M
2
· M
3
· M
4
w
7
= w
0
· w
3
· w
4
· w
5
= M
0
· M
4
· M
6
· M
7
F = w
6
+ w
7
= M
0
· M
2
· M
3
· M
4
+ M
0
· M
4
· M
6
· M
7
= M
0
· M
4
· (M
2
· M
3
+ M
6
· M
7
) = M
0
· M
4
· ((M
2
+ M
6
) ·
(M
2
+ M
7
) · (M
3
+ M
6
) · (M
3
+ M
7
)) = M
0
· M
4
ˆ
In prelucr˘arile analitice s-a aplicat duala axiomei de distributivitate ¸si s-a t¸inut cont a M
i
+ M
j
= 1, i ̸= j.
S-au notat m(A, B, C) ¸si M(A, B, C) mintermii ¸si maxtermii celor 3 variabile de intrare.
Din tabelul de adev˘ar ¸si din calcule analitice rezult˘a a funct¸ia implementat˘a de circuit este:
F (A, B, C) =
(0, 4) =
(1, 2, 3, 5, 6, 7)
Deci, aspunsul corect este c).
3. a se implementeze cu circuite DCD 4:16 un circuit logic combinat¸ional cu ie¸siri multiple definit de funct¸iile:
F
1
= m
0
+ m
3
+ m
5
+ m
7
F
2
= m
1
+ m
2
+ m
4
+ m
5
+ m
8
+ m
11
+ m
12
+ m
14
+ m
15
F
3
= m
3
+ m
4
+ m
6
+ m
12
+ m
14
+ m
15
F
4
= m
1
+ m
2
+ m
5
+ m
6
+ m
7
+ m
8
+ m
9
+ m
15
Solut¸ie
Pentru implementarea unui CLC cu ie¸siri multiple se poate folosi un singur decodificator. Pentru fiecare ie¸sire
se utilizeaz˘a ate o poart˘a OR care une¸ste mintermii prezent¸i ˆın expresia unei funct¸ii.
4. a se implementeze urm˘atoarele funct¸ii cu circuit decodificator de 4 bit¸i. Implementat¸i acelea¸si funct¸ii utilizˆand
un decodificator de 3 bit¸i ¸si un multiplexor 2:1.
a) F
a
(A, B, C) =
(0, 2, 5, 7) e) F
e
(A, B, C, D) =
(2, 5, 7)
b) F
b
(A, B, C, D) = Π(2, 3, 4, 7) f) F
f
(A, B, C, D) =
(3, 6, 9, 12, 14, 15)
c) F
c
(A, B, C, D) =
(0, 3, 5, 6, 9, 10, 11, 12, 13) g) F
g
(A, B, C, D) =
(0, 1, 2, 3, 4, 15)
d) F
d
(A, B, C, D) = Π(2, 3, 6, 7, 8, 9, 13 , 14, 15) h) F
h
(A, B, C, D) =
(0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
Solut¸ie
Implementarea cu decodificator de 4 bit¸i a unei funct¸ii de 4 intr˘ari se face ar˘a minimizare, prin conectarea
intr˘arilor pe intr˘arile decodificatorului ¸si conectarea ˆıntr-o poart˘a OR a ie¸sirilor al aror index apare ˆın expresia
FCD a funct¸iei.
ˆ
In funct¸ie de num˘arul de mintermi care apar ˆın reprezentarea FCD, se poate opta pentru
implementarea negatei funct¸iei ¸si negarea adit¸ional˘a la final, ca ˆın figura 8.2.
Dac˘a funct¸ia are doar 3 intr˘ari, se poate conecta o constant˘a pe cea mai prioritar˘a intrare a decodificatorului.
O funct¸ie cu 4 intr˘ari se poate rescrie sub forma:
F (A, B, C, D) = A · H(B, C, D) + A · G(B, C, D)
Funct¸iile H(B, C , D) ¸si G(B, C, D ) se pot obt¸ine cu acela¸si decodificator si port¸i OR individuale). Ie¸sirile
port¸ilor OR se vor conecta pe intr˘arile de date ale unui multiplexor 2:1 a arui select¸ie este conectat˘a la intrarea
A.
8.3. Pentru cei ce vor a ˆınvet¸e 103
5. Implementat¸i urm˘atorul sistem de funct¸ii cu un decodificator ¸si un num˘ar minim de port¸i logice suplimentare.
a)
F
1
(A, B, C) =
(2, 4, 7),
F
2
(A, B, C) =
(0, 3),
F
3
(A, B, C) =
(0, 2, 3, 4, 7)
b)
F
1
(A, B, C) = A · B · C + A · C,
F
2
(A, B, C) = A · B · C + A · B,
F
3
(A, B, C) = A · B · C + A · B
6. a se implementeze urm˘atoarele funct¸ii cu circuit deco dificator ¸si port¸i OR suplimentare:
F
1
= A + B + A · B · C
F
2
= A + B + A · B · C
F
3
= A · B · C + A + B
7. Proiectat¸i structura intern˘a a unui decodificator de 2 bit¸i cu intrare de validare, implementat˘a cu port¸i NOR ¸si
NOT.
8. Proiectat¸i un decodificator de 2 bit¸i cu intrare de validare implementat exclusiv cu port¸i NOR.
9. Implementat¸i un circuit codificator cu prioritate de 4 bit¸i cu ie¸sire de validare cu circuit decodificator cu intrare
de validare ¸si un num˘ar minim de port¸i logice adit¸ionale. Implementat¸i acela¸si circuit cu port¸i logice NAND pe
dou˘a nivele.
Solut¸ie
D
3
D
2
D
1
D
0
C
1
C
0
V
1 X X X 1 1 1
0 1 X X 1 0 1
0 0 1 X 0 1 1
0 0 0 1 0 0 1
0 0 0 0 X X 0
10. Proiectat¸i circuitul care comand˘a un afi¸saj cu 7 segmente pe baza unui cod BCD. Implementat¸i circuitul cu
decodificator.
Solut¸ie
Se conecteaz˘a variabilele de intrare pe intr˘arile de select¸ie ale decodificatorului. Pentru fiecare din cele 7 funct¸ii
de ie¸sire (asociate segmentelor) va necesar˘a ate o poart˘a OR.
11. Proiectat¸i un convertor din cod BCD ˆın cod Gray utilizˆand un circuit decodificator.
Solut¸ie
Circuitul are 4 intr˘ari ¸si 4 ie¸siri. Se utilizeaz˘a un decodificator 4:16 cu care se obt¸in tot¸i mintermii variabilelor
de intrare ˆın cod BCD. Cele 4 ie¸siri se obt¸in din conectare prin port¸i OR a mintermilor corespunz˘atori funct¸iilor
de transfer.
12. Proiectat¸i un decodificator 4:16 implementat cu un inversor pe post de decodificator 1:2 ¸si dou˘a decodificatoare
3:8 cu validare.
Solut¸ie
Cei mai put¸in semnificativi 3 bit¸i se conecteaz˘a pe intr˘arile de select¸ie ale celor dou˘a decodificatoare 3:8. Cele
16 ie¸siri ale celor dou˘a decodificatoare vor reprezenta ie¸sirile decodificatorului 4:16. Cel mai semnificativ bit al
intr˘arii decodificatoului se ”decodific˘a” (bitul ˆınsu¸si ¸si bitul negat) ¸si se aplic˘a pe intr˘arile de validare ale celor
dou˘a decodificatoare.
13. Proiectat¸i cu scheme bloc un decodificator de 5 bit¸i utilizˆand 4 decodificatoare de 3 bit¸i cu intrare de validare ¸si
un decodificator de 2 bit¸i.
Solut¸ie
Cei mai semnificativi 2 bit¸i se decodific˘a cu decodificatorul de 2 bit¸i ¸si se obt¸in 4 semnale de validare folosite
pentru validarea a 4 decodificatoare de 3 bit¸i, cu intr˘arile de select¸ie conectate ˆımpreun˘a la cei mai put¸in
semnificativi bit¸i ai intr˘arii. Se obt¸in 8 × 4 = 32 ie¸siri de la cele 4 decodificatoare de 3 bit¸i. Circuitul este
prezentat ˆın figura 8.4.
104 LECT¸ IA 8. Codificatoare ¸si decodificatoare
Figura 8.4 Structur˘a de decodificator de 5 bit¸i.
14. Utilizˆand circuite decodificator DCD 3:8 cu validare a se realizeze o structur˘a care implementeaz˘a un circuit
decodificator DCD 5:32.
Solut¸ie
Circuitul are 5 intr˘ari de select¸ie. Cei mai semnificativi 2 bit¸i se decodific˘a pentru a se obt¸ine 2
2
= 4 semnale de
validare. Pe al doilea nivel logic, 4 decodificatoare primesc ate un semnal de validare de la decodificatorul de pe
primul nivel ¸si genereaz˘a fiecare 8 ie¸siri. Concatenarea celor 8 ie¸siri de la cele 4 decodificatoare vor reprezenta
cele 32 de ie¸siri ale decodificatorului. Circuitul este prezentat ˆın figura 8.5.
Figura 8.5 Decodificator 5:32 realizat cu decodificatoare 3:8 (problema 14).
15. a se realizeze structurile urm˘atoarelor decodificatoare utilizˆand decodificatoare de dimensiuni mai mici, asftel:
a) decodificator 6:64 cu decodificatoare 4:16;
b) decodificator 4:16 cu decodificatoare 3:8;
c) decodificator 2:4 cu decodificatoare 1:2.
Solut¸ie
Circuitele cerute la b) ¸si c) sunt prezentate ˆın figura 8.6.
16. Construit¸i un decodificator de 4 bit¸i utilizˆand 5 decodificatoare de 2 bit¸i cu intrare de validare.
8.4. Pentru cei ce vor a devin˘a profesioni¸sti 105
b) c)
Figura 8.6 Structuri de decodificatoare, (problema 15-b, c).
17. a se implementeze operat¸ia: Y = 2
X
utilizˆand un decodificator de 3 bit¸i. Variabila de intrare X [0, 7].
Solut¸ie
Decodificatorul implementeaz˘a funct¸ia Y
[7:0]
= 2
X
[2:0]
. Bit¸ii de intrare X
[2:0]
se conecteaz˘a pe intr˘arile de select¸ie
iar ie¸sirile Y
[7:0]
se obt¸in de la ie¸sirile decodificatorului avˆand acela¸si index.
8.4 Pentru cei ce vor a devin˘a profesioni¸sti
Decodificator cu validare (cod Verilog)
parameter N; // dimensiunea generica a decodificatorului
input [N-1:0] I; // intrare de date
output [(1<<N)-1:0] O; // iesire
input Ei; // intrare de validare
assign O = Ei << I;
Codificator prioritar de 4 bit¸i (cod Verilog)
input [3:0] I; // intrare de date
output [1:0] O; // iesire
output Eo; // iesire de validare
always @ (I) begin
if (I[3]) O = ’d3; else
if (I[2]) O = ’d2; else
if (I[1]) O = ’d1; else
if (I[0]) O = ’d0; else
O = ’bx;
end
assign Eo = |I; // OR pe toate intrarile
1. a se proiecteze un circuit codificator care determin˘a indexul intr˘arii activate cu prioritatea cea mai sc˘azut˘a.
Solut¸ie
Dac˘a la intr˘arile unui codificator se conecteaz˘a bit¸ii ˆın ordinea ponderilor, atunci circuitul codificator prioritar
va prezenta pe ie¸sire indexul intr˘arii celei mai semnificative activate (figura 8.7-a).
Dac˘a la intr˘arile unui codificator se conecteaz˘a bit¸ii ˆın ordinea invers˘a a ponderilor, atunci circuitul codificator
prioritar va prezenta pe ie¸sire indexul intr˘arii celei mai put¸in semnificative activate, ˆın cod complementar. Solut¸ia
const˘a ˆın conectarea bit¸ilor de date ˆın ordine invers˘a ¸si negarea ie¸sirii, sa ca ˆın figura 8.7-b.
106 LECT¸ IA 8. Codificatoare ¸si decodificatoare
a) b)
Figura 8.7 Circuite cu codificator: a) determinarea indexului intr˘arii cu prioritate cea mai mare ¸si b) determinarea indexului
intr˘arii cu prioritate cea mai mic˘a.
De exemplu, dac˘a b
2
= b
3
= 1, restul bit¸ilor fiind 0, intrarea cea mai prioritar˘a a codificatorului este I
5
, ceea ce
va genera pe ie¸sire valoarea 101, negat˘a 010 = 2|
10
.
Dac˘a b
3
= b
4
= b
7
= 1, restul bit¸ilor fiind 0, intrarea cea mai prioritar˘a a codificatorului este I
4
, ceea ce va
genera pe ie¸sire valoarea 100, negat˘a 011 = 3|
10
.
2. Utilizˆand dou˘a circuite codificatoare prioritare de 8 bit¸i a se realizeze o structur˘a de codificator prioritar cu 16
intr˘ari. Circuitul codificator prioritar de 8 bit¸i are 8 intr˘ari de date I[7 : 0] ¸si 3 ie¸siri O[2 : 0]. Codificatorul are
o intrare de validare E
i
(dac˘a E
i
= 0, codificatorul este blocat ¸si prezint˘a toate ie¸sirile ˆın starea 0).
ˆ
In plus,
codificatorul are ¸si o ie¸sire de validare E
o
(activ˘a ˆın 1 dac˘a pe intrare este o combinat¸ie valid˘a, cu cel put¸in un
1). Tabelul de funct¸ionare al codificatorului este:
E
i
I
7
I
6
I
5
I
4
I
3
I
2
I
1
I
0
O
2
O
1
O
0
E
o
0 x x x x x x x x 0 0 0 0
1 1 x x x x x x x 1 1 1 1
1 0 1 x x x x x x 1 1 0 1
1 0 0 1 x x x x x 1 0 1 1
1 0 0 0 1 x x x x 1 0 0 1
1 0 0 0 0 1 x x x 0 1 1 1
1 0 0 0 0 0 1 x x 0 1 0 1
1 0 0 0 0 0 0 1 x 0 0 1 1
1 0 0 0 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 0 0 0 0 0 0 0
Solut¸ie
Circuitul prezint˘a dou˘a instant¸e de codificator prioritar de 8 bit¸i. Jum˘atate din intr˘ari (cele mai semnificative)
se leag˘a la intr˘arile de date ale unui codificator de 8 bit¸i cu intrarea validat˘a E
i
= 1. Jum˘atate din intr˘ari (cele
mai put¸in semnificative) se leag˘a la intr˘arile de date ale celui de-al doilea codificator de 8 bit¸i cu intrarea de
validare (negat˘a) conectat˘a la ie¸sirea de validare a celuilalt codificator.
Dac˘a se activeaz˘a ie¸sirea E
o
= 1 a celui mai semnificativ codificator, ˆınseamn˘a a s-a asit cel put¸in o intrare
activat˘a, deci num˘arul de la ie¸sire trebuie a fie mai mare decˆat jum˘atate (cel put¸in egal cu 8). Deci, bitul cel
mai semnificativ al rezultatului poate luat de la ie¸sirea E
o
a celui mai semnificativ codificator.
Dac˘a O
3
= 0, ˆınseamn˘a a cea mai prioritar˘a intrare activat˘a este ˆıntre 7 ¸si 0. Cel mai put¸in semnificativ
codificator va produce la ie¸sire codul intr˘arii celei mai prioritare activate. Ie¸sirile codificatorului mai semnificativ
vor toate egale cu 0.
Dac˘a O
3
= 1, ˆınseamn˘a a cea mai prioritar˘a intrare activat˘a este ˆıntre 15 ¸si 8. Cel mai semnificativ codificator
va produce la ie¸sire codul intr˘arii celei mai prioritare activate (minus 8). Ie¸sirile codificatorului mai put¸in
semnificativ vor toate egale cu 0 deoarece acest codificator va avea E
i
= 0.
Realizˆand funct¸ia OR ˆıntre intr˘arile cu acela¸si index ale celor dou˘a codificatoare se obt¸in ie¸sirile circuitului
proiectat.
8.4. Pentru cei ce vor a devin˘a profesioni¸sti 107
Circuitul este prezentat ˆın figura 8.8.
Figura 8.8 Codificator prioritar cu 16 intr˘ari realizat cu dou˘a codificatoare prioritare de 8 bit¸i (problema 2).
3. a se realizeze un circuit logic combinat¸ional care implementeaz˘a funct¸ia Y = 2
2
X
, unde X [0, 7].
Solut¸ie
Circuitul decodificator N : 2
N
implementeaz˘a funct¸ia aritmetic˘a Y = 2
X
. Deoarece Y = 2
2
X
poate scris˘a sub
forma 2
(2
X
)
, implementarea se reduce la conectarea celor 8 ie¸siri ale unui DCD 3:8 la intr˘arile unui DCD 8:256.
(figura 8.9-a). Se observ˘a a intr˘arile DCD 8:256 provin de la ie¸sirile DCD 3:8. Deci, nu toate combinat¸iile de
intrare vor prezentate DCD 8:256. De fapt, doar 8 combinat¸ii din cele 2
8
= 256 combinat¸ii sunt posibile.
ˆ
In
fiecare din cele 8 combinat¸ii de intrare, o singur˘a ie¸sire a DCD 8:256 este activat˘a. Cu aceast˘a observat¸ie, se
poate ˆınlo cui DCD 8:256 cu un set de conexiuni care leag˘a un bit de intrare cu ie¸sirea corespunz˘atoare pe baza
formulei out = 2
in
. Celelalte 256-8=248 ie¸siri sunt ˆıntotdeauna egale cu 0. Vor activate doar urm˘atoarele
ie¸siri:
X = 000|
2
= 0|
10
Y [2
0
] = Y [1]
X = 001|
2
= 1|
10
Y [2
1
] = Y [2]
X = 010|
2
= 2|
10
Y [2
2
] = Y [4]
X = 011|
2
= 3|
10
Y [2
3
] = Y [8]
X = 100|
2
= 4|
10
Y [2
4
] = Y [16]
X = 101|
2
= 5|
10
Y [2
5
] = Y [32]
X = 110|
2
= 6|
10
Y [2
6
] = Y [64]
X = 111|
2
= 7|
10
Y [2
7
] = Y [128].
Figura 8.9 Circuit pentru calculul expresiei y = 2
2
x
(problema 3).
4. a se realizeze un circuit combinat¸ional care calculeaz˘a funct¸ia matematic˘a F
[N1:0]
= [log
2
M
[2
N
1:0]
]. S-a notat
cu [ ] partea ˆıntreg˘a a num˘arului.
Solut¸ie
Codificatorul implementeaz˘a funct¸ia matematic˘a ment¸ionat˘a, adic˘a genereaz˘a indexul celui mai semnificativ 1
din reprezentarea binar˘a a lui M
[2
N
1:0]
.
108 LECT¸ IA 8. Codificatoare ¸si decodificatoare
5. a se implementeze un circuit combinat¸ional la intrarea aruia se aplic˘a un cuvˆant M de 16 bit¸i ¸si un cuvˆant N
de 2 bit¸i. Ie¸sirea F a circuitului este activ˘a and M este un multiplu de 2
2
N
.
6. Minimizat¸i funct¸iile logice ¸si implementat¸i-le cu port¸i NAND. Implementat¸i funct¸iile cu DCD 3:8 ¸si un num˘ar
minim de port¸i logice suplimentare.
a) F
a
=
(4, 5, 7, 8, 12) + d(2, 13)
b) F
b
=
(0, 1, 3, 5, 7, 8, 12, 13, 15) + d(4, 10)
c) F
c
=
(2, 3, 6, 7, 13, 15) + d(8, 9, 11)
Solut¸ie
a) Minimizarea funct¸iei, conform diagramei V-K prezentate ˆın figura 8.10, conduce la expresia:
F
a
= I + II + III = B · C + A · C · D + A · B · D
Figura 8.10 F
a
, problema 6-a: diagrama V-K, diagrama V-K redus˘a ¸si implementare cu decodificator ¸si port¸i logice.
Prin introducerea unei variabile reziduu ˆın diagrama V-K (ˆın acest caz intrarea D), se ˆınjum˘at˘at¸e¸ste dimensiunea
diagramei ¸si se poate rescrie funct¸ia ca:
F
a
= m
2
+ m
3
· D + m
4
· D + m
6
, unde mintermii m
i
(A, B, C).
Sub aceast˘a form˘a, funct¸ia se poate implementa cu un circuit decodificator 3:8 (care genereaz˘a tot¸i mintermii
intr˘arilor A, B, C) ¸si o poart˘a OR.
ˆ
In cazul aparit¸iei variabilei reziduu D, mintermul corespunz˘ator intr˘a ˆın
poarta OR ˆın conjunct¸ie cu variabila reziduu D sau D. Circuitul este prezentat ˆın figura 8.10.