Informatika alapjai-5 Logikai áramkörök 1/6 Logikai áramkörök Az analóg rendszerekben például hangerősítő, TV, rádió analóg áramkörök, a digitális rendszerekben digitális vagy logikai áramkörök működnek. Az analóg áramkörök folyamatosan változó jeleket kezelnek. Például az ábrán látható 2-szeres erősítő be- és kimenőjele: A digitális áramkörökben a jeleknek csak két megkülönböztetett állapota van. A logikai áramkörök tranzisztoros kapcsolások. A legegyszerűbb áramkör egy tranziszort és egy ellenállást tartalmaz: Ez úgy nevezett INVERTER kapcsolás, amely a bemenetre adott logiaki értéket megfordítja. Az eddigiekből kiderült, hogy a logikai értékeknek feszültségek felelnek meg: 0 (hamis) kb. 0V 1 (igaz) kb. 5V A logikai áramkörökben az állapotokat kétféleképpen jelölik, attól függően, hogy logikai értékről vagy egy bináris szám egy bitjéről van szó: 0 = hamis 1 = igaz. A két jelölés egyenértékű, és keverhető.
Informatika alapjai-5 Logikai áramkörök 2/6 Nézzünk egy kicsit bonyolultabb kapcsolást: Ha mindkét tranzisztor kikapcsol, a kimeneten 5V jelenik meg. Ha bármelyik tranzisztor bekapcsol, a kimeneten 0V jelenik meg. A működés Igazságtáblája : Be1 Be2 Ki Be1 vagy Be2 NEM(Be1 vagy Be2) 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 Látszik, hogy a Kapu NEM-VAGY funkciót valósít meg. Az ilyen kaput angolból jövő elnevezéssel NOR kapunak nevezik. A ma használatos áramkörökben a felhúzó ellenállást is tranzisztor helyettesíti: A kapcsolásban egy P csatornás és egy N csatornás tranzisztor van, ezért CMOS áramkörnek nevezik (Complementer MOS). A kapcsolás CMOS inverter. A CMOS NOR kapuban 4 tranzisztor van. Kérdés: ezek hogyan kapcsolódnak egymáshoz? A logikai integrált áramkörök ilyen kapuáramkörökből épülnek fel, tranzisztorok százait, ezreit, millióit vagy milliárdjait tartalmazzák. Például egy Pentium 4 processzor 42 millió tranzisztort, egy Dual-Core Itanium 2 1.7 milliárd, egy 4 gigabyte-os pen drive kb. 5 milliárd tranzisztort tartalmaz. A logikai áramkörök tárgyalásakor a kapuszintű működésből indulunk ki, nem foglalkozunk az áramköri felépítéssel, és az áramköri kapcsolást a logikai működést definiáló szimbólumokkal rajzoljuk meg.
Informatika alapjai-5 Logikai áramkörök 3/6 Például a következő ábrán látható ÉS kapu be- és kimenőjelei: A logikai áramkörök alapelemei, logikai egyenletek A NOT, AND, OR, NAND, NOR kapu kombinációs áramkör, a D flip-flop szekvenciális. Kombinációs áramkör: a kimenet(ek) állapot a bemenetek pillanatnyi értékétől függ. Szekvenciális áramkör: a kimenet(ek) állapota a bemenetek korábbi állapotkombinációitól is függ. A kombinációs áramkörök működését logikai értéktáblázattal, vagy egyenlettel lehet megadni. Az alapáramkörök működése: NOT B K K = NOT B (inverter) 0 1 K = /B 1 0 AND B1 B2 K K = B1 AND B2 NAND B1 B2 K K = NOT(B1 AND B2) (ÉS kapu) 0 0 0 K = B1. B2 (NAND 0 0 1 K = /(B1. B2) 0 1 0 kapu) 0 1 1 1 0 0 1 0 1 1 1 1 1 1 0 OR B1 B2 K K = B1 OR B2 NOR B1 B2 K K = NOT(B1 OR B2) (VAGY 0 0 0 K = B1 + B2 (NOR 0 0 1 K = /(B1 + B2) kapu) 0 1 1 kapu) 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 A logikai alapműveletek: NEM: / Gyakran jelölik felülhúzással, mi az egyszerűbb leírhatóság miatt /-rel jelöljük. VAGY: + Nem azonos az aritmetikai összeadással (1 + 1 = 1) ÉS:. Tulajdonképpen azonos az aritmetikai szorzással: az eredmény 0, ha bármelyik összetevő 0. Ezekből tetszőleges logikai függvény felépíthető. Pédául A és B ekvivalenciája: EQU = /A./B + A.B A és B egyenlő, ha A=0 és B=0 vagy A=1 és B=1. A műveletek között precedenciát tételezünk fel, a precedencia sorrend: NEM-ÉS-VAGY. Ha ettől el akarunk térni, akkor zárójelet kell alkalmazni.
Informatika alapjai-5 Logikai áramkörök 4/6 Könnyen beláthatók a következő azonosságok: Kommutativitás A+B = B+A A.B = B.A Asszociativitás (A+B)+C = A+(B+C) A.(B.C) = (A.B).C Disztributivitás (A+B).C = A.C+B.C (A.B)+C = (A+C).(B+C) Ez már nem olyan triviális, mert számoknál nem igaz! De-Morgan azonosságok /(A+B) = /A./B /(A.B)=/A+/B A bizonyítás legegyszerűbben értéktáblázattal történhet. Például /(A+B) = /A./B : A B A+B /(A+B) /A /B /A./B 0 0 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 Próbáljon meg más azonosságokat is bebizonyítani! Írjuk fel azt a függvényt, mely akkor igaz, ha 3 változó közül legalább 2 nem igaz (vagy: legfeljebb egy igaz): F = /A./B + /A./C + /B./C Az ezt megvalósító logikai áramkör: A jobb oldali áramkör úgy jött létre, hogy a VAGY kapcsolatra a De-Morgan azonosságot alkalmaztuk: É1+É2+É3 = / ( / ( É1+É2+É3 ) ) = / ( /É1. /É2. /É3 ) A jobb oldali megoldás azt szemlélteti, hogy egy függvény csak NAND kapuk alkalmazásával is megvalósítható (a NOT kapu egy bemenetű NAND kapu). Ez általánosan igaz. Próbálja meg a hálózatot csak NOR kapuk alkalmazásával megvalósítani! A D flip-flop tárolóelem, amely a D bemenetre adott jelből az órajel pozitív élénél mintát vesz, és azt a következő órajelig tárolja:
Informatika alapjai-5 Logikai áramkörök 5/6 Készítsünk két D flip-lopból 4-es osztót! 2 flip-flopra van szükség a 4 állapot tárolására. Az osztó állapotgráfja, és állapottáblája: Jelenlegi állapot Következő állapot Q1 Q2 D1 D2 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 A táblából látszik, hogy: D1 = Q2 D2 = /Q1 (A bemutatottak csak szemléltetik a szekvenciális áramkörök tervezésének lépéseit. A legfontosabb elrejtett lépés az, hogy az egymás utáni állapototok kódját miért pont így választottuk. A jó választás eredményezte a nagyon egyszerű D függvényeket.) Az áramkör: Az áramkör az órajel impulzusokat számolja, minden negyedik impulzus után kerül ugyanabba az állapotba. Oldja meg a feladatot úgy, hogy az állapotok sorrendje 00 01 10 11 legyen (bináris számláló). Kiindulás: Jelenlegi állapot Következő állapot Q1 Q2 D1 D2 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 D1 = D2 =
Informatika alapjai-5 Logikai áramkörök 6/6 A fenti osztó felhasználásával készítsünk közlekedési jelzőlámpa vezérlőt! A Magyarországon szokásos szekvencia: Egyik oldal: Piros Piros/sárga Zöld Sárga Másik oldal: Zöld Sárga Piros Piros/sárga A táblázatból a lámpa vezérlések: P1 = /Q1 S1 = S2 = /Q1.Q2 + Q1./Q2 Z1 = Q1.Q2 P2 = Q1 Z2 = /Q1./Q2 A jelzőlámpa vezérlő áramkör: Állapot Q1 Q2 P1 S1 Z1 P2 S2 Z2 P1/Z2 0 0 1 0 0 0 0 1 P1/S 0 1 1 1 0 0 1 0 P2/Z1 1 1 0 0 1 1 0 0 P2/S 1 0 0 1 0 1 1 0 Minden állapot ugyanannyi ideig, az órajel generátor egy üteméig tart. Természetesen egy valódi jelzőlámpa vezérlő működése sokkal bonyolultabb.