INF4 Kap 2 Boolsk Algebra og Logiske Porter
Hovedpunkter Toverdi Boolsk algebra Huntington s postulater Diverse teorem Boolske funksjoner med sannhetstabell Forenkling av uttrykk (port implementasjon) Komplement av uttrykk Maksterm / minterm Flerinputsporter Designprosedyre med eksempler
Algebra, definisjon Algebraisk system: Mengde av elementer Et sett av operasjoner på elementene (funksjoner) som tilfredsstiller en liste av aksiomer/postulater Aksiom/postulat Regler som ikke skal bevises (utgangspunkt for algebraisk system) Eksempler på algebraiske system: Vanlig algebra, Boolsk algebra, matrise algebra, osv... Algebra - Studiet av algebraiske system
Eksempler på postulater Det er mulig å trekke et rett linjestykke fra et punkt til et annet punkt Det er mulig å forlenge et linjestykke til en rett linje Det er mulig å slå en sirkel med et hvilket som helst punkt som senter med radius lik hvilket som helst linjestykke som starter i senteret Alle rette vinkler er like Hvis en rett linje skjærer to rette linjer slik at de indre vinklene på den ene siden tilsammen utgjør mindre enn to rette vinkler, da vil de to linjene møte hverandre. Det vil skje på den siden der de vinklene lå som tilsammen var mindre enn to rette vinkler Euklidsk geometri
Digitale system, anvendelser Vanlig regning med tall: Beskrives av vanlig algebra Eksempler: ALU-PC Signalprosessorer osv... NB: vanlig algebra inkluderer også binære tall, siden eneste forskjell er representasjonen Logiske operasjoner: Beskrives av Boolsk algebra Eksempler: Generering av binære utfall gitt ett sett med binære hendelser Oppbygging av aritmetiske funksjoner
Hvorfor trenger vi en Boolsk algebra? Muliggjør design av komplekse digitale system Muliggjør analyse av komplekse digitale system Forenkling av logiske uttrykk - Gir enklere fysisk implementasjon
Toverdi Boolsk algebra Definisjon: Mengde: {,} 2 operasjoner på mengden over: OR + AND Husk: +/ har ingenting med addisjon og multiplikasjon å gjøre AND x y x y OR x y x+y
Huntington postulater / toverdi Boolsk algebra P: Mengden {,} er lukket under + og lukket P2: x + = x x = x ident. el. P5: x + x = x x = komplem. P6: minst 2 el. P3: x + y = y + x x y = y x kommutativ P4: x (y+z) = x y + x z x+(y z) = (x+y) (x+z) distributiv Dualitet for postulatene: kan bytte med + hvis man bytter med Presedens: først utføres (), så, så og til slutt +
Teorem P2: x + = x x = x P5: x + x = x x = P4: x + (y z) = (x + y) (x + z) Teorem a: x + x = x Bevis: x + x = (x + x) P2 x + x = (x + x) (x + x ) x + x = x + (x x ) x + x = x + x + x = x P5 P4 P5 P2
Teorem P2: x + = x x = x P5: x + x = x x = P4: x (y + z) = x y + x z Teorem b: x x = x Bevis: x x = x x + P2 x x = x x + x x x x = x (x + x ) x x = x x x = x P5 P4 P5 P2
Teorem P2: x = x P3: x y = y x P5: x + x = P4: x+(y z) = (x+y) (x+z) Teorem 2a: x + = Bevis: x + = (x + ) P2 / P3 x + = (x + x ) (x + ) x + = x + x x + = x + x x + = P5 P4 P2 P5
Flere teorem Dualitet for ligninger utledet fra postulat: kan bytte med + hvis man bytter med Teorem 2b: x = Bevis: x + = (teorem 2a), samt dualitet
Flere teorem Teorem 3 (x ) = x Teorem 4 Assosiativt x + (y + z) = (x + y) + z x(yz) = (xy)z Teorem 6 Absorpsjon x + xy = x x(x + y) = x
Et siste, men sentralt teorem DeMorgans teorem (mye brukt): (x y) = x + y (x + y) = x y På invertert form: x y = (x + y ) x + y = (x y )
Teorem/postulatliste x + = x x = x x + x = xx = x + y = y+x xy = yx x + (y+z) = (x+y) + z x (yz) = (xy)z x(y+z) = xy + xz x + (yz) = (x+y)(x+z) x + x = x x x = x x + = x = x + xy = x x(x+y) = x (x+y) = x y (xy) = x + y (x ) = x
Boolske funksjoner Tilordner en binær variabel en verdi bestemt av verdien på en eller flere andre binære variabler Eksempel: F = x + y z Direkte port-implementasjon: y y z
Sannhetstabell En boolsk funksjon kan visualiseres i en sannhetstabell Eksempel: F = x + y z En gitt funksjon har kun en sannhetstabell Men, en gitt sannhetstabell har uendelig mange funksjonsuttrykk Stikkord: forenkling av funksjonsuttrykk x y z F
Forenkling av uttrykk Eksempel: F 2 = x y z + x yz + xy Forenkling F 2 = x z + xy Prosedyre: F 2 = x z(y + y) + xy F 2 = x z + xy F 2 = x z + xy
Port-implementasjon av F 2 x y z x yz xy xy x z
Forenklingseksempler Eksempel: F = x(x +y) F = xx +xy F = +xy F = xy Eksempel: F = x+x y F = (x+x )(x+y) F = (x+y) F = x+y Eksempel: F = (x+y)(x+y ) F = x + (yy ) F = x + F = x
Forenklingseksempler Eksempel: F = xy+x z+yz F = xy+x z+yz(x+x ) F = xy+x z+xyz+x yz F = xy(+z)+x z(+y) F = xy+x z Eksempel: F = (x+y)(x +z)(y+z) F = (x+y)(x +z) Dualitet
Komplement av funksjon Inverterer begge sider, og bruker DeMorgan Eksempel: F = x yz +x y z F = (x yz +x y z) F = (x yz ) (x y z) F = (x+y +z)(x+y+z ) Eksempel: F = x(y z +yz) F = (x(y z +yz)) F = x +(y z +yz) F = x +(y z ) (yz) F = x +(y+z)(y +z )
Minterm I en funksjon kan en binær variabel x opptre som x eller x En funksjon kan være gitt på sum av produkt form Eksempel: F = xy + xy + x Hvert produktledd som inneholder alle variablene kalles en minterm For to variable fins det 4 forskjellige mintermer: xy + xy + x y + x y For 3 variable fins det 2 3 forskjellige mintermer: xyz + xyz + xy z + xy z +x yz + x yz + x y z + x y z
Maksterm En funksjon kan være gitt på produkt av sum form Eksempel: F = (x+y)(x+y )y Hvert summeledd som inneholder alle variablene kalles en maksterm For to variable fins det 4 forskjellige makstermer: (x+y)(x+y )(x +y)(x +y ) For n variable fins det 2 n forskjellige makstermer:
Sannhetstabell Hvis man genererer en funksjon ut i fra sannhetstabellen får man en sum av mintermer Eksempel minterm: x y z F = x y z + xy z + xyz Eksempel maksterm: F = (x + y + z)(x + y + z)(x + y + z )(x + y + z)(x + y + z ) En sannhetstabell kan sees på som en liste av mintermer/makstermer F
Notasjon Mintermer / maxtermer har notasjon m x / M x Funksjoner som bare består av sum/produkt av min/maxtermer (kanonisk form) har følgende notasjon Eksempel: F(x,y,z) = S(m 3, m 6 ) = S(3, 6) = x yz+xyz F(x,y,z) = Π(M 3, M 6 ) = Π(3, 6) = (x+y +z )(x +y +z)
Sammenheng min/maksterm Komplementet til en funksjon uttrykt som en sum av mintermer er summen av mintermene som mangler i originalfunksjonen F(A,B,C) = S(,4,5,6,7) F (A,B,C) = S(,2,3) For å konvertere en funksjon fra sum av mintermer til produkt av makstermer bruker man summene som mangler i originalfunksjonen som makstermer F(A,B,C) = S(,4,5,6,7) F(A,B,C) = Π(,2,3)
Flerinputs-porter Flerinputsimplementasjon av AND / OR kan lages direkte AND A B C F OR x y z F
Flerinputs-porter Flerinputsimplementasjon av NAND / NOR kan ikke lages direkte Mulig løsning Mulig løsning F = (ABC) F = (x+y+z) NAND A B C F NOR x y z F
Flerinputs-porter Flerinputsimplementasjon av XOR (oddefunksjon) kan lages direkte ( XOR ) XOR = XOR = F = x y z XOR A B C F
Designeksempel Styring av heis Inngangssignaler fra sensorer: K - Knapp trykket inn: / V - Overvekt: / D - Dør lukket: / Utgangssignal til aktuator: M - Motor på: / K V D Kontroll logikk M K V D M M = KV D
Designeksempel Implementasjon av kontroll logikken M = KV D V
Designeksempel Hva om man bare har 2-inputs NAND porter? M = KV D M = K (VV) D M = (VV) (DK) M = ((VV) (DK) )
Designeksempel Hva om man bare har 2-inputs NAND/NOR porter? M = ((VV) (DK) ) DeMorgan: M = ( (VV) (DK) ) M = ( (VV) + (DK) ) M = (V+(DK) )
Forenkling på portnivå Det er ikke alltid at det enkleste funksjonsuttrykket resulterer i den enkleste port-implementasjonen Ved forenkling på portnivå må man vite hvilke porter man har til rådighet, og så justere funksjonsuttrykket mot dette. (håndverk)
Generell design prosedyre. Bestem hvilke signal som er innganger og utganger 2. Sett opp sannhetstabell for alle inngangskombinasjoner 3. Generer funksjonsuttrykket som sum av mintermer 4. Tilpass /forenkle funksjonsuttrykket mot aktuelle porter
Oppsummering Boolsk algebra - Huntington postulat - Diverse teoremer Boolske funksjoner Minterm / maksterm / sannhetstabell Komplementer / DeMorgan Forenkling av uttrykk Port-implementasjoner Flerinputsporter Designprosedyre