20.01.2014 Views

KOMBINATIONSKRETSAR

KOMBINATIONSKRETSAR

KOMBINATIONSKRETSAR

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>KOMBINATIONSKRETSAR</strong><br />

1


min- och MAX-termer<br />

Venndiagram för varje rad i:<br />

mi<br />

Mi<br />

2


Från sanningstabell till logisk algebra<br />

F nedan är exempel på en funktion<br />

Rad In Ut minterm Maxterm<br />

i XYZ F mi Mi<br />

0 0 0 0 1<br />

1 0 0 1 0<br />

2 0 1 0 0<br />

3 0 1 1 1<br />

4 1 0 0 1<br />

5 1 0 1 0<br />

6 1 1 0 1<br />

7 1 1 1 1<br />

X ⋅Y<br />

⋅ Z<br />

Z<br />

X ⋅Y<br />

⋅ Z<br />

X ⋅Y<br />

⋅ Z<br />

X ⋅Y<br />

⋅ Z<br />

X ⋅Y<br />

⋅ Z<br />

mi<br />

Mi<br />

X + Y + Z mi–termer är bara utskrivna för<br />

X + Y + Z de rader i, där F = 1 =sann och<br />

Mi bara där F = 0 = falsk.<br />

Fi = 1 => mi = 1 och Mi = 0<br />

X + Y<br />

+<br />

Z<br />

Fi = 0 => mi = 0 och Mi = 1<br />

Mintermerna<br />

ger F = 1 om man är i någon av<br />

raderna där Fi = 1 =><br />

F(<br />

X , Y,<br />

Z)<br />

=<br />

X<br />

⋅Y<br />

⋅ Z<br />

+<br />

X<br />

⋅Y<br />

⋅ Z<br />

+<br />

X<br />

⋅Y<br />

⋅ Z<br />

+<br />

X<br />

⋅Y<br />

⋅ Z<br />

+<br />

X<br />

⋅Y<br />

⋅ Z<br />

Detta är NORMAL SP-form (Summa av Produkt) eller normal disjunktiv form.<br />

Alla invariabler eller dess inverser finns med i varje term.<br />

Den formen kan förenklas.<br />

En annan beskrivningsform är: F(X,Y,Z) = ∑(0, 3, 4, 6, 7)<br />

Den normala SP-formen motsvarar ett normalt AND-OR-nät:<br />

(forts. nästa sida)<br />

3


_<br />

X<br />

_<br />

Y<br />

_<br />

Z<br />

_<br />

X<br />

Y<br />

Z<br />

X<br />

_<br />

Y<br />

_<br />

Z<br />

X<br />

Y<br />

_<br />

Z<br />

Mintermer där F=1 Normal SP-form ==> AND-OR-nät<br />

&<br />

&<br />

&<br />

&<br />

F(<br />

X , Y,<br />

Z)<br />

= X ⋅Y<br />

⋅ Z + X ⋅Y<br />

⋅ Z + X ⋅Y<br />

⋅ Z + X ⋅Y<br />

⋅ Z + X ⋅Y<br />

⋅ Z<br />

Förenkling: F = Y ⋅ Z ( X + X ) + Y ⋅ Z(<br />

X + X ) + X ⋅Y<br />

⋅ Z =<br />

= Y ⋅ Z + Y ⋅ Z + X ⋅Y<br />

⋅ Z =<br />

= Y ⋅ Z + Z ( Y +<br />

= Y ⋅ Z + Z ( Y +<br />

X ⋅Y<br />

) =<br />

X ) =<br />

= Y ⋅ Z + Y ⋅ Z + X ⋅ Z<br />

Troligen MINIMAL SP-form <br />

≥1 F troligen MiNIMALT AND-OR-nät<br />

Y<br />

Z<br />

_<br />

Y<br />

_<br />

Z<br />

&<br />

&<br />

≥1<br />

F<br />

X<br />

Y<br />

&<br />

X<br />

_<br />

Z<br />

&<br />

Z<br />

4


OR-AND-nät kan man få genom att<br />

F<br />

I. bestämma med hjälp av mintermer där F=0<br />

och att därefter använda de Morgans sats på F=<br />

F<br />

eller<br />

II. utnyttja Maxtermerna där F=0<br />

Praktiskt särskilt när F har färre 0:or än 1:or i<br />

sanningstabellen.<br />

5


Maxtermerna kan ge OR-AND-nät<br />

F nedan är exempel på en funktion<br />

Rad In Ut minterm Maxterm<br />

i XYZ F mi Mi<br />

0 0 0 0 1<br />

1 0 0 1 0<br />

2 0 1 0 0<br />

3 0 1 1 1<br />

4 1 0 0 1<br />

