Sunteți pe pagina 1din 22

Circuite integrate digitale

Circuite decodificatoare

Sorin Hintea
Departamentul de Bazele Electronicii
Decodificatorul – definiții, funcționare

 Decodificarea codurilor binare este necesara pentru a semnaliza aparitia unui anumit
cod binar pe un bus de N biti
 Pentru a semnaliza cu ‘1’ aparitia codului 1101, este nevoie de o poarta SI care
realizeaza functia
𝑌  =𝑃 13=𝑎 ∙𝑏 ∙ 𝑐´ ∙ 𝑑
 Semnalizarea cu ‘0’ a aparitiei codului 1101 este realizata cu o poarta SI-NU:
  =𝑃 13= 𝑎 ∙𝑏 ´∙ 𝑐´ ∙ 𝑑
𝑌
 Semnalizarea aparitiei fie a unui cod (1101) fie a unui al doilea (0101) este realizata
astfel:
 

Circuite integrate digitale – Circuite decodificatoare 2


Decodificatorul – definiții, funcționare
 Pentru a semnaliza toate codurile care se pot scrie pe n biti este nevoie de un DCD
cu n adrese
 Decodificatorul este un circuit de selecție → activează o singură ieșire din 2 n în
funcție de o adresă pe n biți → de exemplu DCD 3:8 cu ieșiri active pe 1 (satisfacand
conditia G=validare)
 Exemplu. Daca avem codul de adresa CBA=‘101’ iesirea Y 5=‘1’ iar restul sunt ‘0’

C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
DCD n:2n DCD 3:8 000 1 0 0 0 0 0 0 0
Y0 P0 
 An-1 Y1 P1 

Y0
Y1
P0=0
P1=0 001 0 1 0 0 0 0 0 0
 An-2 Y2 P2  Y2 P2=0 010 0 0 1 0 0 0 0 0
n addresses

 µ¶ C
2n outputs

An-3  Y3 P3=0
 B
 A1 Y2n-3 P2n-3 
 µ¶
µ¶ A
Y4 P4=0 011 0 0 0 1 0 0 0 0
  Y5 P5=1
A0 Y2n-2 P2n-2  Y6 P6=0 100 0 0 0 0 1 0 0 0
P2n-1 
Y2n-1 Y7 P7=0
101 0 0 0 0 0 1 0 0
(a) (b)
110 0 0 0 0 0 0 1 0
111 0 0 0 0 0 0 0 1

Circuite integrate digitale – Circuite decodificatoare 3


Decodificatorul – definiții, funcționare
 Cele 8 ieșiri sunt funcții de cele 3 adrese (cod binar)
de la intrare
 Conform tabelului de adevar, ieșirile sunt chiar
termenii canonici
Yi = Pi

 Rezulta un circuit cu 8 porți SI, fiecare din acestea


generand un produs termen canonic

Y0  C B A  P0

Y1  C B A  P1

Y2  C B A  P2

 
Y7  C B A  P7

Circuite integrate digitale – Circuite decodificatoare 4


Decodificatorul cu iesiri active pe 0
 Decodificatorul cu iesiri active pe 0 → activează o singură ieșire din 2n în
funcție de o adresă pe n biți conectand-o la masa, toate celelalte ramanand
inactive (1 logic)
 Tabelul de adevar reflecta aceasta functionare

C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
000 0 1 1 1 1 1 1 1
001 1 0 1 1 1 1 1 1
010 1 1 0 1 1 1 1 1
011 1 1 1 0 1 1 1 1
100 1 1 1 1 0 1 1 1
101 1 1 1 1 1 0 1 1
110 1 1 1 1 1 1 0 1
111 1 1 1 1 1 1 1 0

Circuite integrate digitale – Circuite decodificatoare 5


Decodificatorul cu iesiri active pe 0
 Cele 8 ieșiri sunt funcții de cele 3 adrese (cod
binar) de la intrare
 Conform tabelului de adevar, ieșirile sunt chiar
termenii canonici negati
𝑌  𝑖= 𝑃´ 𝑖
 Rezulta un circuit cu 8 porți SI-NU, fiecare din
acestea generand un produs termen canonic negat

Y0  C B A  P0  S 0

Y1  C B A  P1  S1

Y2  C B A  P2  S 2

 

