2.2 F¨ orenkling av booleska uttryck
2.2.1 Karnaugh-diagram
En standard procedur f¨or f¨orenkling av booleska funktioner baserar sig egenskaperna hos s.k. Karnaugh-diagram. I dessa anges funktionsv¨ardena i rutor i ett diagram. Varje ruta motsvarar en kombination av variabelv¨arden. Nedan ges exempel p˚a Karnaugh-diagram (utan insatta funktionsv¨arden) f¨or tv˚a, tre, fyra och fem variabler.
Tv˚a variabler: Tre variabler:
A
000 001 011 010 100 101 111 110
DE 00 01 11 10
Karnaugh-diagrammen ¨ar s˚a konstruerade, att variabelv¨ardena f¨or tv˚a avgr¨ansande (n¨arbel¨agna, adja-centa) rutor skiljer sig i en och endast en variabel. Omv¨ant skall tv˚a variabelkombinationer som skiljer sig i exakt en variabel finnas i n¨arbel¨agna rutor. H¨arvid uppfattas radernas och kolumnernas ¨andrutor som angr¨ansande. Diagrammet f¨or fem variabler kan uppfattas som tredimensionell, s˚a att den h¨ogra delen av diagrammet ligger bakom den v¨anstra.
F¨orenklingen av booleska funktioner med hj¨alp av Karnaugh-diagram baserar sig p˚a ovann¨amnda egen-skaper hos n¨arbel¨agna rutor, vilket illustreras av f¨oljande exempel.
Exempel 2.2 Karnaugh-diagram Betrakta den booleska funktionen
X = A BC + ABC + ABC + ABC
fr˚an exempel 2.1. Karnaugh-diagrammet f˚ar f¨oljande utseende (med endast ettorna insatta):
AB
Tack vare diagrammets konstruktion kan f¨orenklingarna ABC + ABC = AB A BC + ABC = BC
uppt¨ackas direkt fr˚an diagrammet. Man ser ytterligare att f¨orenklingen ABC + ABC = AC
kan g¨oras men detta leder ej till ett lika enkelt uttryck f¨or X.
20 KAPITEL 2. BOOLESKA FUNKTIONER
Man kan formulera fem regler f¨or f¨orenklingsproceduren:
1. Varje ruta som ineh˚aller en etta m˚aste t¨ackas av minst en cell (en ruta f˚ar t¨ackas av flera celler).
2. Endast rutor med ettor f˚ar t¨ackas av celler.
3. Cellerna m˚aste vara rektangul¨ara, och t¨acka en potens av 2 (1, 2, 4, 8, ...) antal rutor.
4. Antalet celler b¨or vara s˚a litet som m¨ojligt 5. Varje cell b¨or vara s˚a stor som m¨ojligt
Av dessa ¨ar reglerna 1-3 ovillkorliga medan 4-5 str¨avar till att hitta den enklaste realisationen.
Det faktum att man f˚ar t¨acka ettor med flera olika celler inneb¨ar i ovanst˚aende exempel att anv¨andande av alla tre m¨ojliga celler som t¨acker tv˚a rutor ger X = AB + BC + AC. Detta kan i sin tur f¨orenklas till AB + BC, m.h.a. transivitetslagen (R18). Om vi f¨oljer regel 4 s˚a kommer man direkt till detta uttryck F¨orenkling av booleska uttryck med hj¨alp av Karnaugh-diagram grundar sig s˚aledes p˚a att mintermer som kan kombineras till enklare termer upptar n¨arbel¨agna rutor i diagrammet. F¨orenklingarna kan d¨armed ses direkt fr˚an diagrammet.
F¨or fyra variabler har vi fyra typer av termer:
1. Mintermer med alla fyra variabler, som t¨acker en ruta, och som ej kan kombineras med andra termer:
AB
2. Termer med tre variabler, som t¨acker tv˚a rutor (tv˚a skilda exempel):
AB
3. Termer med tv˚a variabler, som t¨acker fyra rutor (tre skilda exempel):
2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 21
4. Termer med en variabel, som t¨acker ˚atta rutor (tv˚a skilda exempel):
AB
Karnaugh-diagrammen l¨ampar sig b¨ast f¨or funktioner med h¨ogst fyra variabler. Det g˚ar emellertid att anv¨anda metoden ¨aven f¨or funktioner med upp till ˚atta variabler.
Exempel 2.3 Fem variabler
000 001 011 010 100 101 111 110 1 1
22 KAPITEL 2. BOOLESKA FUNKTIONER f som har den egenskapen, att om n˚agon av de i termen ing˚aende variablerna avl¨agsnas, s˚a inkluderar f inte den ˚aterst˚aende produkten.
Exempel 2.5
Vid f¨orenkling av en boolesk funktion ¨ar man i f¨orsta hand intresserad av att uttrycka funktionen som en summa av primimplikatorer, ty man kan visa att detta resulterar i det i en viss mening enklaste uttrycket.
I praktiken s˚a skall man just f¨olja reglerna 4 och 5 givna ovan, d.v.s. vi b¨or f¨ors¨oka t¨acka ettorna med m¨ojligast f˚a och m¨ojligast stora celler. Och typiskt s˚a ¨ar antalet viktigare ¨an storleken vid minimiering av uttryck.
Utvecklingen av en funktion i primimplikatorer beh¨over inte vara entydig. En v¨asentlig (essential) pri-mimplikator ¨ar en primimplikator som alltid b¨or ing˚a i varje minimalform. En v¨asentlig primimplikator k¨annetecknas i ett Karnaugh-diagram av att den inkluderar ˚atminstone en ruta som ej kan ing˚a i n˚agon annan primimplikator. Det ¨ar viktigt att man b¨orjar med att ringa alla v¨asentliga primimplikatorer f¨or att det minimala uttrycket skall erh˚allas.
Exempel 2.6 ∗ anger rutor som definierar en v¨asentlig primimplikator.
ABC + ACD + ABC + ACD
Notera att vi enbart introducerar en term till (BD) om vi introducerar den st¨orsta m¨ojliga cellen i det h¨ar fallet.
2.2. F ¨ORENKLING AV BOOLESKA UTTRYCK 23 Uppgift 2.3 Best¨am de v¨asentliga primimplikatorerna och den minimala formen f¨or funktionen i dia-grammet nedan. Till˚atet att l¨osa denna uppgift i kompendiet.
AB
Sedan de v¨asentliga primimplikatorerna uttagits, kan de ˚aterst˚aende oinringade rutorna med ettor inklu-deras av primimplikatorer p˚a ett antal alternativa s¨att. Dessa skall v¨aljas s˚a att m¨ojligast enkla termer f˚as.
Exempel 2.7 Flera minimala uttryck
AB
Termen ABC D kan inkluderas antingen i A C D eller i ABC (icke-v¨asentliga primimplikatorer). Detta ger tv˚a alternativa minimala uttryck:
BD + A B D + A C D eller BD + A B D + ABC
Ofullst¨ andigt specificerade funktioner
De booleska funktioner som upptr¨ader i praktiska logikstyrningsproblem ¨ar ofta ofullst¨andigt specificera-de, dvs. funktionens v¨arde f¨or vissa kombinationer av variabelv¨arden ¨ar likgiltig. Vissa kombinationer av variabelv¨arden kan t.ex. vara fysikaliskt om¨ojliga (jmf. Ex. 1.1), s˚a att de aldrig f¨orekommer. Funktions-v¨ardet f¨or dessa om¨ojliga variabelkombinationer ¨ar d˚a likgiltigt.
S˚adana likgiltiga funktionsv¨arden kallas ”don’t care” tillst˚and. I ett Karnaugh-diagram anges de med ett streck, ”–”, och anger s˚aledes att funktionsv¨ardet kan vara 0 eller 1. Detta kan utnyttjas f¨or att konstruera ett m¨ojligast enkelt funktionsuttryck.
Exempel 2.8 ”Don’t care” tillst˚anden kan utnyttjas s˚a att funktionen kan uttryckas i den minimala formen
-24 KAPITEL 2. BOOLESKA FUNKTIONER