Logické obvody 3 - Normálne formy a Karnaughova mapy
Minule sme pravdivostná tabuľkou kompletne definovali čo daný kombinačný obvod bude robiť tak, ako bolo v zadaní požadované. Teraz už ho stačí "len" realizovať.
Realizácia pomocou logických členov, čo je potrebné
1. zjednodušenie (minimalizácia) logické funkcie
- buď: výpis výstupné funkcie v algebraickom tvare + minimalizácia pomocou pravidiel Booleovej algebry
- alebo: zápis výstupné funkcie priamo do Karnaughova mapy, ktorá slúži k minimalizácii výstupnej funkcie grafickou metódou
2. nakreslenie schéma logického obvodu
- buď: priamo pomocou základných logických členov - AND, OR, NOT alebo i ďalších (Exor, ...)
- alebo: iba pomocou členov NAND alebo iba pomocou členov NOR, napred je ale potrebné previesť logickú funkciu podľa De Morganových zákonov
Výpis výstupné logické funkcie v algebraickom tvare
1. Ako úplná normálna disjunktné forma (ÚNDF)
- tú získame z pravdivostná tabuľky tak, že vytvoríme súčiny vstupných premenných v riadkoch, kde má výstupné funkcie hodnotu f = 1 tzv. mintermy. Všetky tieto mintermy potom sčítame. Každá premenná v súčinu je zapísaná tak, že ak nadobúda hodnoty log 0, potom ju píšeme s negáciou, ak log 1, potom píšeme bez negácie.
2. ako úplná normálny konjunktní forma (ÚNKF)
- ktorá sa skladá zo súčtov vstupných premenných v riadkoch, kde má výstupné funkcie hodnotu f = 0 tzv. maxtermů, a všetky tieto maxtermy potom vynásobíme. Každá premenná v súčte je zapísaná tak, že ak nadobúda hodnoty log 0, potom ju píšeme bez negácie, ak log 1, potom píšeme s negáciou.
Príklad vytvorenie ÚNDF a ÚNKF z pravdivostná tabuľky:



Minimalizácia ÚNDF podľa Booleovej algebry

Schéma výstupné funkcie zo základných logických členov
Tak a teraz schéma zo základných logických členov. Príklad je príliš jednoduchý, takže je hneď zrejmé, že postačuje použiť jeden OR.

Radšej uvediem ešte jeden príklad, ktorý je zadaný pravdivostná tabuľkou a opäť máme vypísať ÚNDF a ÚNKF:


Minimalizácia ÚNDF podľa Booleovej algebry

Ak by sme chceli zjednodušovať ÚNKF, bolo by nutné zátvorky medzi sebou
roznásobit a .... to už samo o sebe je hrozná predstava, takže to robiť
nebudeme
Schéma výstupné funkcie zo základných logických členov
Ešte schéma našej funkcie. Zo základných členov budeme potrebovať 3x dvojvstupové AND a 2x dvojvstupové OR.

Schéma vyzerá dobre a nie je ani veľmi zložité, ale každý typ logického člena je obsiahnutý v inom integrovanom obvode. Konkrétne dvojvstupové AND v TTL 7408, kde sú štyri tieto členmi a dvojvstupové OR zase v TTL 7432, kde sú tiež štyroch členov. Čo teda znamená celkom dva integrované obvody.
Realizácia výstupné funkcie iba pomocou členov NAND
V rámci úspor (miesta i financií) sa minimalizácia týka aj obmedzenie typov použitých členov. Takže sa potom robí prenesenie už minimalizované funkcie na len NAND alebo len NOR a to pomocou De Morganových pravidiel.
Ja to trošku zjednoduším. Ak chceme použiť len NAND, musíme sa zbaviť všetkých súčtov vo funkcii a naopak ak chceme funkciu realizovať len NOR, potom je potrebné odstrániť súčiny. To vykonáme "dvojitú negáciou" nad súčtom (alebo súčinom). Otázka je prečo dvojitá negácia, keď podľa De Morgana stačí len jedna negácia pre zmenu súčtu na súčin (alebo súčinu na súčet). Tak ak by sme našej funkciu znegoval iba raz, tak vlastne realizujeme funkciu práve opačnú než sme chceli. Takže tá druhá negácie je tam preto, aby sme nezmenili pôvodnú funkciu. Pre vlastné demorganování ju nepoužijeme, len tam zostane.