Y7  C B A  P7  S 7

Circuite integrate digitale – Circuite decodificatoare 6


Implementarea funcțiilor logice cu decodificatoare
 Implementarea funcțiilor date sub formă canonică se bazeaza pe faptul ca la iesirile
decodificatorului se obtin termenii canonici care contin ca variabile intrarile de adresa
 Cu un DCD cu N adrese se poate obtine orice functie de N variabile
 Aceasta functie trebuie data sub forma canonica
 Variabilele se aplica pe adrese iar validarea trebuie facuta corespunzator (aici G=0)
 Exemplu: funcția f (x,y,z)= P0+P3+P4

xyz f
DCD 3:8
000 1
Y0
001 0 Y1
010 0 x C Y2 f
011 1 y B Y3
100 1 z A
Y4
101 0 Y5
110 0 Y6
Y7
111 0

Circuite integrate digitale – Circuite decodificatoare 7


Implementarea funcțiilor logice cu decodificatoare
 Cu un DCD avand N adrese se pot obține mai multe funcții de N variabile
 Pentru fiecare funcție suplimentara se mai adauga o poarta SAU care aduna termenii
canonici corespunzatori
 fie funcțiile date sub formă canonică: f 1(x,y,z)= P1+P2; f 1(x,y,z)= P2+P4+P6

xyz f1 f2
DCD 3:8
000 0 0 Y0
001 1 0 Y1 f1
010 1 1 x C Y2
011 0 0 y B Y3
100 0 1 z A
Y4 f2
101 0 0 Y5
110 0 1 Y6
111 0 0 Y7

Circuite integrate digitale – Circuite decodificatoare 8


Implementarea funcțiilor logice cu decodificatoare

 Fie funcția dată sub formă canonică: f (x,y,z)= P0+P4+P5


 Decodificator cu ieșiri active pe 0 → generează termeni canonici negati
 Suma termenilor se transforma in produs de termeni negati, folosind relatiile lui De
Morgan
 

xyz f
000 1 DCD 3:8
001 0 Y0
010 0 x
Y1
C Y2
011 0 y
f
B Y3
100 1 z Y4
A
101 1 Y5
110 0 Y6
111 0 Y7

Circuite integrate digitale – Circuite decodificatoare 9


Decodificatorul BCD-zecimal

 Decodificatorul BCD – zecimal accepta la intrare coduri BCD ( adrese


binare de la 0 la 9)
 Codul binar de adresa pe 4 biti activează o singură ieșire din cele 10
 Tabelul de adevar defineste cele 10 functii de iesire

D C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9
0000 1 0 0 0 0 0 0 0 0 0
0001 0 1 0 0 0 0 0 0 0 0
0010 0 0 1 0 0 0 0 0 0 0
0011 0 0 0 1 0 0 0 0 0 0
0100 0 0 0 0 1 0 0 0 0 0
0101 0 0 0 0 0 1 0 0 0 0
0110 0 0 0 0 0 0 1 0 0 0
0111 0 0 0 0 0 0 0 1 0 0
1000 0 0 0 0 0 0 0 0 1 0
1001 0 0 0 0 0 0 0 0 0 1

Circuite integrate digitale – Circuite decodificatoare 10


Decodificatorul BCD-zecimal

 Cele 10 ieșiri sunt funcții de cele 4 adrese (cod binar) de la intrare


 Conform tabelului de adevar, ieșirile sunt chiar termenii canonici
Yi = Pi
 Rezulta un circuit cu 10 porți SI, fiecare din acestea generand un
produs termen canonic

Circuite integrate digitale – Circuite decodificatoare 11


Implementarea functiilor logice cu decodificator BCD-zecimal

 Cu un DCD BCD zecimal cu iesiri active pe 1 se poate implementa orice functie de


3 variabile
 Fie funcția dată sub formă canonică: f (x,y,z,t)= P1+P6+P7
 Pentru funcții de 4 variabile sunt necesare 2 DCD BCD zecimale conectate astfel
incat unul sa genereze primii 8 termeni canonici iar cel de al doilea ultimii 8 termeni
 Din fiecare DCD se folosesc doar primele 8 ieșiri
