Spínací a číslcová technka Jří Podlešák, Petr Skalcký Praha 99 Tento tet byl uvolněn pouze pro potřeby studentů v předmětech KN a CS na katedře Radoelektronky ČVUT jako doplňující lteratura. Tet bez souhlasu autorů nesmí být kopírován an v elektroncké an tštěné podobě pro jné účely, než jsou výše uvedeny.
Obsah Úvod.... Číselné soustavy..... Prncp změny základu..... Vyjádření kladných a záporných čísel... 7.. Vyjádření čísel s pohyblvou desetnnou čárkou... 9.. Základní operace s čísly v pevné desetnné čárce..... Základní operace s čísly v pohyblvé čárce... 7. Logcké kombnační obvody... 0.. Defnce logcké funkce a základní operátory Boolovy algebry... 0.. Zjednodušování zápsu logcké funkce..... Návrh logckých kombnačních obvodů... 9... Realzace logckých kombnačních obvodů se členy NAND a NOR... 9... Realzace LKO se členy AND-OR-INVERT...... Realzace LKO s multpleery... 7... Realzace LKO s dekodéry..... Hazardní stavy v logckých kombnačních obvodech..... Realzace LKO programovatelným logckým obvody.... Aplkace logckých kombnačních obvodů..... Sčítání..... Odčítání... 8.. Násobení..... Porovnání čísel..... Převodníky BIN-BCD a BCD-BIN... 9.. Kódování... 7... Lneární kódy... 7. Logcké sekvenční obvody... 79. Analýza logckých sekvenčních obvodů... 8 - -
.. Paměťové členy... 8... Analýza logckých sekvenčních obvodů s paměťovým členy... 9... Analýza asynchronních sekvenčních obvodů se synchronzovaným paměťovým členy.... 9.. Návrh logckých sekvenčních obvodů... 99... Převod zadaného chování obvodu do vývojové tabulky... 00... Redukce vývojové tabulky... 0... Redukce fázové tabulky... 0... Kódování vntřních stavů obvodu... 08... Kódování fázových tabulek asynchronních sekvenčních obvodů... 0... Odvození funkcí přechodů a výstupů logckého sekvenčního obvodu.....7. Příklady návrhů sekvenčních obvodů... 8. Aplkace logckých sekvenčních obvodů... 0.. Cyklcké kódy... 8.. Sérové artmetcké operace..... Čítače..... Řadče... 7... Programovatelné řadče...... Pops obvodu AM9CPL.... Programovatelné logcké obvody... 8.. Obvody PROM... 8.. Obvody PAL... 8.. Obvody GAL... 88.. Obvody EPLD... 9.. Obvody PLA... 9.. Obvody PLS a PSG... 9.7. Obvody MACH... 9 - -
.8. Obvody ERA... 99.9. Obvody FPGA... 99.0. Obvody LCA... 0 Dodatek A... Formát INTEL HEX... Dodatek B... JEDEC Standard č.... Dodatek C... 8 Lteratura... Výsledky... 7 Kaptola.... 7 Kaptola.... 7 Kaptola.... 8 Kaptola.... 0 Kaptola.... Kaptola.... - v -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 Úvod Rozvoj mkroelektronky, který začal okolo roku 90, umožnl využtí číslcové technky nejen v oblast výpočetní technky, ale v ostatních technckých oborech, zvláště pak v radotechnce, měřící a sdělovací technce. Přechod od analogového přenosu, zpracování a vyhodnocení nformací k číslcovému je nejen způsoben zvýšeným nároky na parametry zařízení, ale rozvojem vhodné techncké základny pro jeho realzac. Základní vlastnost analogového sgnálu je jen relatvní přesnost, protože jeho zkreslení se projeví určtou ztrátou nformace, kterou přenáší. Naprot tomu u číslcového ( dvojkového ) sgnálu, kdy přenášený sgnál je vyjádřen posloupností čísel, př velkém zkreslení nedochází ke ztrátě nformace, pokud se mohou spolehlvě rozlšt obě dskrétní úrovně sgnálu. Další výhodou př zpracování číslcových sgnálů je možnost využívat nejen postupy, které modelují chování reálných soustav, ale metody ryze matematcké. S rozvojem součástkové základny pro číslcovou technku vznkla potřeba teoretckých prostředků umožňující pops, analýzu a návrh logckých a číslcových obvodů, z kterých se vytváří číslcové soustavy - rychlé násobčky, řadče, číslcové fltry, specalzované procesory, analyzátory spektra, atd. Skrptum, jehož posláním je seznámt s nejdůležtějším prostředky pro analýzu a návrh číslcových a logckých obvodů, je rozděleno do šest částí, z nchž první pojednává o číselných soustavách a převodech mez nm, o vyjádření raconálních čísel v pevné a pohyblvé desetnné čárce a o základních artmetckých operacích s těmto čísly. Druhá část je věnována po krátkém úvodu do Booleovy algebry a zjednodušování logckých funkcí metodám návrhu kombnačních obvodů z logckých členů NAND, NOR, AND-OR-INVERT a z obvodů se střední hustotou ntegrace jako jsou multpleery, dekodéry, pamět a programovatelná pole PAL, GAL, atd. Po metodách návrhu logckých kombnačních obvodů se v další kaptole popsují obvody realzující paralelní artmetcké operace porovnání, sčítání, odčítání, násobení a obvody kódovací pro zabezpečení přenosu nformace. Další kaptoly jsou věnovány logckým sekvenčním obvodům. Po úvodním přehledu prostředků používaných k popsu sekvenčních obvodů je pozornost věnována analýze asynchronních a synchronních obvodů. Po analýze sekvenčních obvodů následuje pops jednotlvých fází návrhu asynchronního, mpulsního a synchronního obvodu, na který navazuje několk ukázek návrhu obvodu. Část pojednávající o aplkacích sekvenčních obvodů přnáší příklady na použtí funkce pamatování, posouvání a čítání a je zakončena realzacem kódovacích obvodů a řídcích jednotek. Poslední kaptola je věnována archtekturám programovatelných logckých obvodů a metodám jejch použtí k realzac logckých obvodů. - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99. Číselné soustavy Pracujeme-l s čísly, používáme přrozeně symboly, jmž přřazujeme deset různých hodnot od nuly ( symbol 0 ) do devít ( symbol 9 ). Používáme to, co matematc nazývají soustavou zobrazení čísel se základem deset. První stroje na zpracování čísel byly mechancké a nebylo u nch složté zobrazovat čísla se základem deset pomocí mechancké součástky, která měla deset stablních stavů, z nchž každý odpovídal jednomu symbolu soustavy se základem deset. Velký pokrok v oblast číslcových výpočtů nastal zavedením elektronek, tranzstorů, ntegrovaných obvodů a mkroprocesorů ať jž unversálních nebo specálních. Nové stroje jsou od dřívějších odlšné nejen strukturou, výkonem, spolehlvostí, ale hlavně použtím dvojkové soustavy zobrazení čísel a velčn. Právě realzace elektronckého obvodu se dvěma stablním stavy je jednoduchá a umožňuje další vývoj. Každé celé číslo N lze obecně vyjádřt v soustavě se základem B pomocí symbolů nebol číslc a takto n n 0 N = a B + a B +... + a B + a B (. ) B n n V pra se základ nezapsuje a spokojujeme se vypsáním koefcentů a vedle sebe 0 N = a a a -... aa0 (. ) B n n n Čísla 0 0 v desítkové soustavě a 00 v soustavě dvojkové odpovídají těmto součtům součnů 0. 0 +. 0 + 0. 0 +. 0 = 0 (. ) 0. + 0. +. +. + 0. +. = (. ) 0 Ve dvojkové soustavě se počítá stejným způsobem jako v soustavě desítkové. Číslce se zvětšuje o, když všechny číslce u nžších vah jsou ( základ ) nebo 9 ( základ 0 ).V logckých systémech se pro prác s čísly používá čtyř číselných základů: a) Základ ( bnární ) se symboly 0 a ( někdy O a I ) b) Základ 8 ( oktalový ) se symboly 0,,,,,,,7 - nyní se jž nepoužívá c) Základ 0 ( dekadcký ) se symboly 0,,,,,,,7,8,9 d) Základ - ( headecmální ) se symboly 0,,,,,,,7,8,9,A,B,C,D,E,F. Písmena A,B,C,D,E,F mají po řadě váhy 0,,,,, v základu 0. Headecmální vyjádření se v současné době nejčastěj používá k vyjadřování obsahu pamětí mkropočítačů. 0 - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99.. Prncp změny základu Metoda postupného odčítání Metodu lze snadno použít k přechodu od základu B k základu B. Původní číslo se rozkládá odečítáním zmenšujících se mocnn základu B, kdy je hledána mocnna čísla B rovná nebo menší než zbývající část převáděného čísla. Příklad. Převeďte 90 0 N. Mocnna Rozdíl Výsledek Mocnna Rozdíl Výsledek 7 = 8 90-8 = = 8-8 = = - = - 0 = -= = - = 0 = -=0 = 0 - = 0 = 0-=- 0 Odtud 900 = 00 Metoda postupného dělení Metoda postupného dělení základem vychází z následujícího odvození, př kterém předpokládáme, že číslo N v základu B chceme vyjádřt v základu B.Vyjádříme nejprve číslo N v základu B takto n n 0 N = a B + a B +... + a B + a B (. ) B n n Jestlže je nyní budeme dělt základem B, dostaneme podíl P a zbytek Z, který představuje koefcent a 0 čísla N v základu B. n n 0 N = P. B + Z = a B + a B +... + a B. B + a (. ) B n n 0 Vydělíme-l podíl P základem B můžeme psát tento vztah 0 n n 0 P = P. B + Z = a B + a B +... + a B. B + a (.7 ) n n Zbytek Z představuje koefcent a. Dalším dělením získáváme postupně koefcenty hledaného čísla v pořadí od nejnžší k nejvyšší váze. Dělt se může v lbovolném základě, pokud můžeme v příslušném základě snadno počítat. Příklad. Vyjádřete číslo 8 0 v základě. Dílčí podíl 8:=8 8:= :=0 Zbytek - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 Odtud je číslo 8 0 = E. Příklad. Číslo 7 8 vyjádřete v základě Osmčkové číslo můžeme nejprve převést na číslo desítkové pomocí sčítání mocnn a pak dělt v základu 0 (7 =.8 +.8 +.8 + 7 = 7 ). 8 Dílčí podíl 7:= := :=0 Zbytek Můžeme rovněž dělt číslo 7 8 šestnáct, převedeným do základu 8 (dělení prováděné v osmčkové soustavě). V osmčkové soustavě platí 8.8 = 8, 8.8 = 8, 78 = 0 = F, 8 = 0 = E a 8 = 0 = Odtud 7 Dílčí podíl 7:0= :0= :0=0 = EF. 8 Zbytek 7 0 Převod můžeme provést pomocí dvojkového vyjádření ( vz dále). Osmčkové číslo převedeme do dvojkové soustavy a rozdělíme na čtveřce, které představují dvojkově vyjádřené headecmální znaky. Odtud 7 = EF. 8 7 0 0 0 0 E F Metoda postupného násobení Každé reálné číslo N < lze obecně vyjádřt v základu B pomocí symbolů b takto n+ n N = b B + b B +... + b B + b B (.8 ) B n+ Číslo N pak můžeme zapsat N = 0, b b b... b n (.9 ) kde b -n je koefcent s nejmenší váhou. To znamená, že číslo je určeno s přesností B -n n ( N, b b b... b < B ). Převod čísla N < lze provést obdobně jako u čísel přrozených 0 n metodou postupného odečítání základu nebo metodou postupného násobení, př kterém postupným násobením čísla N a jeho zbytků základem B získáváme jednotlvé koefcenty čísla N v základu B. n+ n+ NB. = b + b B +... + b + B + b B = b + Z (.0 ) n n+ n+ Z. B = b + b B +... + b + B + b B = b + Z (. ) n n n n Koefcenty b - hledaného čísla N získáváme v pořadí jak jdou za sebou jako celou část součnu N.B pro = a Z.B pro. - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 Příklad. Převeďte číslo 0,7 0 do osmčkové a dvojkové soustavy. 0,7 8 =,8 0,7 =, 0,8 8 =, 0, = 0,90 0 0, 8 =, 0,9 =,80 0, 8 =, 0,8 =,0 0, =,0 0, = 0,0 0 Odtud 0,7 0 = 0,... = 0, 00000... 8 Zobrazení dvojkové nformace Mějme číslo vyjádřené dvojkově a hledejme jeho osmčkový ekvvalent pomocí postupného dělení osm n n 0 N = a + a +... + a + a = n n n n = 8. a + a +... + a + a + a + a n n 0 0 (. ) kde Z = a + a + a. Prvek s nejmenší váhou v základu 8 se rovná váhovanému součtu tří 0 prvků s nejmenší váhou ve dvojkové soustavě. Pokud znovu dělíme získaný podíl P osm získáme druhý zbytek Z, který bude tvořen další váhovanou trojcí dvojkových prvků Z = a + a + a. Z odvození vyplývá, že převod dvojkového čísla do osmčkové soustavy je velm jednoduchý. Dvojkové číslo se rozdělí do trojc btů, které se pomocí jednoduchého váhového součtu převedou do osmčkové soustavy např. takto 00 000 0 00 7 0 Odtud N = 00000000 = 70 8. Př dvojkově headecmálním převodu se rozdělí dvojkové číslo do čtveřc a pak se čtveřce vyjádří pomocí váhovaného součtu symbolem z šestnáctkové soustavy. 00 000 0 A 7 E 0 000 9 00 Odtud E9 = 000000 a 000000 = A7. Přestože headecmální vyjádření je vhodně zhuštěným záznamem dvojkové nformace, potřebujeme často zobrazt vypočítanou velčnu v desítkové soustavě. Vlastní převod do desít- - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 kové soustavy se provádí v závslost na způsobu realzace metodam uvedeným v předcházející část nebo pomocí dekadcké korekce do tzv. BCD kódu. Každá desítková číslce je potom vyjádřena čtyřm bty, které váhovaně určují její hodnotu. BCD kódů je velm mnoho, nejčastěj se setkáváme s kódem BCD 8, kde označení 8 určuje váhy jednotlvých btů (normální bnární vyjádření čísel od 0 do 9). Protože šest kombnací 0 až je v tomto vyjádření nevyužto, zabírá desítkové číslo dvojkově zapsané větší počet míst, než jeho dvojkový ekvvalent. 00 000 00 9 9 = 0000000 0 BCD8.. Vyjádření kladných a záporných čísel Doposud jsme hovořl pouze o vyjádření kladných celých necelých číslech. Potřebujeme-l zobrazovat čísla se znaménkem je zřejmé, že počet btů rezervovaný na rozsah čísel bude nutno zvětšt o jeden bt, který ponese nformac o znaménku. Čtyř nejpoužívanější vyjádření reálných čísel v pevné desetnné čárce nyní popíšeme. Vyjádření ± absolutní hodnota. Př tomto vyjádření představuje nejvyšší bt znaménko ( obvykle 0 = +, = - ) a zbývajících n- btů určuje absolutní hodnotu zobrazovaného čísla. Máme-l k dspozc n btů, pak můžeme zobrazovat kladná záporná čísla v ntervalu <0, n ->. Ve vyjádření estují dvě nuly, z nchž použtí záporné nuly 0000... 00 se většnou zakazuje. Vyjádření záporných čísel jednotkovým doplňkem U tohoto vyjádření jsou kladná čísla vyjádřena stejně jako ve tvaru ± absolutní hodnota. Záporná čísla jsou v jednotkovém doplňku, který označujeme A a vypočteme z následujícího vztahu n n n A= A= a (. ) = 0 n Hodnota - představuje číslo, které má na všech n btech samé jednčky. Odečteme-l od této hodnoty n- btové číslo A, získáme číslo mající oprot číslu A všechny bty negované. Máme-l k dspozc n btů můžeme zobrazovat čísla kladná záporná v ntervalu < 0, n ->. Nejvyšší bt značí znaménko (0 = +, = -). Ve vyjádření estuje kladná (000.. 0) záporná (.. ) nula. - 7 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 Vyjádření záporných čísel dvojkovým doplňkem U tohoto vyjádření jsou kladná čísla vyjádřena stejně jako ve tvaru ± absolutní hodnota. Záporná čísla jsou ve dvojkovém doplňku, který označujeme A a vypočteme z následujícího vztahu n n n A= A= + A= a (. ) Jak vyplývá z předešlého tetu získáme dvojkový doplněk tak, že všechny bty čísla A znegujeme ( jednotkový doplněk ) a pak k němu přčteme jednčku na nejnžší pozc. Máme-l k dspozc n btů můžeme zobrazovat kladná čísla v ntervalu < 0, n -> a záporná čísla v ntervalu. < -,- n >. Nejvyšší bt opět značí znaménko ( 0 = +, = - ). Ve vyjádření estuje jž jen jedna nula ( 000.. 0 ). = 0 Vyjádření +/ ntervalu Číslo v tomto vyjádření získáme ze vztahu / n n n A= + A= + a (. ) = 0 kde n je počet btů čísla. Analýzou vztahu (. ) zjstíme, že př n platných btech můžeme zobrazovat kladná čísla v ntervalu < 0, n -> a záporná čísla v ntervalu. < -,- n >. Bt s nejvyšší váhou opět značí znaménko s tím, že 0 = -, = +. Stejně jako v případě dvojkového doplňku má vyjádření jen jednu nulu ( 00.. 0 ). V tabulce. jsou uvedeny příklady vyjádření některých raconálních čísel v pevné desetnné čárce Číslo bn.hodnota ± A A A / A +0 +00 000 000 000 00 +0 +0000 00000 00000 00000 0000-0 -0000 0000 ------- ------- - -000 000 0 0 00 - -0 0 000 000 0000 -, -00,0 00,0 00,0 00,0 000,0-0, -0000,0 0000,0,0,0 0,0 - nelze vyjadřt Tabulka. nelze vyjádřt nelze vyjádřt 0000 00000-8 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99.. Vyjádření čísel s pohyblvou desetnnou čárkou Chceme-l pracovat s čísly v pohyblvé desetnné čárce, musíme je rozšířt o číslo vyjadřující hodnotu eponentu včetně jeho znaménka. Číslo s pohyblvou čárkou pak bývá vyjádřeno ve tvaru A = 0 A= m. B e nebo A = ( m. B). B e (. ) kde m je mantsa ( část za desetnnou čárkou ), B je základ číselné soustavy a e je hodnota eponentu. Pro lustrac číslo 70, pak bude vyjádřeno buď jako 0,7.0 7 nebo,70.0. Pro dvojkovou soustavu, kterou se budeme zabývat, můžeme ve shodě s vyjádřením (. ) psát A = 0 ( ) znaménko eponent A = znaménko + mantsa. (.7 ) 0 Mantsa představuje hodnotu na desetnných místech a můžeme j v souladu s předcházejícím tetem vyjádřt výrazem n+ n mantsa = a B + a B +... + a B + a B (.8 ) n+ Závorka v rovnc (.7 ) může nabývat hodnoty v ntervalu <,0;,0) nebo <0,;,0) podle toho, je-l k mantse přpočítávána hodnota,0 č nkolv. Obě vyjádření se od sebe lší o jednčku v hodnotě eponentu. Přesnost čísla na desetnných místech je dána hodnotou n. Hodnotu eponentu vyjádříme celým číslem se znaménkem znaménko eponent = z a a...a (.9 ) e m m 0 n Příklad. Určete počet btů nezbytný k vyjádření čísel v pohyblvé desetnné čárce s přesností tří desetnných míst a eponentem v rozsahu 0 ± 9. Aby číslo v pohyblvé čárce mělo přesnost tří desetnných míst, musí hodnota n splňovat vztah n 0 n log 99, (.0 ) Odtud n = 0. Nezbytný počet btů m k vyjádření eponentu určíme ze vztahu log 9 m log 9 0 m + log 97, (. ) Odtud m = 7. Celé číslo A bude vyjádřeno včetně znaménka 8 bty - symboly, které jsou zobrazeny vztahem (. ). - 9 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 z a a a a a a a a a a a zaaaaaa (. ) 7 8 9 0 e 0 znaménko mantsa eponent Standard pro vyjádření čísel v pohyblvé desetnné čárce v jednoduché dvojnásobné přesnost je dána předpsem IEEE 7-98. Čísla s jednoduchou přesností jsou vyjádřena bty z e+ obr.. ve tvaru ( ).( + m). 7, kde bty z a m představují číslo ve vyjádření ±absolutní hodnota a eponent e <-;7> je ve vyjádření +/ ntervalu zmenšený o hodnotu jedna. Krajní hodnoty eponentu e+7 = 0 a e+7 = se využívají k vyjádření čísel, která nelze ve formátu daném rovncí (.7) zobrazt. Př dvojnásobné přesnost jsou čísla vyjádřena stejně jako př přesnost jednoduché a tím, že k eponentu je příčítána hodnota 0 (e <- 0 0 z eponent mantsa a 0 z eponent mantsa a Obr.. 0;0>), jak vyplývá z obr... Oba formáty ve svém nstrukčním souboru podporuje např. sgnálový procesor s pohyblvou čárkou MOTOROLA DSP 900 s tím, že je využto tzv. skrytého btu. To znamená, že v btovém vyjádření výrazu (+m) nenalezneme právě tu jednčku. V artmetckých knhovnách, které využíváme někdy v programech psaných v jazyce symbolckých adres, se setkáváme s vyjádřením čísel, které se více č méně blíží tomuto standardu. Číslo Vyjádření z mantsa eponent,000.00,000000.0 0 0000000000 000000 8,000.00,000000. 0 0000000000 0000 0,000.00 0,000000.0 0 0000000000 0000000 -,70.00,70000.0 00000000 000000,0.0,9. 0 00000 0000 -,0.0 -,9. 00000 0000-7,8.0- -,990.- 00 000 Tabulka. Například v artmetkách INTEL pro µp 8080 nebo FL8 a FL - TESLA IMA pro µp808 a 80 je využíváno vyjádření ( +m ) ve tvaru ± absolutní hodnota se skrytým btem (skrytou jednčkou) a eponentem je vyjádření +/ ntervalu vz tab... Dojde-l př artmetcké operac k přetečení nebo podtečení potom je stuace ndkována příznakem CY (8080) nebo F0-0 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 (808,80) a nkolv mamální nebo mnmální hodnotou eponentu. Nula je charakterzována nulovým eponentem a záporná nula je zakázána. Naprot tomu u sgnálových procesorů s pohyblvou desetnnou čárkou Teas Instruments TMS0C a TMS0C, jejchž artmetcko-logcké jednotky podporují operace se záporným čísly vyjádřené dvojkovým doplňkem, mají vyjádřenu hodnotu (+m) eponent ve vyjádření dvojkovým doplňkem. Příklad k samostatnému řešení Příklad.. Odvoďte čísla v pohyblvé čárce z tabulky. za předpokladu, že závorka je ve tvaru ( 0+mantsa ) eponent jsou ve vyjádření záporných čísel dvojkovým doplňkem (artmetka FLTGPT0 - Teas Instruments pro sgnálový procesor TMS0C0)... Základní operace s čísly v pevné desetnné čárce Estuje pět artmetckých operací s dvojkovým čísly v pevné desetnné čárce, které tvoří základ operací s čísly v pohyblvé desetnné čárce. Jedná se o porovnávání, sčítání, odčítání, násobení a dělení. Tyto operace lze realzovat kombnačním a sekvenčním logckým obvody včetně mkroprocesorů. U současných výkonných mkroprocesorů jsou tyto operace realzovány jednou nstrukcí, nalezneme však mkroprocesory u nchž je zastoupeno pouze sčítání ( např. MHB808 ). Sčítání Sčítání ve dvojkové soustavě je nejdůležtější artmetckou operací, protože tvoří základ pro zbývající artmetcké operace tj. odčítání, násobení a dělení. Sčítání ve dvojkové soustavě se provádí podle stejného algortmu jako sčítání v desítkové soustavě. Obecně lze součet čísel A a B zapsat takto nebo kde n S = A+ B (. ) n n s. = a. + b. (. ) = 0 = 0 = 0 + a. + b. + c. = s. + c +. (. ) Rovnce (. ) popsuje operac, kterou musíme realzovat v jednom bnárním řádu. - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 c 0 0 A 0 0 0 B 0 0 S 0 0 0 c 0 0 + Obr..... Příklad. Sečtete čísla 7 0 a 0 ve dvojkové soustavě. Nejprve převedeme sčítaná čísla do dvojkové soustavy a zjstíme, že platí A=7 0 = 000 a B = 0 = 00. Z obr.. vyplývá, že S = 000 = 89 0. Rovnce (. ) popsuje součet dvojkových čísel v jednom řádu včetně přenosu do vyššího řádu c +. Logcký kombnační obvod, který realzuje rovnc (.), se nazývá úplná bnární sčítačka. Sčítání čísel v BCD kódu Estují realzace, u kterých potřebujeme naměřenou hodnotu v BCD kódu korgovat o nějakou konstantní hodnotu. Jedná-l se o součet dvou čísel v BCD kódu je zbytečné převádět čísla na bnární, sečíst je a potom konvertovat na číslo desítkové. Mnohem výhodnější je provést součet obou BCD čísel pomocí bnární sčítačky a potom získaný součet korgovat pomocí tzv. dekadcké korekce, která převede výsledek opět do kódu BCD. Dekadcká korekce se provádí na čtyřech btech vyjadřujících jeden dekadcký řád ( jednu dekadckou číslc ) a korguje rozdíl mez modulem těchto btů (tj. modulem ) a požadovaným modulem 0 v desítkové soustavě. Jestlže součet dvou 9 7 bnární BCD čísel v jednom řádu je menší jak 9, korekce není třeba, souèet 0 B je-l větší jak 9 nebo byl př součtu překročen modul, + korekce jednotek potom je třeba korgovat rozdíl mez oběma moduly tj. přčíst + korekce hodnotu. Tuto operac je nutné uplatnt na všechny řády desítek 7 počínaje nejnžším. Na obr.. je zobrazen případ součtu čísel + 0 0 korekce v BCD kódu 9 a 7. Bnární součet uskutečníme v - stovek 7 a tsícù btové bnární sčítačce, protože každá desítková číslce je Obr.. vyjádřena čtyřm bty. Dekadckou korekc musíme postupně aplkovat na všechny dekády počínaje jednotkam. Protože cfra po součtu jednotek je větší jak 9, přčteme k jednotkám hodnotu. V řádu desítek došlo k přenosu do řádu stovek ( došlo k překročení modulu ) a proto přčteme hodnotu do řádu desítek. V řádu stovek a tsíců nepřčítáme nc, protože nedošlo an k přenosu do vyššího řádu an v součtu není číslce větší než 9. Odčítání Analogcky jako pro sčítání je možné odvodt vztah (.) popsující rozdíl dvou čísel v jednom řádu, který by dával základ pro realzac úplné bnární odčítačky. Ukazuje se však, že estují jná řešení problému, která nevyžadují realzac nového obvodu - odčítačky. - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 + a. b. c. = r. c +. (. ) Odčítání s jednotkovým doplňkem V kaptole. bylo ukázáno, že jednotkový doplněk čísla je dán vztahem B= n B. n Provedením součtu čísel A+ B = A = B+ získáváme požadovaný rozdíl čísel A - B k němuž je přčtena hodnota n, kde n je číslo mající jednčku na btu vlevo od znaménkového btu. Určeme nyní jak nám tato hodnota ovlvní požadovaný rozdíl v případech A > B a A B. Pro jednotlvé případy můžeme psát pro A > B pro A B n n A+ B> A+ B n A B = A+ B+ A B = n + A B= K dosažení správné hodnoty rozdílu A-B potřebujeme přčíst chybějící jednčku a odečíst hodnotu n, čehož dosáhneme tzv. kruhovým přenosem Rozdíl A - B n = R= R Je-l rozdíl záporný, pak získáme přímo jeho jednotkový doplněk Rozdíl B - A A 0 = A = 000 A 0 = A = 000 B 0 = B = 00 B 0 = B = 0000 kruhový pøenos A 0 0 0 B 0 0 0 0 0 0 0 0 0 0 Výsledek kladný B A 0 0 0 0 0 0 0 0 0 0 Výsledek záporný A - B = 0000 = 0 A - B = 00 = rozdílu = - 0 Odčítání s dvojkovým doplňkem Př odčítání pomocí dvojkového doplňku je stuace obdobná jako u jednotkového doplňku. Rozdíl čísel A - B za pomoc dvojkového doplňku čísla B realzujeme opět pomocí součtu A+ B. Tím získáváme požadovaný rozdíl A - B zvětšený o hodnotu n. Pro jednotlvé případy můžeme psát - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 pro A > B pro A B n A+ B> A+ B n n A B = A+ B A B = + A B = n K dosažení správné hodnoty rozdílu A-B potřebujeme odečíst hodnotu n. Protože se jedná o na btu vlevo od znaménka do dalšího zpracování j neuvažujeme. Rozdíl A - B n = R= R Je-l rozdíl záporný, pak získáme přímo jeho dvojkový doplněk Rozdíl B - A A 0 = A = 000 A 0 = A = 00 B 0 = B = 00 B 0 = B = 000 A 0 0 0 B 0 0 0 0 0 0 0 Výsledek kladný B A 0 0 0 0 0 0 0 0 0 Výsledek záporný A - B = 00000 = 8 0 A - B = 000 = rozdílu = -8 0 Rozdíl čísel v BCD kódu Rozdíl čísel v kódu BCD je možné provádět dvěma způsoby. Př programovém řešení je na některých procesorech (Z80) možné postupovat stejně jako př sčítání. Většna mkroprocesorů však neumožňuje aplkovat Rozdíl A-B Rozdíl B-A dekadckou korekc po rozdílu čísel a proto je A 0 0 D A 9 9 nutné řešt problém jnak. D B 9 9 8 B 0 0 Pomoc s zde můžeme 9 9 C 9 9 9 B stejně jako u čísel bnárních pomocí tzv. dekadc- dekadcká + dekadcká + korekce korekce 0 0 9 0 9 9 7 kého doplňku (dvojkového) daného výrazem výsledek kladný výsledek záporný Obr.. D n B= 0 B. D n potom součet A+ B 0. Odtud V případě, že A>B A B = A+ D B 0 n (.7 ) - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 K dosažení správné hodnoty rozdílu A-B potřebujeme odečíst hodnotu 0 n. Protože se jedná o jednčku na btu vlevo od nejvyššího btu v dalším zpracování j neuvažujeme. V případě, D n že A B potom A+ B < 0 a pro rozdíl můžeme psát n n D A B = 0 + A B = 0 R= R (.8 ) Je-l rozdíl záporný, pak získáváme přímo jeho dekadcký doplněk. Jako příklad s ukážeme oba případy př rozdílu dvou BCD čísel A= a B= obr... Protože je rozdíl BCD čísel realzován jako součet čísla s dekadckým doplňkem, může být na něj uplatněna dekadcká korekce. Dvojkový dekadcký doplněk D B čísla získáme pomocí jednotkového dekadckého doplňku, ke kterému přčteme jednčku a provedeme dekadckou korekc. Násobení Násobení ve dvojkové soustavě se provádí podle stejného algortmu jako násobení v soustavě desítkové. Nejprve artmetcky vynásobíme každým btem čísla B celé číslo A a získáme tak jednotlvé mezvýsledky obr... Ty potom artmetcky sečteme. Porovnáním tabulek pro artmetcký součn dvou proměnných ve dvouhodnotové logce s tabulkou pro logcký součn zjstíme, že jsou shodné. Díky tomu získáme dílčí mezvýsledky b ( a a...a a ) j n n 0 A 0 B 0 0 0 0 0 0 0 0 0 0 0 0 0 A B = 00000 = 0 (součny) jako logcké součny btu b j se všem bty a ( Obr.. bude-l b j =, pak mezvýsledek bude ana n...aa0, bude-l b j = 0 potom bude mezvýsledek nulový ). Násobení čísel se znaménkem Násobení čísel se znaménkem se nejlépe analyzuje na případu součnu čísel <. To znamená, že v souladu s částí. můžeme obě čísla vyjádřt výrazem ~ X = ( ). ~ + ~. z n = (.9 ) kde X % představuje číslo kladné nebo záporné vyjádřené dvojkovým doplňkem. Pro součn AB pak získáme tento výraz ( ) ~ ~ ~ ~ ~ ~ AB = b z. A + b. A. n = (.0 ) z kterého vyplývá, že součn čísel se znaménkem se skládá ze součtů čísel A. % v případech kdy b =, od kterého odečteme v případě b = z hodnotu A. Součn A. % je číslo posunuté o btů vpravo s tím, že z levé strany je doplňováno znaménkovým btem. Ponecháme na čtenář, - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 aby se sám přesvědčl, že dělení záporného čísla dvěm je realzováno posunem doprava a doplněním jednčky na nejvyšší bt. Na obr.. jsou zobrazeny tř případy násobení se znaménkem, které přechází do úvahy př součnu čísel A= ±0, a B= ± 0,70 (+0,=0,0; -0,=,0; +0,70=0,0 a -0,70=,00 ), kde bt před řádovou čárkou značí znaménko. A, 0 0 B 0, 0, 0 0 0, 0 0 0 0 0, 0 0, 0 0 0 0 výsledek záporný A B = - 0,87 Obr.. A 0, 0 B, 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 výsledek záporný A B = - 0,87 A, 0 B, 0 0 0, 0 0 0 0 0 0, 0 0, 0 0 0 0, 0 0 -, 0 0, 0 0 výsledek kladný A B = + 0,87 Dělení Dělení dvojkových čísel se provádí podle stejného algortmu jako dělení v soustavě desítkové. V desítkové soustavě může podíl část dělence a děltele dosáhnout hodnoty 0 až 9, v soustavě dvojkové pouze hodnoty 0 nebo. Tím se nám problém dělení redukuje na zjštění, zda děltel je větší ( do výsledku se píše 0 ) nebo menší ( do výsledku se píše ) než část dělence. Celý algortmus, který je zobrazen na obr..7, se nejsnáze realzuje pomocí odčítaček ( sčítaček s použtím dvojkového doplňku děltele ) a přepínače, který zajšťuje do dalšího výpočtu přenos rozdílu část dělence a děltele ( rozdíl je kladný ) nebo původní část dělence s přdaným btem z dalšího řádu ( rozdíl je záporný ). A 0 0,0 B -, Výsledek -, Výsledek 0... 0 0 0 0..., - 0 0 0... 0 0... 0-0 0 0 0... Obr..7 AB=, 7 7, 0 = 0, 0 = 0, Zbytek = 0. 0 0 - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 Porovnání Předpokládejme, že máme dvě n-btová čísla A a B, potom můžeme napsat šest logckých funkcí f až f porovnávající jejch hodnoty. f = ( A = B) f = ( A B) f = ( A > B) (. ) ( ) f A B = f ( A B) = f = ( A B) Pro tyto funkce lze psát následující logcké výrazy ( A = B) = ( a = b ) ( a = b ) ( a = b ) n n n n 0 0 ( A B) = ( a b ) ( a b ) ( a b ) n n n n 0 0 ( A B) ( a b ) ( a b )( a b ) n n n n n n... (. )... (. ) > = > = >... (. ) ( a b ) ( a b ) ( a b ).. =... = > n n 0 0 ( A B) ( a b ) ( a b )( a b ) = =... (. ) n n n n n n ( a b ) ( a b ) ( a b ).. =... = n n 0 0 kde představuje sjednocení (logcký součet) a průnk ( logcký součn ). Porovnáním funkcí f až f zjstíme, že platí f = f f = f f = f f = f. f = f. f (. ) K realzac funkcí f až f tedy postačí pouze funkce f a f nebo f a f, které můžeme určt ze vztahů (. ) a (. ) nebo pomocí operace odčítání, která se v mkroprocesorech používá k porovnání dvou čísel. Z popsu základních artmetckých operací s pevnou desetnnou čárkou vyplývá, že k jejch realzac je nezbytná operace artmetckého součtu, negace k vytvoření jednotkového doplňku, realzac odčítání s pomocí jednotkového doplňku a logckého součnu k vytvoření mezvýsledků př násobení a funkce umožňující určt nulovost operandu nebo jeho btu... Základní operace s čísly v pohyblvé čárce Nyní s ukážeme, že základní artmetcké operace s čísly s pohyblvou desetnnou čárkou se skládají ze známých operací v pevné desetnné čárce, o kterých bylo pojednáno v předcházející kaptole, rozšířené o operac posunu směrem doprava ( dělení čísla dvěma ). Potřebný posun čísla směrem doleva ( násobení dvěma ) lze realzovat pomocí sčítání. Př odvození vztahů pro operace v pohyblvé čárce budeme předpokládat, že oba operandy jsou ve tvaru - 7 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 e X z M e =.. Y = z y. M y y. (.7 ) kde e a e y jsou eponenty se znaménkem, z, z y jsou znaménka čísel a M, M y jsou normované mantsy ( M <.0,.0) nebo <0.,.0) ). Sčítání a odčítání Pro součet nebo rozdíl Z = X ± Y můžeme za předpokladu e e y psát e e ( e e y y ) e Z = z M ± zy My =.... z. M ± zy. M y.. = (.8 ) ( y y) e e = z. M ± z. m. = z. m. = z. M. z z z kde m y je nenormovaná mantsa menšího čísla, kterou získáme posunem normované mantsy M y doprava o ( e e y ) btů ( srovnáme eponenty obou čísel). Jestlže je hodnota ( ey e ) srovnatelná nebo dokonce větší než počet btů mantsy bude se př součtu nebo rozdílu uplatňovat jenom část čísla Y nebo se neprojeví jeho hodnota vůbec. Výraz z.m ± z y.my jak představuje součet nebo rozdíl dvou čísel se znaménkem v pevné desetnné čárce. Výsledkem této operace je nenormovaná hodnota mantsy výsledku m z, kterou je třeba posunout doprava (vydělt ) jestlže je m z větší než největší normovaná hodnota, nebo násobt (posouvat doleva) tak dlouho, dokud její hodnota nedosáhne normovaného ntervalu. Za každý posun je třeba přčíst nebo odečíst jednčku z eponentu. z z e Násobení Pro součn dvou operandů vyjádřených stejně jako v předešlém případě můžeme psát ( e + e ) ( y y) e e y y Z = X. Y = z. M.. z. M. = z. M. z. M. = (.9 ) kde ( z.m )(.z.m y y ) y y z. m. = z. M. z z e + e y z z z e představuje součn dvou normovaných mants ( čísel s pevnou desetnnou čárkou ) a ez = e + ey je součet eponentů operandů. Násobením mants získáváme mantsu výsledku m z, kterou je případně třeba znormovat násobením ( pro vyjádření <0.,.0) ) nebo dělením ( pro vyjádření <.0,.0) ) podle toho, který tvar pro normovanou mantsu je v artmetce využt. Př normování hodnoty m z je třeba příslušně korgovat eponent. Dělení Pro podíl dvou operandů Y/X můžeme psát - 8 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 e y Y zy. My. zy. My ( e ey ) ( e ey) ez Z = = e =. = zz. mz. = zz. M z. (.0 ) X z. M. z. M kde ( z.m) ( z.m) y y představuje podíl dvou normovaných mants (čísel s pevnou desetnnou čárkou) a ez = ey e je rozdíl eponentů obou operandů. Po provedení podílu je opět nutné znormovat podíl m z a zkorgovat příslušně eponent. Odmocnna Pro realzac odmocnny je nejprve nutné upravt eponent odmocňovaného čísla tak, aby byl děltelný dvěma a proto jej rozložíme takto kde e e/, y = a e ( e ),, y = y mod e =. e + e,,, y y y (. ). Za předpokladu, že znaménko je kladné můžeme psát,,,,,,,,,,,. Z M ( e + e ) e + e e e + e =. =. M. = m. = M. y y y y y y y y z y y z e (. ) kde m y je mantsa M y případně posunutá o jednu pozc doprava, když hodnota e y je lchá. Odmocnnu z m y čísla s pevnou desetnnou čárkou realzujeme algortmy, které lze nalézt []. - 9 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99. Logcké kombnační obvody.. Defnce logcké funkce a základní operátory Booleovy algebry Logcký obvod se nazývá kombnačním, jestlže jeho výstupy závsí pouze na vstupních kombnacích a ne na jejch předcházejících hodnotách, s výjmkou krátkého přechodného děje. Kombnační obvod nemá žádnou paměť předchozích stavů a proto každé kombnac vstupních proměnných odpovídá jen jedná výstupní kombnace. Většna logckých kombnačních obvodů realzuje určtou funkconální transformac, jako je dekódování, kódování, přepínání a porovnání. Těmto obvody se též realzují paralelní artmetcké operace jako je sčítání, odčítání, násobení a dělení bnárních ( dvojkových ) čísel. Funkconální transformac realzovanou logckým obvodem lze popsat logckým funkcem s n vstupním logckým proměnným,,...,n a m výstupním proměnným y,y,...,y takto m ( ) y f,,..., (. ) j = j n kde j =,,...,m. Logcké proměnné,,...,n a y,y,...,ym jsou obvykle dvouhodnotové tzn., že mohou nabývat pouze dvou různých hodnot označovaných 0, nebo L,H, kterým v elektronckých logckých obvodech odpovídá velkost rozdílu napětí mez dvěma uzly obvodu nebo proudu určtou větví obvodu. Logcká funkce n dvouhodnotových proměnných přřazuje každé z n možných kombnací hodnot,,...,n hodnotu funkce y j = f j(,,...,n), kde y j (0,). Pokud je známa hodnota funkce f pro všechny možné kombnace vstupních proměnných, pak přřazení je jednoznačné a logckou funkc označujeme jako funkc určtou. V případě, že některým kombnacím není přřazena hodnota funkce ( uvedené kombnace př správné čnnost vnějších obvodů nemohou nastat nebo nám př nch nezáleží na hodnotě funkce ), pak hodnotu funkce označujeme symbolem X a logckou funkc označujeme jako funkc neurčtou. Logcké funkce f j popsující transformac realzovanou logckým obvodem lze zapsat do kombnační tabulky (pravdvostní tabulky), která určuje závslost mez vstupním a výstupním stavem obvodu. Pro n vstupních dvouhodnotových proměnných má kombnační tabulka n řádků. Obecný příklad kombnační tabulky je zobrazen tab... Vstupní stav n Výstupní stav,,..., = (,,..., ),..., y f (,,..., ) y f n,,..., n y, y,..., y m m = m n n řádků Tabulka. - 0 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 Booleova algebra reprezentuje jeden z možných matematckých jazyků, jehož prostřednctvím lze jednoznačně popsat chování dvouhodnotových kombnačních obvodů vntřní strukturu obvodu. Boolovu algebru lze zavést souborem postulátů a teorémů, které jsou podrobně popsány v prác [], a z kterých uvedeme jen ty nejdůležtější: Logcká proměnná Logcká proměnná je velčna, která může nabývat pouze dvou hodnot (označovaných 0 a ) a nemůže se spojtě měnt. Tuto defnc lze vyjádřt = jestlže 0 a = 0 jestlže Funkce rovnost Říkáme, že dvě logcké proměnné a se rovnají, když = a = nebo = 0 a = 0, což zapsujeme =. Dvě velčny A = a n...aa a B = b n...bb se sobě rovnají, když platí a = b pro všechna. Logcké operátory Jsou defnovány tř logcké operátory, které mez proměnným provádějí tř základní operace negace, logcký součn a logcký součet. Negace Logcký součet ( OR ) Logcký součn ( AND ) y +y y.y 0 0 0 0 0 0 0 0 0 0 0 Tabulka. 0 0 0 Nejdůležtější postuláty a. Unverzální vazby + 0 =. 0 = 0 + =. = b. Doplňky +=.=0 c. Idempotence + =. = - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 d. De Morganova pravdla +y=.y.y = + y e. Absorbce +.y =.( + y) = +.y=+y.( + y) =.y f.absorbce konsensu.y +.z + y.z =.y +.z (+y).(+z).(y+z)=(+y).(+z) Záps logcké funkce Je dokázáno, že funkce f(,,...,n ) může být zapsána ve dvou tvarech, zvaných základní součtový tvar a základní součnový tvar. f základní součtový tvar = součet základních součnů přímých nebo negovaných proměnných f základní součnový tvar = součn základních součtů přímých nebo negovaných proměnných V prvém případě nabývá každý základní součn ( mnterm ) hodnoty pro tu kombnac proměnných, kdy funkce má mít hodnotu a hodnoty 0 pro všechny ostatní kombnace. V druhém případě nabývá každý součet ( materm ) hodnoty 0 pro tu kombnac, kdy funkce má mít hodnotu 0 a pro všechny ostatní kombnace nabývá hodnoty. Příklad. Odvoďte základní součtový a základní součnový tvar logcké funkce f(,, ) pro kterou platí, že f =, když většna proměnných je rovna jedné a f = 0 v ostatních případech. Logckou funkc f(,, ) nejprve vyjádříme pomocí kombnační tabulky tab... f(,,) a) Základní součtový tvar vyjadřuje funkc jako součet případů, kdy nabývá hodnoty. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tabulka. Případy, kdy f = kombnace odpovídající,, součny (mntermy) 0.. 0.. 0.... Odtud funkce f =.. +.. +.. +.. b) Základní součnový tvar vyjadřuje funkc jako - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 součn případů, kdy nabývá hodnoty 0. Případy, kdy f = 0 kombnace odpovídající,, součty (matermy) Odtud funkce 0 0 0 f = + +. + +. 0 0. + +. + + 0 0 + + 0 0 + +.. Zjednodušování zápsu logcké funkce Logcká funkce vyjádřená úplnou základní součtovou nebo součnovou formou z kombnační tabulky není jedným možným vyjádřením realzované logcké funkce. Dá se většnou nalézt jednodušší algebracké vyjádření, u něhož můžeme předpokládat, že povede na jednodušší technckou realzac obvodu. Který ze zápsů logcké funkce povede na mnmální složtost obvodu, závsí nejen na použtých logckých členech, ale též na dalších krtérích, která jsou na vlastnost obvodu kladena, jako je zpoždění a spotřeba obvodu, spolehlvost, potlačení hazardních stavů, atd. V této část budou popsány tř procedury, kterým lze dospět k mnmálnímu algebrackému vyjádření logcké funkce. První metodou je algebracká mnmalzace, která je metodou ntutvní a nevhodnou pro více jak tř proměnné. Vychází př úpravách zápsu funkce ze znalost teorémů a postulátů Boolovy algebry. Příklad. Zjednodušte logckou funkc f =.. +.. +.. +.. v základním tvaru K funkc f můžeme nejprve přčíst dvakrát součn + =. Funkc můžeme upravt takto na základě postulátu c, kdy f =.. +.. +.. +.. +.. +.. = (. ) ( ) ( ) ( ). + +. + +. + =. +. +. = + + Příklad. Dokažte, že platí. +.. =. +. Vezměme levou stranu rovnce, v které první výraz vynásobíme logckou jednčkou vytvořenou pomocí proměnné tzn.( + ) ( ). +.. =.. + +.. = ( : ) - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99.. +.. +.. +.. =. +. = + Vhodnější než algebracká mnmalzace je zjednodušování součtové ( součnové ) funkce terační procedurou s využtím součtových ( součnových ) tvarů označovaných jako konsensy. Defnce Konsens součnů a a b g + d je součn a.b ( součet g + d, kde a a b jsou součny ( g a d jsou součty ), které neobsahují an an ( součtů ( + ) a ( ) V tabulce. jsou uvedeny příklady konsensů součnů. Vlastnost konsensu součnů lze vyjádřt touto rovncí. α+. β= α. β+. α+. β (. ) Mnmalzace funkce pomocí konsensů probíhá ve dvou krocích případně teračně opakovaných..α.β konsens................. 0,... není defnován Tabulka.. Výraz ve tvaru součtu součnů nebo součnu součtů se rozšíří o některé nebo všechny konsensy.. Z rozšířeného výrazu ( pomocí získaných konsenců ) vypustíme všechny složky, které lze na základě teorémů Booleovy algebry absorbovat ostatním složkam výrazu.. V případě, že byly odvozeny jen některé konsensy, opakujeme body a až po dosažení mnmálního výrazu. Příklad. Mnmalzujte logckou funkc f =. +. +. +. f =. +. +. +. ( : ) konsens. konsens. Protože poslední výraz. funkce f je konsensem prvních tří součnů, můžeme jej z výrazu vypustt a psát tento zjednodušený výraz pro funkc f f =. +. +. (. ) Příklad. Zjednodušte funkc f = ( + ).( + + ).( + ).( + ) f = ( + ).( + + ).( + ).( + ) = (.7 ) = ( + ).( + )..( + ) + ( + ).( + ) = - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 = ( + ).( + ). ( + ).( + ) = = ( + ).( + ).( + ) Karnaughova metoda mnmalzace pomocí mapy Karnaughova mapa představuje další prostředek repre- 00 0 0 zentace logcké funkce. Mapa je 00 vhodně uspořádaný záps kombnační tabulky daný transfor- mací jednoho řádku tabulky na jedno pole mapy. Zapíšeme-l na jednotlvá pole mapy hodnoty funkce tak, jak jsou 0 0 Obr.. defnovány pro příslušné kombnace Číslo Bnární kód Grayův kód vstupních proměnných, bude mapa jednoznačně reprezentovat danou funkc. Přřazení kombnací hodnot 0 0 0 0 0 0 0 vstupních proměnných jednotlvým 0 0 0 0 polím mapy se označuje jako 0 0 0 kódování. Řádky sloupce 0 0 0 Karnaughovy mapy jsou kódovány 0 0 0 Grayovým kódem. 0 Základní vlastností Grayova 0 0 kódu je to, že sousední slova konstantní délky se lší pouze v jedné 7 0 0 Tabulka : f f proměnné. Tuto vlastnost splňuje první a poslední 0 0 0 0 0 0 0 kódové slovo (kód je uzavřen sám do sebe) tab. :. Na obr.. 0 0 0 0 0 0 je příklad Karnaughovy mapy pro 0 0 0 0 0 0 0 0 0 0 čtyř proměnné. Díky tomu, že vstupní 0 0 0 0 0 0 0 0 0 0 0 0 proměnné jsou v 0 0 0 0 0 řádcích sloupcích 0 0 0 0 mapy kódovány 0 0 Obr.. Grayovým kódem, Tabulka. - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 lší se výrazy (součny nebo součty) dvou sousedních políček pouze v jedné proměnné. Spojováním výrazů sousedních políček provádíme algebrackou mnmalzac, která díky jasnému geometrckému postupu vyhýbá problematckému hledání těchto součtů nebo součnů. Jako příklad vezmeme funkc defnovanou kombnační tabulkou.. Odpovídající Karnaughova mapa je na obr.:. Základní součtový tvar této funkce je dán touto rovncí f =... +... +... +... + ( :8 )... +... +... +... +... V mapě obr.. můžeme udělat tř smyčky, kterým spojíme sousední políčka. Smyčka ze dvou políček ( označená č. ) může být vyjádřena ( )... +... =... + =.. ( :9 ) Smyčka ze čtyř políček v rozích mapy ( označená č. )... +... +... +... = (.0 ) ( ) ( )..( + ) =.... + +... + = Smyčka ze čtyř políček ( označená č. )... +... +... +... = ( :) ( ) ( ) ( ) =... + +... + =.. + Odtud dostaneme výsledný vztah fmn =.. +. +. (. ) Př spojení čtyř políček ( č. ) v mapě jsme použl jedno rohové políčko, které bylo jž použto ve smyčce ( č. ). To však nevadí, protože k logcké funkc můžeme na základě postulátu c (dempotence) přdat tentýž součn několkrát. n Smyčkam ze dvou, čtyř, osm, atd. (, kde n =,, K) sousedních políček, jejchž možné umístění v mapě pro čtyř proměnné je zobrazeno na obr.., se automatcky vyloučí proměnné, které mění svůj stav a zůstanou ty, které svůj stav nemění. Proměnné, které nemění Obr.. - -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 svůj stav se ve výrazu objevují: - pro součtový tvar ( smyčky z jednotkových políček ) v přímém tvaru - pokud proměnné nabývají hodnoty, negované - pokud proměnné nabývají hodnoty 0 - pro součnový tvar ( smyčky z nulových políček ) v přímém tvaru - pokud proměnné nabývají hodnoty 0, negované - pokud proměnné nabývají hodnoty Mnmalzace logcké funkce pomocí Karnaughovy mapy probíhá na základě těchto tří pravdel:. Musí být pokryta všechna políčka, kde funkce nabývá hodnoty (pro součtovou formu) nebo hodnoty 0 (pro součnovou formu).. Snažíme se dosáhnou mnmálního počtu smyček (tzn. součtů nebo součnů).. Snažíme se dosáhnout mnmálního počtu proměnných v jednotlvých součnech nebo součtech. Příklad.8 Mnmalzujte výraz.. +. +. +. +. pomocí Karnaughovy mapy. Obr.. 0 0 0 Nejprve zapíšeme logcký výraz do mapy ( obrácený postup vytváření výrazu z mapy ). Např výrazu.. budou v mapě odpovídat dvě jednčky pro = = 0 a = (tj. první sloupec druhý a třetí řádek). V získané mapě můžeme vytvořt tř smyčky. Pro splnění bodu zásad pro mnmalzac vytvoříme druhou smyčku nkolv ze čtyř (. ), ale z osm políček, které odpovídá výraz. Třetí smyčku opět neuděláme an z jednoho nebo dvou políček, ale z políček čtyř (. ). Tak získáme mnmální výraz logcké funkce f f f 0 0 0 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 0 0 0 0 X Tabulka.7 fmn = + +. (. ) Příklad.9 Odvoďte zjednodušený vztah pro neúplně zadanou logckou funkc, která je popsána kombnační tabulkou.7. Karnaughova X 0 mapa této neurčté 0 0 X logcké funkce je na obr... Př mnmalzac neurčté funkce 0 X 0 postupujeme stejně ja- Obr.. - 7 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 ko pro funkce určté s tím rozdílem, že políčka s obsahem X použjeme jako jednotková nebo nulová pole podle toho, jak to usnadní tvoření smyček. V tomto případě je výhodné neurčtý stav pro kombnac =, = = = 0 realzovat jako jednotkový a tak získat tento mnmální výraz fmn =. +. +. (. ) Příklady k samostatnému řešení Příklad.. Zjednodušte pomocí teorémů Booleovy algebry funkc čtyř proměnných f = +.. +.. +. +. +. Příklad.. Užtím de Morganova zákona určete komplementy funkcí ( + + ) + + + ( + ) +.... +.( + )........ ( ) Příklad.. Dokažte, že platí vlastnost konsensu popsaná rovncí (. ). Příklad.. Odvoďte mnmální součnovou formu funkce, f =. +. +. bez použtí Karnaughovy mapy. Příklad.. Mnmalzujte pomocí konsensů funkce.. +.. +.. +.. ( + + ).( + + + ).( + + + ).( + + ) Příklad.. Odvoďte užtím Karnaughovy mapy mnmální součnovou a součtovou formu funkcí čtyř a pět proměnných nabývajících jednotkové hodnoty pro tyto mntermy ( mntermy se někdy vyjadřují číslem, které bnárně představuje příslušnou kombnací vstupních proměnných ). (,,, ) = (,,,,,, ) (,,, ) (,,,,,,,,, ) f 0 f = 09899-8 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99.. Návrh logckých kombnačních obvodů Př návrhu logckých kombnačních obvodů je zpravdla třeba vykonat následující body:. Z obecných požadavků na chování obvodu určt počet vstupních a výstupních proměnných a stanovt kombnační (pravdvostní) tabulku.. Z pravdvostní tabulky určt logcké funkce popsující chování obvodu, provést jejch mnmalzac s ohledem na soubor logckých členů pro vytvoření struktury obvodu.. Pokud je to nutné, je třeba optmální výrazy vyšetřt zda nevykazují hazardní stavy, popřípadě provést jejch rozšíření o nadbytečné složky, které vznk hazardních stavů potlačují.. Z navržených výrazů realzovat logcký kombnační obvod.. Pro kontrolu provést analýzu navrženého obvodu a ověřt zda splňuje požadavky na něj kladené. V předcházejících částech byl probrán v podstatě bod a nyní se zaměříme na bod, který pojednává o realzac logckých obvodů pomocí logckých členů, které se vyrábějí ve formě monoltckých obvodů. Jedná se především o členy NAND se dvěma, třem, čtyřm, osm a třnáct vstupy, členy NOR se dvěma, třem, čtyřm a osm vstupy a členy AND-OR- INVERT. Dále s však ukážeme jak lze k realzac logcké funkce využít obvody se střední a vysokou hustotou ntegrace jako jsou unversální logcké jednotky nebo programovatelné pamět a logcká pole (PROM, EPROM, PAL, GAL, EPLD, FPGA, LCA atd.).... Realzace logckých kombnačních obvodů se členy NAND a NOR Logcký člen NAND realzuje negac logckého součnu a logcký člen NOR realzuje negac logckého součtu. Logcký člen NAND NOR tvoří úplný systém, protože umožňuje realzovat všechny základní operace: logcký součn, logcký součet a negac. Výčet základních logckých členů NAND NOR je uveden v tabulce.8. Kromě těchto základních obvodů jsou k dspozc Shottkyho logcké obvody s označením 7S-- nebo 7F--, které se vyznačují přblžně čtvrtnovým zpožděním sgnálu přes logcký člen, a obvody typu 7LS--, které se vyznačují až pětnovým odběrem ze zdroje, obvody typu 7ALS--, které se vyznačují až desetnovým odběrem ze zdroje a přblžně polovčním zpožděním vůč standardní řadě TTL. Kromě těchto starších obvodů jsou nyní k dspozc obvody typu 7AS-- vyrobené v bpolární technolog a 7HC--, 7HCT--, 7AC--, 7ACT-- vyrobené v technolog CMOS a 7BCT-- a 7ABT-- vyrobené v kombnované technolog BCMOS. Realzac navržených logckých funkcí se členy NAND nebo NOR lze nejsnáze provádět na základě teorému. - 9 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 Teorém. Každý kombnační obvod realzovaný logckým členy NAND ( NOR ), který má k stupňů ( k=,,, ) modeluje Boolovský výraz, který má v lchých stupních operace logcký součet ( součn ) nebo negac a v sudých stupních logcký součn ( součet ) nebo negac. Vstupní proměnné lchých stupňů jsou ve výrazu v komplementu. TYP OBVODU Počet TTL CMOS Počet logckých Provedení Logcký s OK vstupů členů člen 700 70 0 NAND 70 NAND 780 NAND 77 78 výkonové NAND 70 7 0 NAND 70 7 0 NAND 70 08 8 NAND 7 NAND 7 09 Smth NAND 70 7 00 NOR 780 NOR 77 0 NOR 7 00 NOR 70 Shottky NOR 078 8 NOR 70 70 09 NEGACE 7 8 Smth NEGACE Tblk 8 UB Obr.. UA 7ALS00 7ALS00 UA 7ALS0 f - 0 -
J.Podlešák, P.Skalcký - Spínací a číslcová technka, Praha 99 Jednotlvé stupně označujeme vzestupně od poslední matematcké operace, kterou musíme vykonat. Operace negace se ve výsledném výrazu neobjevuje, zajšťuje pouze posun operace logcký součet nebo logcký součn na požadovaný stupeň obvodu, který j realzuje. Příklad.0 Analyzujte logcké kombnační obvody z obr.. a obr..7. Pro funkc f, která je realzována logckým členy NAND, můžeme psát f =.... = + +.. = ( ) = + +. + st st st st (. ) Př úpravách byl použt pouze de Morganův teorém. Pro funkc f, která je realzována logckým členy NOR, platí ( ) f = + + + = +. + st negace st st st (. ) První stupeň obvodu real- UA 7ALS00 UD UC 9 8 0 7ALS00 UB 7ALS00 f zující negac, která ve výsledném vztahu nevystupuje, zajšťuje pouze posun operace logcký součet na druhý stupeň. Obr..7 7ALS00 Každý booleovský výraz lze pak realzovat obvodem s logckým členy NAND takto:. Určíme pořadí artmetckých operací s tím, že poslední operac ve výrazu označíme č., předposlední č., atd.. Vkládáním stupňů, které realzují negac upravíme obvod tak, aby operace logcký součet přpadala na stupně lché a operace logcký součn na stupně sudé.. Vstupní proměnné v lchých stupních negujeme. Obdobně postupujeme př realzac obvodu s logckým členy NOR. - -