Saturday, May 21, 2011

HW: Dekoder

Dekoder je kombinacny obvod, ktory premiene vstupny binarny kod na vystupny kod. Vstup binarneho dekoderu pozostava z n vstupnych premennych a 2^n vystupnych premenych. Vzdy je aktivny len jeden vystup v zavislosti na vstupe. Vystup dekoderu je (zvycajne) viac bitovy kod ako je kod privedeny na vstup a najpraktickejsie priklady zahrnaju dekodery 2 na 4, 3 na 8 a 4 na 16.

Dekoder 2 na 4 je znazorneny na obrazku.
Pravdivostna tabulka pre dekoder:

   IN                 OUT
x0   x1   |   y0   y1   y2   y3
------------------------------------
0     0     |   1     0     0     0
0     1     |   0     1     0     0
1     0     |   0     0     1     0
1     1     |   0     0     0     1

Pri kazdej kombinacii vstupnych premennych je aktivna len jedna vystupna premenna. Podla toho, ktora vystupna premenna nadobuda hodnotu log. 1cky, vieme urcit kombinaciu vstupnych premennych. Tento dekoder te dekoduje vstupny kod.

Ako uz bolo spomenute, dekoder je vlastne kombinacny obvod. Realizacia vyssie spomenuteho binarneho dekoderu vyzera takto:



Dalsim zaujimavym prikladom je dekoder kodu 2z5 (typ 74210 alebo 84210) do kodu BCD (binarne zakodovane desiatkove cislo). Kod 2z5 znamena, ze z 5 moznych bitov budu vzdy 2 jednickove. Taketo cislo budeme volat kodove slovo. Typ 74210 a 84210 urcuje vahu jednotlivych premennych. Vaha urcuje, akou mierou sa premenna prejavi na vystupe, ak nadobuda log. hodnoty 1. Pri 5 bitoch, kde vzdy pouzijeme 2 (bez opakovania :)), mozme zobrazit maximalne 10 cisel.

Dec       BCD         kod 2z5      kod 2z5 
              DCBA               74210            84210
  0         0000            11000       10100         # v kode 84210 je vysledny sucet vah 10, to je "out of range"
  1         0001            00011       00011            a preto ho mozme priradit 0e
  2         0010            00101       00101
  3         0011            00110       00110
  4         0100            01001       01001
  5         0101            01010       01010
  6         0110            01100       01100
  7         0111            10001       11000         # v kode 84210 je vysledny sucet vah 12, to je "out of range",      
  8         1000            10010       10001            ale nie je iny sposob ako zapisat cislo 7 ...
  9         1001            10100       10010

Prevodnik z kodu 2z5 do BCD znamena, ze na vstupe bude 5 premennych a na vystupe 4. Jedna sa o kombinacny obvod, ktory tento kod prevedie. Pre realizaciu pomocou hradiel by sme museli pouzit 5 karnaughovych map a hladat skupinove termy pomocou skupinovej minimalizacie. Ale to je na inokedy :).

Pre zaujimavost: http://www.electronics-tutorials.ws/combination/comb_6.html.

Literatura:
http://dce.felk.cvut.cz/lor/prednasky/skripta/kap2_1.pdf
http://class.pedf.cuni.cz/jancarik/download/kodovanidat.pdf
http://en.wikipedia.org/wiki/Two-out-of-five_code