Předmět Ústv Úloh č. 2 BDIO - Digitální obvody Ústv mikroelektroniky Návrh zákldních kombinčních obvodů: dekodér, enkodér, multiplexor, demultiplexor Student Cíle Porozumění logickým obvodům typu dekodér, enkodér, multiplexor, demultiplexor. Schemtický návrh v návrhovém prostředí Xilinx ISE WebPck. Návrh obvodu s využitím jzyk VHDL v návrhovém prostředí Xilinx ISE WebPck. Implementce návrhu do cílového obvodu FPGA Sprtn3-200k n vývojové desce Sprtn-3 Strter Bord. Teoretický úvod Dekodér Dekodér je kombinční obvod, který převádí vstupní kód n odlišný výstupní kód. Velkou skupinu dekodérů tvoří dekodéry převádějící binární kód n kód 1 z N. Kód 1 z N je definován následovně. Vždy je ktivní mximálně jeden výstup (předpokládejme ktivní stv v log. 1). Pozice ktivního výstupu odpovídá hodnotě binárního čísl n vstupu. Při n-bitovém vstupu pltí, že počet výstupů N se rovná mximálně 2 n. Tbulk 1 je prvdivostní tbulk pro převod dvoubitového binárního kódu n kód 1 z 4. Dekodér popsný v tbulce 1 obshuje tké vstup blokování en, kterým lze všechny výstupy uvést do nektivního stvu. Tb. 1: Prvdivostní tbulk dekodéru binárního kódu n kód 1z4 b en y3 y2 y1 y0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 x x 1 0 0 0 0 x - libovolná hodnot N obrázcích 1, 2 3 je uveden příkld schemtické znčky dekodéru 1 z 4 (tto znčk není definován normou v prxi je možné se setkt s různými vrintmi), jeho vnitřní zpojení příkld použití jko dekodéru pro řízení komunikce čtyř zřízení s ndřzeným systémem.
Nvrhněte zpojení obvodu dle tbulky 1 en y3 y2 y1 y0 b dekodér 1z4 Obr. 1: Schemtická znčk dekodéru Obr. 2: Vnitřní zpojení dekodéru 1z4 dev0 dev1 dev2 ndřzený systém (npř. m ikrokontrolér) dev3 y0 y1 y2 y3 dekodér 1z4 en b Obr. 3: Ovládání komunikce zřízení s ndřzeným systémem s vyžitím dekodéru 1z4 Dlší skupinu dekodérů tvoří ty, které dekódují BCD kód n kód pro LCD nebo LED displeje. Multiplexor Multiplexor je číslicový přepínč. Má vstupy dresy (v binárním kódu) vstupy přepínných signálů. Ty jsou očíslovné čísl vyznčují, při které hodnotě dresy je dný vstupní signál převeden n výstup. Nejjednodušší je dvouknálový multiplexor, má pouze jeden dresový vstup, který je používán velmi čsto. Počet přepínných signálů N závisí n počtu dresových vstupů n následovně N = 2 n. POZOR - směr přenosu signálu nelze obrátit n rozdíl od nlogového multiplexoru zloženého n spínčích CMOS.
Relizce logické funkce pomocí multiplexoru Relizovt logickou funkci můžeme pomocí multiplexoru pouze tehdy, když má multiplexor počet řídicích vstupů minimálně N-1, kde N je počet vstupních proměnných logické funkce. Protože v příkldu relizujeme funkci o čtyřech proměnných, vystčíme s multiplexorem se třemi řídicími vstupy. Při diskrétní relizci lze jko multiplexor použít npříkld integrovný obvod 74HC151. V návrhovém prostředí Xilinx ISE WebPck lze pro návrh s multiplexom využít součástky z knihovny MUX. Pro relizci funkce o čtyřech vstupních proměnných můžeme využít npříkld obvod M8_1E. Jeho schemtická znčk je n obrázku 4. Funkce multiplexoru je tková, že multiplexor přenáší signál ze zvoleného vstupu D0 ž D7 n výstup O. Vstup, ze kterého je informce převáděn n výstup, je vybrán dresou, binárním číslem n vstupech S2, S1, S0, přičemž vstup S2 má největší váhu. Pro přenos informce ze vstupu n výstup musí být n vstupu E úroveň log. 1. Při log. 0 n vstupu E je n výstupu O trvle log. 0. Obr. 4: Schemtická znčk multiplexoru M8_1E Relizci logické funkce definovné v tbulce 2 provádíme tk, že tři vstupní proměnné d, c, b přivedeme n vstupy multiplexoru S2, S1, S0. Pro kombinci vstupních proměnných b = 0, c = 0 d = 0 je signál ze vstupu D0 přenášen n výstup multiplexoru O, což odpovídá stvovým řádkům s indexy 0 1 v prvdivostní tbulce. N tento vstup D0 připojíme vstupní promněnnou, protože hodnot výstupní proměnné y odpovídá hodnotě proměnné ( y = ), viz. tbulk 3.
Tb. 2: Prvdivostní tbulk logické funkce y e d c b y 1 0 0 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 x x x x 0 Obr. 5: Relizce logické funkce z tb. 2 s použitím multiplexoru Tb. 3: Vyznčení řádků funkce pro vstupní kombinci d = 0, c = 0, b = 0 řádek d c b y 0 0 0 0 0 0 1 0 0 0 1 1 2 0 0 1 0 1 Mohou nstt dlší přípdy. Přípd, kdy výstupní hodnot je negcí hodnoty vstupní proměnné ( y = ) pro určité dv stvové řádky prvdivostní tbulky, řešíme tk, že n příslušný vstup multiplexoru připojíme vstupní proměnnou. Dále můžou nstt dv přípdy, kdy se výstupní hodnot y pro určité dv stvové řádky nemění. Pk připojíme příslušný vstup multiplexoru n úroveň log. 0 nebo log. 1, podle toho, jké logické úrovně nbývá výstupní proměnná y pro dné stvové řádky. Příkld relizce logické funkce zdné v tbulce 2 pomocí multiplexoru je n obrázku 5. Demultiplexor Demultiplexor je opkem multiplexoru. Má jeden vstup () několik výstupů (y 0 ž y N). Adresou v binárním kódu přivedenou n vstupy (S 0 ž S n) je vybrán výstup n který je přenášen signál ze vstupu. N všech osttních výstupech je log. 0. en DX Y 0 Y 1 Y 2 Y n S 0 Obr. 6: Blokové schém n-výstupového demultiplexoru S n
Vyprcování lbortorní úlohy Úkol č. 1 (0,6 bodu) Doplňte následující tbulku dekodéru, který převede kód 2 z 5 n kód BCD. 2 z 5 BCD e d c b D C B A 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 0 4 0 1 0 0 1 5 0 1 0 1 0 6 0 1 1 0 0 7 1 0 0 0 1 8 1 0 0 1 0 9 1 0 1 0 0 1 0 0 1 Úkol č. 2 (0,6 bodu) Vyjádřete neminimlizovnou logickou funkci pro výstupní proměnnou D z předchozího příkldu. Úkol č. 3 (0,6 bodu) Pomoci dekodéru součtového hrdl relizujte funkci tří proměnných. Úlohu neřešte v návrhovém prostředí. Pro relizci použijte komponentu D3_8E (3-vstupový dekodér 1 z 8 se řídícím vstupem enble) součtové hrdlo OR z knihovny Logic. Doplňte prvdivostní tbulku funkce y dokreslete schém zpojení. K získání prvdivostní tbulky dekodéru D3_8E využijte nápovědu v návrhovém prostředí. Klikněte n součástku dekodéru zvolte možnost SYMBOL INFO. y= b c b c b c
S E c b y 0 1 0 0 0 1 1 0 0 1 2 1 0 1 0 3 1 0 1 1 4 1 1 0 0 5 1 1 0 1 6 1 1 1 0 7 1 1 1 1 8 0 x x x Prvdivostní tbulk Návrh rozložení součástek Úkol č. 4 (0,6 bodu) V návrhovém prostředí Xilinx ISE WebPck nvrhněte schemtický obvod, který řeší funkci zdnou následující prvdivostní tbulkou. Pro relizci použijte multiplexor se třemi řídicími vstupy (M8_1E) jeho funkci ověřte pomocí vývojové desky. S E d c b y 0 1 0 0 0 0 0 1 1 0 0 0 1 0 2 1 0 0 1 0 1 3 1 0 0 1 1 1 4 1 0 1 0 0 0 5 1 0 1 0 1 1 6 1 0 1 1 0 0 7 1 0 1 1 1 1 8 1 1 0 0 0 1 9 1 1 0 0 1 0 10 1 1 0 1 0 1 11 1 1 0 1 1 1 12 1 1 1 0 0 0 13 1 1 1 0 1 0 14 1 1 1 1 0 0 15 1 1 1 1 1 1 16 0 x x x x 0 Zpojení vstupů výstupů Signál E d c b y Přepínč SW7 SW3 SW2 SW1 SW0 LD0
Úkol č. 5 (0,6 bodu) Doplňte následující VHDL popis, který bude reprezentovt schemticky znázorněný 4-vstupový multiplexor. Tento VHDL popis následně zvolte jko vrcholovou jednotku (Top Module) místo schemtického návrhu. A NAHRAJTE DO DESKY!!! s0 s1 b c d 00 01 10 11 y Vnitřní zpojení 4-vstupového multiplexoru Blokové schém 4-vstupového multiplexoru ------------------------------------------------------------------------- entity mux is port ( : in STD_LOGIC; -- vstup b : in STD_LOGIC; -- vstup b c : in STD_LOGIC; -- vstup c d : in STD_LOGIC; -- vstup d s : in STD_LOGIC_VECTOR (1 downto 0); -- vyberovy vstup s y : out STD_LOGIC); -- vystup y end mux; rchitecture Behviorl of mux is begin y <= b when s="01" else -- kombince S1=0 S0=1, pk y=b when s="00" else -- kombince S1=0 S0=0, pk y= -- doplnte chybejici kod!!! -- doplnte chybejici kod!!! end Behviorl; -------------------------------------------------------------------------
Bonusový úkol č. 6 (0,6 bodu) V návrhovém prostředí Xilinx ISE WebPck nvrhněte obvod, který řeší funkci prioritního enkodéru pro čtyři zřízení dle definovné priority. Vytvořte VHDL popis jeho funkci ověřte pomocí vývojové desky. dev0 dev1 dev2 dev3 x0 x1 x2 x3 z e n y0 y1 y2 y3 enkodér 1z4 y0 y1 b dekodér 1z4 zřízení priorit dev0 1 dev1 3 (mx) dev2 2 dev3 0 (min) zřízení vstupy výstupy x3 x2 x1 x0 y1 y0 z dev0-0 0 1 0 0 1 dev1 - - 1-0 1 1 dev2-1 0-1 0 1 dev3 1 0 0 0 1 1 1 žádné 0 0 0 0 0 0 0