KOMBINATIONSKRETSAR
KOMBINATIONSKRETSAR
KOMBINATIONSKRETSAR
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