Boole algebra, logikai függvények Benesóczky Zoltán 2004 jegyzetet a szerzői jog védi. zt a BME hallgatói használhatják, nyomtathatják tanulás céljából. Minden egyéb felhasználáshoz a szerző belegyezése szükséges. 1
Digitális analóg z átvitel során az analóg jelhez zaj adódik, amelyet szintén felerősít az erősítő. Mennél több analóg jelfeldolgozó áramkörön halad át az analóg jel, annál jobban romlik a jelnek a zajhoz képesti értéke (jel/zaj viszony.) z analóg jelfeldolgozók méretét ez jelentősen korlátozza. analóg jel 1 + 2 + 3 zajjal terhelt jel zaj forrás zaj forrás 2
Információ feldolgozó digitális gép jel átalakító információ feldolozó digitális automata jel átalakító N analóg jel t t digitalizált jel (mintavételezés, kvantálás) 3
z információ feldolgozó gép kódokkal dolgozik analóg kód: amplitúdóban és időben folytonos digitális kód: amplitúdóban és időben diszkréten értelmezett (véges idő alatt véges információt hordoz) nalóg jelből digitális jel: - mintavételezéssel (adott időpontban mekkora a jel analóg értéke) majd - kvantálással (a mintavett analóg érték n bites digitális számmá alakításával) nyerhető. digitalizált információ az analógnál sok nagyságrenddel pontosabban vihető át, ill. dolgozható fel. digitális információ helyes átvitelét egyrészt áramkörileg az analóghoz képest sokkal nagyobb biztonsággal meg lehet oldani, mert 1 bitnyi információ 4
továbbításakor csak 2 érték fordulhat elő. Pl. a 0-át és az 1-et reprezentáló feszültség vagy áram érték viszonylag nagy zaj mellet is jól megkülönböztethető megfelelő áramköri megoldásokkal. logikai értéket feszültség tartományok reprezentálják. tartományok átfedik egymást: Uki Ube UkiH UkiL zajtartalék zajtartalék UbeH UbeL zaj 5
bemeneti jelre szuperponálódó kismértékű zaj még nem okoz hibás logikai szint érzékelést! Megfelelő kódolásal az előforduló hibákat jelezni, sőt javítani is lehet. 6
Boole algebra Boole, George (1815. - 1864.) ngol matematikus. logikai algebra), amelyet Boole algebrának nevezünk, megteremtésével a számítástechnika fejlődéséhez jelentősen hozzájárult. 7
Boole algebra ( Β ) _ Β = < B, +, *, > (Boole halmaz, logikai VGY, logikai ÉS, invertálás műveletek) B={0, 1, α, β, γ,..)} logikai konstansok és változók. Csak két érték létezik: 0: hamis 1: igaz (Létezik 2-nél több értékű logika is.) Boole algebra a Boole halmazon végezhető műveleteket adja meg axiómákkal (műveleti szabályok) és definíciókkal. 8
xiómák: Kommutativitás (felcserélhetőség): 1. (α+β)= (β + α) 2. α.β = β.α Disztributivitás: 3. α.(β+γ) = (α.β) + (α.γ) 4. α + (β.γ) = (α + β)( α + γ) Műveletek a konstansokkal: 5. α + 0 = α 6. α.1 = α _ D: Inverz elem (α ) definíciója: (Ezt a szövegszerkesztő miatt a továbbiakban /α-al jelöljük.) Létezik minden α-hoz egyérteműen /α, melyre: D1: α./α = 0, D2: α + /α = 1 9
fentiekből minden Boole algebrai azonosság ellentmondás mentesen levezethető. Dualitás elve: + *, és 0 1 felcserélésével is igazak maradnak a Boole algebrai azonosságok. Pl: 3->4 (disztributivitás) 5->6 műveletek konstansokkal 10
Boole algebra fontos tulajdonságai (nem bizonyítjuk): T1. α + α = α T2. α.α = α T3. α + 1 = 1 T4. α.0 = 0 elnyelés: T5. α + α.β = α T6. α.(α +β) = α T7. /1 = 0 T8. /0 = 1 T9. // α = α sszociativitás (csoportosíthatóság): T10. α+(β + γ) = (α + β)+γ T11. α.(β.γ) = (α.β).γ De Morgan azonosságok: T13. /(α + β) = /α./β /Σ α i = Π /α i T14. /(α.β) = /α + /β /Π α i = Σ /α i 11
Példa: Hozzuk egyszerűbb alakra! 1. Y1 = / +.B Megoldás: 4 és D2 alalpján / +.B = (/ +)(/ + B) = = 1. (/ + B) = / + B 2. Y2 = / +.B./C + + (/ +.B./C)(/ + /./B.C) Megoldás: / +.B./C = X helyettesítéssel, az elnyelés miatt, majd 1. alapján: Y2 = X + X. ( / + /./B.C) = X = = / +.(B./C) = / + B./C 12
Szöveges logikai feladat: Tengerparton pihen pa, Mama,Fiuk, L1 lányuk, L2 lányuk. 1. Ha az pa úszik, akkor a Mama és Fiúk is megy. 2. Ha a Fiú úszik, akkor L1 nővére is. 3. L2 lány pontosan akkor úszik, ha a Mama is. 4. Minden reggel úszik valamelyik szülő. 5. Vasárnap reggel csak az egyik lány úszott. Kik úsztak vasárnap reggel? 13
Logikai egyenletek a szöveg alapján: 1. Ha az pa úszik, akkor a Mama és Fiúk is megy..m.f + / = 1 (igaz állítás) 2. Ha a Fiú úszik, akkor L1 nővére is. F.L1 + /F = 1 3. L2 lány pontosan akkor úszik, ha a Mama is L2.M + /L2./M = 1 4. Minden reggel úszik valamelyik szülő. + M = 1 5. Vasárnap reggel csak az egyik lány úszott. L1./L2 + /L1.L2 = 1 14
Igaz állítások logikai szorzata is igaz. Szorozzuk össze az azonosságokat, olyan sorrendben, hogy közben mennél több tag kiessen! 1, 4: (MF + /)( + M) = MF + MF +/. + /.M = MF + /M 3: (MF + /M)(ML2 + /M/L2) = = MFL2 +/ML2 5:(MFL2+/ML2)(L1/L2 +/L1L2)= = MFL2/L1 + /ML2/L1 2:(MFL2/L1+/ML2/L1)(FL1+/F)= =/ML2/L1/F Tehát a Mama és L2 lánya úszott. 15
digitális automata X Y X: (x 1,x 2.. x n ) bemeneti logikai változók Y: (y 1, y 2 y m ) kimeneti logikai változók X*, Y*: bemeneti (kimeneti) sorozat, a bemenet (kimeneti) változók időben egymást követő értékei. digitális automata az X* Y* leképzést állítja elő. 16
Sorrendi automata: Y t = g(x t,q t ) Q t : állapot, az emlékező logikai elemek (flip-flopok) kimeneteinek t időpontbeli értéke. z aktuális kimenet az aktuális bemenet és aktuális állapot függvénye. Q t+1 =f(x t, Q t ) következő állapot az aktuális bemenet és az aktuális állapot függvénye (rekurzív, önhivatkozó megadás). kimenet a bemenetet ért változások sorrendjétől is függ. 17
Kombinációs automata Y t = g(x t ) z aktuális kimenet csak az aktuális bemenettől függ. Logikai függvények n bementű m kimenetű log. fgv.: x1 x2.. xn f y1 y2.. ym y 1 =f 1 (x 1..x n ) y 2 = f 2 (x 1..x n )... y m = f m (x 1..x n ) 18
z előbbi tulajdonképpen m db. n bemenetű logikai függvény. x1 x2. xn f y Logikai függvények megadása: - táblázatos formában, igazságtáblával - általános Boole alg. alak (tetszőleges Boole kifejezés) pl. f= + B(C+/D) - normál (kanonikus) alakok (diszjunktív normál alak, konjunktív normál alak) lsd. később - kapcsolási rajzzal (lsd. később) 19
Igazságtábla (a bementekhez megadjuk a kimeneteket) z összes 2 változós (, B) függvény igazságtáblája: B f 0 2 2 2 2 2 2 2 2 2 2 f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 f 10 2 f 11 2 f 12 2 f 13 2 f 14 2 f 15 2 00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 01 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 z n változós logikai függvények száma: Sorok száma: s=2 n Oszlop kitöltéseinek száma: N=2 s Tehát N = 2 (2^n) 20
z összes n változós m kimenetű logikai függvények száma: N = (2 (2^n) ) m = 2 m(2^n) kétváltozós függvények, nevezetes kapuk. B f 0 2 2 2 2 2 2 2 2 2 2 f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 f 10 2 f 11 2 f 12 2 f 13 2 f 14 2 f 15 2 00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 01 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 f 0 2 = 0 f 15 2 = 1 logikai konstansok f 1 2 = B ND, (ÉS) kapu rajzjele: & 21
B f 0 2 2 2 2 2 2 2 2 2 2 f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 f 10 2 f 11 2 f 12 2 f 13 2 f 14 2 f 15 2 00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 01 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 f 14 2 = /(B) = / + /B NND, (NEM ÉS) f 2 2 =./B f 3 2 = f 4 2 = /.B f 13 2 = /(./B) = / + B f 12 2 = / INVERTER f 11 2 =/(/B)=+/B) & 22
B f 0 2 2 2 2 2 2 2 2 2 2 f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 f 10 2 f 11 2 f 12 2 f 13 2 f 14 2 f 15 2 00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 01 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 f 2 5 = B f 2 10 = /B (INVERTER) f 2 6 =./B + /.B = (+) B EXOR, (KIZÁRÓ VGY, MODULO2 összeadás) =1 23
2 B f 0 0 2 2 2 2 2 2 2 2 2 2 f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 f 10 ND EXOR OR NOR EKV INV. INV. NND f 2 9 =.B + /./B = ( ) B = = (+/B)(/+B) f 2 2 11 f 12 f 2 2 13 f 14 00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 01 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 =1 f 15 2 EKVIVLENCI 1 24
2 B f 0 0 2 2 2 2 2 2 2 2 2 2 f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 f 10 ND EXOR OR NOR EKV INV. INV. NND f 2 7 = + B OR, (VGY) f 2 2 11 f 12 f 2 2 13 f 14 00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 01 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 f 15 2 1 f 8 2 = /( + B) = /./B NOR 1 25
Elterjedt jelöléstechnika a CD rendszereknél: karika invertálást jelent, egy kapu tetszőleges bemenetén is használható. Pl../B./C B B C C De Morgan azonosságok alapján az egyes kapukat másként is rajzolhatjuk: /(.B) = / + /B = = /(+ B) = /./B = = 26
Normál (kanonikus) alakok Diszjunktív normál alak Szorzatok összege (sum of product), a szorzat tagokban minden változó szerepel (nem egyszerűsített alak). z egyes tagok az igazságtábla 1-eseti valósítják meg, ezek a mintermek: Pl. f 7 2 = /.B +./B +.B B f 7 2 OR 00 0 01 1 10 1 Általánosan: f = Σ α i.m i α i : {0, 1} f = 0.m 2 0+1.m 2 1+1.m 2 2+1.m 2 3 = = m 2 1 + m 2 2 + m 2 3 = Σ 2 1, 2, 3 11 1 term index meghatározása: termek változói BC sorrenben írjuk fel, a ponált változóhoz 1-et, a negálthoz 0-át 27
rendelünk, majd az így kapott bináris számot decimálisan kilvassuk: pl. /B 10 B 2 D Konjunktív normál alak Összegek szorzata (product of sum), az összeg tagokban minden változó szerepel (nem egyszerűsített alak). z egyes tagok az igazságtábla 0-áit valósítják meg, ezek a maxtermek: Pl. f 2 2 = (/+/B) (+/B) (+B) B f 2 2 OR 00 0 01 0 10 1 11 0 Általánosan: f = Π (β i + M i ) β i : {0, 1} f = (0 +M 2 0)(1+M 2 1)(0+ M 2 2)(0+M 2 3) = M 2 0 M 2 2 M 2 3 = Π 2 0, 2, 3 z index mint a diszj. alaknál: pl. ( + /B) 10 B 2 D 28
Átalakítás a két normál alak között: Legyen f a következő 3 változós függvény: f = Σ 3 0, 2, 3, 4, 6, 7 Ennek a negáltjában azok mintermek szerepelnek, melyek f-ből hiányoznak. /f = Σ 1, 5 f = //f =/( Σ 1, 5) = /(m1 + m5) = = /(/./B.C +./B.C) = = /(/./B.C)./(./B.C)= = (+B+/C)(/+B+/C) = M 2 6M 2 2 Minden logikai függvénynek pontosan 1 diszjunktív és egy konjunktív normál alakja van. (z igazságtáblából történő felírásból triviális.) 29
Logikai függvény megadása kapcsolási rajzzal z általános algebrai alakból a felírás struktúráját megőrző közvetlen felrajzolás: Legyen f = (+) (BC +D/(EF)) Először a legbelső zárójelet valósítjuk meg, majd fokozatosan az egyre kijjebb levőket. sorrendet a kapuk felé írtuk. E F 1. /EF D 2. D/(EF) 4. BC+D/(EF) 5. 3. B f=(+)(bc+d/(ef)) C BC 30
Kapcsolási rajzot sokszor az egyszerűsített (nem normál) diszjunktív ill, konjunktív alak alapján rajzolunk. Itt, mivel már nem biztos, hogy az egyes tagokban minden változó szerepel, már nem min vagy maxtermekről, hanem csak termekről beszélünk. Pl. z f = B + /C + D egy diszjunktív (mivel szozatok összege), de nem normál megadás. z ehhez tartozó közvetlen megvalósítás: B / C f D 31
diszjunktív megadású függvényt csak NND kapukkal is megvalósíthatjuk. Ezt nevezzük homogén NND kapus megvalósításnak. z összes ÉS kapu kimenetére és a VGY minden bemenetére invertert téve, a 2 sorbakötött inverter a logikán nem változtat, ugyanakkor minden kapu NND-dá válik. (Figyeljük meg, hogy a D-t is meg kell invertálni!) B / C f /D B / C f /D 32
z előzőkhöz hasonlóan a konjunktív megadású logikai függvények csak NOR kapukkal is megvalósíthatók. (Homogén NOR realizálás.) Legyen f = (/+B)(+C)D / B C f D / B C f /D / B C f /D 33
Tervezzünk 1 bites bővíthető összeadót: S2 S1 B1 S0 B0 S Co B Ci S Co B Ci 0 1 B Ci So Co 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 So = //BCi + +/B/Ci + +/B/Ci +BCi Co = /BCi+ + /BCi+ + B/Ci + + BCi 34
z összeadó kapcsolási rajza: / / /B B Ci Ci / B So /B Co /Ci Ci /B B /Ci /Ci B B Ci Ci z S olyan speciális függvény, mely a bemenetein levő 1db és 3 db 1-es esetén ad 1-et. z olyan fgv.-eket, melyek kimenete csak a bementükön levő 1-esek számától függ, szimmetrikus fgv.-nek nevezik. So = S 3 1,3 lsó index az 1-esek száma, amire a kimenet is 1-et ad, a felső index a változók száma. 35
z EXOR kapu:./b +/.B = S 2 1 z EXOR kapu So-hoz hasonlóan páratlan számú 1-es esetén ad 1-et. Ezért So csak EXOR kapukkal megvalósítható: B Ci So z EXOR kapu vezérelhető inverterként is használható: X X X /X V=0 V=1 36