xyzt f
0000 0
0001 1
0010 0 Y0
Y1
0011 0
Y2
0100 0 x D
Y3
0101 0 y C Y4 f
0110 1 z B Y5
0111 1 t A Y6
1000 0 Y7
1001 0 Y8
Y9

Circuite integrate digitale – Circuite decodificatoare 12


Implementarea functiilor logice cu decodificator BCD-zecimal

 Cu un DCD BCD – zecimal cu iesiri active pe “0” se poate implementa


orice funcție de 3 variabile
 Suma termenilor se transformă in produs de termeni negați Fie funcția dată
sub formă canonică:
 
xyzt f
0000 1
0001 0
0010 0
0011 1
0100 0
0101 0
0110 1
0111 0
1000 0
1001 0

Circuite integrate digitale – Circuite decodificatoare 13


Extinderea capacitatii de decodificare folosind decodificator BCD-zecimal

 Pornind de la faptul ca un DCD BCD zecimal


genereaza 8 iesiri pentru cuvinte pe trei biti aplicate
pe intrarile C, B si A si avand bitul MSB D=0
 Pentru a avea un DCD cu 16 iesiri cuvantul de
adresa este pe 4 biti (cuvantul xyzt)
 Este nevoie de 2 DCD cu 8 iesiri fiecare
 Cand x=0 ( codurile binare intre 0 si 7) se
activeaza una din cele 8 iesiri ale primului DCD
 Cand x=1 ( codurile binare de la 8 la 15) se
activeaza una din cele 8 iesiri ale celui de al
doilea DCD
 Astfel se obtine un DCD cu 16 canale

Circuite integrate digitale – Circuite decodificatoare 14


Extinderea capacitatii de decodificare folosind decodificator BCD-zecimal

 Pornind de la faptul ca un DCD BCD zecimal genereaza 8 iesiri pentru cuvinte


aplicate be bitii CBA si avand bitul MSB D=0
xyzt f
Y0
0 000 P0 Y1
0 001 P1 Y2
0 010 x D Y3
P2 y C Y4
P4
0 011 P3 z B
x0 0 100 t A
Y5
Y6
P6
0 101 P4 Y7
0 110 P5 Y8
Y9
0 111 P6 f
1 000 P7 Y0
1 001 P 0 → P8 Y1
P10
1 010 Y2
P 1 → P9 D Y3
1 011 P2 → P10 C Y4
1 100 B Y5
x 1 P3 → P11 A
1 101 Y6
P15
1 110 P4 → P12 Y7
Y8
1 111 P5 → P13 Y9
P6 → P14
P7 → P15
Circuite integrate digitale – Circuite decodificatoare 15
Implementarea functiilor logice cu decodificator BCD-zecimal

 Se dă funcția sub formă canonică: f (x,y,z,t)= P4+P6+P10+P15


xyzt f
Y0
0 000 0 → P0 Y1
0 001 0 → P1 Y2
0 010 x D Y3
0 → P2 y C Y4
P4
0 011 0 → P3 z B
x0 0 100 t A
Y5
Y6
P6
0 101 1 → P4 Y7
0 110 0 → P5 Y8
1 → P6 Y9
0 111 f
1 000 0 → P7 Y0
1 001 0 → P 0 → P8 Y1
P10
1 010 0 → P 1 → P9 D
Y2
Y3
1 011 1 → P2 → P10 C Y4
1 100 B Y5
x 1 0 → P3 → P11 A
1 101 Y6
P15
1 110 0 → P4 → P12 Y7
Y8
1 111 0 → P5 → P13 Y9
0 → P6 → P14
1 → P7 → P15
Circuite integrate digitale – Circuite decodificatoare 16
Extinderea capacității de decodificare
Decodificator 1:16 implementat cu 2 DCD 1:8
cu validare
- Pentru a avea un DCD cu 16 canale de iesire
este nevoie de 2 DCD cu 8 iesiri fiecare
DCD 3:8
DCD 4:16
- Cuvantul de adresa este DCBA Y0
Y1
P0
P1
Y0
C C Y1
Y2 P2
B B Y2
- Primul DCD activeaza cele 8 iesiri cand bitul A A
Y3 P3
Y3
Y4 P4
Y4
MSB de adresa este D =‘0’ ( primele 8 Y5 P5
P6
Y5
D En Y6
adrese) Y7 P7 D
C
Y6
Y7
DCD 3:8
B Y8
Y0 P0 ĺ P8
- Al doilea DCD activeaza cele 8 iesiri cand Y1 P1 ĺ P9
A Y9
C Y10
bitul MSB de adresa este D =‘1’ ( ultimele 8 B
Y2
Y3
P2 ĺ
P3 ĺ
P10
P11
Y11
Y12
A
adrese) Y4
Y5
P4 ĺ
P5 ĺ
P12
P13
Y13
Y14
En Y6 P6 ĺ P14 Y15
Y7 P7 ĺ P15

