INF4 Karnaughdiagram
Hvor er vi Vanskelighetsnivå Binær Porter Karnaugh Kretsdesign Latch og flipflopp Sekvensiell Tilstandsmaskiner Minne Eksamen Tid juleaften Omid Mirmotahari 2
Hva lærte vi forrige uke Tallsystemer Boolsk algebra Regneregler Porter AND OR NOT NAND NOR Omid Mirmotahari 3
Test deg selv Gitt funksjonen: F(x,y,z) = S(,,2,4,5,6) (a) Sett opp sannhetsverditabellen (b) Forenkle uttrykket ved regning (c) Forenkle uttrykket ved Karnaughdiagram (d) Implementer det forenklede uttrykket på portnivå (e) Implementer det forenklede uttrykket med bare 2- inputs NAND Omid Mirmotahari 4
Hovedpunkter Karnaughdiagram Diagram med 2-4 variable Don t care tilstander Produkt av sum (leser ut ere) XOR implementasjon NAND implementasjon ved DeMorgan LogiSim introduksjon Omid Mirmotahari 5
Bakgrunn, typisk problemstilling Anta at vi designer et digitalt system med, f.eks, 3 innganger og 2 utganger x y z Digitalt system F F 2 Omid Mirmotahari 6
Sannhetstabell, eksempel Starter med å sette opp en sannhetstabell Setter så opp et uttrykk for hver utgang F, F 2 Ser på utgangens ere Innganger x y z F Utganger F 2 F = F 2 = x y z + x y z + x y z + xy z + xyz + xyz xyz Omid Mirmotahari 7
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 = a b + ab Eksempel, 4 variable: F = m + m + m 5 = A B C D + A B C D + ABCD Omid Mirmotahari 8
Prosedyre, 2 variable Setter inn mintermene i diagram Eksempel: generell funksjon - 2 variable F = m + m + m 2 + m 3 Omid Mirmotahari 9
Prosedyre, 2 variable F = xy og F 2 = x y + xy + xy Omid Mirmotahari
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 xy x y Omid Mirmotahari
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 2
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 3
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 4
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 5
Grupperingsregler for diagram med 2-4 variable Omid Mirmotahari 6
Grupperingsregler for diagram med 2-4 variable Omid Mirmotahari 7
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 8
Utlesningsregler for diagram med 2-4 variable Eksempel: F = y + w z + xz Merker oss at jo større ruter desto enklere uttrykk Omid Mirmotahari 9
Utlesningssregler for diagram med 2-4 variable F = B D + C B + A CD Omid Mirmotahari 2
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: F = yz + wx F = (yz + wx ) Hadde vi lest ut ere ville vi fått F = xy + w y + w z + xz Omid Mirmotahari 2
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 22
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 2 3 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 24
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 25
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 26
Designprosedyre:. Bestem innganger 2. Bestem utganger 3. Sett opp sannhetsverditabell 4. Finn mintermer 5. Sett inn i karnaughdiagram 6. Les ut av karnaughdiagram 7. Implementer uttrykkene Omid Mirmotahari 27
Algebraisk reduksjon til NAND / NOR I noen tilfeller har man kun NAND og NOR kretser til rådighet Eksempel: F = B D + BD DeMorgan: F = ((B D ) (BD) ) Omid Mirmotahari 28
NAND konvertering / reduksjon Inverter (NOT) AND OR All kombinatorisk logikk kan implementeres ved hjelp av NAND Omid Mirmotahari 29
NAND reduksjon Tegn kretsen på sum av produkt form Bytt ut AND med NAND og OR med invert-or Bytt ut invert-ormed NAND og sjekk alle inverteringer Omid Mirmotahari 3
Don t care I noen tilfeller har man inngangskombinasjoner som aldri dukker opp I andre tilfeller bryr man seg ikke om utfallet for visse inngangskombinasjoner Slike kombinasjoner kalles don t care kombinasjoner og markers med X A B C Innganger A B C Digitalt system Utganger F X X Omid Mirmotahari 3 F
Don t care X er kan man sette som man vil til eller I dette eksemplet velger vi X til, og får en enklere funksjon, F = C A B C F X X () () Omid Mirmotahari 32 X X
Don t care Eksempel: Velger to av X ene til og en X til Får to grupper: F = y + x z X X X Omid Mirmotahari 33
Designeksempel Oblig nr. Ønsker å representere et binært tall på ett 7-segments display 5V på ledning nr. a gir lys i segment nr. a 5V på ledning nr. b gir lys i segment nr. b osv... Omid Mirmotahari 34
Oblig nr. Ønsker å representere et binært tall på et 7-segments display Binært ord bit3 (v) bit2 (u) bit (t) bit (s) Digitalt system a b c d e f g Display Et 7-segmentsdisplay kan ikke visualisere tallene -5, for disse tallene bryr vi oss ikke om hva displayet viser (Don t care) Omid Mirmotahari 35
Oblig nr. Tips : Lag en sannhetstabell for hver utgang (7stk) (kan slås sammen i en stor tabell) Utganger Innganger s t u a b v c d e f g Tips 2: Les ut mintermer Omid Mirmotahari 36
Oblig nr. Tips 3: Bruk Karnaughdiagram for hvert utgangsuttykk (7stk) a uv b uv c uv st st st d uv e uv f uv g uv st st st st Omid Mirmotahari 37
Spesialteknikker Omid Mirmotahari 38
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 39
XOR XNOR XOR XOR av inverterte innganger, a, b osv. gir andre diagramkonfigurasjoner ab cd ab cd XOR av 3 eller 2 innganger i et 4- variabeldiagram gir nye konfigurasjoner osv. ab cd ab cd ab cd ab cd Omid Mirmotahari 4
XOR XOR funksjonen kan kombineres med andre ledd Eksempel: F = A B C D + A C D Omid Mirmotahari 4
Andre algoritmer Karnaughdiagram er en grafisk metode for forenkling av uttrykk med 2-4 variable Ikke egnet for funksjoner med flere variable Ikke egnet for softwareimplementasjon Quine-McCluskey-algoritmen Egnet for software men treg ved mange variable Espresso-algoritmen Rask og brukes i mange designverktøy Omid Mirmotahari 42
Oppsummering Karnaughdiagram Diagram med 2-4 variable Don t care tilstander Produkt av sum (leser ut ere) XOR implementasjon NAND implementasjon ved DeMorgan Omid Mirmotahari 43