V tomto odstavci se budeme zabývat
zjednoduĹĄovĂĄnĂm logickĂ˝ch vĂ˝razĹŻ z hlediska co nejmenĹĄĂho poÄtu logickĂ˝ch
ÄlenĹŻ, potĹebnĂ˝ch k realizaci urÄitĂŠ logickĂŠ funkce. Toto hledisko je
pouĹžĂvĂĄno nejÄastÄji, neboĹĽ souvisĂ s nĂĄklady na realizaci pĹĂsluĹĄnĂŠ
logickĂŠ funkce. Je vĹĄak tĹeba si uvÄdomit, Ĺže zde se budeme zabĂ˝vat pouze realizacĂ
logických funkcà pomocà hradel zåkladnà logiky, tj. hradel AND, OR resp. NAND,
NOR. V mnoha pĹĂpadech vĹĄak je moĹžnĂŠ
poĹžadovanou logickou funkci realizovat pomocĂ integrovanĂ˝ch obvodĹŻ stĹednĂ nebo
velkĂŠ integrace s nĂĄklady podstatnÄ niŞťĂmi, neĹž by byly nĂĄklady na jejĂ
realizaci pomocĂ hradel zĂĄkladnĂ logiky. PĹedstavitelem integrovanĂŠho obvodu schopnĂŠho generovat prakticky libovolnou logickou
funkci je jednoÄipovĂ˝ mikropoÄĂtaÄ (viz kapitolu 7), k vytvoĹenĂ jednoduĹĄĹĄĂch
logickĂ˝ch funkcĂ mĹŻĹžeme pouĹžĂt tzv. programovatelnĂĄ logickĂĄ pole (PLA -
programable logical array). ProgramovatelnĂŠ logickĂŠ
pole reprezentuje prakticky zĂĄpis logickĂŠ funkce v mintermech, tj. jako logickĂ˝ souÄet
výrazů tvaru ,
kde buÄ ai = Xi nebo ai =
; jednotlivĂĄ logickĂĄ pole se
liĹĄĂ poÄtem promÄnnĂ˝ch n a poÄtem
mintermĹŻ v souÄtu. Na vĂ˝stupu je obvykle moĹžnĂŠ vytvoĹit jeĹĄtÄ inverzi takto
vytvoĹenĂŠ logickĂŠ funkce, coĹž mĹŻĹže zjednoduĹĄit nĂĄvrh. ProgramovatelnĂŠ logickĂŠ
pole je kombinaÄnĂ obvod, tj. odezva vĂ˝stupu PLA na zmÄnu vstupnĂch logickĂ˝ch
promÄnnĂ˝ch mĹŻĹže bĂ˝t podstatnÄ rychlejĹĄĂ
neĹž odezva systĂŠmu ĹĂzenĂŠho mikroprocesorem. PĹĂprava logickĂŠ funkce k
programovĂĄnĂ do PLA mĹŻĹže tak bĂ˝t pĹĂkladem pro algebraickou metodu
zjednoduĹĄovĂĄnĂ popsanou nĂĹže.
Metody zjednoduĹĄovĂĄnĂ jsou v podstatÄ dvÄ: algebraickĂĄ a grafickĂĄ. PrvnĂ uĹžĂvĂĄ Ĺady identit Booleovy algebry k manipulaci s logickĂ˝mi vĂ˝razy obdobnÄ jako se upravujĂ vĂ˝razy algebraickĂŠ. DruhĂĄ pouĹžĂvĂĄ k nĂĄzornÄjĹĄĂmu zobrazenĂ logickĂ˝ch funkcĂ speciĂĄlnĂch diagramĹŻ - tzv. KarnaughovĂ˝ch map, do kterĂ˝ch se zanese informace, kterou o logickĂŠ funkci vĂme a po ĂşpravĂĄch se z nich informace opÄt vybĂrĂĄ ve zjednoduĹĄenĂŠ formÄ. ObecnÄ se dĂĄ ĹĂci, Ĺže algebraickĂĄ metoda vede rychleji k cĂli, vyĹžaduje vĹĄak urÄitou zkuĹĄenost v manipulaci s logickĂ˝mi vĂ˝razy, zatĂmco grafickĂŠ metody vyĹžadujĂ minimum pĹedbÄĹžnĂŠ pĹĂpravy. Programy pro algebraickou manipulaci (Mathematica, Maple atd.) umoĹžĹujĂ automatizovat zjednoduĹĄovĂĄnĂ logickĂ˝ch vĂ˝razĹŻ. GrafickĂĄ metoda zjednoduĹĄovĂĄnĂ, kterĂĄ by mÄla tuto operaci usnadnit, proto ztrĂĄcĂ na vĂ˝znamu. Algebraickou metodu uvĂĄdĂme proto, Ĺže je nĂĄzornĂ˝m pĹĂkladem vyuĹžitĂ identit platnĂ˝ch v BooleovÄ algebĹe.
ObecnĂ˝ postup se dĂĄ charakterizovat nĂĄsledujĂcĂm zpĹŻsobem:
PĹi provĂĄdÄnĂ Ăşprav logickĂ˝ch vĂ˝razĹŻ (ad 2) mĹŻĹžeme s vĂ˝hodou vyuĹžĂt tabulky 7.3., kde jsou uvedeny nejdĹŻleĹžitÄjĹĄĂ identity platnĂŠ obecnÄ v BooleovĂ˝ch algebrĂĄch.
T a b u l k a 7.3
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Nejprve si vysvÄtlĂme, jakĂ˝m zpĹŻsobem si sestavĂme logickĂ˝ vĂ˝raz, je-li dĂĄna pravdivostnĂ tabulka. ObecnÄ totiĹž mĹŻĹže bĂ˝t logickĂĄ funkce zadĂĄna tabulkou, popisem nebo zapojenĂm logickĂ˝ch ÄlenĹŻ. Je-li logickĂĄ funkce zadĂĄna popisem, snadno sestrojĂme z popisu pravdivostnĂ tabulku nebo pĹĂmo BooleovskĂ˝ vĂ˝raz. Pokud bychom vychĂĄzeli z danĂŠho zapojenĂ logickĂŠ sĂtÄ, nenĂ jistÄ sloĹžitĂŠ odvodit logickĂ˝ vĂ˝raz ze zapojenĂ. Pokud mĂĄme pravdivostnĂ tabulku, pĹekreslĂme ji nejprve tak, aby obsahovala jak vstupnĂ promÄnnĂŠ, tak jejich komplementy. Pak si vĹĄĂmĂĄme jen ĹĂĄdkĹŻ, ve kterĂ˝ch mĂĄ vĂ˝sledek nabĂ˝t logickĂŠ jedniÄky a napĂĹĄeme souÄin vĹĄech vstupnĂch promÄnnĂ˝ch nebo jejich komplementĹŻ, kterĂŠ nabĂ˝vajĂ v tomtĂŠĹž ĹĂĄdku hodnoty 1. Tento postup opakujeme pro vĹĄechny ĹĂĄdky, pro kterĂŠ je vĂ˝stup roven 1. NapĹĂklad pro 3 vstupnĂ logickĂŠ promÄnnĂŠ mĂĄme dĂĄnu tabulku vlevo:
Tu pĹepĂĹĄeme uĹžitĂm rovnÄĹž negovanĂ˝ch vstupnĂch promÄnnĂ˝ch (vpravo):
|
|
LogickĂ˝ obvod je znĂĄzornÄn na obr. 7.25.a.
NynĂ uplatnĂme svĂŠ znalosti identit platnĂ˝ch BooleovÄ algebĹe. Na vĂ˝raz
uplatnĂme zĂĄkon komutativnĂ
vytkneme C event.
a pouĹžijeme identity
Substituce
,
zjednoduťà výraz na
.
PouĹžitĂm definice funkce EXCLUSIVE-OR zĂskĂĄme nakonec
Funkci Y tedy reprezentujĂ dvÄ hradla EXCLUSIVE-OR zapojenĂĄ v kaskĂĄdÄ jak je ukĂĄzĂĄno na obr. 7.25.b. Funkce Y je tĂŠĹž pĹĂkladem kombinaÄnĂho logickĂŠho systĂŠmu.
UvedenĂ˝ pĹĂklad nebyl vybrĂĄn nĂĄhodnÄ. Reprezentuje obvod pro generaci, pĹĂpadnÄ kontrolu tzv. parity. Parita je jednoduchĂ˝ zpĹŻsob odhalenĂ chyby pĹi pĹenosu dat. ZaklĂĄdĂĄ se na pĹedpokladu, Ĺže pravdÄpodobnost vĂ˝skytu chyby pĹi pĹenosu je velmi malĂĄ, a pokud tedy k chybÄ dojde, bude pouze v jednom z pĹenesenĂ˝ch bitĹŻ. Kontrola paritou spoÄĂvĂĄ v pĹidĂĄnĂ dalĹĄĂho, tzv. paritnĂho, bitu k pĹenĂĄĹĄenĂ˝m bitĹŻm tak, aby celkovĂ˝ poÄet jedniÄek v pĹenĂĄĹĄenĂŠm slovÄ (napĹĂklad bytu) spolu s paritnĂm bitem byl sudĂŠ nebo lichĂŠ ÄĂslo. Na pĹijĂmacĂ stranÄ se pak paritnĂ bit jednak pĹeÄte, jednak vygeneruje, a komparĂĄtorem porovnĂĄ; jsou-li oba pĹĂpady stejnĂŠ, pĹeneslo se danĂŠ slovo sprĂĄvnÄ (de-facto vĂme jen, Ĺže nenastala chyba v lichĂŠm poÄtu bitĹŻ, pokud by doĹĄlo k chybÄ ve dvou, ÄtyĹech, atd. bitech, parita ji neodhalĂ; proto je nutnĂ˝ pĹedpoklad o spolehlivosti pĹenosu). Konstruujeme-li paritnĂ bit tak, aby ĹĄlo o lichĂŠ ÄĂslo, hovoĹĂme o lichĂŠ paritÄ, v opaÄnĂŠm pĹĂpadÄ o sudĂŠ paritÄ. V naĹĄem pĹĂpadÄ je paritnĂ bit volen tak, aby celkovĂ˝ poÄet jedniÄek v danĂŠm ÄtyĹbitovĂŠm slovÄ byl sudĂ˝. JednĂĄ se tedy na vysĂlacĂ stranÄ o generĂĄtor, pĹĂpadnÄ, na stranÄ pĹijĂmaÄe, o ovÄĹovaÄ sudĂŠ parity. S paritou se setkĂĄvĂĄme pĹi nastavovĂĄnĂ seriovĂ˝ch rozhranĂ osobnĂho poÄĂtaÄe, pĹi komunikaci pomocĂ modemu apod.