5 1 0 1 0<br />

6 1 1 0 1<br />

7 1 1 1 1<br />

X ⋅Y<br />

⋅ Z<br />

Z<br />

X ⋅Y<br />

⋅ Z<br />

X ⋅Y<br />

⋅ Z<br />

X ⋅Y<br />

⋅ Z<br />

X ⋅Y<br />

⋅ Z<br />

X + Y + Z<br />

X + Y + Z<br />

mi<br />

Mi<br />

Mi-termer är bara utskrivna<br />

för de rader i, där F = 0 = falsk.<br />

Fi = 0 => mi = 0 och Mi = 1<br />

X + Y<br />

+<br />

Z<br />

Maxtermerna<br />

ger F = 1 om man är utanför alla<br />

raderna där Fi = 0 =><br />

F = ( X + Y + Z ) ⋅ ( X + Y + Z)<br />

⋅ ( X + Y + Z )<br />

Detta är NORMAL PS-form (Produkt av Summa) eller normal konjunktiv form.<br />

Alla invariabler eller dess inverser finns med i varje term.<br />

Den formen kan förenklas.<br />

En annan beskrivningsform är: F(X,Y,Z) = Π(1, 2, 5)<br />

Den normala PS-formen motsvarar ett normalt OR-AND-nät:<br />

(forts. nästa sida)<br />

6


Maxtermer Normal PS-form Normalt OR-AND-nät<br />

F = ( X + Y + Z ) ⋅ ( X + Y + Z)<br />

⋅ ( X + Y + Z )<br />

X<br />

Y<br />

_<br />

Z<br />

X<br />

_<br />

Y<br />

Z<br />

_<br />

X<br />

Y<br />

_<br />

Z<br />

≥1<br />

≥1<br />

≥1<br />

&<br />

F<br />

• Detta normala nät kan<br />

säkert förenklas med<br />

Boolesk algebra, så<br />

att vi får en trolig<br />

MINIMAL PS-form<br />

och ett troligt optimalt<br />

OR-AND-nät<br />

• Snart ska vi optimera<br />

säkrare med<br />

Karnaughdiagram<br />

7


Från logisk algebra till logiskt schema<br />

• Exempel:<br />

A<br />

B<br />

C<br />

D<br />

&<br />

1<br />

X = A(<br />

BC + D)<br />

+<br />

BC<br />

_<br />

D<br />

≥1<br />

_<br />

BC+D<br />

BD<br />

&<br />

&<br />

_<br />

A(BC+D)<br />

BD<br />

≥1<br />

X<br />

8


Minimering av Booleska uttryck<br />

Optimeringsmetoder<br />

• Booles algebra kan användas för optimering.<br />

- Det är ofta arbetssamt och tidsödande.<br />

- Det är svårt att veta, om det man kommit fram till,<br />

verkligen är optimalt.<br />

- Det finns dock metoder, där man verkligen vet, att man<br />

optimerar ett OCH-ELLER-nät eller att man optimerar ett<br />

ELLER-OCH-nät.<br />

.<br />

Karnaugh-diagram är behändigt för optimering, när<br />

man har upp till och med 6 instorheter.<br />

.<br />

Quine-McCluskeys metod (användning av metoden<br />

ingår ej i kursen) kan användas vid flera ingångar.<br />

- Dataprogram finns för för optimering.<br />

- Vi kommer mest att ägna oss åt Karnaughdiagram<br />

9


Syntes av kombinatoriska kretsar<br />

• Tidigare har vi tagit fram<br />

normal SP-form (normal disjunktiv form), som<br />

ger normala OCH-ELLER-nät och även<br />

normal PS-form (normal konjunktiv form), som<br />

ger normala ELLER-OCH-nät.<br />

• Syntes (minimering) ska vi nu på ett säkert sätt<br />

göra med Karnaughdiagram.<br />

• Vi ska utgå från samma funktion F som tidigare<br />

och som har samma sanningstabell.<br />

10


Exempel från tidigare: F(x,y,z) = ∑(0, 3, 4, 6, 7)<br />

i X Y Z F<br />

0 0 0 0 1<br />

1 0 0 1 0<br />

2 0 1 0 0<br />

3 0 1 1 1<br />

4 1 0 0 1<br />

5 1 0 1 0<br />

6 1 1 0 1<br />

7 1 1 1 1<br />

X<br />

X<br />

Y<br />

Z<br />

0<br />

1<br />

YZ<br />

F<br />

00 01 11 10<br />

Karnaugh-diagrammet påbörjas:<br />

Gör ett rutnät för alla in-storheter<br />

eller 0 1<br />

XY<br />

När man går till närmaste ruta vågrätt eller lodrätt,<br />