Schéma výstupné funkcie len z logických členov NAND

Keď na to teraz pozerám, tak sme si moc nepomohli, pretože zase budeme
potrebovať dva integrované obvody (TTL 7400 a TTL 7411). Síce je dvoch aj
třívstupové NAND rovnaký typ, ale bohužiaľ sa rozlišuje aj počet
vstupov, ale dúfam, že princíp je jasný .
Minimalizácia výstupné funkcie pomocou Karnaugovy mapy
Cieľom minimalizácia je nájsť najjednoduchšie vyjadrenie zadanej logické funkcie. Táto metóda je vhodná maximálne pre 4 až 5 premenných, ale je rýchla a výsledná funkcia je vždy v minimálnom tvare.
hľadáme:
MNDF, minimálna normálne disjunktní formu - logický súčet minimálneho počtu minimálnych súčinov (mintermů)
alebo
MNKF, minimálna normálne konjunktní formu - logický súčin minimálneho počtu minimálnych súčtov (maxtermů)
Postup minimalizácia pomocou Karnaughova mapy
- Zapíšeme výstupné funkciu do mapy.
- Vytvoríme slučky. Pre hľadanie MNDF vytvárame slučky približne v tvare štvorca alebo obdĺžnika, ktoré obsahujú, čo najväčší počet "susedných jedničkových stavov". Počet týchto stavov musí byť vždy mocninou čísla 2 (tj. 1, 2, 4, 8, 16, ... atď.). Susedné jednotkovej stavy sú "jedničky", ktoré spolu susedia hranou, a to aj cez okraje mapy. Slučky sa môžu navzájom prekrývať, nerobíme však slučky nadbytočné. Všetky jednotky musia byť opísané buď v rámci niektorej slučky, alebo samostatne.
- Jednotlivé slučky sa opisujú mintermy, zloženými iba z tých premenných, ktoré sa počas celej slučky nemení (premenná a bude v mintermu obsiahnutá, ak pre všetkých "1" v slučke nadobúda rovnaké hodnoty, napr. A = 1). Termy dvoch susedných polí sa od seba líšia len v stave jednej premennej ao túto premennú možno funkciu, pri zlúčení týchto polí do slučky, zjednodušiť. Čím viac susedných "1" je v slučke, tým menej premenných bude v príslušnom mintermu.
- Výsledná MNDF je súčtom takto vytvorených minimálnych mintermů.
Pre MNKF platí to isté, s tým, že slučky vytvárame okolo "susedných nulových stavov" a slučky sa opisujú pomocou maxtermů. Výsledná MNKF je potom súčinom týchto minimálnych maxtermů.
Pr .: Napíšte pravdivostnú tabuľku, Karnaughova mapu, MNDF a MNKF funkcie, zadanej pomocou stavových indexov.

Pr .: Vytvorte pravdivostnú tabuľku, Karnaughova mapu, MNDF a MNKF logického člena OR. Uvažujte dve vstupné premenné.

Minimalizácia neúplne zadaných funkcií
Pri minimalizácii neúplne zadaných funkcií postupujeme zhodne ako pri minimalizácii funkcií úplne zadaných s tým, že neurčenej stavy x zahŕňame buď do slučiek s "jednotkami" alebo do slučiek s "nulami" alebo ich nemusíme zahrnúť do žiadnej slučky. Vždy hľadíme na výhodnosť ich polohy pre tú ktorú minimalizáciu. Stručne povedané, ak je výhodné zahrnúť neurčitý stav a získať tak väčšiu slučku (teda menší počet premenných) urobíme tak, inak nie.
Pr .: pravdivostná tabuľka a Karnaughova mapa funkcie neúplne zadané

Pre MNDF nie je výhodné neurčený stav zahŕňať, viedlo by to len k vytvoreniu ďalšej slučky a tým ďalších premenných.
Pre MNKF je však slučka s x výhodnejšie pretože je popísaná len premennú b, oproti popisu samotnej "0", ktoré by viedlo k opisu (a + b).
Pr .: Minimalizujte neúplne zadanú funkciu pomocou Karnaughova mapy a zapíšte v tvare MNDF. Funkcia je zadaná stavovým indexom.

