Logické řízení. Logické řízení - Úvod Logické řízení je cílená činnost, při níž se logickým obvodem zpracovávají informace o řízeném procesu a podle nich ovládají příslušná zařízení tak, aby se dosáhlo předepsaného cíle. Spojité veličiny, které jsou popsány spojitými proměnnými, mohou nabývat nekonečného počtu hodnot. V tomto předmětu se budeme zabývat logickými veličinami nebo logickými proměnnými, které mohou nabývat konečného počtu hodnot. Na nich je založena logická algebra, tj. soustava pravidel, určených k popisu vztahů mezi logickými proměnnými. Tato pravidla popisují nejčastěji logické operace což jsou vlastní úkony logické algebry. Zvláštním druhem logických proměnných jsou dvouhodnotové proměnné a dvouhodnotové veličiny, které nabývají pouze dvou možných hodnot, nejčastěji označované jako 0 a. To jsou také nejčastěji se vyskytující logické veličiny v technice. Nejčastěji 0 Obecněji L H Je-li to fyzikálně výstižnější VYPNUTO ZAPNUTO Pro slovní pojmy NE ANO False, True F T Tab..: Logické veličiny v technice Logická algebra která je založená na dvouhodnotových veličinách se nazývá Booleova algebra (podle irského matematika G. Boolea 55-864). Logický obvod je fyzikální systém, který realizuje logické operace. Nejčastěji složen z polovodičových prvků (integrované obvody). Logické obvody můžeme rozdělit: První způsob dělení: Kombinační obvod (AND, OR, NOT, ) Sekvenční obvod (RS, JK, D, ) Druhý způsob dělení S pevnou logikou (Logické pole) Programovatelné (Programovatelné automaty, počítače, ). Pravdivostní tabulka: Pravdivostní tabulka představuje nejjednodušší způsob zápisu kombinačních logických funkcí. Pravdivostní tabulkou vyjadřujeme závislost výstupní veličiny na vstupní. Pří větším počtu vstupních proměnných však může být tento způsob zápisu nepohodlný pro značný počet řádků tabulky.
Počet řádků pravdivostní tabulky je dán počtem vstupů. 2 n, kde n je počet vstupů. Počet vstupů Počet řádků 2 2 4 3 8 4 6 atd. atd. Tab..2: Výpočet počtu řádků pravdivostní tabulky Do tohoto počtu řádků se počítají pouze řádky s nulami a jedničkami, ne označení vstupů a výstupů. Pomocí těchto řádků můžeme vyjádřit všechny možné kombinace, které mohou nastat. Obvykle pro první vstup střídáme nuly a jedničky, pro druhý dvě nuly dvě jedničky, pro třetí čtyři nuly čtyři jedničky, pro čtvrtý osm nul osm jedniček atd. Příklad pro dva vstupy A, B: A B Y 0 0 0 0 Příklad pro tři vstupy A, B, C: A B C Y 0 0 0 0 0 0 0 0 0 0 0 0 2
Příklad.: Jako příklad použití pravdivostní tabulky uvedeme popis převodníku čtyřbitového binárního kódu na kód sedmisegmentového displeje s headecimálním zobrazením. Náčrt zapojení a zobrazované znaky (headecimální číslice) jsou nakresleny na obrázku.. U vstupních proměnných je symbolem MSB (Most Significant Bit) a LSB (Least Significant Bit) označen nejvýznamnější a nejméně významný bit. Obr..: Zapojení převodníku V pravdivostní tabulce jsou pro všechny kombinace vstupních proměnných (zde r, s, t, u) uvedeny hodnoty výstupních proměnných. Nejobvyklejší je uvádět kombinace vstupních proměnných tak, že při interpretaci formou binárních číslic představují posloupnost přirozených čísel zapsaných 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 říká se jim stavový inde. Funkce převodníku je dána následující pravdivostní tabulkou. číslo číslice vstupy výstupy (stav.inde) (he) r s t u a b c d e f g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 3 3 0 0 0 0 4 4 0 0 0 0 0 0 5 5 0 0 0 0 6 6 0 0 0 7 7 0 0 0 0 0 8 8 0 0 0 9 9 0 0 0 0 A 0 0 0 B 0 0 0 2 C 0 0 0 0 0 3 D 0 0 0 4 E 0 0 0 5 F 0 0 0 Tab..3: Pravdivostní tabulka převodníku 3
2. Logické funkce 2. Logické funkce jedné proměnné Logické funkce jedné proměnné jsou nejjednodušším případem logických funkcí. Jsou v podstatě čtyři a jsou popsány následujícími pravdivostními tabulkami a algebraickými zápisy (rovnicemi). První funkce je pro libovolné y rovna 0 a nazývá se falsum. y 0 0 0 falsum lež y= 0 Druhá má vždy opačnou hodnotu y než. Nazývá se negace. y 0 0 negace opak y= Třetí funkce má pro y vždy stejnou hodnotu jako je a nazývá se aserce. y 0 0 aserce opakování y= Čtvrtá funkce má y stále rovno pro všechna a nazývá se verum. X y 0 Verum pravda y= 4
Praktický význam má však pouze jedna funkce ze čtyř základních funkcí jedné proměnné a tou je negace a ta patří k nejdůležitějším logickým funkcím. 2.2 Logické funkce dvou proměnných y= Nyní se budeme zabývat logickými funkcemi dvou proměnných. Je jich celkem šestnáct jak je vidět z následující tabulky.. falsum 2. konjunkce 4. aserce 6. aserce 8. disjunkce 3. inhibice 5. inhibice 7. dilema nulová fce log. součin opakování opakování log. součet y 2 y 2 y 2 y 2 y 2 y 2 y 2 y 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9. negace 0. 2. 4. 5. negace 6. verum. negace 3. negace log. součtu ekvivalence implikace implikace log. součinu jedn. funkce y 2 y 2 y 2 y 2 y 2 y 2 y 2 y 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tab. 2.: Logické funkce dvou proměnných Všech 6 funkcí se opět nepoužívá, používají se běžně pouze následující čtyři. a) Konjunkce, logický součin, AND je charakterizován tím, že funkční hodnota y nabývá jedničky pouze tehdy, když obě proměnné, 2 (obecně všechny proměnné) jsou jedničky. y= 2 y= 2 2 y 0 0 0 0 0 0 0 5
b) Disjunkce, logický součet, OR je charakterizována tím, že funkční hodnota y nabývá jedničky tehdy, když alespoň jedna z proměnných, 2 (obecně ze všech proměnných) je jednička. y= + 2 y= 2 2 y 0 0 0 0 0 c) Negace konjunkce, Shefferova funkce, NAND je charakterizována tím, že funkční hodnota y nabývá jedničky tehdy, když proměnné, 2 (obecně všechny proměnné) nejsou současně jedničky. y= 2 y= 2 2 y 0 0 0 0 0 d) Negace disjunkce, Pierceova funkce, NOR je charakterizována tím, že funkční hodnota y je jednička, když žádná z proměnných, 2 (obecně když žádná z proměnných) není jednička. y= + 2 y= 2 6
2 y 0 0 0 0 0 0 0 2.3 Obecné logické funkce Více vstupů, více výstupů: Výstup y i je závislí na kombinaci nezávislých logických proměnných, 2,..., n Logické funkce můžeme vyjádřit: Booleovými funkcemi to je negací, konjunkcí a disjunkcí Funkcemi NAND stačí jediná funkce Funkcemi NOR opět stačí jediná funkce Podle toho, které vyjádření zvolíme, mluvíme o booleovy algebře, NAND algebře nebo NOR algebře. Základní je vyjádření Booleovými funkcemi pro vyjádření logické funkce potřebujeme tři základní funkce a při realizaci této funkce potřebujeme tři druhy logických prvků. Pokud se rozhodneme pro vyjádření logické funkce základní funkcí NAND nebo funkcí NOR, vystačíme s jedním druhem základní funkce a při realizaci potřebujeme pouze jeden druh logických obvodů. 7
3. Booleova algebra Používá tři základní funkce (negaci, konjunkci a disjunkci), ale lze jimi vyjádřit libovolnou funkci. Základním požadavkem je každou logickou funkci minimalizovat, to je vyjádřit ji co nejmenším počtem základních logických funkcí. Tím se při realizaci spotřebuje nejmenší počet logických prvků, technická realizace vyjde nejjednodušší, nejekonomičtější a také se zvýší její spolehlivost. 3. Pravidla Booleovy algebry K zjednodušování čili k minimalizaci logických funkcí používáme základní pravidla Booleovy algebry, se kterými se teď seznámíme. Násobení má přednost před sčítáním! 3.. Zákon vyloučení třetího Pravidlo: = Důkaz: 0= 0 = 3..2 Logický rozpor Pravidlo: = 0 Důkaz: 0= 0 0 = 0 3..3 Dvojitá negace Pravidlo: = Důkaz: = 0 = 0= 0= 0 3..4 Opakování Pravidlo: = = Důkaz: = 0 0= 0 = 0 0= 0 3..5 Komutativní zákony Pravidlo: 2 = 2 2 = 2 Důkaz: = 0 0= 0 0 = 0 0= 0 0 3..6 Asociativní zákony = Pravidlo: ( 2 3) 2 3 ( 2 3) = 2 3 Důkaz: ( 0 ) = =...... 0 = ( 0 ) = 0= 0...... 0 = 0 3..7 Distributivní zákony = Pravidlo: ( 2 3) ( 2) ( 3) ( ) = ( ) ( ) 2 3 2 3 8
Důkaz: ( 0 ) = =......( 0) ( ) = 0 = ( 0 ) = 0=......( 0) ( ) = = 3..8 Absorpční zákony = Pravidlo: ( ) 2 ( ) = 2 2 ( ) = 2 ( ) = 2 2 Důkaz: ( 0) = 0= ( 0) = 0... =... 0 ( 0) = = ( 0) = 0... =... 0 3..9 Neutrálnost 0 a Pravidlo: 0 = = Důkaz: 0 = 0 0= 0 = 0= 0 3..0 Agresivnost 0 a Pravidlo: = 0 = 0 Důkaz: = 0= 0 = 0 0 0= 0 3.. De Morganovy zákony Pravidlo: 2 = 2 (3.) 2 = 2 (3.2) Důkaz: 0= = 0... =... 0= 0 = 0 0= 0=... =... 0= 0 = De Morganovy zákony jsou velmi důležité, uplatní se zejména v budoucím převádění Booleovy algebry na NAND nebo NOR algebru. Budeme je používat ve tvaru, který z rovnic (3.) a (3.2) dostaneme negací levé a pravé strany rovnice. 2 = 2 2 = 2 Napišme si tyto rovnice ještě jednou, například pro tři proměnné, které označíme a, b, c, poněvadž je budeme v budoucnu velmi často používat. a b c= a b c a b c= a b c 9
V dalším tetu se budeme zabývat minimalizací logických funkcí. Nejjednodušší je použití těchto pravidel Booleovy algebry a úpravy výrazů tak dlouho, dokud nedostaneme nejkratší výraz. Většinou je to však příliš pracná metoda, zvlášť když se jedná o složitější výrazy a také nemusíme vždy dostat minimální tvar, protože nevíme, kdy je nejkratší, kdy je minimální. Hodně zde záleží na prai a technické dovednosti. Proto se obyčejně minimalizace neprovádí tímto způsobem, ale většinou použitím Karnaughovy mapy, která bude vysvětlena později. Příklad 3.: Minimalizujte logickou funkci y= 2 3 2 3 2 3 2 3 2 3 Řešení: Z druhého a třetího členu vytkneme 2 a z čtvrtého a pátého členu vytkneme 2. ( ) ( ) y= 2 3 2 3 3 2 3 3 Výrazy v závorkách jsou podle zákona vyloučení třetího rovny jedné. Potom z druhého a třetího členu vytkneme. y= 2 3 2 2 ( ) y= 2 3 2 2 Výraz v závorce je ze stejného důvodu opět roven jedné. y= 2 3 Použijeme absorpční zákon podle kterého je 2 = 2 a dostaneme výsledek. Příklad 3.2: y= 2 3 Minimalizujte logickou funkci y= 3 4 3 4 2 3 4 Řešení: Podle De Morganova zákona převedeme negaci logických součinů na součet negací. ( ) ( ) ( ) y= 3 4 3 4 2 3 4 Výraz v první závorce roznásobíme, zbylé dvě závorky není třeba uvádět. 0
Vytkneme 3 a 4 a dostaneme výraz: y= 3 4 3 4 2 3 4 ( ) ( ) y= 3 4 2 3 4 Podle zákona agresivnosti 0 a = jsou výrazy v závorkách rovny jednotce. y= 3 4 2 3 4 Podle zákona opakování je = a tedy dostaneme výraz: y= 2 3 4 Výsledný vztah dostaneme aplikací De Morganovy zákona. y= 2 3 4 3.2 Vyjádření Booleovských funkcí Nejčastěji používané prostředky pro vyjádření Booleových funkcí jsou: Slovní zadání Pravdivostní tabulka Algebraický zápis rovnice popisující logický obvod Karnaughova mapa eventuálně jiné mapy Blokové schéma schématické značky pro logické členy. Slovní zadání je v prai velmi časté, protože všechny procesy můžeme zapsat pomocí slovního zadání. Pro složitější zadání zkonstruujeme ze slovního zadání pravdivostní tabulku, se kterou jsme se již setkali a pro jednodušší zadání píšeme přímo algebraický zápis. Příklad 3.3: Převod ze slovního zadání na pravdivostní tabulku a algebraický výraz. Máme tři vypínače, kterými můžeme zapínat žárovku. Žárovka svítí v případě, že alespoň dva vypínače jsou zapnuty. To znamená, že máme jediný výstup (žárovka svítí =, nesvítí = 0) a tři vstupy (vypínače zapnuty =, vypnuty = 0). Výstup označíme y vstupy, 2, 3. Funkci zapojení žárovky a přepínačů můžeme popsat následující pravdivostní tabulkou 3..
2 3 y pozn. 0 0 0 0 žádný vypínač není zapnut 0 0 0 zapnut je pouze třetí vypínač (potřebujeme alespoň dva) 0 0 0 zapnut je pouze druhý vypínač (potřebujeme alespoň dva) 0 vypínače dva a tři jsou zapnuty, žárovka svítí 0 0 0 zapnut je pouze první vypínač (potřebujeme alespoň dva) 0 vypínače jedna a tři jsou zapnuty, žárovka svítí 0 vypínače jedna a dva jsou zapnuty, žárovka svítí všechny tři vypínače jsou zapnuty, a protože je v zadání alespoň dva, žárovka svítí i pro tři Tab. 3.: Pravdivostní tabulka Nyní si ukažme, jak přecházíme od pravdivostní tabulky k algebraickému zápisu logické funkce. Každou logickou funkci můžeme algebraicky vyjádřit jako součet logických součinů. V pravdivostní tabulce postupujeme po řádcích a uvažujeme pouze ty, ve kterých výstup y nabývá hodnoty. Vstupní proměnné mezi sebou násobíme s tím, že ta vstupní veličina, která má hodnotu je zastoupena přímo, pokud má hodnotu 0 je zastoupena svojí negací. Při přechodu na nový řádek použijeme sčítací člen. Funkce daná předchozí pravdivostní tabulkou bude vyjádřena algebraickým výrazem: y= 2 3 2 3 2 3 2 3 Tomuto tvaru logické funkce, který sestává z logického součtu logických součinů se říká disjunktivní normální forma (DNF). Je to jedno z důležitých vyjádření Booleových funkcí a je základem pro popis logické funkce Karnaughovou mapou, ke které se dostaneme později. Nebo opačně: Každou logickou funkci můžeme vyjádřit jako logický součin logických součtů. V pravdivostní tabulce postupujeme po řádcích a uvažujeme pouze ty, ve kterých výstup y nabývá hodnoty 0. Vstupní proměnné mezi sebou sčítáme s tím, že ta vstupní veličina, která má hodnotu je zastoupena svou negaci, pokud má hodnotu 0 je zastoupena přímo. Při přechodu na nový řádek použijeme násobící člen. Funkce daná předchozí pravdivostní tabulkou bude vyjádřena algebraickým výrazem: ( 2 3) ( 2 3) ( 2 3) ( 2 3) y= Tomuto tvaru logické funkce, který sestává z logického součinu logických součtů se říká konjunktivní normální forma (KNF). 2
Příklad 3.4: Následující pravdivostní tabulky zapište ve tvaru DNF a KNF. a) Pro dvě proměnné 2 0 0 0 0 0 0 y DNF: y= 2 2 KNF: y= ( 2) ( 2) b) Pro tři proměnné 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y DNF: y= 2 3 2 3 2 3 2 3 KNF: y= ( 2 3) ( 2 3) ( 2 3) ( 2 3) c) Pro čtyři proměnné 2 3 4 y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
y= 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 ( 2 3 4) ( 2 3 4) ( 2 3 4) ( 2 3 4) ( 2 3 4) ( 2 3 4) ( 2 3 4) ( 2 3 4) ( 2 3 4) ( 2 3 4) 3.3 Karnaughova mapa Karnaughova mapa slouží k vyjádření Booleovských funkcí, ale především k jejich minimalizaci. Minimalizaci zatím neuvažujme, a mluvme zatím pouze o vyjádření logických funkcí Karnaughovými mapami. Mapa je tabulka, která má tolik políček, kolik je kombinací vstupních proměnných vyšetřované funkce. Funkce s n vstupními proměnnými tedy vyjadřujeme mapou s 2 n políčky. Každé políčko odpovídá jedné z možných kombinací a zapisujeme do něj odpovídající funkční hodnotu. Podle kódu, kterým přiřazujeme políčka jednotlivých kombinacím proměnných, rozlišujeme různé mapy. Nejznámější je Karnaughova mapa. U ní se sousední políčka od sebe liší hodnotou jediné proměnné. Pro jeden výstup je vždy jedna Karnaughova mapa. Zavedeme následující konvenci pro Karnaughovu mapu:. Pro dvě proměnné používáme mapu 22, přičemž svislá hrana je pro jednu proměnnou, vodorovná pro druhou. Pro tři proměnné používáme mapu 24 (nebo 42), kde svislá hrana je pro jednu a vodorovná pro dvě proměnné. Pro čtyři proměnné používáme mapu 44, kde máme vždy po dvou proměnných na hranách atd. Karnaughovy mapy logických funkcí dvou až šesti proměnných jsou na obr. 3.. 5 2 4 3 2 2 3 6 3 2 5 4 2 4 3 Obr.3.: Karnaughovy mapy pro logické funkce dvou až šesti proměnných 4
2. Řádky nebo sloupce, ve kterých je příslušná hodnota rovna označíme vedle mapy svislou nebo vodorovnou čárou, tam, kde čára není je hodnota rovna 0. U jedné proměnné je čára na jednom řádku nebo sloupci, u dvou jsou čáry na dvou sloupcích, přičemž se tyto čáry musejí částečně překrývat (to znamená že nesmějí být ani zcela nad sebou, ani vůbec). 3. Pravá hrana Karnaughovy mapy sousedí s levou hranou, stejně tak i horní hrana sousedí se spodní. 4. Do mapy vložíme jedničky z pravdivostní tabulky podle bodu dva. Na následujícím obrázku jsou zobrazeny Karnaughovy mapy pro algebraické výrazy: y= 2 2 y= 2 3 2 3 2 3 2 3 y= 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 Obr. 3.2: Karnaughovy mapy pro předchozí algebraické výrazy 5
3.4 Blokové schéma Schematické značky logických obvodů jsou uvedeny na následujícím obr. Na levé straně jsou uvedeny značky starší, ještě však hojně používané, na pravé novější, přizpůsobené ke snadnějšímu grafickému znázornění. Příklad: 3.5: Obr.3.3: Schématické značky logických obvodů Mějme rovnici y= 2 2. Tuto rovnici se nyní pokusíme nakreslit pomocí blokových schémat negace, konjunkce, disjunkce. Na levou stranu si nakreslíme vstupní proměnné, na pravou výstupní proměnnou (proměnné). Vstupní proměnné, které jsou negovány nejprve znegujeme, potom násobíme a nakonec sčítáme (stejně jako v klasické matematice i zde má násobení přednost před sčítáním). 6
Příklad 3.6: Zakreslete pomocí blokových schémat logickou funkci y= 2 4 3 2 4 4. Minimalizace logických funkcí K dané logické funkci eistuje několik různých tvarů. Všechny jsou matematicky rovnocenné, protože představují stejnou funkční závislost i když mohou být tvarově značně odlišné. Nejsou však rovnocenné z hlediska technického a ekonomického. Pro technickou realizaci je nutno vždy funkci upravit do nejjednoduššího tvaru minimalizovat ji. Minimalizací funkce dosáhneme toho, že při její realizaci budeme potřebovat nejmenší počet logických prvků (negací, konjunkcí, disjunkcí). Tím se logický obvod stane jednoduchým, samozřejmě také levnějším z hlediska ekonomického a spolehlivějším. Pro minimalizaci eistuje řada metod. S jednou z nich jsme se již seznámili. Je to algebraická minimalizace. Logickou funkci zjednodušujeme aplikací různých pravidel Booleovy algebry až na minimální výraz. Metoda je značně pracná, nikdy si nejsme stoprocentně jisti, že daný výraz je už ten minimální. Naprosto se nehodí pro složitější funkce více proměnných. Druhá metoda minimalizace je použití Karnaughovy mapy. Zatím jsme se seznámili s Karnaughovými mapami jako nástrojem pro vyjádření neboli pro popis funkce. Ale jejich hlavní význam je právě aplikace pro minimalizaci logických funkcí. To je umožněno základní vlastností Karnaughovy mapy a to, že se dvě sousední políčka mapy liší v hodnotě pouze jedné proměnné. Minimalizace pomocí Karnaughovy mapy bude spočívat v opačném postupu než při sestavování mapy, a to nalezením algebraického tvaru funkce, zadané mapou. Budeme postupovat tak, že sousední políčka mapy, která obsahují jednotku jako funkční hodnotu, 2 budeme sdružovat do dvojic, čtveřic, osmic, šestnáctic atd. 4 Podle Karnaughovy mapy na obr. zjistíme, že při 3 zakroužkování dvou sousedních jedniček je odpovídající algebraická funkce: ( ) y= = = 2 3 4 2 3 4 2 4 3 3 2 4 7
Uvažujeme-li zakroužkované čtyři sousední jedničky, odpovídá jim funkce: y= 2 3 4 2 3 4 2 3 4 2 3 4 = ( ) ( ) = = 2 3 4 2 3 4 ( ) = 2 3 4 4 2 3 V odpovídající logické funkci chybí ta hodnota, která v příslušné dvojici, čtveřici, osmici, mění svoji hodnotu. V prvním případě to byla proměnná 3, ve druhém případě u čtyřech sousedních políček jsou to proměnné a 4. Byly to samozřejmě ty proměnné, které byly v závorce ve smyslu proměnná nebo její negace a tato závorka se rovnala jedničce podle zákona vyloučení třetího. A toto bylo zapříčiněno vlastností Karnaughovy mapy, že se dvě sousední políčka liší pouze v hodnotě jedné proměnné. Sloučením dvou sousedních jednotkových políček vyloučíme jednu proměnnou, sloučení čtyř políček vyloučíme dvě proměnné, sloučením osmi políček vyloučíme tři proměnné atd. Teď zbývá ještě říci, co rozumíme pojmem sousední políčka v Karnaughově mapě. Sousednost políček v Karnaughově mapě: Sousedními jsou např. i políčka na protilehlých okrajích mapy. Snad pomůže představa, že mapu srolujeme, že bude levý okraj sousedit s pravým a současně dolní s horním. Dvojice mohou být svislé i vodorovné. Čtveřice mohou být dvě a dvě jedničky pod sebou, ale také vodorovně čtyři jedničky vedle sebe anebo svisle pod sebou. Osmice mohou být krát 8 vodorovně či svisle, 2 krát čtyři vodorovně či svisle,... Dále nesmíme zapomenout na rohové čtveřice, osmice apod. Příklady všech těchto čtveřic jsou na následujícím obrázku. 2 4 3 2 4 3 Základní pravidla pro minimalizaci logických funkcí Karnaughovými mapami jak provést seskupení jedniček v mapě do izolovaných jedniček, dvojic,čtveřic,... Všechny jedničky v mapě musí být zakroužkovány, žádnou nesmíme vynechat. Každá jednička se může při kroužkování vzít několikrát, může být současně součástí dvojice, čtveřice,... (to umožňuje zákon opakování... =. Přednost mají... osmice před čtveřicemi, čtveřice před dvojicemi a dvojice před izolovanými jedničkami. 8
V rámci pravidla podle kterého žádnou jedničku nesmíme vynechat, se snažíme o co nejmenší počet smyček. Příklad 4. Karnaughovou mapou minimalizujte logickou funkci: Řešení: y= 2 3 2 3 2 3 2 3 2 3 Nakreslíme Karnaughovu mapu pro tři proměnné viz obr. a napíšeme jedničky do příslušných políček. 2 3 Zakroužkujeme jednoznačně jednu čtveřici a jednu dvojici. Poté obdržíme výsledek y= 2 3 Poznámka: Při řešení praktických úloh se často stává, že logická funkce je definována pouze v některých kombinacích vstupních proměnných, zatím co na funkčních hodnotách zbývajících kombinací nezáleží. Jsou to tzv. neurčené stavy. Mimo stavy, kdy na funkční hodnotě nezáleží, jsou to také kombinace vstupních proměnných, které se z nějakých důvodů nemohou vyskytnout (jsou fyzikálně nedostupné, nebo zakázané ). Hodnota v neurčeném stavu může být dodefinována libovolně. Odpovídající čtvereček v Karnaughově mapě při minimalizaci označíme a můžeme ho pak nahradit nebo 0, podle toho, co je v daném okamžiku výhodnější, abychom získali minimální tvar. 9
5. Realizace logických funkcí Jak plyne z Booleovy algebry, je možné libovolnou logickou funkci vyjádřit kombinaci logického součtu nebo logického součinu a operace negace. Chceme-li tedy sestrojit obvod, který by modeloval nějakou zadanou logickou funkci, musíme mít k dispozici obvody, které generují uvedené základní logické funkce. Elektronické obvody pro generaci uvedených funkcí nazýváme po řadě: hradlo OR, hradlo AND a invertor. Dříve než si rozebereme schémata, je třeba vysvětlit pojmy tzv. pozitivní a negativní logiky. Přiřazení logických stavů 0 a napěťovým úrovním je totiž zcela libovolné a záleží na tom kterém přístroji, jakého přiřazení používá. Pakliže stav logické 0 odpovídá nižšímu napětí na výstupu logického členu nežli stav logické, hovoříme o tzv. pozitivní logice. Jeli tomu naopak, tj. logické 0 odpovídá vyšší napětí nežli logické, pak se jedná o negativní logiku. Přitom je třeba zdůraznit, že nezáleží na velikosti napětí, obě mohou být kladná nebo obě záporná nebo jedno kladné a druhé záporné; pakliže logická odpovídá kladnějšímu napětí, jedná se o pozitivní logiku, jinak je to logika negativní. Stejným způsobem se označuje logika tzv. dynamická (na rozdíl od právě popsané statické, neboli úrovňové logiky), kdy ovšem příslušné úrovně jsou na vstupech logických členů pouze po velmi krátkou dobu, tedy ve formě napěťových impulsů. Vzhledem k tomu, že parametry reálného logického členu se různí kus od kusu (užívají se odpory s určitou tolerancí, tranzistory a diody, které mohou mít různé parametry), není možné stanovit přesnou hodnotu napětí odpovídající logické 0 resp. v té které logické síti. Místo toho se logické členy konstruují tak, aby nebyly citlivé na změnu napětí vstupních parametrů pokud tyto leží v určitém intervalu napětí. Viz obr.5.. Obr 5.: Ukázka logické 0 a logické v pozitivní a negativní logice Například pro hradla TTL (transistor-transistor-logic) jsou příslušné intervaly následující: Uvst(0) = ma. 0,8 V Uvst() = min. 2 V Neboli pro logickou 0 je povolený interval vstupních napětí 0-0.8V pro logickou to je 2-5 V. Hradlo samo má zaručovaná výstupní napětí: Uvýst() = min. 2,4 V Uvýst(0) = ma. 0,4 V 20
tj. hluboce v povolené toleranci napětí vstupních. Napájecí napětí je ( 5± 0, 25 ) V. Uvedené hodnoty jsou typické pro tzv. tranzistorovou logiku a byly implementovány u celé řady výrobců logických obvodů. Zdaleka to však nejsou jediné používané napěťové úrovně u logických obvodů. Hradla s tranzistory řízenými elektrickým polem mají logické úrovně okolo 0 V a 9 V a eistuje i tzv. logika s vysokou šumovou imunitou HLL (high-level-logic), kde napěťová úroveň logické je řádu 0-50 V. S takovými napěťovými logickými úrovněmi pracují řídicí systémy v provozech, kde je zvýšená úroveň elektromagnetického rušení. Na druhé straně pro speciální přístroje s nízkým napájecím napětím (náramkové hodinky) byly vyvinuty obvody, kde jsou logické úrovně mezi 0 V a 3 V i níže. Pokud nebude výslovně uveden opak, budeme se zabývat pouze pozitivní logikou. Prostředky pro realizaci se vyvíjely takto:. kontaktní prvky (například relé) 2. polovodičové obvody 3. tranzistory 4. integrované obvody 5. programovatelné logické pole 6. programovatelné automaty 7. mikropočítačové systémy, počítače Z toho body až 4 jsou prostředky s pevnou logikou a body 5 až 7 jsou programovatelné. 5. logické obvody s kontakty (relé, přepínače, tlačítka,... ) Logický součet pomocí relé: Logický součet pomocí tlačítek, koncových spínačů,...: kreslíme jen zjednodušeně: (logický součet - zapojení paralelně) 2
logický součin: (zapojení sériově) je-li vstupní proměnná negovaná použijeme místo spínacích kontaktů kontakty rozpínací (v klidu je sepnut) Příklad 5.: Spínacími a rozpínacími kontakty realizujte logickou funkci y 2( 3) Řešení: =. 5.2 Logické obvody s diodami Logický součet: (např. Zálohové napájení ze dvou zdrojů) Logický součin: X Y X+Y 0 0 0 0 0 X Y XY 0 0 0 0 0 0 0 22
5.3 Logické obvody s tranzistory 5.3. Obvody DCTL (Direct-Coupled-Transistor-Logic) Přímo vázaná tranzistorová logika DCTL je nejjednodušším typem logiky, který ve své skladbě používá tranzistorů. Základním hradlem těchto obvodů je hradlo NOR, které je znázorněno na obr 5.2. Obr. 5.2: Hradlo NOR realizované DCTL logikou. Obvod je tvořen několika tranzistory s propojenými a uzemněnými emitory a společným kolektorovým odporem. Je zřejmé, že stačí, aby jeden z tranzistorů byl otevřen a napětí na výstupu klesne na jeho saturační napětí, tj. na napětí řádu 0, V. Otevření eventuálních dalších tranzistorů nezpůsobí již podstatnou změnu výstupního napětí. Hradla jsou v tomto systému propojena přímo jak je také ukázáno na obr. 5.2. Proto napětí na výstupu tohoto hradla v nevybuzeném stavu zpravidla nepřekročí úroveň V (je omezeno napětím na diodě báze-emitor následujícího hradla). Předpokladem pro správnou funkci systému těchto hradel je naprostá shoda charakteristik jednotlivých tranzistorů, jinak tranzistor s nižším napětím báze-emitor spotřebuje většinu proudu plynoucího z kolektorového odporu předcházejícího hradla a tranzistory s vyšším napětím báze-emitor zůstanou nevybuzeny. Tím vznikají potíže propojování jednotlivých hradel mezi sebou, pokud není systém umístěn na jediném čipu. Tento systém proto v prai nedosáhl širšího uplatnění. Myšlenka se však uplatnila u jiných systémů. 5.3.2 Obvody RTL (Resistor Tranzistor Logic) Aby se redukoval efekt nestejných charakteristik tranzistorů, byly vloženy odpory do bázových přívodů každého tranzistoru. Tím vznikla tzv. odporově-tranzistorová logika RTL Obvody této logiky se již po určitou dobu vyráběly v integrované formě, postupně však byly vytlačeny jinými systémy s lepšími parametry. Základním hradlem je zde opět NOR, jehož schéma je na obr. 5.3. Zařazením odporů do bází tranzistorů se rovněž zvýšila schopnost hradla budit více následujících logických obvodů. Proti přímo vázané logice se však snížila spínací rychlost obvodu, neboť parazitní kapacity se nyní musely nabíjet přes větší odpor. Proto se někdy přidávaly paralelně ke vstupním odporům tzv. urychlovací kondenzátory (na obr. 5.3 čárkovaně), které tvořily s parazitní vstupní kapacitou kapacitní dělič napětí. 23
Obr. 5.3: Hradlo NOR realizované RTL logikou. 5.3.3 Obvody DTL (Diode Tranzistor Logic) Systém diodové tranzistorové logiky DTL je jedním z obvodů, které se pro speciální účely ještě vyrábějí. Základním hradlem tohoto systému je NAND a vzniklo v podstatě kombinací diodového obvodu AND s invertorem - obr. 5.4. Dioda D s zajišťuje, že tranzistor zůstane uzavřen, pakliže alespoň jeden ze vstupů je uzemněn, tj. v bodě X je napětí rovné spádu na příslušné diodě a v bodě Y je napětí nulové. Jako D s se obvykle užívají dvě diody v sérii, čímž se zvětší šumová imunita hradla. Odporový dělič v bázi invertoru je volen tak, aby v případě logických jedniček na vstupech byl tranzistor otevřen. Vstupní odpor hradla je velký, je-li vstup na úrovni logické a rovná se prakticky R, je-li vstup na úrovni logické 0. Výstupní odpor ve stavu logické je roven kolektorovému odporu a ve stavu logické nuly je velmi malý. Hradla se tedy dají snadno řadit za sebe, typické zpoždění signálu na jedno hradlo je 25 ns. Výroba v monolitické formě není obtížná. Koncepce systému skýtá možnost zařadit místo diody D Zenerovu diodu a tím získat systém s etrémně vysokou šumovou imunitou. s Obr. 5.4: Hradlo NAND realizované DTL logikou. 24
5.3.4 Obvody TTL (Tranzistor Tranzistor Logic) Největšího rozšíření dosáhly ve své době integrované logické systémy TTL (Transistor- Transistor-Logic) řady MH 74. V dnešní době jsou však nahrazovány systémy STTL, MOS a CMOS, které mají nižší spotřebu a srovnatelnou rychlost. Zachovala se však definice logických úrovní; pokud má moderní logický systém stejně definované napěťové úrovně logické nuly a jedničky, nazývá se kompatibilní s TTL na logických úrovních (logic level TTL compatible). V těchto obvodech jsou vstupní diody nahrazeny víceemitorovým tranzistorem. Víceemitorový tranzistor se totiž relativně snadno vyrábí standardní planární technologií a jeho výroba je ekonomičtější než výroba několika izolovaných diod. Navíc při běžném provozu jsou hradla TTL rychlejší než DTL zhruba 2; typická hodnota zpoždění se pohybuje okolo 2 ns. Základním hradlem je opět NAND, které je nakresleno na obr. 5.5. Funkce obvodu je následující: Obr. 5.5: Hradlo NAND realizované TTL logikou a) Všechny vstupy jsou ve stavu logické jedničky - V tomto případě levý tranzistor pracuje v inverzním režimu. Pravý tranzistor je otevřen a na jeho kolektoru je napětí logické 0. b) Jeden nebo více vstupů jsou ve stavu logické nuly - Pak je pravý tranzistor uzavřen a na jeho kolektoru dostaneme přes rezistor napětí logické. 5.4 Logické obvody s integrovanými obvody Při navrhování logických obvodů se často používají prvky NAND (negace logického součinu) a NOR (negace logického součtu), protože tyto prvky jsou snadno dostupné v širokém sortimentu a snadno se realizují. Výhodou oproti Booleovými prvkům je, že k realizaci používáme pouze jeden druh prvků, a to buď NAND a nebo NOR. Nejdříve si podle obr. 5.6 ujasněme funkci těchto prvků a které logické funkce realizují. To je z předcházejícího kontetu a z obrázku jasné. & y =. 2 y = 2 2 NAND NOR 2 Obr. 5.6: Prvky NAND a NOR 25
Nyní si ještě řekněme, jak se realizuje logická funkce negace pomocí prvku NAND nebo NOR. Většinou mají prvky NAND a NOR tři nebo čtyři vstupy. Při realizaci můžeme volné vstupy:. ponechat volné (což je totožné jako připojit logickou 0) 2. všechny spojit (proletovat) s jedním vstupem na který přivádíme vstup. 3. připojit na ně logickou hodnotu Podle obr. 5.7 vidíme, že při vytváření negace z prvků NAND je možné použít varianty 2 a 3, tedy propojit všechny vstupy a nebo připojit na ne hodnotu logická, ale nesmíme je ponechat volné. Při vytváření negace z prvků NOR můžeme použít varianty a 2, tedy ponechat nepoužité vstupy volné a nebo je propojit, ale nesmíme na ně připojit hodnotu logická. & y=.0.0.0= y= 0 0 0= & y=...= y= = & y=...= y= =0 Obr. 5.7: Realizace negace prvky NAND a NOR Příklad 5.2: Navrhněte realizaci logické funkce, dané pravdivostní tabulkou a) Booleovými prvky b) Prvky NAND c) Prvky NOR 2 3 4 y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Řešení Tab. 5.: Pravdivostní tabulka Nejdříve danou logickou funkci pomocí Karnaughovy mapy minimalizujeme. Karnaughova mapa je na obr. 5.4.3. Podle pravidel minimalizace zakroužkujeme jednu čtveřici a dvě dvojice. Tím dostáváme minimalizovanou logickou funkci vyjádřenou Booleovými prvky. 2 4 3 Obr. 5.8: Karnaughova mapa a) Realizace prvky Booleovy algebry: Použijeme minimalizovanou logickou funkci y= 2 4 2 3 4 4, ze které nakreslíme blokové logické schéma (viz. obr. 5.9a). b) Realizace prvky NAND: y= 2 4 2 3 4 4 y= 2 4 2 3 4 4 y= 2 4 2 3 4 4 c) Realizace prvky NOR: y= 2 4 2 3 4 4 y= 2 4 2 3 4 4 y= 2 4 2 3 4 4 y= 2 4 2 3 4 4 y= 2 4 2 3 4 4 Je třeba si uvědomit, že při realizaci prvky NAND a NOR musí být celá rovnice negována!!! 27
Bloková schémata na obr. 5.9 ukazují již zmíněnou realizaci Booleovými prvky na obr. 5.9a, prvky NAND na obr. 5.9b a prvky NOR na obr. 5.9c. Z obr. 5.9 si můžeme udělat také představu o tom, kolik prvků je na jednotlivé realizace zapotřebí. V případě Booleových prvků by bylo potřebí 4 invertorů, 3 součtových členů a součinu, tj. celkem 8 prvků. V případě realizace prvky NAND by bylo zapotřebí 8 prvků NAND, v případě realizace prvky NOR bude potřebí 8 prvků NOR. Tedy v úhrnu potřebujeme pro jednotlivé realizace stejný počet prvků, výhodou u prvků NAND a NOR je, že využíváme prvky stejného typu. 4 2 3 & & & y 4 2 3 & & & & & & & & y 4 2 3 y y Obr. 5.9: Realizace Booleovými prvky, prvky NAND a prvky NOR 5.5 Realizace s programovatelnými logickými poli Speciální IO s mnoha vstupy a výstupy Obsahují velké množství pravidel pro součiny, součty, negace Programováním se přepálí určité spoje v síti propojené a tím se vytvoří požadované propojení, tj. požadované fce. Pro složitější funkce, jsou velmi rychlé,... Pokračování vývoje: obvody XILINX - ty obsahují i registry, čítače, ALU,... Lze použít i pro sekvenční obvody a složitější funkce (včetně numerických funkcí) 5.6 Realizace s programovatelnými automaty Nejuniverzálnější Použití hlavně u kusových aplikací střední a vyšší složitosti Více způsobů programování viz. další látka 28
6. Kombinační logické obvody Kombinační logické obvody realizují kombinační logické funkce. (NOT, OR, AND, ) Definice : Každé kombinaci vstupních proměnných jedna kombinace výstupních proměnných y,..., y m.,..., n odpovídá jednoznačně jen Definice 2: Hodnoty výstupů y,..., y m závisí jen na okamžitých hodnot vstupů,..., n. Kombinační obvody neobsahují paměťové prvky (jsou bez klopných obvodů). Kombinační obvod je většinou zadán pravdivostní (kombinační) tabulkou. VSTUPY 2 VÝSTUPY y 3 y 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Kombinační obvody se většinou používají pro jednodušší úlohy řízení. Příklad: Hlídání zlomených vrtáků:, = zlomen 2 y= porucha y= + 2 2 y 29
0 0 0 0 0 Realizace integrovanými obvody: obecně hradly NAND y= + 2 = 2 Realizace programovatelným automatem, zápis programů pomocí instrukcí (viz další látka). A IX sejmutí vstupu X (adresa I32.0) O IX2 přičtení vstupu X2 (adresa I32.) = OY přesun výsledku na výstup (adresa O32.0) Pro svou důležitost jsou často realizovány jako jeden logický člen tři složené logické obvody: EXCLUSIVE-OR (neekvivalence) EXCLUSIVE-NOR (ekvivalence) AND-OR-INVERT 6. Logická funkce EXCLUSIVE-OR (neekvivalence) Funkci EXCLUSIVE-OR lze obecně definovat pro n logických proměnných. Tato funkce nabývá hodnoty právě když eistuje mezi n vstupními logickými proměnnými alespoň jedna, která má jinou hodnotu, než ostatní. Funkce EXCLUSIVE OR se obvykle značí. Jsou-li A, B vstupní logické proměnné, lze tuto funkci zapsat jako: A B= A B+ A B= A B+ A B Zapojení hradla EXCLUSIVE OR lze realizovat pomocí dvou invertorů, dvou hradel AND a hradla NOR následovně: 30
A B A B 0 0 0 0 0 0 Obr 6.: Důležitost funkce EXCLUSIVE OR je následující: Chtějme sečíst dvě binární čísla o jednom bitu. Výsledek nabude hodnoty 0 pakliže obě čísla budou 0, hodnoty je-li jedno z nich 0 a druhé. Jsou-li obě čísla rovna, pak součet bude opět 0, ale je potřeba vytvořit přenos do eventuálního následujícího bitu. Označíme-li součet S a přenos C (carry), pak je zřejmé, že: S = A B C= Ai B Obvodu generujícímu tyto dvě veličiny se říká polosčítačka. Na předchozím obrázku je rovněž znázorněno, že jednoduchou úpravou (vyvedením jednoho ze vstupů hradla NOR) lze získat z hradla EXCLUSIVE-OR polosčítačku. 6.2 Logická funkce EXCLUSIVE-NOR (ekvivalence) Ekvivalence je jak již název napovídá inverzní funkcí k právě popsané funkci a lze ji jednoduše vytvořit přidáním invertoru k hradlu EXCLUSIVE-OR. Tohoto způsobu však není možno použít při návrhu složitějších logických sítí a vždy je nutno promyslet nejefektivnější způsob generace té které logické funkce, jinak by neúměrně narůstaly rozměry, příkon a ve zdaleka ne poslední řadě také cena příslušné logické sítě. Proto vztah pro tuto funkci upravíme: A B= A B+ A B= A B+ A B= A B+ A B Zapojení hradla EXCLUSIVE NOR lze realizovat úpravou zapojení funkce EXCLUSIVE NOR buď užitím na výstupu hradla OR místo hradla NOR, nebo prostou změnou zapojení vstupů hradel AND jak je ukázáno následovně. A B A B 0 0 0 0 0 0 Obr 6.2: Toto zapojení je výhodné zejména tím, že vyvedením výstupů hradel AND získáme jednobitový komparátor. Součin A B je totiž roven právě když A= a B= 0 tj. A> B, 3
stejně A B je rovno právě když A= 0 a B=, tj. A< B. Výstup A B je roven právě když A= B= 0 nebo A= B=. 6.3 Logická funkce AND-OR-INVERT Hradla AND-OR-INVERT jsou logické obvody sestavené ze dvou hradel AND a z jednoho hradla NOR. Pravdivostní tabulka takového hradla a schéma je následující. Obr. 6.3: A B C D X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Vyjádření logické funkce je následující: A B+ C D Proč se tyto obvody vyráběly v integrované formě vyplyne nejlépe, porovnáme-li obrázek 6.3 s obr. 6. a 6.2. Z tohoto srovnání vidíme, že můžeme tímto obvodem za pomoci dvou invertorů vytvořit funkce EXCLUSIVE-OR/NOR a navíc propojíme-li oba vstupy každého u hradel AND, můžeme realizovat funkci NOR. Tato hradla se vyráběla pod označením 7450 a 7453. 7. Sekvenční logické obvody Sekvenční logické obvody realizují sekvenční logické funkce. Definice : Hodnoty výstupních proměnných y,..., y m závisejí nejen na okamžitých hodnotách vstupních proměnných,..., n, ale i na jejich minulých hodnotách (na jejich časovém sledu). To znamená, že sekvenční obvody obsahují paměťové prvky (klopné obvody). Definice 2: Jestliže některé kombinaci vstupů odpovídají dvě nebo více kombinace výstupů, pak se jedná o sekvenční obvod. 32
Sekvenční automat: Realizuje posloupnost řídících kroků při řízení složitějších zařízení (například turbosoustrojí,...). Popis funkce sekvenčního obvodu: Sekvenční obvod můžeme nejlépe vyjádřit grafem přechodů (orientovaný graf s uzly a hranami). Lze též použít v některých případech pravdivostní tabulku, kde do vstupů zahrneme i vnitřní proměnné. Příklad: Řízení pohybu mezi dvěma dorazy (lisování, stříhání,...). Pravdivostní tabulka (sestavena z technologických požadavků): 2 y y 2 Poznámky 0 0 "vybavení", tj. zapnutí pohonu nahoru a vypnutí dolů 0 0 0 posun nahoru 0 0 "vybavení", tj. zapnutí pohonu dolů a vypnutí nahoru 0 0 0 posun dolu Pro kombinaci = 0 a 2 = 0 jsou dva různé výstupy jedná se o sekvenční obvod. 33
Řešení : Jde o sekvenční obvod, zavedeme vnitřní proměnné y, y2, zastupující dosavadní pohon: 2 y y 0 0 0 0 Není dosaženo horní ani dolní úvratě a nepohybujeme se nahoru 0 0 Není dosaženo horní ani dolní úvratě a pohybujeme se nahoru 0 0 0 Dosaženo horní úvratě a nepohybujeme se nahoru 0 0 Dosaženo horní úvratě a pohybujeme se nahoru 0 0 Dosaženo dolní úvratě a nepohybujeme se nahoru 0 Dosaženo dolní úvratě a pohybujeme se nahoru 0 0 Dosaženo horní a dolní úvratě a nepohybujeme se nahoru 0 Dosaženo horní a dolní úvratě a pohybujeme se nahoru Řešení 2: Realizace integrovanými obvody (NOT, OR, AND): Řešení 3: Požadované funkce "mazání" a "vybavení" má klopný obvod R-S (R = RESET = nulování, S = SET = nastavení) nejjednodušší realizace dvěma R-S klopnými obvody: 34
Řešení 4: Realizace programovatelným automatem, zápis programů pomocí instrukcí. Řešení 5: Realizace grafem přechodů - Každý stav, který může nastat vyjádříme kolečkem, do kterého doplníme hodnotu, kterou nabývá. Šipkami vyjadřujeme události, vyvolané změnou vstupu. K šipce připíšeme, označení použitého vstupu. Rozšíření o bezpečnostní čidlo: 3= - ruce v nebezpečném prostoru. Rozšíření o tlačítka START a STOP: (pravdivostní tabulka by měla 2++2=5 vstupů 32 řádků). 35
Logické obvody se dělí na: Kombinační logické obvody - u nichž hodnoty vstupních logických signálů určují jednoznačně hodnoty signálů výstupních. Neobsahují žádné paměťové členy, které by uchovávaly informaci o předchozích hodnotách vstupních proměnných. Sekvenční logické obvody - u kterých hodnota výstupu nezávisí pouze na okamžité kombinaci vstupních proměnných, ale je závislá i na výchozím počátečním stavu, ve kterém daná kombinace vstupních proměnných přišla a navíc na jejich časovém sledu. Prakticky to znamená, že dvěma stejným kombinacím vstupních proměnných nemusí odpovídat stejná výstupní funkce. Sekvenční logické obvody dělíme na: Asynchronní sekvenční obvody - u nichž případná změna vnitřních stavů a tedy i změna výstupu je vyvolávána bezprostředně změnami vstupních proměnných. Synchronní sekvenční obvody - jejichž činnost je podmíněna přivedením synchronizačních, tzv. hodinových impulsů na zvláštní vstup. Každá změna stavu, tzv. změna vstupních a vnitřních proměnných u synchronních obvodů je řízena těmito impulsy a tak jsou zajištěny stejné okamžiky změn všech proměnných. Základními a nejjednoduššími sekvenčními logickými obvody jsou klopné obvody. Jejich úkolem je zaznamenat přítomnost přechodné informace změnou svého stavu a tento stav uchovat i v případě, že tato informace zmizí. 7. Klopný obvod R-S Základním obvodem, který je schopen setrvat v určitém stavu (logické 0 nebo ) bez aplikace vnějších logických úrovní (mimo napájecí napětí ovšem) je tzv.paměťová buňka, neboli klopný obvod. Nejjednodušší klopný obvod vytvoříme pomocí dvou invertorů, kterým křížem propojíme vstupy a výstupy viz obr.7... Po zapojení napájecího napětí se nastaví na výstupu jednoho invertoru logická jednička a na druhém výstupu logická nula. Tento stav je logicky konzistentní, neboť je-li např. na výstupu Q invertoru I logická jednička, je tato i na vstupu A2 invertoru I2, který musí mít tedy na svém výstupu Q nulu. Nula je tedy i na vstupu A invertoru I, což odpovídá stavu na jeho výstupu. Obr.7..: Zapojení klopného obvodu. Chceme-li do paměťové buňky zapisovat, tj. nastavovat výstup Q do úrovně 0 nebo, musíme použít místo prostých invertorů dvojvstupová hradla NAND a propojit je společně se dvěma invertory podle obr. 7..2. Tomuto zapojení se říká asynchronní klopný obvod R-S. 36
Obr.7..2: Zapojení asynchronního klopného obvodu R-S. Asynchronní klopný obvod R-S pracuje následujícím způsobem. Signálem logické na vstupu S se nastavuje do stavu, signálem logické na vstupu R se nastavuje do stavu 0. Při S=0 a R=0 se stav výstupu klopného obvodu nemění, kombinace vstupních signálů S= a R= je zakázána. Na následujícím obrázku je zobrazena pravdivostní tabulka asynchronního klopného obvodu RS. S R Q Q 0 0 Q Q 0 0 0 0 - - Obr.7..3: Pravdivostní tabulka asynchronního klopného obvodu R-S. Obr.7..4: Stavový diagram asynchronního klopného obvodu R-S. V sekvenčním logickém systému je třeba, aby se nastavení nebo nulování klopných obvodů dělo v synchronismu s hodinovými impulsy. To lze zabezpečit tak, že místo invertorů zobrazených na obr. 7..2 použijeme dvoustupová hradla NAND, která otevíráme hodinovými impulsy viz obr. 7..5. Pokud bude na hodinovém vstupu log 0 (stav mezi dvěma impulsy), nezmění klopný obvod svůj stav a pamatuje si jej po dobu mezi dvěma hodinovými impulsy. Zapojení takového synchronního klopného obvodu je na obr. 7..5. 37
Obr.7..5: Zapojení synchronního klopného obvodu R-S. Jsou-li vstupy R a S uzemněny (je-li na nich logická nula), pak na výstupech řídících hradel je logická jednička nezávisle na úrovni hodinového vstupu. Výstupy Q a Q zůstávají proto na úrovni, do které se dostaly před tím, než jsme na oba vstupy R a S logickou nulu přivedli. Přivedením logické nuly na oba vstupy R i S zablokujeme tedy stav výstupů Q a Q, které jsou nyní nezávislé na hodinových impulsech. Na obr. 7..6 je pravdivostní tabulka synchronního klopného obvodu a na obr. 7..7 je schematická značka obvodu. S R C Q 0 0 0 Q 0 0 Q 0 0 Q 0 0 0 0 Q 0 0 - - Obr.7..6: Pravdivostní tabulka synchronního klopného obvodu R-S. Obr.7..7: Schematická značka synchronního klopného obvodu R-S. Kromě právě popsaného klopného obvodu R-S jsou používány tři další typy klopných obvodů: dvojčinné klopné obvody J-K, T a D. Dvojčinné klopné obvody J-K, D a T odstraňují neurčitý stav obvodu R-S. Obvod T pracuje jako binární obvod, který mění svůj stav po každém hodinovém impulsu Qn+ = Qn. 38
7.2 Klopný obvod D Klopný obvod typu D je paměťový člen, který při příchodu hodinového impulsu (vstup C) přenáší informaci ze vstupu D na výstup. Zapojení klopného obvody typu D je na obr. 7.3.. Konkrétní zapojení je možno odvodit ze zapojení R-S klopného obvodu. Když je D= a C= tak je signál S aktivní a klopný obvod přechází do stavu. Když D= 0 a C= tak je aktivní signál R a klopný obvod přechází do stavu 0. Pravdivostní tabulka je na obr. 7.3.2. D C _ S Q _ R Q _ Obr.7.3.: Zapojení klopného obvodu typu D. D C Q Q 0 0 Q Q 0 0 0 Q Q 0 Obr.7.3.2: Pravdivostní tabulka klopného obvodu typu D. D C Q _ Q Obr.7.3.3: Schematická značka klopného obvodu typu D. Schematická značka je na obr. 7.3.3. Klopné obvody typu D mohou sloužit jako paměti binární informace, která se vybaví hodinovým impulsem k dalšímu zpracování. Příkladem jednoduchého obvodu typu D je integrovaný obvod 7474 který má dva jednoduché D-obvody v jednom pouzdru. Tyto klopné obvody mají dva nastavovací vstupy S, R, Datový vstup D, hodinový vstup C a je řízen náběžnou hranou (obr. 7.3.4). Q _ Q Obr.7.3.4: D klopný obvody 7474. 39
7.2 Klopný obvod J-K Pro odstranění neurčitého stavu klopného obvodu R-S byl vyvinut klopný obvod J-K. Používá se pro stavbu registrů a čítačů. Principiální zapojení je na obr. 7.2.. Obr.7.2.: Zapojení klopného obvodu J-K. Zapojení obsahuje dva klopné obvody R-S, u nichž výstupy Q a Q prvního jsou navázány na vstupy S a R druhého. Druhý klopný obvod se řídí invertovanými hodinovými impulsy a zpětná vazba je vedena z výstupu druhého klopného obvodu na vstup prvního. První klopný obvod se nazývá řídicí (master), druhý klopný obvod je řízený (slave). Pravdivostní tabulka klopného obvodu J-K je na obr. 7.2.2. Vstupy Výstupy Poznámka J K n Q + Q n + 0 0 Q n Q n Předchozí stav 0 0 Nulování 0 0 Nastavení Q n Q n Překlápí do opačného stavu Obr.7.2.2: Pravdivostní tabulka klopného obvodu J-K. S náběžnou hranou hodinového impulsu se nastavuje úroveň na výstupech řídícího obvodu; řízený obvod je uzavřen, neboť úroveň na jeho hodinovém vstupu C= 0. Se sestupnou hranou hodinového impulsu se uzavírá vstup řídícího klopného obvodu a stav na jeho výstupu je kopírován řízeným klopným obvodem. Jeho výstupní úrovně jsou vedeny zpětnou vazbou na vstup řídícího obvodu, tam však nezpůsobí žádnou změnu, neboť tentokrát je řídící obvod uzavřen ( C= 0 ). Oba výstupy Q i Q jsou propojeny se vstupními členy NAND tak, že výstupní funkce je definována i pro případ kdy J = a K =. Na obr. 7.2.3 je stavový diagram klopného obvodu J-K a na obr. 7.2.4 je jeho schematická značka. 40
Obr.7.2.3: Stavový diagram klopného obvodu J-K. Obr.7.2.4: Schematická značka klopného obvodu J-K. V integrálním provedení se vyrábí celá řada J-K klopných obvodů. Uvedeme si dva typy 7472 a 7476 (viz obr. 7.2.5). Integrovaný obvod 7472 je J-K klopný obvod, který má 3 vstupy J, 3 vstupy K, vstup synchronizace C a nastavovací vstupy S, R. Integrovaný obvod 7476 obsahuje dva J-K klopné obvody se vstupy J, K, vstupem synchronizace C a nastavovacími vstupy R a S. Q _ Q J K C S R Q _ Q 7.4 Klopný obvod typu T Obr.7.2.5: J-K klopné obvody 7472 a 7476. Klopný obvod typu T mění svůj stav při každém hodinovém impulsu. Je tedy Qn+ = Qn. Z pravdivostní tabulky obvodu J-K můžeme vidět, že tuto funkci plní obvod J-K pro J = K =. Obvod typu T má tedy dva vstupy - vstup T (spojené vstupy J-K) a vstup pro hodinové impulsy. Je-li T =, obvod se překlápí, Qn+ = Qn, je-li T = 0, obvod zůstává překlopen do původního stavu; Q = + Q. 7.5 Přehled klopných obvodů n n Při aplikacích jsou důležité čtyři typy klopných obvodů: klopný obvod R-S, klopný obvod J- K, D a T. Obvody typu J-K a D jsou vyráběny v integrované formě v různých stupních integrace, obvod typu R-S je možné sestrojit pomocí hradel NAND nebo použít místo něj obvod J-K. Rovněž obvod typu T se dá snadno vytvořit z obvodu typu J-K nebo z obvodu typu D. Klopné obvody mívají kromě synchronních vstupů dat ještě tzv. přímé neboli asynchronní vstupy, jimiž je možno nastavovat výstupy klopného obvodu do stavu Q= 0 nebo Q= v době mezi dvěma hodinovými impulsy. Je-li klopný obvod typu master-slave, mění svůj stav při sestupné hraně hodinového impulsu; jinak při náběžné hraně. 4
8. Posuvné registry Kombinací n klopných obvodů, schopnou zapamatovat si n-bitovou informaci, nazýváme registrem. Spojíme-li výstup klopného obvodu se vstupem následujícího klopného obvodu dostáváme sestavu tzv. posuvného registru. Příklad pětibitového posuvného registru, který je komerčně vyráběn, vidíme na obr. 8.. Obr. 8.: Pětibitový posuvný registr. Pro posuvný registr jsou nezbytné dvojčinné obvody typu J-K. Pokud je posuvný registr vybaven sériovým vstupem dat (viz obr. 8.), je první klopný obvod opatřen invertorem mezi vstupy J a K, čímž je vytvořen z tohoto klopného obvodu klopný obvod typu D. Hradla typu NAND v nastavovacích vstupech klopných obvodů slouží k tomu, aby se všech pět klopných obvodů po nastavení informace na jednotlivých vstupech PS0 - PS4 mohlo nastavit jediným impulsem. 8. Sériový vstup dat Předpokládejme, že chceme zapsat do registru binární číslo 00. Číslo zapisujeme způsobem obvyklým u decimálních čísel tak, že nejméně významný bit je vpravo. Sledujme při tom Tab. 8... Tabulka 8..: Funkce pětibitového posuvného registru. Nejprve je třeba vynulovat všechny klopné obvody aplikací logické úrovně 0 na mazací vstup registru. Pak všechny výstupy Q0 - Q4 jsou 0. Nastavovací vstup registru je na úrovni logické 0, což má za následek, že všech pět nastavovacích vstupů jednotlivých klopných obvodů je na úrovni logické jedničky. Data na sériovém vstupu registru musí být synchronizována s 42
hodinovými impulsy tak, že při aplikaci hodinového impulsu do registru je na sériovém vstupu nastaven jeden z datových bitů počínaje od nejméně významného (LSB). Při prvním hodinovém impulsu je tedy na vstupu registru (KO4) nejméně významný bit, který se sestupnou hranou impulsu přesune na výstup Q4, tedy na vstup S3 a jeho komplement Q 4 na R3. Proto při aplikaci druhého hodinového impulsu se nejméně významný bit přesune na výstup Q3 eventuelně komplementovaný na Q 3, zatímco do K04 se načte další bit digitálního slova. Po pěti bitech se musí hodiny zastavit a podle tabulky vidíme, že v každém z klopných obvodů je po řadě informace o jednom z bitů zadaného dvojkového čísla. Tuto informaci můžete přečíst najednou z výstupů Q4 - Q0; v tom případě mluvíme o převodníku sériového na paralelní kód, nebo opět sériově z výstupu Q0; například při značně větší rychlosti hodinových impulsů. To je tzv. metoda vyrovnávací paměti (registr FIFO, first in, first out). Například při spojení terminálu s počítačem není možné, aby terminál byl k počítači připojen po celou dobu, kdy vkládáme klávesnicí data. Proto se data z klávesnice ukládají do vyrovnávací paměti, která se rychle vyprázdní na povel k odeslání dat. 8.2 Paralelní vstup dat Všimněme si nyní nastavovacích vstupů PS0 - PS4. Tyto vstupy jsou od vlastních nastavovacích vstupů klopných obvodů odděleny hradly NAND, které umožňují blokovat vnější vstupy a zapsat informaci jediným impulsem do vstupu nastavení registru. To je vhodné např. při přenosu dat od digitálních měřících přístrojů, kde je informace v paralelní formě, tj. všechny bity jsou dostupné najednou. K propojení měřícího přístroje s řídícím počítačem však někdy není možné použít velkého množství vodičů, proto je třeba převést tuto paralelní informaci na sériovou. Po ukončení měření, kdy je na vstupech PS0 - PS4 informace, aplikujeme logickou úroveň na vstup nastavení registru, čímž nastavíme výstupy jednotlivých klopných obvodů Q0 - Q4 do odpovídajících pozic (registr je třeba nejprve vynulovat). Proto se vstupu nastavení registru někdy říká zapisovací vstup (write). Informace shromážděná v registru se nyní může přečíst buď opět paralelně; v tom případě je třeba opatřit výstupy Q0 - Q4 obdobnými hradly NAND jako nastavovací vstupy. Druhý vstup hradel pak umožňuje oddělit výstupy registru od dalšího zařízení. Informaci však můžeme přečíst též sériově z výstupu Q0 při synchronní aplikaci hodinových impulsů. V tomto případě hovoříme o převodníku paralelního na sériový kód. 8.3 Kruhový registr Spojíme-li výstup Q0 se sériovým vstupem registru, opakuje se na výstupech Q0 - Q4 stejná informace vždy po pěti hodinových impulsech. Takovému uspořádání říkáme kruhový registr. Lze si např. představit desetibitový kruhový registr, do jehož MSB byla na počátku uložena jednička a jinak byl registr vynulován. Je zřejmé, že vždy po deseti hodinových impulsech bude na MSB opět jednička a podle toho, na kterém bitu je právě jednička poznáme, kolik impulsů (v rozmezí od 0 do 9) přijal hodinový vstup registru. Takový registr tedy tvoří dekadický čítač (dělič deseti), kde není nutný dekodér binární informace na dekadickou; komplikaci však tvoří skutečnost, že je třeba vždy po zapnutí přístroje vložit do registru jedničku, která pak v registru "obíhá". Pro dělení větším číslem potřebujeme rovněž značný počet klopných obvodů, takže cena zařízení neúměrně stoupá. 43