får endast en instorhet ändras.<br />

00<br />

01<br />

11<br />

10<br />

Z<br />

Detta gäller även ”över kanterna”.<br />

Fyll i funktionens värden i rutorna.<br />

11


X<br />

Karnaughdiagram<br />

YZ<br />

00 01 11 10<br />

0 1* 0 0 1 1* 3 0 2<br />

1 1 4 0 5 1 7 1 6<br />

• Funktionen F representeras nu av<br />

området där F=1, alternativt området<br />

där F≠0.<br />

• OCH-ELLER-nät kan man få genom att<br />

slå samman och ringa in närliggande<br />

rutor med 1:or på visst sätt.<br />

• Sammantagningarna av 1:or får dock bara ske i antal om<br />

1, 2, 4, 8, 16, 32....osv, dvs 2 n , där n är heltal.<br />

• Optimeringen får man genom att göra så få och så stora<br />

inringningar (primimplikatorer) som möjligt.<br />

• OBS! En 1:a får inringas flera gånger.<br />

• En bra metod är att först leta reda på svåra 1:or, som bara<br />

kan ringas in på ett sätt till sk väsentliga primimplikatorer.<br />

Markera gärna sådana 1:or med en *.<br />

• Börja med att göra största möjliga inringningar kring<br />

sådana 1:or.<br />

• Ringa sedan in alla andra icke inringade 1:or med så få<br />

och så stora inringningar som möjligt.<br />

12


YZ<br />

00 01 11 10<br />

X<br />

0 1* 0 1* 0<br />

1 1 0 1 1<br />

⇒ F = Y ⋅ Z + Y ⋅ Z + X ⋅Y<br />

Alternativt<br />

YZ<br />

00 01 11 10<br />

X<br />

0 1* 0 1* 0<br />

1 1 0 1 1<br />

• Vi fick 2 lika minimala<br />

SP-uttryck (disjunktiva uttryck)<br />

- lika små och lika många inringningar.<br />

• Dessa motsvarar OCH-ELLER-näten nedan<br />

_<br />

Y<br />

_<br />

Z<br />

Y<br />

Z<br />

&<br />

&<br />

≥1<br />

F<br />

⇒<br />

F<br />

= Y<br />

⋅ Z<br />

+ Y ⋅ Z<br />

+<br />

X<br />

⋅ Z<br />

X<br />

_<br />

Y eller Z<br />

&<br />

• De har lite olika invariabler, men är lika<br />

minimala, dvs de har lika få grindar och<br />

lika få ingångar.<br />

13


Minimalt ELLER-OCH-nät<br />

• För att få minimal PS-form<br />

(konjunktiv form) och därmed<br />

minimalt OR-AND-nät tar man<br />

samman 0:orna på samma sätt.<br />

(Maxtermer)<br />

• Funktionen F = 1 utanför dessa<br />

inringningar. (Utanför den ena<br />

OCH utanför den andra =<br />

Ena Maxtermen OCH andra<br />

Maxtermen.)<br />

• => F = ( Y + Z )( X + Y + Z)<br />

• Denna minimala PS-form ger<br />

det minimala ELLER-OCHnätet.<br />

• I detta fall är PS-formen något<br />

mindre än SP-formen.<br />

X<br />

X<br />

_<br />

Y<br />

Z<br />

Y<br />

_<br />

Z<br />

YZ<br />

00 01 11 10<br />

0 1 0 1 0*<br />

1 1 0* 1 1<br />

≥1<br />

≥1<br />

&<br />

F<br />

14


• Ett annat sätt är att med hjälp av de<br />

inringade 0:ornas mintermer ta fram<br />

ett SP-uttryck för F<br />

• Inverterar man sedan utgången, så<br />

får man ju F<br />

I kretsar, där utgången kan inverteras,<br />

är problemet löst med en<br />

AND-OR-INVERS (AOI)-krets.<br />

• Genom att programmera vissa<br />

PLD:er, kan man få sann eller invers<br />

utgång med 1 eller 0 på styre. =><br />

_<br />

Y<br />

Z<br />

_<br />

X<br />

X<br />

YZ<br />

00 01 11 10<br />

0 1 0 1 0*<br />

1 1 0* 1 1<br />

F<br />

&<br />

= Y ⋅ Z +<br />

X ⋅Y<br />

⋅ Z<br />

≥1<br />

F<br />

1<br />

Y &<br />

_<br />

F<br />

Z =1<br />

1<br />

F<br />

F<br />

• Önskar man PS-form och därmed<br />

OR-AND-nät, kan man invertera F<br />

för att få F som F och sedan<br />

använda deMorgans sats<br />

Invertering och deMorgans sats:<br />

F = F =<br />

