INF 1400 Kap 02 Boolsk Algebra og Logiske
INF 1400 – Kap 02 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: Logiske operasjoner: Beskrives av ”vanlig algebra” Beskrives av Boolsk algebra Eksempler: • ALU-PC • Signalprosessorer osv. . . Eksempler: NB: ”vanlig algebra” inkluderer også binære tall, siden eneste forskjell er representasjonen • 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: – {0, 1} • 2 operasjoner på mengden over: – OR ”+” – AND ” • ” AND Husk: +/ • har ingenting med addisjon og multiplikasjon å gjøre x 0 0 1 1 y 0 1 x • y 0 0 0 1 OR x 0 0 1 1 y 0 1 x+y 0 1 1 1
Huntington postulater / toverdi Boolsk algebra P 1: Mengden {0, 1} er lukket under ”+” og ” • ” lukket P 2: x+0=x x • 1=x ident. el. P 5: x + x´ = 1 x • x´ = 0 P 6: 0 1 P 3: x+y=y+x x • y=y • x P 4: x • (y+z) = x • y + x • z x+(y • z) = (x+y) • (x+z) distributiv ’ komplem. minst 2 el. Dualitet for postulatene: kan bytte ” • ” med ”+” hvis man bytter ” 0” med ” 1” Presedens: først utføres ”()”, så ” ’ ”, så ” • ” og til slutt ”+” kommutativ
Teorem P 2: x+0=x x • 1=x P 5: P 4: x + x´ = 1 x • x´ = 0 x + (y • z) = (x + y) • (x + z) Teorem 1 a: Bevis: x+x=x x + x = (x + x) • 1 P 2 x + x = (x + x) • (x + x´) P 5 x + x = x + (x • x´) P 4 x+x=x+0 P 5 x+x=x P 2
Teorem P 2: x+0=x x • 1=x P 5: P 4: x + x´ = 1 x • (y + z) = x • y + x • z x • x´ = 0 Teorem 1 b: Bevis: x • x = x • x + 0 P 2 x • x = x • x + x • x´ P 5 x • x = x • (x + x´) P 4 x • x = x • 1 P 5 x • x = x P 2
Teorem P 2: x • 1=x P 3: x • y=y • x P 5: x + x´ = 1 P 4: x+(y • z) = (x+y) • (x+z) Teorem 2 a: Bevis: x+1=1 x + 1 = 1 • (x + 1) P 2 / P 3 x + 1 = (x + x´) • (x + 1) P 5 x + 1 = x + x´ • 1 P 4 x + 1 = x + x´ P 2 x+1=1 P 5
Flere teorem Dualitet for ligninger utledet fra postulat: kan bytte ” • ” med ”+” hvis man bytter ” 0” med ” 1” Teorem 2 b: Bevis: x • 0 = 0 x + 1 = 1 (teorem 2 a), 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 De. Morgans 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+0=x x • 1 = x x + x´ = 1 x + y = y+x x + (y+z) = (x+y) + z xx´ = 0 xy = yx x (yz) = (xy)z x(y+z) = xy + xz x + (yz) = (x+y)(x+z) x+x=x x • x = x x+1=1 x • 0 = 0 x + xy = x x(x+y) = x (x+y)´ = x´y´ (x’)’ = x (xy)´ = x´ + y´
Boolske funksjoner Tilordner en binær variabel en verdi bestemt av verdien på en eller flere andre binære variabler Eksempel: F 1 = 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 0 0 1 1 y 0 0 1 1 z 0 1 0 1 F 0 1 0 0 1 1
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 • 1 + xy’ F 2 = x’z + xy’
Port-implementasjon av F 2 x´y´z x´yz xy´ x´z
Forenklingseksempler Eksempel: F = x(x’+y) F = xx’+xy F = 0+xy F = xy Eksempel: F = x+x’y F = (x+x’)(x+y) F = 1(x+y) F = x+y Eksempel: F = (x+y)(x+y’) F = x + (yy’) F=x+0 F=x
Forenklingseksempler Eksempel: F = xy+x’z+yz(x+x’) F = xy+x’z+xyz+x’yz F = xy(1+z)+x’z(1+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 De. Morgan Eksempel: F = x’yz’+x’y’z F = x(y’z’+yz) F’ = (x’yz’+x’y’z)’ F’ = (x(y’z’+yz))’ F’ = (x’yz’)’(x’y’z)’ F’ = x’+(y’z’+yz)’ F’ = (x+y’+z)(x+y+z’) 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’ For 3 variable fins det 23 forskjellige mintermer: xyz + xyz’ + xy’z’+x’yz + x’yz’ + 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’) 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: F = x’y’z + xy’z’ + xyz’ Eksempel maksterm: F = (x + y + z)(x + y’ + z’)(x’ + y + z)(x’ + y’ + z’) En sannhetstabell kan sees på som en liste av mintermer/makstermer x 0 0 1 1 y 0 0 1 1 z 0 1 0 1 F 0 1 0 1 0
Notasjon Mintermer / maxtermer har notasjon mx / Mx 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(1, 4, 5, 6, 7) F’(A, B, C) = S(0, 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(1, 4, 5, 6, 7) F(A, B, C) = (0, 2, 3)
Flerinputs-porter Flerinputsimplementasjon av AND / OR kan lages direkte AND ABC 000 001 010 011 100 101 110 111 F 0 0 0 0 1 x 0 0 1 1 OR y z 00 01 10 11 F 0 1 1 1 1
Flerinputs-porter Flerinputsimplementasjon av NAND / NOR kan ikke lages direkte F = (x+y+z) ´ Mulig løsning F = (ABC)´ Mulig løsning NAND ABC F 000 1 001 1 010 1 011 1 100 1 101 1 110 1 111 0 x 0 0 1 1 NOR y z 00 01 10 11 F 1 0 0 0 0
Flerinputs-porter Flerinputsimplementasjon av XOR (oddefunksjon) kan lages direkte F = x y z (1 XOR 1) XOR 1 = 0 XOR 1 = 1 XOR ABC 000 001 010 011 100 101 110 111 F 0 1 1 0 0 1
Designeksempel 1 Styring av heis Inngangssignaler fra sensorer: K - Knapp trykket inn: 0/1 V - Overvekt: 0/1 D - Dør lukket: 0/1 Utgangssignal til aktuator: M - Motor på: 0/1 K V D M = KV’D Kontroll logikk M KVD M 0 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1
Designeksempel 1 Implementasjon av kontroll logikken M = KV´D V´
Designeksempel 1 Hva om man bare har 2 -inputs NAND porter? M = KV’D M = K (VV)’ D M = (VV)’ (DK) M = ((VV)’ (DK)’’)’’
Designeksempel 1 Hva om man bare har 2 -inputs NAND/NOR porter? M = ((VV)’ (DK)’’)’’ De. Morgan: 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 1. 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 / De. Morgan Forenkling av uttrykk • Port-implementasjoner • Flerinputsporter • Designprosedyre
- Slides: 37