Forelesning 3 Karnaughdiagram
Hovedpunkter Karnaughdiagram Diagram med 2-4 variable Don t care tilstander Alternativ utlesning (leser ut ere) XOR implementasjon NAND implementasjon ved DeMorgan 2
Bakgrunn, typisk problemstilling Anta at vi designer et digitalt system med, for eksempel, 3 innganger og 2 utganger x y z Digitalt system F F 2 3
Sannhetstabell, eksempel Starter med å sette opp en sannhetstabell Setter så opp et uttrykk for hver utgang F, F 2 Ser på utgangens ere F = F 2 = x y z + x y z + Innganger x y z Utganger F F 2 x y z + xyz + xyz xy z + xyz 4
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 5
Prosedyre, 2 variable Setter inn mintermene i diagram Eksempel: generell funksjon - 2 variable F = m + m + m 2 + m 3 6
Prosedyre, 2 variable Eksempel for funksjonene: F = xy og F 2 = x y + xy + xy 7
Prosedyre, utlesning Leser så ut av diagrammet 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 8
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 9
Karnaugh - 3 variable Plassering av mintermer for 3-variable funksjoner: Mintermene plasseres slik at kun variabel varierer i mellom hver vannrette/loddrette naborute yz
Karnaugh - 4 variable Plassering av mintermer for 4-variable funksjoner Mintermene plasseres slik at kun variabel varierer i mellom hver vannrette/loddrette naborute
Karnaughdiagram forenklingsprinsippet Karnaugh viser hvilke mintermer som må være høye for å få F =. Mintermene er plassert slik at naboer kun har en variabel som er forskjellige. Dette kan vi bruke til å finne sammenhenger og forenkle funksjonsutrykket F. F = m 2 +m 3 +m 7 +m 6 +m 5 +m 4 +m +m = 2
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 3
Grupperingsregler for diagram med 2-4 variable Eksempel: 4
Eksempel: Grupperingsregler for diagram med 2-4 variable 5
Utlesningsregler 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 6
Utlesningsregler for diagram med 2-4 variable Eksempel: F = y + w z + xz Merker oss at jo større ruter desto enklere uttrykk 7
Utlesningsregler for diagram med 2-4 variable Eksempel: F = B D + C B + A CD 8
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 9
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 2) Setter navn på utgangene: F for A>B og F 2 for A=B A A Digitalt F B B system F 2 2
Designeksempel Innganger Utganger Vi trenger en oversikt over alle mulige inngangs/utgangs kombinasjoner, derfor: 3) Setter opp en sannhetstabell for hver utgang (slår sammen til en dobbel tabell) 4) 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 + A A B B + A A B B A B A B F F 2 2
Designeksempel Forenkler uttrykket for å spare porter 5) Setter inn i Karnaughdiagram F A A B B 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 AA F 2 B B 22
Designeksempel 6) Leser ut av diagrammene F = F 2 : Ingen forenkling mulig ved utlesning av ere, leser derfor ut ere F 2 = A B + A B B + Inverterer begge sider A A B A B + A B + A B + A B F 2 = (A B + A B + A B + A B ) F A A F 2 A A B B B B 23
Designeksempel 7) 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 24
Algebraisk reduksjon til NAND / NOR I noen tilfeller har man kun NAND og NOR kretser tilrådighet Eksempel: F = B D + BD DeMorgan: F = ((B D ) (BD) ) 25
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 F 26
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 () () X X 27
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 28
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... 29
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) 3
3 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
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 32
33 Spesialteknikker
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 34
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 35
XOR XOR funksjonen kan kombineres med andre ledd Eksempel: F = A B C D + A C D 36
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 (956) Egnet for software men treg ved mange variable 37 Espresso-algoritmen (986) Rask og brukes i mange designverktøy (heuristisk optimalisering)
Oppsummering Karnaughdiagram Diagram med 2-4 variable Don t care tilstander Alternativ utlesning (leser ut ere) XOR implementasjon NAND implementasjon ved DeMorgan 38