5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD
1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD 1 Zadání 1. Navrhněte obvod realizující neminimalizovanou funkci (úplný term) pomocí hradel AND, OR a invertorů. Zaznamenejte počet použitých hradel a počet pouzder integrovaných obvodů. 2. Minimalizujte zadanou funkci pomocí Karnaughovy mapy. Z minimalizované funkce navrhněte schéma s hradly NAND a invertory. Celý postup zaznamenejte (pravdivostní tabulku, Karnaughovy mapy, minimalizovanou logickou funkci, schéma zapojení). 3. V návrhovém prostředí Xilinx WebPack navrhněte minimalizovanou funkci a funkci ověřte na testovacím přípravku. Zjistěte, jakou logickou hodnotu signalizuje rozsvícení LED. 4. Navrhněte obvod, který řeší zadanou funkci, pomocí multiplexeru. Celý postup zaznamenejte. 5. V návrhovém prostředí Xilinx WebPack navrhněte danou funkci pomocí multiplexeru a funkci ověřte na testovacím přípravku.
2 Teoretický úvod Logickou funkci můžeme zapsat několika způsoby: 1 Pravdivostní tabulkou Pravdivostní tabulka obsahuje hodnoty výstupních proměnných pro všechny stavy vstupních proměnných. Proto má tabulka počet řádků daný číslem 2n , kde n je počet vstupů. Kombinace vstupních proměnných se nejčastěji uvádí jako posloupnost přirozených čísel v binárním kódu. Při tomto způsobu zápisu vyjadřují uvedená čísla stav jednotlivých vstupních proměnných a označují se jako stavový index.
1
5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD Tab. 1: Pravdivostní tabulka Stavový index 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
d L L L L L L L L H H H H H H H H
Vstupy c b L L L L L H L H H L H L H H H H L L L L L H L H H L H L H H H H
a L H L H L H L H L H L H L H L H
Výstup y L H H L L L H L L H L L L H L H
2 Logickým výrazem Logickou funkci lze zapsat logickým výrazem mnoha způsoby, ale nejčastější je součet součinových termů. Každý součinový term (minterm) je zápis každého stavu vstupních proměnných. Zápis v úplném součtovém tvaru odvodíme z tabulky tak, že funkci zapíšeme jako součet mintermů odpovídajících řádkům tabulky, pro něž tato funkce má hodnotu H. Pro tab. 1 můžeme proto psát y d c b a d c b a d c b a d c b a d c b a d c b a .
Schéma navržené z tohoto úplného součinového termu může vypadat jako na obr. 1.
(1 )
2
5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD d c b a
d c b a
&
&
& 1
y
&
&
& 1 1 1 1
Obr. 1: Schéma navržené z úplného součtového termu Každý součinový term je realizován obvodem AND a výsledný součet všech součinových termů je realizován obvodem OR. 3 Karnaughova mapa Pro minimalizaci logické funkce nejčastěji používáme Karnaughovy mapy. Karnaughova mapa má 2n polí, kde n je počet vstupů. Každé pole zastupuje jeden řádek v pravdivostní tabulce. Do pole se zapisuje hodnota výstupu při vstupní kombinaci reprezentované polem. Příklad přepisu tab. 1 do Karnaughovy mapy je znázorněn na obr. 19. b
a 0
H
4 12 8
1
3
5
7
13
H H
9
H H
2 6
15
14
11
10
H
c d
Obr. 2: Příklad zápisu logické funkce pomocí Karnaughovy mapy Karnaughova mapa se dále využívá při minimalizaci logické funkce. Výraz minimalizované funkce je uveden v rovnici 2. a b c, d b a, d c a, V d b a.
(2 )
3
5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD Můžete jej porovnat s výrazem uvedeným v rovnici 1. Oba reprezentují stejnou logickou funkci. Schéma s logickými obvody Poslední možností pro zápis logické funkce je použití logického schématu. Schémat zapojení, která představují jednu logickou funkci, může být mnoho. Záleží na typu použitých hradel, dále na tom, zda je funkce minimalizovaná nebo je-li schéma tvořeno z úplného součtového termu jako na obr. 1 nebo z minimalizované funkce jako na obr. 3. d c b a
d c b a &
& 1
y
&
& 1 1 1 1
Obr. 3: Schéma minimalizované logické funkce Minimalizace logické funkce Minimalizace logické funkce se provádí nejčastěji pomocí Karnaughovy mapy. Jako příklad budeme minimalizovat funkci zadanou v tab. 1. Zakreslíme si Karnaughovu mapu podle obr. 4. V mapě vytvoříme smyčky tak, že všechna pole v mapě, která mají hodnotu H musí být obsažena alespoň v jedné smyčce, přičemž se smyčky mohou překrývat. Smyčky musí zahrnovat co nejvíce polí a nesmí mít vnější úhly menší než 180° (nesmí být ve tvaru písmene L nebo T). Nesmíme zapomenout dělat smyčky i přes rohy a strany mapy. Když máme všechny pole s hodnotou 1 zahrnuty ve smyčkách, musíme jednotlivé smyčky popsat. Popisujeme je pomocí součinového termu. Výsledná funkce je dána součtem všech termů reprezentujících jednotlivé smyčky v mapě. Mapa s vyznačenými smyčkami je nakreslena na obr. 4. b
a 0 4
5
I.
III. 12 8
3
1
H
13
H
IV. H
9
H
2
7
6
15
14
11
10
II. H H
c d
Obr. 4: Karnaughova mapa s vyznačenými smyčkami
4
5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD Smyčky popíšeme výrazy a b c, d b a, d c a, V d b a. Pak výsledná funkce je dána logickým součtem všech termů, které popisují jednotlivé smyčky. Tato funkce je uvedena ve výrazu 2. Schéma navržené z minimalizované funkce je uvedeno na obr. 3. Realizace logické funkce pomocí multiplexeru Realizovat logickou funkci můžeme pomocí multiplexeru pouze tehdy, když má multiplexer 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říkladu realizujeme funkci o čtyřech proměnných, vystačíme s multiplexerem se třemi řídicími vstupy . Jako multiplexer můžeme použít integrovaný obvod 74ALS151 (v Xilinx WebPack M8_1E). Jeho schematická značka je zobrazena na obr. 5. Funkce multiplexeru je taková, že multiplexer přenáší informaci ze zvoleného vstupu 0 až 7 na výstup Q. Vstup, ze kterého je informace převáděna na výstup, je vybrán adresou binárním číslem na vstupech C, B, A, přičemž vstup C má největší váhu. Číslo zvoleného vstupu odpovídá binárnímu číslu přivedenému na vstupy C, B, A. Pro přenos informace ze vstupu na výstup musí být na vstupu S logická úroveň L. Při logické úrovni H na vstupu S je na výstupu Q logická úroveň L.
4 3 2 1 15 14 13 12 11
74ALS151 MX 0 1 2 3 4 5 6 7
5
6
A
10 B 9
C
7
S
Obr. 5: Schematická značka multiplexeru 74ALS151 Realizaci logické funkce provádíme tak, že tři vstupní proměnné d, c, b přivedeme na vstupy multiplexeru C, B, A. Nyní je převedena informace ze vstupu 0 na výstup multiplexeru Q pro kombinaci vstupních proměnných b = L, c = L a d = L, což odpovídá stavovému řádku s indexem 0 a 1 v pravdivostní tabulce. Na tento vstup 0 připojíme vstupní proměnnou a, protože se výstupní proměnná y mění podle vstupní proměnné a ( y a ). Dále mohou nastat další případy. Případ, kdy výstupní hodnota je negací vstupní proměnné a ( y a ) pro určité dva stavové řádky pravdivostní tabulky, řešíme tak, že na příslušný vstup multiplexeru připojíme vstupní proměnnou a . Dále můžou nastat dva případy, kdy se výstupní hodnota y pro určité dva stavové řádky nemění. Pak připojíme příslušný vstup multiplexeru na logickou úroveň H nebo L, podle toho, jaké logické úrovně nabývá výstupní proměnná y pro dané stavové řádky. Příklad realizace logické funkce zadané v tab. 1 pomocí multiplexeru je nakreslena na obr. 6.
5
5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD d c b a 1 74ALS151 4 3 2 1 15 14 13 12 11
0 1 2 3 4 5 6 7
MX Q
5
y
6
A
10 B 9
C
7
S
Obr. 6: Realizace logické funkce s použitím multiplexeru
6
5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD
Protokol
jméno:
Zadaná fce:
Pravdivostní tabulka:
Index 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
d 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
c 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
Karnaughova mapa:
Minimalizovaná fce:
y=
a 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Výstup Y
skupina:
7