igitalteknik F2 igitalteknik F2 bild
Återblick från F: Kombinatoriska och sekventiella kretsar Funktionstabeller ooleska funktioner Logiksymboler esignspråk igitalteknik F2 bild 2
Förenkling av komb. funkt. Syfte: vi vill minska antalet ingångar på grindarna vi vill minska antalet grindar Varför? Färre ingångar och komponenter leder till mindre kretsar Är det viktigt? et kan vara en förutsättning för att kunna realisera funktionen på disponibel yta. (Kiselyta är i princip alltid en knapp resurs!) igitalteknik F2 bild 3
Förenklingsmetoder Utnyttja räknereglerna i den ooleska algebran för att förenkla uttrycken. Utnyttja Karnaughdiagram (grafisk metod). Utnyttja dator och lämplig minimeringsalgoritm (Quine Mclusky, iterativ konsensus, Espresso m fl). igitalteknik F2 bild 4
Förenkling med oolesk algebra ƒ a c c a b & & ƒ = a b c + a bc + a bc + ab c + abc ƒ = a c (b +b) + ac(b +b) + bc(a +a) ƒ = a c + ac + bc ƒ = a c + c(a+b) alt. ƒ = a c + bc ƒ b c a c & = ƒ igitalteknik F2 bild 5
Konjunktiv form? ƒ = (a + b + c ) (a + b + c) (a + b + c) ƒ = (a+b+c )(a a +a b +a c+ba +bb +bc+ca +cb +cc) ƒ = (a+b+c )(a + a (b+b ) + a c + bb + (b+b )c + ca + c) = = = ƒ = (a + b + c )(a + a + a c + c + a c + c) ƒ = (a + b + c )(a + a c + c) ƒ = (a + b + c ) (a ( + c) + c(a + )) = = ƒ =(a + b + c )(a + c) = aa +ac+ba +bc+c a +c c ƒ = ac + a c + a b +bc = a c + bc konsensus ƒ = a c + bc igitalteknik F2 bild 6
Förenkling med oolesk algebra Vilka räkneregler har vi använt? + = * = + = * = + = * = + = + + Kommutativa och distributiva lagar Ändamålsenligt??? Om funktionen är given på blandform Som efterbehandling till andra metoder igitalteknik F2 bild 7
Ett sätt att visualisera en funktion ooleska kuber XY X 2-cube Y -cube X Y Z X 3-cube XYZ Y Z W X 4-cube WXYZ igitalteknik F2 bild 8
tt plotta en funktion i en kub F = och oförändrad varierar i markerat område Kuber av dimension n- Reducerade uttryck med n- variabler G mintermer = fyllda noder maxtermer = ofyllda noder on t care = X-markerade noder varierar i markerat område = och oförändrad igitalteknik F2 bild 9
tt plotta funktioner i en kub Tre variabler: arry out från heladderare in out (' + ) in (in' + in) Samtliga mintermer täcks av unionen (OR) av subkuber av lägre dimension out = in + + in in ( + ') in igitalteknik F2 bild
Subkuber av högre dimension F(,,) = m(4,5,6,7) Mintermerna bildar en rektangel, dvs en tvådimensionell kub etta är detsamma som ett uttryck i en variabel, dvs 3 dimensioner - 2 dimensioner = och oförändrad och varierar enna subkub representerar insignalen igitalteknik F2 bild
Subkuber av olika dimensioner I en 3-kub: ger en -kub, dvs en enskild nod, en term med tre variabler ger en -kub, dvs två näraliggande noder, en term med två variabler ger en 2-kub, dvs ett plan med fyra noder, en term med en variabel ger en 3-kub, dvs en kub med åtta noder, en konstant term = Generellt: ger en m-subkub i en n-kub (m < n) en term med n - m insignaler igitalteknik F2 bild 2
Karnaughdiagrammet ƒ ƒ = + + ƒ = ( +)(++ ) igitalteknik F2 bild 3
Hur gick det till? Två näraliggande rutor i Karnaughdiagrammet skiljer sig i endast en insignal. et innebär att de två min-(eller max-) termerna kan utttryckas t ex = = ( + ) = respektive ( + + )( + + ) = ( + + + + + + ) = ( + ) = = = = = (xx ) = ; (x + xy) = x igitalteknik F2 bild 4
Fyra eller fler insignaler? Fyra insignaler: Karnaughdiagrammet byggs ut till sexton rutor för att rymma de nya min- eller maxtermerna. Rutorna kan med fördel numreras för att lättare identifieras med respektive min- eller maxterm. Fem eller sex insignaler: Karnaughdiagrammet byggs ut till 32 respektive 64 rutor. 4 2 8 5 3 9 3 7 5 2 6 4 = = = = = = = Sju eller flera insignaler: Vi har passerat gränsen för vad Karnaughdiagrammet klarar. = = = igitalteknik F2 bild 5
Fem insignaler... = = E 4 2 8 5 3 9 3 7 5 2 6 4 = = E= E= E= E 6 2 28 24 7 2 29 25 9 23 3 27 8 22 3 26 = = E= E= E= = = = = = = = = = = igitalteknik F2 bild 6
= EF 4 2 8 5 3 9 3 7 5 2 6 4 Sex insignaler... = 6 2 28 24 7 2 29 25 9 23 3 27 8 22 3 26 = = 32 36 44 4 48 52 6 56 EF 33 37 45 4 35 39 47 43 49 53 6 57 5 55 63 59 34 38 46 42 5 54 62 58 igitalteknik F2 bild 7
Karnaugdiagrammet igitalteknik F2 bild 8
Exempel Minimera ƒ = (,3,4,5,9,,2,3,4,5) alt. ƒ = (,2,6,7,8,) igitalteknik F2 bild 9
Exempel Minimera ƒ = (,3,4,5,9,,2,3,4,5) alt. ƒ = (,2,6,7,8,) Resultat: ƒ = + + + + respektive ƒ = (+++)( +++) ( ++ +)(+ +)(+ + ) Går det att göra bättre??? igitalteknik F2 bild 2
J! Vi kan bilda grupper om fyra, åtta, sexton eller 32 rutor i Karnaughdiagrammet: 4 2 8 5 3 9 3 7 5 2 6 4 4 2 8 5 3 9 3 7 5 2 6 4 Grupper kan också vara helt eller delvis överlappande igitalteknik F2 bild 2
Exempel Minimera ƒ = (,3,4,5,9,,2,3,4,5) alt. ƒ = (,2,6,7,8,) Resultat: ƒ = + + respektive ƒ = (+) (+ + ) Går det att göra bättre??? igitalteknik F2 bild 22
Karnaughminimering Steg : Finn alla mintermer som inte går att gruppera med någon annan minterm ( öar ). Markera dessa. Steg 2: Gruppera de mintermer som endast kan bilda tvågrupp och bara på ett sätt. Steg 3: Gruppera de mintermer som endast kan bilda tvågrupp men på mer än ett sätt. (Innebär val mellan olika alternativ.) Steg 4: Upprepa steg 2 och 3 för de mintermer som kan bilda fyragrupper, åttagrupper etc. igitalteknik F2 bild 23
Karnaughdiagram - exempel =, oförändrad varierar F = =, oförändrad varierar G = in out = F(,,) = igitalteknik F2 bild 24
F = Karnaughdiagram - exempel =, oförändrad varierar =, oförändrad varierar G = in out = + in + in F(,,) = igitalteknik F2 bild 25
Karnaughdiagram - exempel F(,,) = m(,4,5,7) F = Ersätt med och vice versa: F (,,) = m(,2,3,6) F' = igitalteknik F2 bild 26
Karnaughdiagram - exempel F(,,) = m(,4,5,7) F = ' ' + Ersätt med och vice versa: F (,,) = m(,2,3,6) F' = ' + ' igitalteknik F2 bild 27
Karnaughdiagram - exempel F(,,,) = m(,2,3,5,6,7,8,,,4,5) F = igitalteknik F2 bild 28
Karnaughdiagram - exempel Finn den minsta mängden maximalt stora subkuber som täcker funktionen F(,,,) = m(,2,3,5,6,7,8,,,4,5) F = + ' + ' ' igitalteknik F2 bild 29
Karnaughdiagram - exempel F = ( + + ) ( + + ) ( + + ) igitalteknik F2 bild 3
Tvånivåminimering efinitioner: Implikator: En enskild minterm eller en grupp av mintermer som går att bilda i ett Karnaughdiagram Primimplikator: En implikator som inte är en delmängd av en större (prim-)implikator. Väsentlig primimplikator: Om en minterm täcks av endast en primimplikator är denna väsentlig. Syfte: Slå samman implikatorer till primimplikatorer Täck alla mintermer med så få primimplikatorer som möjligt e väsentliga primimplikatorerna skall alltid finnas med igitalteknik F2 bild 3
Tvånivåminimering - exempel 6 primimplikatorer: ' ', ',, ' ',, ' väsentliga Minimal lösning = ' + + ' ' 5 primimplikatorer:, ',, ', ' ' väsentliga Väsentliga primimplikatorer utgör minimal lösning igitalteknik F2 bild 32
Karnaughdiagram - don t care on't ares kan användas som eller X F(,,,) = m(,3,5,7,9) + d(6,2,3) X X F = F = utan don't cares med don't cares igitalteknik F2 bild 33
Karnaughdiagram - don t care X F(,,,) = m(,3,5,7,9) + d(6,2,3) F = ' + ' ' utan don't cares X X F = ' + ' med don't cares on t care använd som ""ger en 2-kub i stället för en -kub X I PoS-form: F = (' + ') I princip samma svar som ovan... X X igitalteknik F2 bild 34
esignexempel earbetning av tal är lätt tilgängliga designexempel. et kan t ex handla om något av de fyra räknesätten, jämförelse etc. Förutsättning: e tal som skall bearbetas måste kodas med symbolerna och. en mest uppenbara kodningen är: 2 3 enna kodning är underlag för de kommande exemplen igitalteknik F2 bild 35
igitalteknik F2 bild 36 lockdiagram och funktionstabell et blir ett 4-variabelt Karnaughdiagram för var och en av de tre funktionerna... F F 2 F 3 =, >, < F = F 2 < F 3 > N N 2 esignexempel - komparator
esignexempel - komparator K-map for F K-map for F 2 K-map for F 3 F = F2 = F3 = igitalteknik F2 bild 37
esignexempel - komparator K-map for F K-map for F 2 K-map for F 3 F = ' ' ' ' + ' ' + + ' ' F2 = ' ' + ' + F3 = ' ' + ' + ' xnor xnor xnor igitalteknik F2 bild 38
igitalteknik F2 bild 39 lockdiagram och funktionstabell Vi får göra ett 4-variabelt Karnaughdiagram för var och en av de tre funktionerna + N 3 X Y Z N N 2 X Y Z esignexempel - tvåbitars adderare
esignexempel - tvåbitars adderare K-map for X K-map for Y K-map for Z X = Z = Y = igitalteknik F2 bild 4
esignexempel - tvåbitars adderare K-map for X K-map for Y K-map for Z X = + + Z = ' + ' = xor Y = ' ' + ' ' + ' ' + ' ' + ' ' + = ' ( xor ) + ' ( xor ) + ( xnor ) = ' ( xor ) + ( xor xor ) :or i diagonalen tyder på exor-funktioner Funktionen minimerad mha exor igitalteknik F2 bild 4
esignexempel - tvåbitars adderare \ \ \ \ Två alternativ att göra Y; med och utan exor Y X OS! exor implementeras med fyra NN... X XOR Y Y Y 2 igitalteknik F2 bild 42