Circuite integrate digitale – Circuite logice cu demultiplexoare 17


Extinderea capacității de decodificare
Decodificator 1:64implementat cu 9 DCD 1:8 cu validare
- Pentru a avea un DCD cu 64 canale de iesire este nevoie de 8 DCD cu 8 iesiri fiecare
- Cuvantul de adresa este FEDCBA
- DCD Master activeaza una din cele 8 iesiri in functie de cuvantul FED ( cei mai
semnificativi biti din cuvantuld e adresa de 6 biti)
- Cele 8 DCD de rangul 2 activeaza cele 8 iesiri in functie de cuvantul CBA

Circuite integrate digitale – Circuite logice cu demultiplexoare 18


Implementarea funcțiilor logice cu mai multe decodificatoare
 Exemplu. Implementarea funcției de 4 variabile folosind doua
DCD cu 8 iesiri si validare: f = P2+P4+P6+P9+P11+P13
xyzt f
0 000 0 → P0=f (y,z,t)
0 001 0 → P1 P2
0 010 1 → P2
0 011 0 → P3 P4
x0 0 100
0 101 1 → P4 P6
0 110 0 → P5
0 111 1 → P6
1 000 0 → P7
1 001 P9
0 → P0 → P 8
1 010 1 → P1 → P 9 P11
1 011 0 → P2 → P10
1 100 P13
x 1 1 101 1 → P3 → P11
1 110 0 → P4 → P12
1 111 1 → P5 → P13
0 → P6 → P14
0 → P7 → P15
Circuite integrate digitale – Circuite decodificatoare 19
Implementarea funcțiilor logice cu DMUX
 Exemplu. Implementarea funcției de 4 variabile folosind doua
DCD cu 8 iesiri si validare:
  +
DCD 3:8
Y0
Y1
y C
Y2
z B
t Y3
A
Y4
Y5
x En Y6
Y7
DCD 3:8
f
Y0
Y1
C
Y2
B
Y3
A
Y4
Y5
En Y6
Y7

Circuite integrate digitale – Circuite logice cu demultiplexoare 20


Implementarea funcțiilor logice cu DMUX
 Exemplu 3. Implementarea funcției de 4 variabile folosind DCD
cu 4 iesiri active pe 0 si validare:

𝑓  ( 𝑥 , 𝑦 , 𝑧 ,𝑡 )=𝑃 4+𝑃6  +𝑃10+  𝑃15

Circuite integrate digitale – Circuite logice cu demultiplexoare 21


Probleme propuse
 Probleme propuse:
1. Realizati un circuit care sa furnizeze valoarea logica 1 atunci cand la intrare apare fie codul 010 fie
011.
2. Aceeasi problema pentru cazul cand la intrare este sesizat fie codul 1010 fie 1110
3. Repetati problema precedenta pentru detectia aparitie codurilor 0011 sau 0111 sau 0010 sau 0110
4. Implementati functia data sub forma canonica folosind 1 DCD cu 8 iesiri active pe ‘1’: +
5. Implementati functia data sub forma canonica folosind 1 DCD cu 8 iesiri active pe ‘0’: +
6. Implementati functia data sub forma canonica folosind 2 DCD cu 8 iesiri active pe ‘1’: + ++
7. Implementati functia data sub forma canonica folosind 2 DCD cu 8 iesiri active pe ‘0’: + ++
8. Realizati un DCD cu 64 iesiri folosind DCD binare cu validare cu 8 iesiri intr-o structura
arborescenta
9. Repetati problema folosind DCD BCD zecimal cu validare cu 10 iesiri intr-o structura
arborescenta

Circuite integrate digitale – Circuite decodificatoare 22

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