= Y ⋅ Z + X ⋅Y<br />

⋅ Z =<br />

= Y ⋅ Z ⋅ X ⋅Y<br />

⋅ Z =<br />

= ( Y + Z ) ⋅ ( X + Y + Z)<br />

Samma minimala uttryck som vi fick<br />

med maxtermer<br />

15


Ett metod-stråk har visat sig för minimal SP-form:<br />

Ringa in 1:or – mintermer i ringarna – SP-form (disjunktiv form) -<br />

- OCH-ELLER-nät – NAND-NAND-nät<br />

vi betraktar de senare leden nu<br />

Ex. Ett minimalt SP-uttryck kan med deMorgans sats utvecklas till bara NAND-uttryck<br />

F<br />

=<br />

Y<br />

⋅ Z<br />

+ Y<br />

⋅ Z<br />

+<br />

X<br />

⋅ Z<br />

=<br />

Y<br />

⋅ Z<br />

+ Y<br />

⋅ Z<br />

+<br />

X<br />

⋅ Z<br />

=<br />

Y<br />

⋅ Z<br />

⋅Y<br />

⋅ Z<br />

⋅<br />

X<br />

⋅Y<br />

Med grindar blir det: (dubbel invertering)<br />

_<br />

Y<br />

&<br />

Y<br />

_<br />

_<br />

&<br />

Z<br />

Z<br />

Y<br />

Z<br />

_<br />

F & ≥1 Y<br />

Z<br />

&<br />

≥1<br />

<br />

_<br />

Y<br />

_<br />

Z<br />

Y<br />

Z<br />

&<br />

&<br />

(deMorgan)<br />

&<br />

F<br />

X<br />

Y<br />

&<br />

X<br />

Y<br />

&<br />

X<br />

Y<br />

&<br />

För minimal PS-form finns ett motsvarande stråk:<br />

Ringa in 0:or – Maxtermer utanför ringarna – PS-form (konjunktiv form) –<br />

-ELLER-OCH-nät – NOR-NOR-nät<br />

på likande sätt<br />

16


Två stråk<br />

Ringa in 1:or<br />

Mintermer<br />

SP-form<br />

OCH-ELLER-nät<br />

NAND-NAND-nät<br />

och titta inne i<br />

ringarna<br />

Disjunktiv<br />

form<br />

Ringa in 0:or<br />

Maxtermer<br />

PS-form<br />

ELLER-OCH-nät<br />

NOR-NOR-nät<br />

Och titta<br />

utanför<br />

ringarna<br />

Konjunktiv<br />

form<br />

18


Don’t care -ingångskombinationer<br />

• I automatiken (reglersystem) senare<br />

kommer ni att se en rad exempel på<br />

kombinationer som inte kan förekomma.<br />

• Det är tex svårt för vattennivån att nå<br />

upp till en högre nivågivare A, utan att först<br />

nå upp till en som är lägre placerad, B.<br />

• Automaten, som styr vattentillflödet,<br />

måste vara svår att logiskt programmera om<br />

instorheterna är A B.<br />

• Om utstorheten U är 1 eller 0 för denna<br />

kombination är i allmänhet ointressant,<br />

eftersom tillståndet inte kan inträffa.<br />

• Man brukar därför inte tillordna<br />

utstorheten för sådana kombinationer<br />

värdena 0 eller 1, utan - , dvs don’t care,<br />

som ibland betecknas ∅, ϕ eller x.<br />

A<br />

B<br />

U<br />

19


Exempel med don´t care<br />

F(N 3 , N 2 , N 1 , N 0 ) = ∑(1, 2, 3, 5, 7) + d(10, 11, 12, 13, 14, 15)<br />

• Vi har 4 variabler<br />

• Karnaughdiagrammet =><br />

• - kan vid inringningarna<br />

betraktas som 0 eller 1. Det<br />

viktiga är att vi får ett enkelt<br />

uttryck<br />

1:or - don´t care<br />

• OCH-ELLER-nät får vi från SPformen,<br />

dvs inringning av 1:or<br />

• Vi får minimal SP-form<br />

• och minimalt AND-OR-nät<br />

__<br />

N 3<br />

N 0<br />

__<br />

N 2<br />

N 1<br />

F<br />

N 1 N 0<br />

00 01 11 10<br />

00 0 0 1 1 1 3 1 2<br />

01 0 4 1 5 1 7 0 6<br />

11 - 12 - 13 - 15 - 14<br />

10 0 8 0 9 - 11 - 10<br />

&<br />

=<br />

&<br />

N<br />

3<br />

⋅ N<br />

0<br />

+ N<br />

2<br />

⋅ N1<br />

≥1<br />

F<br />

N 3 N 2<br />

20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!