DIGITÁLIS TECHNIKA I Dr. Kovács Balázs Dr. Lovassy Rita Dr. Pődör Bálint Óbudai Egyetem KVK Mikroelektronikai és Technológia Intézet 6. ELŐADÁS
Arató Péter: Logikai rendszerek tervezése, Tankönyvkiadó, Budapest, Műegyetemi Kiadó, 5503 műegyetemi jegyzet Zsom Gyula: Digitális technika I és II, Műszaki Könyvkiadó, Budapest, (KVK 49-273/I és II) Rőmer Mária: Digitális rendszerek áramkörei, Műszaki Könyvkiadó, Budapest, (KVK 49-223) Rőmer Mária: Digitális technika példatár, KKMF 05, Budapest Az előadás ezen könyvek megfelelő fejezetein alapszik.
TERVEZÉSI GYAKORLAT (3) Egy kombinációs hálózat bemenetei A, B, C, D, kimenetei X, Y, Z. A bemenetet mint 2 db 2 bites számot értelmezve (AB, A a magasabb helyérték), illetve (CD, C a magasabb helyérték), a kimenet legyen a két bemenet összege, (XYZ, X a legmagasabb helyérték), XYZ = AB + CD. Pl. 0 = + 0 (bináris összeadás). Adja meg a hálózat igazságtábláját. Adja meg a hálózat kimenetenként legegyszerűbb logikai függvényeit algebrai alakban. 3
TERVEZÉS (3): MEGOLDÁS A B C D X Y Z Például ha A B C D = 0 akkor X Y Z = 0 0 mivel A B + C D 0 = X Y Z 0 0 4
TERVEZÉS (3): MEGOLDÁS A 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. 5
TERVEZÉS (3): IGAZSÁGTÁBLÁZAT A B C D X Y Z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0..................... 0 0 0 0..................... 0 6
TERVEZÉS (3): LOGIKAI FÜGGVÉNYEK Az igazságtáblázatból a három logikai függvény könnyen kiolvasható 4 X = S(7,0,,3,4,5) 4 Y = S(2,3,5,6,8,9,2,5) 4 Z = S(,3,4,6,9,,2,4) 7
X(A,B,C,D) MINIMALIZÁLÁSA C A minimalizált függvény A B X = A C + B C D + A B D D 8
TERVEZÉS (3): MINIMALIZÁLT, FÜGGVÉNYEK A Karnaugh táblából a három minimalizált függvény könnyen kiolvasható X = A C + B C D + A B D Y = A C D + A B C + A C D + A B C + A B C D + A B C D Z = B D + B D (Esetleg XOR logika?) 9
TERVEZÉSI PÉLDA (4) NAPTÁR KIJELZŐ Feladat: napok száma adott hónapban, karóra LCD kijelzője vezérléséhez Bemenetek: hónap, szökőév flag Kimenetek: napok száma, négy kimeneti vonal integer number_of_days ( month, leap_year_flag) { switch (month) { case : return (3); case 2: if (leap_year_flag == ) then return (29) else return (28); case 3: return (3); case 4: return (30); case 5: return (3); case 6: return (30); case 7: return (3); case 8: return (3); case 9: return (30); case 0: return (3); case : return (30); case 2: return (3); default: return (0); } } 0
FORMÁLIS MEGFOGALMAZÁS Kódolás: hónap: 4 bites bináris szám (m8,m4,m2,m), szökőév: bit, 4 vonal 28, 29, 30 és 3, egyszerre csak egy aktív month leap 28 29 30 3 month leap 28 29 30 3 0000 000 0 0 0 000 0 0 0 0 000 0 0 0 00 0 0 0 000 0 0 0 00 0 0 0 00 0 0 0 0 0 0 0 000 0 0 0 00 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0
NAPTÁR: 3 NAPOS HÓNAP C A színkóddal jelölt lefedés szerint A - 0 0 0 - - - 0 0 D B F = A D + A D A közömbös kombinációk előnyösen kihasználhatók a függvény minimalizálásánál! 2
NAPTÁR: 30 NAPOS HÓNAP - C A lefedés szerint F = A D + A B D A - - - B D 3
REALIZÁLÁS: DISZKRÉT KAPUK Diszkrét kapuk 28 = 29 = 30 = 3 = m8 m4 m2 m leap m8 m4 m2 m leap m8 m4 m + m8 m m8 m + m8 m month leap 28 29 30 3 0000 000 0 0 0 000 0 0 0 0 000 0 0 0 00 0 0 0 000 0 0 0 00 0 0 0 00 0 0 0 0 0 0 0 000 0 0 0 00 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 4
TERVEZÉSI PÉLDA (5): BCD/7-SZEGMENSES KIJELZŐ DEKÓDOLÓ Bemenet : 4 bit BCD digit (A, B, C, D) Kimenet : 7 szegmens vezérlőjele (C0-C6) c5 c4 c0 c6 c c2 c3 c0 c c2 c3 c4 c5 c6 BCD to 7 segment control signal decoder A B C D (MSI változat: 7446, 7447, 7447, 7449) 5
Igazságtábla don't care termek Megvalósítási technika megválasztása Ha ROM, akkor kész Don't care termek PAL/PLA előnyös lehet A kiválasztott technikától függően minimalizálás Karnaugh táblákon A FELADAT ANALÍZISE A B C D C0 C C2 C3 C4 C5 C6 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 6
MINIMALIZÁLÁSI PÉLDA (C0) C C0 0 A 0 - - - - B C0 = A + C + B D + B D - - D 7
HÉT KIMENET FÜGGETLEN MINIMALIZÁLÁSA 5 term ha a kimeneteket külön-külön kezeljük A A A A A 0 X X X 0 X 0 X C 0 X X X X X D C 0 X X X 0 X X D C X X X 0 X X D C 0 X 0 0 X X X X D C 0 0 X 0 0 0 X X X X D B B B B B A A C X 0 X 0 0 X X 0 X X B D C 0 X 0 X 0 X X X X B D C0 = A + B D + C + B' D' C = C' D' + C D + B' C2 = B + C' + D C3 = B' D' + C D' + B C' D + B' C C4 = B' D' + C D' C5 = A + C' D' + B D' + B C' C6 = A + C D' + B C' + B' C Don t care termek: erős egyszerűsítések adódnak! 8
MINIMALIZÁLÁS KÖZÖS TERMEKKEL Jobb megoldás is van! 9 különböző szorzat tag (5 helyett) Közös termek Az egyes kimenetek nem szükségképen minimális C2 A X C2 A X C X X X 0 X X D C X X X 0 X X D B B C0 = A + B D + C + B' D' C = C' D' + C D + B' C2 = B + C' + D C3 = B' D' + C D' + B C' D + B' C C4 = B' D' + C D' C5 = A + C' D' + B D' + B C' C6 = A + C D' + B C' + B' C C0 = B C' D + C D + B' D' + B C D' + A C = B' D + C' D' + C D + B' D' C2 = B' D + B C' D + C' D' + C D + B C D' C3 = B C' D + B' D + B' D' + B C D' C4 = B' D' + B C D' C5 = B C' D + C' D' + A + B C D' C6 = B' C + B C' + B C D' + A 9
PLA REALIZÁLÁS A B C D BC' B'C B'D BC'D C'D' CD B'D' A BCD' C0 C C2 C3 C4 C5 C6 C7 20
A SZÁMJEGYES MINIMALIZÁLÁS ALAPJAI Quine-McCluskey módszer Algoritimizálható, programozható. Logikai függvényegyszerűsítéshez a Karnaugh-táblák használata korlátozott: <5 változós függvények Egyszerre egyetlen kimeneti függvény Szubjektív megközelítés, különböző eredmények Mintermek: alsó indexek egyértelműen megadják. Csupá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. 2
MINTERMEK SZOMSZÉDOSSÁGA A 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. 22
KÉT MINTERM SZOMSZÉDOSSÁGÁNAK FELTÉTELE () Két minterm szomszédos, ha decimális indexeik különbsége 2 egész számú hatványa. 6 00 A B C D + A B C D A C D 2 000 4 Ez szükséges de nem elégséges feltétel, mivel pl. a 2 és 4 indexű mintermekre is teljesül, de ezek nem szomszédosak. 23
KÉT MINTERM SZOMSZÉDOSSÁGÁNAK FELTÉTELE (2) Két minterm szomszédos, ha bináris súlyaik (-esek száma) különbsége. _ 6 00 (2) A B C D + A B C D A C D 2 000 () 4 () 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 2 és 4 indexű mintermekre, bár a decimális különbség 2 hatványa, éppen ez a feltétel mely nem teljesül. 24
KÉT MINTERM SZOMSZÉDOSSÁGÁNAK FELTÉTELE (3) A 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 00 (2) A B C D + A B C D A C D 2 000 () 4 () 6 > 2 és 2 > 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 teljesül, persze ezek nem szomszédosak. 25
QUINE-MCCLUSKEY ALGORITMUS Bizonyí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 Quine-McCluskey algoritmus. 26
QUINE-MCCLUSKEY ALGORITMUS A számjegyes minimalizálás Quine-McCluskey 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. Az 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. Az algoritmus gyakorlati alkalmazását egy példa mutatja be. 27
QUINE-MCCLUSKEY MINIMALIZÁLÁS Minimalizálandó függvény: f ( A,B,C,D)= Sm( 0, 2, 3, 5, 7, 8,0,3,5) minterms = 0 Þ 0 = Þ 2, 8 = 2 Þ 3, 5,0 = 3 Þ 7,3 = 4 Þ 5 A mintermeket az indexeik bináris vagy Hamming súlya szerint csoportosítjuk http://cpe.gmu.edu/courses/ece33/lectures/33_8/index.htm 28
MINTERM TÁBLA Súly 0 Minterm 0 2 8 2 3 3 5 0 7 3 4 5 29
SZOMSZÉDOK MEGKERESÉSE Súly Minterm Párok Két minterm szomszédos, ha decimális indexeik különbsége 2 egész számú hatványa. 0 2 3 ü0 0,2 (2) ü2 ü8 3 5 0 7 3 0,8 (8) Összevonás szomszédos csoportok között, ha az indexek különbsége, 2, 4, 8, stb. Felhasznált termek megjelölendők. Egy term több párban is szerepelhet. 4 5 30
AZ ÖSSZES SZOMSZÉDPÁR Súly Minterm Pár 0 2 ü0 0,2 (2) 0,8 (8) ü2 2,3 () ü8 2,0 (8) 8,0 (2) ü3 3,7 (4) ü5 5,7 (2) ü0 5,3 (8) 3 ü7 ü3 7,5 (8) 3,5 (2) 4 ü5 Ezután a párokat kell párosítani: 4-es csoportok 3
NÉGYES CSOPORTOK Súly Minterm Pár Négyes Két minterm szomszédos, ha bináris súlyaik (-esek száma) különbsége. Kék csillag * : prímimplikáns Ezek a tagok nem lettek összevonva 0 2 3 * * 4 ü5 ü0 ü0,2 (2) ü0,8 (8) ü2 2,3 () ü8 ü2,0 (8) ü8,0 (2) ü3 3,7 (4) ü5 ü5,7 (2) ü0 ü5,3 (8) ü7 ü7,5 (8) ü3 ü3,5 (2) 0,2,8,0 (2,8) 5,7,3,5 (2,8) 32
PRÍMIMPLIKÁNS TÁBLA Prímimplikánsok 0,2,8,0 (2,8) 5,7,3,5 (2,8) Mintermek 0 2 3 5 7 8 0 3 5 2,3 () 3,7 (4) 33
PRÍMIMPLIKÁNS TÁBLA Prímimplikánsok 0,2,8,0 (2,8) 5,7,3,5 (2,8) Mintermek 0 2 3 5 7 8 0 3 5 X X X X X X X X 2,3 () 3,7 (4) X X X X Az m0 minterm csak egy sorban fordul elő, valamint, m8 és m0 is, ezért m(0,2,8,0) lényeges prímimplikáns. Ez lefedi majd az m2 mintermet is. 34
PRÍMIMPLIKÁNS TÁBLA Prímimplikánsok «0,2,8,0 (2,8) «5,7,3,5 (2,8) Mintermek 0 2 3 5 7 8 0 3 5 X X X X X X X X 2,3 () 3,7 (4) X X X X 35
MINTERMEK LEFEDÉSE Primimplikánsok «0,2,8,0 (2,8) «5,7,3,5 (2,8) 0 2 3 5 7 8 0 3 5 X X X X X X X X 2,3 () 3,7 (4) X X X X A két négyes prímimplikáns az m3 kivételével már lefedi az összes mintermet. 36
MINIMALIZÁLÁS EREDMÉNYE f A,B,C,D ( )= 0,2,8,0(2,8) + 5,7,3,5(2,8) + 2,3() = X0X0 + XX + 00X = B D + BD + A B C 0 0 0 0 0 2 0 0 0 8 0 0 0 0 0 0 X 0 X 0 5 0 0 7 0 3 0 5 X X 2 0 0 0 3 0 0 0 0 X 37
MEGOLDÁS A KARNAUGH TÁBLÁN A C D Lényeges prímimplikánsok Redundás (nem lényeges) prímimplikáns) F(A,B,C,D) = B D + B D + A B C B
QUINE-MCCLUSKEY ALGORITMUS PROGRAM www.seattlerobotics.org/encoder/20006/qmccmin.htm Példa: 64 változós függvény 64 mintermet tartalmazó alakjának minimalizálása 39
Kombinációs hálózatok megvalósítása memóriaelemek felhasználásával 40
MEMÓRIAELEMEK TULAJDONSÁGAI Állandó tartalmú memóriák: Read Only Memory (ROM), tulajdonságaik alapján alkalmasak kombinációs hálózatok megvalósítására. A memóriaelemben tárolt adat egy bináris kombináció (D, D 2,... D m ), mely a cím megadásával, mely szintén bináris kombináció (C, C 2,... C n ), válik hozzáférhetővé. 4
MEMÓRIAELEM ELVI VÁZLATA C D C 2 D 2...... C n E D m C címbemenet D adatkimenet E - (enable, engedélyező) A C bemenetre érkező n-bites kombináció hatására a D kimeneten megjelenik a megfelelő cellában tárolt m-bites kombináció. Az E (enable, engedélyező) bemenetre adott jel letiltja vagy engedélyezi az adatkimenetet. Ennek révén, és a memória-elem áramköri kialakítása miatt több memóriaelem kimenetei huzalozott VAGY kapcsolat szerint közösíthetők. 42
MEMÓRIAELEM MINT KOMBINÁCIÓS HÁLÓZAT X X 2 C D C 2 D 2...... F F 2 A memóriaelem egy n-változós és m kimeneti függvénnyel bíró kombinációs hálózatot valósít meg. X n M-elem C n E D m F m Az adatbeírás közvetlenül az igazságtáblázat alapján végezhető el, nem szükséges a minimalizálás. Kombinációs hálózat 43
ROM MINT UNIVERZÁLIS KOMBINÁCIÓS HÁLÓZAT f = + + ABC ABC ABC f = 2 AB + AC = ABC + ABC + ABC + ABC Mintermek: f : 2, 4, 7, illetve f 2 : 0,, 5, 7 44
ROM MINT KOMBINÁCIÓS HÁLÓZAT A két 3-változós függvényhez egy 8x2 bites ROM elegendő, ilyen nincs forgalomban, 6x4 bitest alkalmazunk. A2, A, A0 cím A, B, C változók D0, D kimenet f, f2 függvény Igazságtábla előállítása és beprogramozása: A3 címbemenet fixen 0-ra kötve (csak a ROM alsó 8 szavát használjuk, a többi terület közömbös) D3, D2 közömbös CS, OE fixen aktív szintre kötve, folyamatos engedélyezés 45