INF227 Boolsk Algebra og kombinatorisk logikk
Hovedpunkter Boolsk Algebra og DeMorgans Teorem Forkortning av uttrykk ved regneregler Utlesing av sannhetsverdi-tabell; Max og Min-termer Forkortning av uttrykk med Karnaugh diagram Portimplementasjon Kretsanalyse Adder og subtraktor design Generell Black-box design/tankesett Enkoder og Dekoder Multiplexer og DeMultiplexer
Boolsk Algebra Variable kan ha to verdier: og Tre basis regneoperasjoner: AND, OR, NOT Omid Mirmotahari 4
Boolsk Algebra Boolske funksjoner kan spesifiseres enten:. Funksjonsuttrykk 2. Sannhetsverdi-tabell Omid Mirmotahari 5
Sannhetstabell En boolsk funksjon kan visualiseres i en sannhetstabell Eksempel: F = x + y z En gitt funksjon har kun en sannhetstabell x y z F Men, en gitt sannhetstabell har uendelig mange funksjonsuttrykk Omid Mirmotahari 6
Sannhetsverdi-tabell 3 variable X Y Z F Omid Mirmotahari 7
DeMorgans teorem (x y) = x + y (x + y) = x y På invertert form: x y = (x + y ) x + y = (x y ) Omid Mirmotahari 8
Huntington postulater (P) Mengden {,} er lukket under + og lukket (P) x + x = x x x = x (P2) x + = x x = x ident.el. (P2b) x + = x = (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 (P5) (x ) = x Dualitet for postulatene: Kan bytte med + hvis man bytter med Presedens: Først utføres, så, så og til slutt + Omid Mirmotahari 9
Regneregler - oversikt 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 + xy = x x(x+y) = x (x+y) = x y (xy) = x + y Omid Mirmotahari
Forenkling av uttrykk F = x y z + x yz + xy Prosedyre: Omid Mirmotahari
Forenklingseksempler Eksempel: F = x(x +y) Eksempel: F = x+x y Eksempel: F = (x+y)(x+y ) Omid Mirmotahari 2
Forenklingseksempler II Eksempel: F = xy+x z+yz Eksempel: F = (x+y)(x +z)(y+z) Omid Mirmotahari 3
Komplement av funksjon Inverterer begge sider og bruker DeMorgan Eksempel: F = x yz +x y z Eksempel: F = x(y z +yz) Omid Mirmotahari 4
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 finnes det 4 forskjellige mintermer: For 3 variable finnes det 2 3 forskjellige mintermer Omid Mirmotahari 5
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 finnes det 4 forskjellige makstermer: For n variable finnes det 2 n forskjellige makstermer Omid Mirmotahari 6
Sannhetstabell / mintermer Hvis man genererer en funksjon ut i fra sannhetstabellen får man en sum av mintermer Eksempel: F = x y z + xy z + xyz En sannhetstabell kan sees på som en liste av mintermer x y z F Omid Mirmotahari 7
Notasjon Mintermer har notasjon m x Maxtermer har notasjon M x Funksjoner som bare består av sum/produkt av min/maxtermer (kanonisk form) har følengde notasjon: F(x,y,z) = S(m 3, m 6 ) = F(x,y,z) = Π(M 3, M 6 ) = Omid Mirmotahari 8
Karnaughdiagram Grafisk metode for forenkling av Boolske uttrykk Uttrykket må være representert ved sum av mintermer (m x ). Disse leser vi direkte ut av sannhetstabellen Metoden egner seg for funksjoner med 2-4(5) variable Eksempel, 2 variable: F = m + m 3 = Eksempel, 4 variable: F = m + m + m 5 = Omid Mirmotahari 9
Prosedyre, 2 variable Setter inn mintermene i diagram Eksempel: generell funksjon - 2 variable F = m + m + m 2 + m 3 Omid Mirmotahari 2
Prosedyre, 2 variable F = xy F 2 = x y + xy + xy Omid Mirmotahari 2
Prosedyre, utlesning Grupperer naboruter som inneholder slik at vi får sammenhengende rektangler, Velg så store grupper som mulig. Antall element må være en potens av 2 Representerer gruppene ved de variablene i gruppen som ikke varierer Omid Mirmotahari 22
Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen av uttrykkene som representerer hver gruppe F = xy F 2 = x + y y xy x Omid Mirmotahari 23
Karnaugh - 3 variable Plassering av mintermer for 3-variable funksjoner: Mintermene plasseres slik at kun variabel varierer i mellom hver vannrette/loddrette naborute yz Omid Mirmotahari 24
Karnaugh - 4 variable Plassering av mintermer for 4-variable funksjoner Mintermene plasseres slik at kun variabel varierer i mellom hver vannrette/loddrette naborute Omid Mirmotahari 25
Grupperingsregler for diagram med 2-4 variable Grupperer naboruter som inneholder slik at vi får sammenhengende rektangler Ytterkantene av diagrammet kan også være naboruter Eksempel Omid Mirmotahari 26
Grupperingsregler for diagram med 2-4 variable Omid Mirmotahari 27
Grupperingsregler for diagram med 2-4 variable Omid Mirmotahari 28
Utlesningssregler for diagram med 2-4 variable Representerer hver gruppe ved de variablene i gruppen som ikke varierer. Diagrammets funksjon blir summen av hvert gruppeledd: Eksempel F = AD + CD + B C + AB Omid Mirmotahari 29
Utlesningsregler for diagram med 2-4 variable Eksempel: F = Merker oss at jo større ruter desto enklere uttrykk Omid Mirmotahari 3
Utlesningssregler for diagram med 2-4 variable F = Omid Mirmotahari 3
Utlesning av ere Ved å lese ut de tomme rutene ( erne) fra diagrammet får man F Dette kan noen ganger gi en enklere funksjon, eksempel: Hadde vi lest ut ere ville vi fått Omid Mirmotahari 32
Spesialteknikker Omid Mirmotahari 33
XOR XOR funksjonen dekker maksimalt uheldige er plasseringer i diagrammet Har man XOR porter til rådighet bruker man disse I dette eksemplet kan stk. 3-inputs XOR realisere F Omid Mirmotahari 34
XOR XNOR XOR XOR representerer den odde funksjonen, dvs de kombinasjoner av inngangen hvor det er odde antall ere ab cd ab cd Man kan også bruke Karnaugh diagram til å forenkle enkelte XOR funksjoner. XNOR er den inverterte funksjonen av XOR ab cd ab cd ab cd ab cd Omid Mirmotahari 35
XOR XOR funksjonen kan kombineres med andre ledd Eksempel: F = A B C D + A C D Omid Mirmotahari 36
Designeksempel Vi ønsker å designe en krets som kan sammenligne to tall A og B. Hvert tall er representert ved to bit. Kretsen skal finne A>B samt A=B Vi har dermed 2 2=4 innganger, og 2 utganger Setter navn på utgangene: F for A>B og F 2 for A=B A A B Digitalt system F B F 2 Omid Mirmotahari 37
Designeksempel Innganger Utganger A B Vi trenger en oversikt over alle mulige inngangs/utgangs kombinasjoner, derfor: Setter opp en sannhetstabell for hver utgang (slår sammen til en dobbel tabell) Leser ut mintermer F = A A B B + A A B B + A A B B + A A B B + A A B B + A A B B F 2 = A A B B + A A B B Omid Mirmotahari 3 8 A B F F 2
Forenkler uttrykket for å spare porter F B B Setter inn i Karnaughdiagram A A F = A A B B + A A B B + A A B B + A A B B + A A B B + A A B B F 2 = A A B B + A A B B + A A B B + A A B B A A F 2 B B Omid Mirmotahari 39
F B B Leser ut av diagrammene F = A B + A B B + A A B A A F 2 : Ingen forenkling mulig ved utlesning av ere, leser derfor ut ere F 2 = A B + A B + A B + A B Inverterer begge sider F 2 = (A B + A B + A B + A B ) F 2 A A B B Omid Mirmotahari 4
Implementerer uttrykkene F = A B + A B B + A A B F 2 = (A B + A B + A B + A B ) ( Hva med XOR? ) A B A B B F A B A B A B F 2 A A B A B Omid Mirmotahari 4
Black box tankesett! Styring av heis Omid Mirmotahari 42
Designeksempel Styring av heis Inngangssignaler fra sensor K = Knapp trykket inn: / V = Overvekt: / D = Dør lukket: / K V D Kontroll logikk M Utgangssignal til aktuator: M = Motor på: / Omid Mirmotahari 43
Sannhetstabell for designet K V D M Omid Mirmotahari 44
Implementasjon på portnivå Omid Mirmotahari 45
Port-implementasjon Omid Mirmotahari 46
Kretsanalyse Omid Mirmotahari 47
Generell analyseprosedyre for digitale kretser ) Sett funksjonsnavn på ledningene 2) Finn funksjonene 3) Kombiner funksjonsuttrykkene Omid Mirmotahari 48
Eksempel T 2 F F T T 3 F 2 F 2 Omid Mirmotahari 49
Adder og subtraktor design Omid Mirmotahari 5
Binær adder En av de mest brukte digitale kretser Vanlige anvendelser: Mikroprosessor ALU / Xbox / mikserbord / digitalt kommunikasjonsutstyr / AD-DA omformere osv... Basis for addisjon / subtraksjon / multiplikasjon / divisjon og mange andre matematiske operasjoner All form for filtrering / signalbehandling Omid Mirmotahari 5
Binær adder Ønsker å designe en generell binær adder Funksjonelt eksempel Adder to tall A=5 og B=3: + = + = + = + = + = + = S B A Omid Mirmotahari 52
Et adder system Systemelementer: Halvadder: Tar ikke mente inn Fulladder: Tar mente inn A 3 B 3 A 2 B 2 A B A B C 4 Full adder C 3 Full adder C 2 Full adder C Halv C = adder S 3 S 2 S S Omid Mirmotahari 5 3
Halvadder (ingen mente inn) Adderer sammen de to minst signifikante bittene A og B. Elementet har 2 innganger og 2 utganger Sannhetstabell S = C = Omid Mirmotahari 54
Halvadder implementasjon Omid Mirmotahari 55
Fulladder (mente inn) Adderer sammen bit A n, B n med evt. mente inn Sannhetstabell Elementet har 3 innganger og 2 utganger S n = C n+ Omid Mirmotahari 56
Forenkling Forenkler C n+ ved Karnaughdiagram A n B n C n C n+ = A n B n C n + A n B n C n + A n B n C n + A n B n C n C n+ = Omid Mirmotahari 57
Implementasjon I Rett fram implementasjon S n = A n B n C n A n B n C n S n C n+ = A n B n + A n C n + B n C n A n B n A n C n C n+ B n C n Omid Mirmotahari 58
Implementasjon II Forenklet implementasjon av C n+ basert på gjenbruk av porter fra S n S n = (A n B n ) C n Leser ut C n+ fra karnaughdiagram på nytt B n C n C n+ = A n B n + A n B n C n + A n B n C n A n C n+ = A n B n + (A n B n + A n B n ) C n C n+ = A n B n + (A n B n ) C n Omid Mirmotahari 59
Implementasjon II Vanlig implementasjon av en-bits fulladder S n = (A n B n ) C n C n+ = A n B n + (A n B n ) C n A n A n B n B n S n A n B n C n+ C n Omid Mirmotahari 6
Binær adder - Oppsummering Halvadder (ikke mente inn) A B S C n+ C n C C A n A n B n Fulladder (evt. mente inn) S n A B + S = A B C n+ B n S n S Omid Mirmotahari 6 C n
Menteforplantning 4-bits binær adder Full adder C 3 Full adder C 2 Full adder C Halv adder C 4 Omid Mirmotahari 62
Menteforplantning Portforsinkelse gir menteforplantning (rippeladder) Eksempel Adderer og Full adder Full adder Full adder Halv adder Omid Mirmotahari 63
Subtraksjon? Omid Mirmotahari 64
Komparator Komparator sammenligner to tall A og B 3 utganger: A=B, A>B og A<B Eksempel: 4-bits komparator Utgang A=B Slår til hvis A =B og A =B og A 2 =B 2 og A 3 =B 3 Kan skrives: (A B ) (A B ) (A 2 B 2 ) (A 3 B 3 ) Omid Mirmotahari 65
Komparator - eksempel Utgang A>B slår til hvis: (A 3 >B 3 ) eller (A 2 >B 2 og A 3 =B 3 ) eller (A >B og A 2 =B 2 og A 3 =B 3 ) eller (A >B og A =B og A 2 =B 2 og A 3 =B 3 ) Kan skrives: (A 3 B 3 ) + (A 2 B 2 ) (A 3 B 3 ) + (A B ) (A 2 B 2 ) (A 3 B 3 ) + (A B )(A B ) (A 2 B 2 ) (A 3 B 3 ) Omid Mirmotahari 66
Komparator - eksempel Utgang A<B slår til hvis: (A 3 <B 3 ) eller (A 2 <B 2 og A 3 =B 3 ) eller (A <B og A 2 =B 2 og A 3 =B 3 ) eller (A <B og A =B og A 2 =B 2 og A 3 =B 3 ) Kan skrives: (A 3 B 3 ) + (A 2 B 2 ) (A 3 B 3 ) + (A B ) (A 2 B 2 ) (A 3 B 3 ) + (A B )(A B ) (A 2 B 2 ) (A 3 B 3 ) Omid Mirmotahari 67
Komparator - eksempel Omid Mirmotahari 68
Dekoder Dekoder tar inn et binært ord, gir ut alle mintermer Eksempel: 3bit inn / 8bit ut Omid Mirmotahari 69
Dekoder - sannhetstabell Eksempel: 3bit inn Innganger Utganger x y z D D D 2 D 3 D 4 D 5 D 6 D 7 Omid Mirmotahari 7
Dekoder generering av logiske funksjoner Dekoder - elektrisk sannhetstabell. Kan generere generelle logiske funksjoner direkte fra mintermene på utgangen Eksempel: Fulladder A n B n S n C n C n Omid Mirmotahari 7 +
Enkoder Enkoder motsatt av dekoder Eksempel: 8x3 enkoder Innganger Utganger D D D 2 D 3 D 4 D 5 D 6 D 7 x y z x = D 4 + D 5 + D 6 + D 7 y = D 2 + D 3 + D 6 + D 7 z = D + D 3 + D 5 + D 7 Antar at det ikke eksisterer andre inngangskombinasjoner Omid Mirmotahari 72
Enkoder Eksempel D D 2 D 4 D 6 z x = D 4 + D 5 + D 6 + D 7 y = D 2 + D 3 + D 6 + D 7 z = D + D 3 + D 5 + D 7 Y X D D 3 D 5 D 7 Omid Mirmotahari 73
Multiplekser Multiplekser (MUX) velger hvilke innganger som slippes ut Hver inngang kan bestå av ett eller flere bit A B C UT N Select Omid Mirmotahari 74
MUX Eksempel: 2- MUX Implementasjon Symbol Omid Mirmotahari 75
Eksempel: 4- MUX Omid Mirmotahari 76
MUX Eksempel: 2- MUX Omid Mirmotahari 77
Demultiplekser Demultiplekser motsatt av multiplekser INN A B C N Omid Mirmotahari 78 Select
Kombinert adder/subtraktor M=: adder / M=: subtraktor / V: overflow bit Omid Mirmotahari
ALU ALU Arithmetic Logic Unit Generell regneenhet Eksempel: SN74LS8 4bit utbyggbar ALU 3 forskjellige operasjoner Omid Mirmotahari
ALU - SN74LS8 Omid Mirmotahari
Komplett CPU: 4-bit databuss / 3bit adressebuss 82 Omid Mirmotahari
Komplett CPU: Funksjonell Diglog-implementasjon The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again. Omid Mirmotahari