22
Circuite integrate digitale Circuite decodificatoare Sorin Hintea Departamentul de Bazele Electronicii

Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale

Circuite decodificatoare

Sorin Hintea

Departamentul de Bazele Electronicii

Page 2: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 2

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

Semnalizarea cu ‘0’ a aparitiei codului 1101 este realizata cu o poarta SI-NU:

Semnalizarea aparitiei fie a unui cod (1101) fie a unui al doilea (0101) este realizata

astfel:

� � �13 � � · � · ̅ · �

� � �13 � � · � · ̅ · �

� � �13 � �5 � � · � · ̅ · � � �� · � · ̅ · � � � · ̅ · �

Page 3: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 3

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 2n î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 Y5=‘1’ iar restul sunt ‘0’

C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

1

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

Y0

Y1

A

Y2

Y3B

C

Y6

Y5

Y7

Y4

DCD 3:8

‘1’

‘1’

‘0’

P5=1

P4=0

P7=0

P6=0

P1=0

P0=0

P3=0P2=0

Y0

Y1

Y2

An-1

DCD n:2n

An-2

An-3

A1

A0

n a

ddr

esse

s

P0

P1

P2

2n o

utp

uts

Y2 -3n

Y2 -2n

Y2 -1n

P2 -3n

P2 -2n

P2 -1n

(a) (b)

Page 4: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 4

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

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

generand un produs termen canonic

0 0

1 1

2 2

7 7

Y C B A P

Y C B A P

Y C B A P

Y C B A P

M

Yi = Pi

Page 5: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 5

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

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

1

1

1

1

1

1

1

1

0

1

1

1

1

1

1

1

1

0

1

1

1

1

1

1

1

1

0

1

1

1

1

1

1

1

1

0

1

1

1

1

1

1

1

1

0

1

1

1

1

1

1

1

1

0

1

1

1

1

1

1

1

1

0

Page 6: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 6

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

0 0 0

1 1 1

2 2 2

7 7 7

Y C B A P S

Y C B A P S

Y C B A P S

Y C B A P S

M

�� � ���

Page 7: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 7

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

x y z f

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

1

0

0

1

1

0

0

0

f (x,y,z)= P0+P3+P4

Y0

Y1

A

Y2

Y3B

C

Y6

Y5

Y7

Y4

DCD 3:8

fx

y

z

Page 8: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 8

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ă:

x y z f1 f2

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0

1

1

0

0

0

0

0

0

0

1

0

1

0

1

0

f 1(x,y,z)= P1+P2; f 1(x,y,z)= P2+P4+P6

Y0

Y1

A

Y2

Y3B

C

Y6

Y5

Y7

Y4

DCD 3:8

f1

x

y

z f2

Page 9: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 9

Implementarea funcțiilor logice cu decodificatoare

Fie funcția dată sub formă canonică:

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

x y z f

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

1

0

0

0

1

1

0

0

f (x,y,z)= P0+P4+P5

f(x,y,z)= P0+P4+P5 � P0� · P4

� · P5�

fx

y

z

Y0

Y1

A

Y2

Y3B

C

Y6

Y5

Y7

Y4

DCD 3:8

Page 10: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 10

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

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

Page 11: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 11

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

Rezulta un circuit cu 10 porți SI, fiecare din acestea generand un

produs termen canonic

Yi = Pi

Page 12: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 12

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ă:

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

x y z t f

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

0

1

0

0

0

0

1

1

0

0

f (x,y,z,t)= P1+P6+P7

Y0

Y1

A

Y2

Y3

B

C

Y6

Y5

Y7

Y4

D

Y8

Y9

f

x

y

zt

Page 13: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 13

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ă:

x y z t f

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1

0

0

1

0

0

1

0

0

0

f(x,y,z)= P0+P3+P6 � P0� · P3

� · P6�

Page 14: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

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 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

Page 15: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 15

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

x y z t f

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

P0

P1

P2

P3

P4

P5

P6

P7

P0 → P8

P1 → P9

P2 → P10

P3 → P11

P4 → P12

P5 → P13

P6 → P14

P7 → P15

0x

1x

Page 16: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 16

Implementarea functiilor logice cu decodificator BCD-zecimal

Se dă funcția sub formă canonică:

x y z t f

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

0 → P0

0 → P1

0 → P2

0 → P3

1 → P4

0 → P5

1 → P6

0 → P7

0 → P0 → P8

0 → P1 → P9

1 → P2 → P10

0 → P3 → P11

0 → P4 → P12

0 → P5 → P13

0 → P6 → P14

1 → P7 → P15

0x

1x

f (x,y,z,t)= P4+P6+P10+P15

Page 17: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite 17

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

- Cuvantul de adresa este DCBA

- Primul DCD activeaza cele 8 iesiri cand bitul

MSB de adresa este D =‘0’ ( primele 8 adrese)

- Al doilea DCD activeaza cele 8 iesiri cand

bitul MSB de adresa este D =‘1’ ( ultimele 8

adrese)

Y0

Y1

A

Y2

Y3

B

C

Y6

Y5

Y7

Y4

En

DCD 3:8

CBA

Y0

Y1

A

Y2

Y3

B

C

Y6

Y5

Y7

Y4

En

DCD 3:8

D

P0

P1

P2

P3

P4

P5

P6

P7

P0 → P8

P1 → P9

P2 → P10

P3 → P11

P4 → P12

P5 → P13

P6 → P14

P7 → P15

Y0

Y1

A

Y2

Y3

B

C

Y6

Y5

Y7

Y4

DCD 4:16

D

Y8

Y9

Y12

Y11

Y13

Y10

Y14

Y15

Page 18: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite 18

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

Page 19: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 19

Implementarea funcțiilor logice cu mai multe decodificatoare

x y z t f

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

0 → P0=f (y,z,t)

0 → P1

1 → P2

0 → P3

1 → P4

0 → P5

1 → P6

0 → P7

0 → P0 → P8

1 → P1 → P9

0 → P2 → P10

1 → P3 → P11

0 → P4 → P12

1 → P5 → P13

0 → P6 → P14

0 → P7 → P15

0x

1x

2P

4P

6P

9P

11P

13P

f = P2+P4+P6+P9+P11+P13

Exemplu. Implementarea funcției de 4 variabile folosind doua

DCD cu 8 iesiri si validare:

Page 20: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite 20

Implementarea funcțiilor logice cu DMUX

Exemplu. Implementarea funcției de 4 variabile folosind doua

DCD cu 8 iesiri si validare:

� �, �, �, � � �2 � �4+ �6+ �9 � �11+ �13

Page 21: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite 21

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

Page 22: Departamentul de Bazele Electronicii · 2018. 10. 29. · Extinderea capacitatiide decodificarefolosind decodificator BCD-zecimal Pornindde la faptul ca un DCD BCD zecimal genereaza

Circuite integrate digitale – Circuite decodificatoare 22

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’: � �, �, �

�1 � �2+ �3 � �6

5. Implementati functia data sub forma canonica folosind 1 DCD cu 8 iesiri active pe ‘0’: � �, �, �

�0 � �4+�5

6. Implementati functia data sub forma canonica folosind 2 DCD cu 8 iesiri active pe ‘1’: � �, �, �

�0 � �2+ �6 � �7+�9 � �10+ �14

7. Implementati functia data sub forma canonica folosind 2 DCD cu 8 iesiri active pe ‘0’: � �, �, �

�0 � �4+ �5 � �8+�10 � �12+ �14 � �15

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