IGITÁLIS TEHNIK I r. Pıdör álint MF KVK Mikroelektronikai és Technológia Intézet 5. ELİÁS 5. ELİÁS. Karnaugh táblázat programok. Nem teljesen határozott logikai függvények. Karnaugh táblázat, logikai tervezési példák. számjegyes minimalizálás (QuineMcluskey módszer) alapjai 8/9 tanév. félév KRNUGH TÁL, KMP Karnaugh tábla (Karnaugh map) mint Veitch diagram is ismert (röviden Kmap, vagy KVmap). Elsı leírója Maurice Karnaugh (ell Labs, 95), illetve Edward W. Veitch (95). Edward W. Veitch, chart method for simplifying truth functions, May 95, Proc. ssoc. for omputing Machinery, Pittsburgh Maurice Karnaugh, The map method for synthesis of combinational logic circuits, Trans. IEE, pt. I, 7(9), 55 599, November 95. nem túl nagy változószámú függvények gyors szemléletes minimalizálása mellett alkalmas a potenciális hazárdjelenségek azonosítására és eliminálására, melyeket csupán a oole algebrai egyenletek alapján nem lehet elvégezni. KRNUGH TÁL PROGRMOK kmap.exe kmin.zip www.puz.com/sw/karnaugh/ karnaugh.shuriksoft.com/ KMapSimulator.zip members.cox.net/cyclone98/ KMapSimulationEmbedded.htm Karnaugh map programok általában mindkét kanonikus alakot kezelik. SOP: sumofproducts, diszjunktív algebrai alak. POS: productofsums, konjunktív algebrai alak. PÉL: ÖTVÁLTOZÓS MINIMLIZÁLÁS F(,,,,E) = Σ5 (,6,8,,,,7,9,,,6,7,,) PÉL: ÖTVÁLTOZÓS MINIMLIZÁLÁS F(,,,,E) = Σ5 (,6,8,,,,7,9,,,6,7,,) 5 _ E E E 6
PÉL: HTVÁLTOZÓS MINIMLIZÁLÁS PÉL: HTVÁLTOZÓS MINIMLIZÁLÁS F(,,,,E,F) = Σ6(,,6,9,,8,,,5,7,,,,9,5,55,57,6,6) 7 8 LEGEGYSZERŐ KONJUNKTÍV FÜGGVÉNYLK Eddig mindig a legegyszerőbb diszjunktív alakot írtuk fel a Karnaugh tábla alapján. legegyszerőbb konjunktív algebrai alak is könnyen kiolvasható a Ktáblából, ekkor a tagadott függvény mintermjeit kell hurkokkal lefedni, ez megadja a függvény negáltjának legegyszerőbb diszjunktív algebrai alakját. Ebbıl a emorgan azonosság alapján rögtön adódik a ponált függvény legegyszerőbb PÉL LEGEGYSZERŐ KONJUNKTÍV LK KÉPZÉSÉRE konjunktív alakja. 9 Három négyes és két kettes hurok jelölhetı ki. Pl. a felsı sorbeli négyes hurok (a peremeken ellentétesnek kell venni a változókat!) ( + ) LEGEGYSZERŐ KONJUNKTÍV LGERI LK F = + + + + NEM TELJESEN HTÁROZOTT LOGIKI FÜGGVÉNY z összevonás során a nem rögzített függvényértéket tetszılegesen választhatjuk nek vagy nak, attól függıen, hogy melyik adja a legkedvezıbb megoldást. F = (+)(+)(++)(++)(+) Természetesen ugyanez olvasható ki a Karnaugh táblázatból is. ejegyzések a Karnaugh táblán (háromféle!) a minterm szerepel a függvényben, a minterm nem szerepel a függvényben, a minterm értéke közömbös. ( bejegyzés helyett sokszor üresen marad a cella.)
NEM TELJESEN HTÁROZOTT LOGIKI FÜGGVÉNY F F = Σ ((,,,7) + (,6)) Optimális lefedés két es hurok: F = + Itt a közömbös függvényértékeket nek tekintjük. NEM TELJESEN HTÁROZOTT FÜGGVÉNYEK Nem teljesen határozott logikai függvényeknél elıfordulhat, hogy a közömbös értékeket máskép célszerő rögzíteni a legegyszerőbb konjunktív alak képzésekor, mint ahogy azt a legegyszerőbb diszjunktív alaknál tennénk. Ekkor a két elvi logikai rajzon a kapubementek száma különbözı lehet! megvalósításkor, ha szabadon választhatunk a két alak között, azaz nincs megkötés az ÉS és VGY szintek sorrendjére, akkor a legkevesebb kapubemenetet igénylı megoldást a két függvényalak további, heurisztikus elemzésével kaphatjuk csak meg. PÉL KÖZÖMÖS FÜGGVÉNY ÉRTÉK ELTÉRİ RÖGZÍTÉSÉRE színkóddal jelölt cella értékét a diszjunktív alak keresésénél célszerő nek rögzíteni, a konjunktív alak keresésénél pedig nak! 5 LEGEGYSZERŐ LGERI LKOK F d = + + F k = (+)(++)(++) változók negáltjait elıállító invertereket is figyelembe véve a diszjkunktív alak realizálásnál, a konjunktív alakénál pedig kapubementre van szükség! 6 TERVEZÉSI GYKORLT ( ÉS ) TERVEZÉS (): MEGOLÁS (ÉSVGY) Tervezzen bemenető (), kimenető (F) kombinációs hálózatot, amelynek F kimenete, ha a bemenetre adott bináris számok (legmagasabb helyérték ) maradék nélkül oszthatók mal vagy el. Rajzolja fel a Karnaugh tábláját, és az elvi logikai rajzot. Rajzolja fel az F Karnaugh tábláját és az elvi logikai rajzot, ha a bemenetre csak binárisan kódolt decimális számok ( 8 súlyozás) érkezhetnek. 7 al osztható:,,6,9,,5 el osztható:,,8, megvalósítandó logikai függvény F = Σ(,,,6,8,9,,5) 8
TERVEZÉS (): MEGOLÁS (ÉSVGY) z egyszerősített alak F = + + + + (Esetleg OR logika?) 9 TERVEZÉSI PÉL (): MEGOLÁS z elvi logikai rajz: db kétbemenető ÉS db hárombemenető ÉS db négybemenető ÉS db 5 bemenető VGY kapu. minimalizált hálózatban kapubement van. Realizálás: / 7 (x bemenető NN) 7 (x bemenető NN) 7 (x8 bemenető NN) teljes diszjunktív kanonikus alak realizálása 8x + x8 = kapubementet igényelne. TERVEZÉS (): MEGOLÁS (VGYÉS) TERVEZÉS (): MEGOLÁS (VGYÉS) + + stb., hat hasonló szerkezető tényezı z elvi logikai rajz (VGYÉS): 6 db hárombemenető VGY kaput és db 6 bemenető ÉS kaput tartalmaz. minimalizált hálózatban kapubement van. teljes konjunktív kanonikus alak realizálása 8x + x8 = kapubementet igényelne. TERVEZÉS (): MEGOLÁS TERVEZÉSI PÉL (): MEGOLÁS al osztható:,,6,9 (,5 kizárva!) el osztható:,,8 ( kizárva!) minimalizált függvény F = + + + megvalósítandó logikai függvény F = Σ((,,,6,8,9) +(5))
TERVEZÉSI PÉL (): MEGOLÁS z elvi logikai rajz : db közvetlen összekötetést, db kétbemenető, db hárombemenető ÉS kaput és db bemenető VGY kaput tartalmaz. minimalizált hálózatban kapubement van. Realizálás: / 7 (x bemenető NN) 7 (x bemenető NN) teljes diszjunktív kanonikus alak realizálása 6x + x6 = kapubementet igényelne. Megjegyzés: ebben az esetben a VGYÉS elrendezés némileg egyszerőbb lenne, csak TERVEZÉSI GYKORLT () Egy kombinációs hálózat bemenetei,,,, kimenetei, Y, Z. bemenetet mint db bites számot értelmezve (, a magasabb helyérték), illetve (, a magasabb helyérték), a kimenet legyen a két bemenet összege, (YZ, a legmagasabb helyérték), YZ = +. Pl. = + (bináris összeadás). dja meg a hálózat igazságtábláját. dja meg a hálózat kimenetenként legegyszerőbb logikai függvényeit algebrai alakban. 5 6 kapubement szükséges hozzá. TERVEZÉS (): MEGOLÁS TERVEZÉS (): MEGOLÁS Y Z Például ha = akkor Y Z = mivel + tervezés és megoldás elsı lépése a feladat megfogalmazása alapján a kimeneti függvényekre vonatkozó igazságtáblázat felírása. Ebben az esetben három független kimeneti változó van, így mindhárom változóra el kell végezni a minimalizálást. = Y Z 7 8 TERVEZÉS (): IGZSÁGTÁLÁZT Y Z.......................................... TERVEZÉS (): LOGIKI FÜGGVÉNYEK z igazságtáblázatból a három logikai függvény könnyen kiolvasható = Σ(7,,,5) Y = Σ(,,5,6,8,9,,) Z = Σ(,,,6,9,,,) 9
(,,,) MINIMLIZÁLÁS minimalizált függvény TERVEZÉS (): MINIMLIZÁLT, FÜGGVÉNYEK Karnaugh táblából a három minimalizált függvény könnyen kiolvasható = + + = + + Y = + + + + + Z = + (Esetleg OR logika?) NPTÁR KIJELZİ etermine number of days in a month (to control watch display) Used in controlling the display of a wristwatch L screen Feladat: napok száma adott hónapban, karóra L kijelzıje vezérléséhez Inputs: month, leap year flag Outputs: number of days emenetek: hónap, szökıév flag Kimenetek: napok száma, négy kimeneti vonal Use software implementation to help understand the problem integer number_of_days ( month, leap_year_flag) { switch (month) { case : return (); case : if (leap_year_flag == ) then return (9) else return (8); case : return (); case : return (); case 5: return (); case 6: return (); case 7: return (); case 8: return (); case 9: return (); case : return (); case : return (); case : return (); default: return (); } } FORMÁLIS MEGFOGLMZÁS Encoding: inary number for month: bits wires for 8, 9,, and onehot only one true at any time lock diagram: month leap 8 9 month leap 8 9 Kódolás: hónap: bites bináris szám (m8,m,m,m), szökıév: bit, vonal 8, 9, és, egyszerre csak egy aktív NPTÁR: NPOS HÓNP NPTÁR: NPOS HÓNP színkóddal jelölt lefedés szerint F = + közömbös kombinációk elınyösen kihasználhatók a függvény minimalizálásánál! 5 lefedés szerint F = + 6
RELZÁLÁS: ISZKRÉT KPUK INÁRISN KÓOLT EIMÁLIS SZÁMOK iszkrét kapuk 8 = 9 = = = m8 m m m leap m8 m m m leap m8 m m + m8 m m8 m + m8 m an translate to SoP or PoS month leap 8 9 7 Egy fontos eset a nem teljesen határozott logikai függvények alkalmazására, amikor binárisan kódolt decimális () számokkal kell valamilyen mőveletet, kódolást, dekódolást, stb. elvégezni. kód, és a vele rokon kódok (pl. a többletes kód) a lehetséges 6 négybites kódszóból csak tízet használ. Jó gyakorló feladat: 7 szegmenses számjegykijelzı illesztı kombinációs hálózata. 8 PÉL: /7SZEGMENSES KIJELZİ EKÓOLÓ emenet : bit digit (,,, ) Kimenet : 7 szegmens vezérlıjele (6) c5 c c c6 c c c c c c c5 c6 to 7 segment control signal decoder c c 9 FELT NLÍZISE Igazságtábla don't care termek Megvalósítási technika megválasztása Ha ROM, akkor kész on't care termek PL/PL elınyös lehet kiválasztott technikától függıen minimalizálás Karnaugh táblákon 5 6 HÉT KIMENET FÜGGETLEN MINIMLIZÁLÁS 5 term ha a kimeneteket különkülön kezeljük MINIMLIZÁLÁS KÖZÖS TERMEKKEL Jobb megoldás is van! 9 különbözı szorzat tag (5 helyett) Közös termek z egyes kimenetek nem szükségképen minimális = + + + ' ' = ' ' + + ' = + ' + = + + + ' ' = ' + + ' ' + ' + = ' ' + ' + ' + ' = ' ' + + ' = ' + ' ' + + ' ' = ' ' + ' = + ' + = ' + ' + ' ' + + ' 5 = + ' ' + ' + ' 6 = + ' + ' + ' = ' ' + ' + ' + ' = ' ' + ' = ' + ' + ' ' + ' = ' ' + ' 5 = + ' ' + ' + ' 5 = ' + ' ' + + ' on t care termek: erıs egyszerősítések adódnak! 6 = + ' + ' + ' 6 = ' + ' + ' +
PL RELIZÁLÁS ' ' ' ' '' '' ' SZÁMJEGYES MINIMLIZÁLÁS LPJI Mintermek: alsó indexek egyértelmően megadják. supán ezek ismeretén alapuló minimalizálási eljárás: a végrehajthatóság nem függ a változók számától. lgoritimizálható, programozható. QuineMcluskey módszer. 5 6 7 MINTERMEK SZOMSZÉOSSÁG minimalizálás alapja a szomszédos mintermek megkeresése, egyszerősítése, míg el nem jutunk a prímimplikánsokig. Két minterm szomszédosságának szükséges és elégséges feltétele három állítással adható meg, melyeknek egyszerre kell, hogy teljesülniük. Lényeges, hogy e feltételek megfogalmazhatók kizárólag a mintermek alsó indexei értékeire alapozva. 5 KÉT MINTERM SZOMSZÉOS SÁGÁNK FELTÉTELE () Két minterm szomszédos, ha decimális indexeik különbsége egész számú hatványa. 6 + Ez szükséges de nem elégséges feltétel, mivel pl. a és indexő mintermekre is teljesül, de ezek nem szomszédosak. 6 KÉT MINTERM SZOMSZÉOS SÁGÁNK FELTÉTELE () Két minterm szomszédos, ha bináris súlyaik (esek száma) különbsége. _ 6 () + () () Egyikük egyel és csakis egyel több est tartalmaz bináris formájában. Ez is szükséges de nem elégséges feltétel, mivel pl. a és indexő mintermekre, bár a decimális különbség hatványa, 7 éppen ez a feltétel mely nem teljesül. KÉT MINTERM SZOMSZÉOS SÁGÁNK FELTÉTELE () két minterm szomszédos, ha a nagyobb bináris súlyú mintermnek a decimális indexe is nagyobb a másikénál. _ 6 + 6 > és > Ez is szükséges de önmagában nem elégséges feltétel, mivel pl. a 7 és 9 indexő mintermekre, melyekre az elsı két feltétel áll, éppen ez nem 8 teljesül, persze ezek nem szomszédosak.
QUINEMLUSKEY LGORITMUS QUINEMLUSKEY LGORITMUS izonyítható azonban, hogy ezen három feltétel egyidejő teljesülése már nemcsak szükséges hanem elégséges feltétele a két term szomszédosságának. Ezen alapul a QuineMcluskey algoritmus. 9 számjegyes minimalizálás QuineMclsukey féle algoritmusa ezen három feltétel alapján, kizárólag a mintermek indexeit vizsgálva válogatja párba a mintermeket, majd egyszerősítés után a folyamatot addig ismétli míg el nem jut a prímimplikánsokig. z algoritmus az összes prímimplikánst eredményezi így a második lépés az, hogy ki kell választani közülük a lényeges prímimplikánsokat. z algoritmus gyakorlati alkalmazását egy példa mutatja be. 5 QUINEMLUSKEY MINIMLIZÁLÁS MINTERM TÁL Minimalizálandó függvény: f (,,,)= Σm(,,, 5, 7, 8,,,5 ) minterms = =, 8 =, 5, = 7, = 5 mintermeket az indexeik bináris vagy Hamming 5 súlya szerint csoportosítjuk Súly Minterm 8 5 7 5 5 SZOMSZÉOK MEGKERESÉSE Súly Minterm Párok, (),8 (8) 8 5 7 5 Összevonás szomszédos csoportok között, ha az indexek különbsége,,, 8, stb. Felhasznált termek megjelölendık. Egy term több párban is szerepelhet. 5 Z ÖSSZES SZOMSZÉPÁR Súly Minterm Pár, (),8 (8) 8 5 7 5, (), (8) 8, (),7 () 5,7 () 5, (8) 7,5 (8),5 () Ezután a párokat kell párosítani: es csoportok 5
NÉGYES SOPORTOK PRÍMIMPLIKÁNS TÁL Súly Minterm Pár Négyes, (),8 (8) 8 5 7 5 *, (), (8) 8, () *,7 () 5,7 () 5, (8) 7,5 (8),5 (),,8, (,8) 5,7,,5 (,8) Kék csillag * : prímimplikáns 55 Prímimplikánsok,,8, (,8) 5,7,,5 (,8), (),7 () Mintermek 5 7 8 5 56 PRÍMIMPLIKÁNS TÁL PRÍMIMPLIKÁNS TÁL,,8, (,8) 5,7,,5 (,8), (),7 () Minterms 5 7 8 5 Prímimplikánsok Prímimplikánsok,,8, (,8) 5,7,,5 (,8), (),7 () Mintermsek 5 7 8 5 z m minterm csak egy sorban fordul elı, valamint, m8 és m is, ezért m(,,8,) lényeges prímimplikáns. Ez lefedi majd az m mintermet is. 57 58 MINTERMEK LEFEÉSE REUKÁLT LEFEÉSI TÁL,,8, (,8) 5,7,,5 (,8) 5 7 8 5 Primimplikánsok Prímimplikánsok Mintermek, (),7 (), (),7 () két négyes prímimplikáns az m kivételével már lefedi az összes mintermet. 59 fennmaradt m minterm lefedése bármelyik kettes prímimlpikánssal megoldható, itt m(,) a választás. Így m(,) a harmadik lényeges prímimplikáns, m(,7) pedig redundás. 6
MINIMLIZÁLÁS EREMÉNYE MEGOLÁS KRNUGH TÁLÁN Lényeges prímimplikánsok f (,,,)=,,8,(, 8) + 5,7,,5(,8) +,() = + + = + + Redundás (nem lényeges) prímimplikáns) F(,,,) = + + 6 QUINEMLUSKEY LGORITMUS PROGRM oolean function`s minimalisation software based on the QuineMcluskey method www.seattlerobotics.org/encoder/6/qmccmin. htm VÉGE Példa: 6 változós függvény 6 mintermet tartalmazó alakjának minimalizálása 6 6