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: K = NOT B NOT B K (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 (NAND 0 0 0 K = B1 . B2 0 1 K = /(B1 . B2) kapu) 0 1 1 0 1 0 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 (NOR 0 0 0 0 1 K = B1 + B2 K = /(B1 + B2) kapu) kapu) 0 0 1 1 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 Asszociativitás (A+B)+C = A+(B+C) Disztributivitás (A+B).C = A.C+B.C
A.B = B.A A.(B.C) = (A.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 1 0 0 0 1 0 1 0 1 0 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 – Állapot P1/Z2 P1/S P2/Z1 P2/S
Q1 0 0 1 1
Q2 0 1 1 0
P1 1 1 0 0
S1 0 1 0 1
Z1 0 0 1 0
P2 0 0 1 1
S2 0 1 0 1
Z2 1 0 0 0
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:
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.