Encodoare și decodoare în logica digitală

Un cod binar format din N cifre poate fi folosit pentru a stoca 2N elemente distincte de informație codificată. Pentru aceasta se folosesc encodoarele și decodoarele.

Encodoarele convertesc 2N linii de intrare într-un cod de N biți, iar Decodoarele decodifică cei N biți în 2N linii.

1. Encodoare – Un encodor este un circuit combinațional care transformă informația binară sub forma a 2N linii de intrare în N linii de ieșire, care reprezintă un cod de N biți pentru intrare. Pentru encodoarele simple, se presupune că doar o singură linie de intrare este activă la un moment dat. Ca exemplu, să considerăm encodorul Octal-Binar. Așa cum se arată în figura următoare, un encodor octal-binar preia 8 linii de intrare și generează 3 linii de ieșire.

 

Tabel de Adevăr –

D7 D6 D5 D4 D3 D2 D1 D0 X Y Z
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1

După cum se vede din tabelul de adevăr, ieșirea este 000 când D0 este activ; 001 când D1 este activ; 010 când D2 este activ și așa mai departe.

Implementare –

Din tabelul de adevăr, linia de ieșire Z este activă atunci când cifra octală de intrare este 1, 3, 5 sau 7. Similar, Y este 1 când cifra octală de intrare este 2, 3, 6 sau 7, iar X este 1 pentru cifrele octale de intrare 4, 5, 6 sau 7. Astfel, funcțiile Booleene ar fi:

X = D4 + D5 + D6 + D7
Y = D2 +D3 + D6 + D7
Z = D1 + D3 + D5 + D7

O limitare a acestui encodor este că doar o singură intrare poate fi activă la un moment dat. Dacă mai multe intrări sunt active, atunci ieșirea este nedefinită. De exemplu, dacă D6 și D3 sunt ambele active, atunci ieșirea noastră ar fi 111, care este ieșirea pentru D7. Pentru a depăși această problemă, folosim Encodoare cu Prioritate. O altă ambiguitate apare atunci când toate intrările sunt 0. În acest caz, encodorul produce ieșirea 000, care este de fapt ieșirea pentru D0 activ. Pentru a evita acest lucru, se poate adăuga un bit suplimentar la ieșire, numit bit de validare, care este 0 când toate intrările sunt 0 și 1 în caz contrar.

Encodor cu Prioritate –

Un encodor cu prioritate este un circuit de encodare în care intrărilor li se acordă priorități. Când mai multe intrări sunt active în același timp, intrarea cu prioritate mai mare are întâietate și se generează ieșirea corespunzătoare acesteia. Să luăm ca exemplu encodorul cu prioritate 4-la-2. Din tabelul de adevăr, vedem că atunci când toate intrările sunt 0, bitul nostru V sau bitul de validare este zero, iar ieșirile nu sunt utilizate. X-urile din tabel indică starea “indiferentă” (don’t care), adică poate fi fie 0, fie 1. Aici, D3 are cea mai mare prioritate, prin urmare, indiferent de celelalte intrări, când D3 este activ (high), ieșirea trebuie să fie 11. Iar D0 are cea mai mică prioritate, prin urmare ieșirea va fi 00 doar când D0 este activ și celelalte linii de intrare sunt inactive (low). Similar, D2 are prioritate mai mare față de D1 și D0, dar mai mică decât D3, deci ieșirea va fi 10 (corectat din textul original 010 pentru XY) doar când D2 este activ și D3 este inactiv (D0 și D1 sunt indiferente).

Tabel de Adevăr –

D3 D2 D1 D0 X Y V
0 0 0 0 x x 0
0 0 0 1 0 0 1
0 0 1 x 0 1 1
0 1 x x 1 0 1
1 x x x 1 1 1

Implementare –

Se poate vedea clar că condiția ca bitul de validare să fie 1 este ca cel puțin una dintre intrări să fie activă (high). Prin urmare,

V = D0 + D1 + D2 + D3

Pentru X:

 

=> X = D2 + D3 Pentru Y:

 

=> Y = D1 D2’ + D3 Prin urmare, encodorul cu prioritate 4-la-2 poate fi realizat după cum urmează:

 

2. Decodoare –

Un decodor face operația opusă unui encodor. Este un circuit combinațional care convertește n linii de intrare în 2n linii de ieșire. Să luăm un exemplu de decodor 3-la-8 linii.

Tabel de Adevăr –

X Y Z D0 D1 D2 D3 D4 D5 D6 D7
0 0 0 1 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0 0 0 0
0 1 0 0 0 1 0 0 0 0 0
0 1 1 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 0 1 0
1 1 1 0 0 0 0 0 0 0 1

Implementare –

D0 este activ (high) când X = 0, Y = 0 și Z = 0. Prin urmare,

D0 = X’ Y’ Z’

Similar,

D1 = X’ Y’ Z
D2 = X’ Y Z’
D3 = X’ Y Z
D4 = X Y’ Z’
D5 = X Y’ Z
D6 = X Y Z’
D7 = X Y Z

+Prin urmare,

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top