You are on page 1of 42

Zavod za elektroniku, mikroelektroniku,

raunalne i inteligentne sustave

Marko upi, dipl. ing.

ZBIRKA RIJEENIH
ZADATAKA IZ
DIGITALNE
ELEKTRONIKE I
DIGITALNE LOGIKE

Zagreb, 2005
Minimizacija logikih funkcija. 103

5. Minimizacija logikih funkcija.


5.1. Zadatak

Prikaite funkciju f = (0,2 ) pomou K-tablice, i zatim odredite minimalni oblik funkcije.
Usporedite s analitikom minimizacijom.

AB
A AB
0 1
B 0 1 1 B
1 B

f = A B + AB = ( A + A) B = B

5.2. Zadatak

Prikaite funkciju f = (1,3) pomou K-tablice, i zatim odredite minimalni oblik funkcije.
Usporedite s analitikom minimizacijom.

A A+ B A+B
0 1
B
B 0

1 0 0 B

Direktno: upisati maksterme, minimizirati i proitati kao komplement od minimizacije


koja bi se radila da su upisane jedinice.

f = ( A + B )( A + B ) = ( AA + B ) = B

Indirektno: upisati maksterme i "praviti se" da su mintermi (dakle, jedinice), odnosno


raditi sa komplementarnom funkcijom. Obaviti minimizaciju, pa kao rezultat vratiti
komplement dobivenoga!
104 M. upi Zbirka rijeenih zadataka

A AB AB
0 1
B
B 0

1 1 1 B

A
f =B

f = f =B

5.3. Zadatak

Minimizirajte funkciju f = (0,4,9,11,13,15) pomou K-tablice.

ACD
AB
00 01 11 10
AD
CD 00 1 1
01 1 1
D
11 1 1
10 C

A
B

f = A C D + AD
Minimizacija logikih funkcija. 105

5.4. Zadatak

Minimizirajte funkciju f = (0,2,4,6,8,10) pomou K-tablice.

AB
00 01 11 10
BD
CD 00 1 1 1
AD
01
D
11

10 1 1 1 C

A
B

f = AD + BD

5.5. Zadatak

Minimizirajte funkciju f = m(0,1,4,6,15) + d (5,7,8,10,11) pomou K-tablice.

AB
00 01 11 10
CD 00 1 1 x BCD
AC
01 1 x
D
11 x 1 x
10 1 x C

AB A
B

f = A C + A B + BCD
106 M. upi Zbirka rijeenih zadataka

5.6. Zadatak

Minimizirajte funkciju f = (0,2,3,7 ) pomou K-tablice.

AC
AB
00 01 11 10
BC
C 0 0 0
1 0 0 C

A
B

f = A C + BC

f = f = ( A + C )( B + C )

5.7. Zadatak

Minimizirajte funkciju f = (0,5,7,8,12,13,15) pomou K-tablice.

BC D
AC D
AB
00 01 11 10
CD 00 0 0 0
01 0 0 BD
D
11 0 0
10 C

A
B
f = BD + AC D + B C D

f = f = ( B + D )( A + C + D)( B + C + D)
Minimizacija logikih funkcija. 107

5.8. Zadatak

Zadana je funkcija f = A B C + AC + ABC + A B C + AB C . Funkciju je potrebno


minimizirati:

a) algebarskom metodom
b) uporabom komplementa funkcije
c) uporabom dualne funkcije
d) K-tablicom
e) metodom Quine-McCluskey

a) algebarska metoda

f = A B C + AC + ABC + A B C + AB C
= A B (C + C ) + AC (B + B ) + AC
= A B + AC + AC
= A B + A(C + C )
= AB + A
= (A + A ) (A + B )
= A+ B

b) uporaba komplementa: f = f

f = A B C + AC + ABC + A B C + AB C
= A B C AC ABC A B C AB C
= ( A + B + C ) (A + C ) (A + B + C ) (A + B + C ) (A + B + C )
= ( A + B + C ) (A + B + C ) (A + C + B ) (A + C + B ) ( A + C )
= ( A + B + C C ) ( A + C + BB ) ( A + C )
= ( A + B ) (A + C ) (A + C )
= ( A + B ) ( A + CC )
= (A + B) A
= A A + B A
= AB

f = f
= AB
= A+ B

c) uporabom dualne funkcije f = [ f D ]D


108 M. upi Zbirka rijeenih zadataka

f D = ( A + B + C ) ( A + C ) (A + B + C ) (A + B + C ) ( A + B + C )
= ( A + B + C ) (A + B + C ) (A + C + B ) (A + C + B ) ( A + C )
= ( A + B + CC ) ( A + C + BB ) ( A + C )
= ( A + B ) (A + C ) ( A + C )
= ( A + B ) ( A + CC )
= (A + B ) A
= AA + AB
= AB

f = [AB ]D
= A+ B

d) Ukoliko je funkcija zadana kao suma minterma, funkcija se moe direktno upisati u
K-tablicu. Ako to nije ispunjeno, funkciju moemo svesti na sumu minterma:

f = A B C + AC + ABC + A B C + AB C
= A B C + A( B + B )C + ABC + A B C + AB C
= A B C + ABC + AB C + ABC + A B C + AB C
= (0,7,5,6,1,4)
= (0,1,4,5,6,7 )

Drugi nain ako je funkcija zapisana kao suma produkata koji nisu nuno mintermi jer
analiza lan po lan. Jedini lan zadane funkcije koji nije minterm jest AC.
Zakljuujemo da je funkcija jednaka 1 kada su A i C jednaki 1, neovisno o ostalim
varijablama (u ovom sluaju o varijabli B). Pogledom u tablicu pronalazimo polja za
koja su A i C jednaka 1 i u njih upisujemo jedinice. Ostali lanovi su mintermi, pa njih
moemo upisati direktno.

Dobijemo sljedeu K-tablicu:


B
AB A
00 01 11 10
C 0 1 1 1
1 1 1 1 C

U K-tablici potrebno je pronai to vea pravokutna podruja prekrivena jedinicama.


Vano je napomenuti da dimenzije stranica pravokutnika mogu biti iskljuivo potencije
broja dva. Pogledajmo u K-tablici polje ABC=110 (tu se nalazi upisana jedinica).
Susjedno polje na istoku (ili desno) takoer ima jedinicu. Zaokruimo li ova dva polja,
dobili smo pravokutnik dimenzija 12. Ta dva polja odgovaraju mintermima
ABC + AB C . Ovaj izraz moe se minimizirati: ABC + AB C = AC ( B + B ) = AC ! To
Minimizacija logikih funkcija. 109

takoer vidimo i u K-tablici. Naime, to zaokruenje cijelo se nalazi na podruju


varijable A, i na podruju od C , dok se dio nalazi na podruju od B a dio na podruju
od B . Dakle, moemo zakljuiti da B nema utjecaja i ostaje nam podruje odreeno
presjekom A i C , odnosno AC . No da li je to najbolje to smo mogli minimizirati?
Oito je da smo mogli cijelu desnu stranu tablice obuhvatiti pravokutnikom dimenzija
22, tj. polja ABC = 110, 111, 100 i 101, kao to to prikazuje sljedea tablica:

B
AB A
00 01 11 10
C 0 1 1 1
1 1 1 1 C

Ovo zaokruenje nalazi se iskljuivo na podruju varijable A, dok o B i C ne ovisi jer se


protee i kroz njihove komplemente. Dakle, ovo zaokruenje odgovara funkciji f1=A.

Jo nismo gotovi jer je ostalo jo nezaokruenih jedinica. Npr. polje ABC = 000. Polje
juno takoer sadri jedinicu pa ih moemo prekriti pravokutnikom dimenzija 21.
Meutim, treba uoiti da ovo podruje ima susjede na istoku prekrivene jedinicama. To
su polja ABC=100 i 101, pa sve zajedno moemo obuhvatiti pravokutnikom dimenzija
22, kao na sljedeoj slici:

B
AB A
00 01 11 10
C 0 1 1 1
1 1 1 1 C

B A

To zaokruenje u potpunosti se nalazi na podruju od B , a ne ovisi o A i C, pa je:


f 2 = B . Time smo, preko f1 i f2, pokrili sve jedinice u tablici, pa konana minimizirana
funkcija glasi:

f = f1 + f 2 = A + B

e) Quine-McCluskey metoda

U d) dijelu zadatka raspisali smo funkciju f kao sumu minterma:


110 M. upi Zbirka rijeenih zadataka

f = A B C + AC + ABC + A B C + AB C
= (0,1,4,5,6,7 )

Grupirajmo ove minterme prema broju jedinica (odgovara broju varijabli bez
komplementa u mintermu) i zapiimo to tablino:

Minterm
000 (0)
001 (1)
100 (4)
101 (5)
110 (6)
111 (7)

Minimizacija se provodi tako da se promatraju mintermi iz dviju susjednih grupa, te


kombiniraju, ako je to mogue. Tijekom cijelog postupka smiju se kombinirati samo oni
mintermi koji se razlikuju u jednom bitu. Kombiniranjem nastaje prikaz koji na mjestu
na kojem se pojavila razlika u bitu ima x (esto se umjesto x jo pie '-'). Npr.
Usporedimo prvi lan prve grupe sa prvim lanom druge grupe: 000 i 001. Razlikuju
se u jednom bitu, pa dobivamo 00x. Radimo novu tablicu u koju upisujemo dobivene
kombinacije kao i oznake minterma koje smo kombinirali. Budui da smo uspjeli
kombinirati minterme 000 i 001, to oznaavamo zvjezdicom:

Minterm
000 * (0) 00x (0,1)
001 * (1)
100 (4)
101 (5)
110 (6)
111 (7)

Prvi minterm prve grupe moemo jo kombinirati i s drugim mintermom druge grupe
(000 i 100 daju x00), pa i to zabiljeimo i oznaimo 100. Zatim ponovimo postupak
usporeujui svaki minterm iz druge grupe sa svakim mintermom iz tree grupe, itd.
Dobije se:

Minterm
000 * (0) 00x (0,1)
x00 (0,4)
001 * (1) x01 (1,5)
100 * (4) 10x (4,5)
1x0 (4,6)
101 * (5) 1x1 (5,7)
110 * (6) 11x (6,7)
111 * (7)

Sada ponavljamo postupak koristei novoizgraenu tablicu. Meutim, od sada na dalje


je potrebno upamtiti slijedee: kombiniranje je mogue samo ako postoji razlika u
jednom bitu (pri emu x-evi, ako postoje, moraju biti prisutni kod oba podatka koje
kombiniramo na istim mjestima, i tu ne moe biti razlike). Dodatno pravilo kae da ako
x koji smo umetnuli nije najljeviji u odnosu na ve postojee oznake x, tu kombinaciju
neemo zapisivati u novoj tablici (ali u staroj oznaavamo da smo napravili tu
Minimizacija logikih funkcija. 111

kombinaciju). Razlog za ovo pravilo je izbjegavanje duplikata. Naime, pokazuje se da


e se ista pokrata dobiti i na zahtijevani nain. Npr. 00x i x01 ne moemo kombinirati
jer postojei x-evi nisu na istim mjestima. 00x i 10x moemo kombinirati, i dobijemo
x0x, to biljeimo u novoj tablici, a u staroj uz 00x i 10x stavljamo zvjezdice. x00 i
x01 takoer moemo kombinirati, pri emu dobijemo x0x. Meutim, treba uoiti da
smo novi x stavili iza ve postojeeg, pa tu kombinaciju ne upisujemo u novu tablicu
(ve smo je dobili u prethodnom koraku), a u staroj tablici stavljamo zvjezdice uz x00 i
x01. Nastavimo li kombinirati do kraja, dobiti emo:

Minterm
000 * (0) 00x * (0,1) x0x (0,1,4,5)
x00 * (0,4)
001 * (1) x01 * (1,5) 1xx (4,5,6,7)
100 * (4) 10x * (4,5)
1x0 * (4,6)
101 * (5) 1x1 * (5,7)
110 * (6) 11x * (6,7)
111 * (7)

Pokuamo li ponovno kombinirati dobivene lanove, vidimo da to vie ne moemo, i tu


zaustavljamo postupak. Sada je potrebno pronai one lanove koje nismo koristili u
nekom od koraka (dakle, koji nemaju zvjezdicu). To su samo x0x i 1xx, odnosno B i A.

Iz ovih lanova kreiramo novu tablicu: stupci odgovaraju mintermima kojima je zadana
funkcija, a retci dobivenim lanovima iz prethodnog koraka. U tablici se ujedno oznai
koje minterme sadri (odnosno pokriva) koji lan.

0 1 4 5 6 7
B (0,1,4,5)    
A (4,5,6,7)    

Slijedei korak je pronalaenje onih lanova koji jedini pokrivaju neki minterm. Npr.
vidimo da B jedini pokriva minterm 0. To znai da je on primarni lan, i moramo ga
uzeti. No, ako smo uzeli njega, onda smo automatski pokrili i minterme 1, 4 i 5.
Oznaimo to:

0 1 4 5 6 7
B (0,1,4,5)     
A (4,5,6,7)    
   

Desno smo oznaili da smo uzeli B , a na dnu tablice smo oznaili koje smo sve
minterme pokrili. Ostali su nepokriveni mintermi 6 i 7, a njih sadri lan A. Kako je on
jedini koji ih sadri, on je takoer primaran lan. Uzmimo i njega, pa oznaimo to je
sve pokrio:

0 1 4 5 6 7
B (0,1,4,5)     
A (4,5,6,7)     
     
112 M. upi Zbirka rijeenih zadataka

Kako su svi mintermi pokriveni, zaustavljamo postupak, i oitavamo minimizirani oblik


funkcije:

f = A+ B

5.9. Zadatak

Minimizirajte funkciju f = (0,1,2,3,4,6,7,12,13,15) pomou Quine-McCluskey metode.

Prvi dio postupka obuhvaa iterativnu primjenu zakona simplifikacije A + A = .

Minterm
0000 * (0) 000x * (0,1) 00xx (0,1,2,3)
00x0 * (0,2) 0xx0 (0,2,4,6)
0x00 * (0,4)
0001 * (1) 00x1 * (1,3) 0x1x (2,3,6,7)
0010 * (2) 001x * (2,3)
0100 * (4) 0x10 * (2,6)
01x0 * (4,6)
x100 (4,12)
0011 * (3) 0x11 * (3,7)
0110 * (6) 011x * (6,7)
1100 * (12) 110x (12,13)
0111 * (7) x111 (7,15)
1101 * (13) 11x1 (13,15)
1111 * (15)

Drugi dio postupka pronalazi primarne lanove (one koji jedini prekrivaju neki od
minterma), te zatim od preostalih lanova pronalazi najmanji broj onih koji pokrivaju
sve ostale minterme. Tablica preostalih lanova:

0 1 2 3 4 6 7 12 13 15
BC D (4,12)   P0
ABC (12,13)   P1
BCD (7,15)   P2
ABD (13,15)   P3
AB (0,1,2,3)      P4
AD (0,2,4,6)     P5
AC (2,3,6,7)     P6
   

Nepokriveni su mintermi: 4, 6, 7, 12, 13 i 15.


Minimizacija logikih funkcija. 113

Kako imamo nepokrivenih minterma, potrebno je odluiti koje jo produkte treba


ukljuiti kako bismo dobili potpuno pokrivanje. Naravno, pri tome treba paziti da se
odabere upravo minimalno potreban broj. Postoji vie naina za donoenje ove odluke,
a jedan od njih bit e opisan u nastavku, i poznat je pod nazivom Pyne-McCluskey
pristup. Kao to emo vidjeti, mogue je da u minimalnom obliku funkcija ima vie
moguih prikaza, koji su svi jednakovrijedni.
.
Pyne-McCluskey pristup

Svim lanovima dajemo imena Pi, i=0, ..., 6. Definiramo funkciju pokrivenosti
minterma p, koja se izvodi iz zahtjeva da svi mintermi koji nisu pokriveni primarnim
lanovima budu pokriveni.

p = (P0 + P5 )(P5 + P6 )(P2 + P6 )(P0 + P1 )(P1 + P3 )(P2 + P3 )


= (P0 + P1P5 )(P6 + P2 P5 )(P3 + P1P2 )
= P0 P3P6 + P1P2 P5 + ostalo

(ostalo su lanovi s etiri ili vie varijabli)

Dakle, dvije su mogunosti. Moemo ukljuiti jo lanove P0, P3 i P6, ili lanove P1, P2 i
P5. Ovisno o tome, dobiju se slijedee funkcije:

f = A B + BC D + ABD + A C

ili

f = A B + ABC + BCD + A D

Napomena: kod funkcije p traimo produkt koji sadri minimalni broj lanova. To je
opet minimizacijski problem jer e produkt sa minimalnim brojem lanova sigurno biti
dio minimalnog zapisa funkcije. Zbog toga prethodno opisani pristup gdje se sve
izmnoi ne mora uvijek odgovarati minimalnom skupu, ve se ovaj podproblem moe
ponovno napasti nekim od minimizacijskih postupaka (ak i Quinne-McCluskey
metodom).

Za vjebu.

Minimizirati ovu funkciju K-tablicom. Ako se rezultat ne slae, gdje je pogreka?


114 M. upi Zbirka rijeenih zadataka

5.10. Zadatak

Metodom Quine-McCluskey minimizirati funkciju f = (4,5,7,8,9,10,11,12,15) .

Minterm
0100 * (4) 010x (4,5) 10xx (8,9,10,11)
1000 * (8) x100 (4,12)
100x * (8,9)
10x0 * (8,10)
1x00 (8,12)
0101 * (5) 01x1 (5,7)
1001 * (9) 10x1 * (9,11)
1010 * (10) 101x * (10,11)
1100 * (12)
0111 * (7) x111 (7,15)
1011 * (11) 1x11 (11,15)
1111 * (15)

Ostali su sljedei nekombinirani lanovi: 010x, x100, 1x00, 01x1, x111, 1x11 i 10xx,
to odgovara redom: A BC , BC D , AC D , A BD , BCD , ACD i AB . Napravimo
tablicu pokrivenosti minterma:
4 5 7 8 9 10 11 12 15
A BC (4,5)  
BC D (4,12)  
AC D (8,12)  
A BD (5,7)  
BCD (7,15)  
ACD (11,15)  
AB (8,9,10,11)    

Minterm 9 pokriven je samo s jednim lanom ( AB ), pa je taj lan primarni. Oznaimo


to je sve pokriveno tim lanom:

4 5 7 8 9 10 11 12 15
A BC (4,5)   P0
BC D (4,12)   P1
AC D (8,12)   P2
A BD (5,7)   P3
BCD (7,15)   P4
ACD (11,15)   P5
AB (8,9,10,11)      P6
   
Svi ostali nepokriveni mintermi pokriveni su s vie od jednog preostalog lana, pa se
postavlja pitanje koje jo lanove odabrati, tako da se pokriju svi mintermi, a zadri
minimalnost funkcije? Rjeenje nudi Pyne-McCluskeyev pristup: iskaz "potrebno je
pokriti preostale lanove" treba zapisati kao Booleovu funkciju, i pronai onaj produktni
Minimizacija logikih funkcija. 115

lan te funkcije koji sadri minimalni broj varijabli. U prethodnoj tablici svi su lanovi
imenovani (P0 = A BC , P1=...). Da bismo pokrili minterm 4, trebamo uzeti P0 ili P1, i da
bismo pokrili minterm 5, trebamo uzeti P0 ili P3, i da bismo pokrili minterm 7, trebamo
uzeti P3 ili P4, i da bismo pokrili minterm 12, trebamo uzeti P1 ili P2, i da bismo pokrili
minterm 15, trebamo uzeti P4 ili P5. Ovo moemo zapisati u obliku funkcije (obratiti
panju na podebljane 'i' i 'ili' u prethodnoj reenici):

p = (P0 + P1 )(P0 + P3 )(P3 + P4 )(P1 + P2 )(P4 + P5 )


= P0 P1P3P4 + P0 P1P3P5 + P0 P2 P3 P4 + P0 P2 P3P5 + P0 P1P4 + P0 P1P4 P5
+ P0 P2 P4 + P0 P2 P4 P5 + P0 P1P3 P4 P5 + P0 P2 P3P4 P5 + P0 P1P2 P3P4
+ P0 P1P2 P3 P5 + P0 P1P2 P4 + P0 P1P2 P4 P5 + P1P3P4 + P1P3 P5
+ P1P2 P3P4 + P1P2 P3 P5 + P1P3 P4 P5 + P1P2 P3 P4 P5

Minimalni broj varijabli u produktima iznosi 3, i to u dva sluaja. Dakle, moemo uzeti
jo sljedee lanove:

P0, P1 i P4, tj. A BC , BC D i BCD


P0, P2 i P4, tj. A BC , AC D i BCD
P1, P3 i P4, tj. BC D , A BD i BCD
P1, P3 i P5, tj. BC D , A BD i ACD

Tada su minimalni oblici funkcije redom:

f = AB + A BC + BC D + BCD
f = AB + A BC + AC D + BCD
f = AB + BC D + A BD + BCD
f = AB + BC D + A BD + ACD

Svi ovi oblici su minimalni.

5.11. Zadatak

Metodom K-tablica minimizirati funkciju:

f = m(0,4,10,17,21,26,27,31) + d (1,5,7,8,11,16,19,20,23,24,25) .

Osim to imamo zadan popis minterma (za koje funkcija poprima 1), imamo zadan i
popis kombinacija za koje nam je vrijednost funkcije nebitna (npr. jer se takav ulaz
nikada nee niti dogoditi), to je oznaeno sumom d-lanova. Budui da nam na tim
mjestima vrijednost funkcije nije bitna, na nekim mjestima emo smatrati da funkcija
poprima 1, a na nekima 0, kako bismo dobili to minimalniji oblik. Minimizacija se
provodi na standardni nain, s time da zaokruenja smijemo iriti i na podruja
prekrivena x-evima (smatrajui da tamo pie 1). No, kao i uvijek, postupak je potrebno
provoditi tako dugo dok se ne pokriju sve jedinice. Ako neki od x-eva ostane
nepokriven, smatrati emo da je vrijednost funkcije na tom mjestu ba nula, pa to
neemo niti trebati pokrivati.
116 M. upi Zbirka rijeenih zadataka

BD

ABC
000 001 011 010 100 101 111 110
DE 00 1 1 X X X X
ADE
01 X X 1 1 X
E E
11 X X X X 1 1
10 1 D
1 D

B B
C C
BC D

Koristili smo tablicu za 5 varijabli koja se temelji na 3D prikazu, a ne direktno na


Grayevom kodu (vidi dodatak K-tablice).

Npr. x-eve na 10000 i 10100 promatrali smo kao jedinice, kako bismo dobili to vee
zaokruenje kod jedinica 10001 i 10101, dok smo x-eve na 01000 i 00111 zanemarili.

5.12. Zadatak

Metodom K-tablica minimizirati funkciju:

f = (0,2,3,6,7,8,10,11) .

BD
AB
00 01 11 10 AC
CD 00 0 0 BC
01
D
11 0 0 0
10 0 0 0 C

A
B

Prilikom minimizacije nule gledamo kao jedinice, i obavimo klasinu minimizaciju,


ime zapravo dobijemo minimizirani komplement funkcije:
Minimizacija logikih funkcija. 117

f = AC + BD + BC

pa je:

f = f = ( A + C )( B + D)( B + C )

Komentar: Zato su polja 0000, 1000, 0010 i 1010 susjedna? Sigurno znamo da su polja
0000 i njegovo zapadno polje 1000 susjedni. Meutim, ta dva polja imaju na sjeveru
polja 0010 i 1010 sa kojima su susjedna, pa se ta etiri polja mogu obuhvatiti
pravokutnikom dimenzija 22.

5.13. Zadatak

Metodom K-tablica minimizirati funkciju:

f = m(5,9,12,15) + d (2,7,8,10,13) .

BD
AB AC
00 01 11 10
CD 00 1 X
01 1 X 1
D
11 X 1
10 X X C

A
B

f = AC + BD

5.14. Zadatak

Metodom K-tablica minimizirati funkciju f ( A, B, C , D) = m(0,2,4,7,8,9,10,11,13,15) :


a) kao minimalnu sumu parcijalnih produkata,
b) kao minimalne produkte parcijalnih suma.

a) Pronalaenje minimalne sume parcijalnih produkata:


118 M. upi Zbirka rijeenih zadataka

BD
AB
00 01 11 10
CD 00 1 1 1
01 1 1 AD
ACD 11 1 1 1
10 1 1

BCD

f = B D + BCD + AD + A C D

b) Pronalaenje minimalog produkta parcijalnih suma:

AB
00 01 11 10
CD 00 0
01 0 0 ABD
11 0
ABD
10 0 0

ACD BCD

f = ABD + A B D + A C D + BCD
f = (A + B + D )(A + B + D )(A + C + D )(B + C + D )

5.15. Zadatak

K-tablicama minimizirati funkciju f ( A, B, C , D) = m(1,3,12,13,14,15) ako je poznato da za


ulazne varijable uvijek vrijedi B + D = 1 .
Minimizacija logikih funkcija. 119

Iz injenice da e za ulazne varijable uvijek vrijediti izraz B + D = 1 , zakljuujemo da


se nikada nee dogoditi da na sklop koji realizira zadanu funkciju doe ulaz za koji
tvrdnja ne vrijedi, tj:

B + D =1 B + D 1 B D 0 B D =1

Ovaj je umnoak jednak 1 kada su oba njegova elementa istovremeno jednaka 1, dakle
B = 1 D = 1 , odnosno B = 0 D = 0 (neovisno o A i C), to daje minterme oblika
ABCD = 00, dakle minterme m0, m2, m8, m10. Kako se ti mintermi nikada nee
pojaviti, u svrhu minimizacije moemo ih tretirati kao don't care. Tada je postupak
minimizacije prikazan u nastavku.

AB AB
AB
00 01 11 10
CD 00 X 1 X
01 1 1
11 1 1
10 X 1 X

f = AB + A B

5.16. Zadatak

Zadana je funkcija
f ( A, B, C , D, E ) = m(0,4,10,17,21,26,27,31) + d (1,5,7,8,11,16,19,20,23,24,25)
Minimizirati funkciju uporabom Quine-McCluskey metode.

Postupak rjeavanja slian je standardnom postupku, uz neke modifikacije:

1. Uz svaki se produkt vodi status produkta (u postupku e biti oznaen D:


zastavicom gdje e vrijednost bita 1 oznaavati da je cijeli produkt zanemariv, tj.
dontcare, a vrijednost 0 da je produkt nezanemariv, odnosno sadri barem jednu
jedinicu koja je bitna za funkciju).

2. Prilikom kombiniranja produkata u svrhu minimizacije, D: polje rezultata je


logika I operacija D: polja kombiniranih produkata (to je intuitivno jasno -
minimizirani produkt je i dalje zanemariv samo ako su oba produkta koja su se
minimizirala bili zanemarivi).
120 M. upi Zbirka rijeenih zadataka

Postupak zapoinje tako da se generira poetna tablica koja sadri sve navedene
minterme (bitne i zanemarive) naravno, oznaene D: zastavicom. Nakon to se
provede prvi korak do kraja, u drugom se koraku generira klasina tablica koja u
stupcima sadri samo one minterme koji nisu bili zanemarivi, a u retcima samo one
produkte koji nisu bili oznaeni, i dodatno, koji nemaju zastavicu D: postavljenu na 1.

Evo rjeenja:

00000 * D:0 (0) 00X00 * D:0 (0, 4) X0X00 * D:0 (0, 4, 16, 20) X0X0X D:0
0000X * D:0 (0, 1) 00X0X * D:0 (0, 1, 4, 5) (0,1,4,5,16,17,20,
0X000 * D:0 (0, 8) X000X * D:0 (0, 1, 16, 17) 21)
X0000 * D:0 (0, 16) XX000 D:0 (0, 8, 16, 24)

00100 * D:0 (4) 0010X * D:0 (4, 5) X010X * D:0 (4, 5, 20, 21)
00001 * D:1 (1) X0100 * D:0 (4, 20) X0X01 * D:0 (1, 5, 17, 21)
01000 * D:1 (8) X0001 * D:0 (1, 17) X10X0 D:0 (8, 10, 24, 26)
10000 * D:1 (16) 00X01 * D:1 (1, 5) 10X0X * D:0 (16, 17, 20, 21)
010X0 * D:0 (8, 10) 1X00X D:0 (16, 17, 24, 25)
X1000 * D:1 (8, 24)
1000X * D:0 (16, 17)
10X00 * D:1 (16, 20)
1X000 * D:1 (16, 24)

01010 * D:0 (10) X1010 * D:0 (10, 26) X101X D:0 (10, 11, 26, 27)
10001 * D:0 (17) 0101X * D:0 (10, 11) 10XX1 D:0 (17, 19, 21, 23)
00101 * D:1 (5) 10X01 * D:0 (17, 21) 1X0X1 D:0 (17, 19, 25, 27)
10100 * D:1 (20) 100X1 * D:0 (17, 19) X01X1 D:0 (5, 7, 21, 23)
11000 * D:1 (24) 1X001 * D:0 (17, 25) 110XX D:0 (24, 25, 26, 27)
X0101 * D:0 (5, 21)
001X1 * D:1 (5, 7)
1010X * D:0 (20, 21)
110X0 * D:0 (24, 26)
1100X * D:1 (24, 25)

10101 * D:0 (21) 101X1 * D:0 (21, 23) 1XX11 D:0 (19, 23, 27, 31)
11010 * D:0 (26) 1101X * D:0 (26, 27)
00111 * D:1 (7) X0111 * D:1 (7, 23)
01011 * D:1 (11) X1011 * D:0 (11, 27)
10011 * D:1 (19) 1X011 * D:0 (19, 27)
11001 * D:1 (25) 10X11 * D:1 (19, 23)
110X1 * D:0 (25, 27)

11011 * D:0 (27) 11X11 * D:0 (27, 31)


10111 * D:1 (23) 1X111 * D:0 (23, 31)

11111 * D:0 (31)

Pogledajmo kako smo primjenjivali pojedina pravila. U prvoj koloni tablice nalaze se
samo mintermi (dakle, produkti s maksimalnim brojem varijabli) grupirani po broju
jedinica. Prvi minterm u prvoj grupi ima D: 0; to je zato to je taj minterm naveden u
popisu bitnih minterma (dakle, nije dontcare). Drugi minterm u drugoj grupi (00001)
ima D: 1 jer je to minterm 1 koji je naveden u listi dontcare funkcije f.

Pogledajmo sada drugi stupac. Kombiniranjem minterma 0 i 1 dobili smo minterm


0000X uz D: 0. To je zato to je u tu kombinaciju ukljuen implikant 0 koji je bitan za
funkciju pa je i cijeli produkt bitan za funkciju, odnosno nije dontcare. Meutim, kada
smo kombinirali minterme 1 i 5, dobili smo produkt 00X01 koji ima D: 1, tj. cijeli
produkt je zanemariv. Razlog lei u injenici da smo kombinirali minterme 1 i 5 koji su
oba zanemarivi, pa je i nastali produkt zanemariv. No zato su nam uope potpuno
zanemarivi produkti bitni? Postoji mogunost da e se u budunosti neki takav nebitni
produkt ipak spojiti s nekim bitnim to e pomoi u minimizaciji funkcije. Da je to
istina, pogledajmo upravo na nebitnom produktu (1,5). U treem stupcu taj smo produkt
Minimizacija logikih funkcija. 121

kombinirali s nezanemarivim produktom (0,4), i dobili produkt (0,1,4,5) koji je takoer


nezanemariv.
Pogledajmo sada i drugi korak.

0 4 10 17 21 26 27 31
c'd'e' (0, 8, 16, 24)  P0
bc'e' (8, 10, 24, 26)   P1
ac'd' (16, 17, 24, 25)  P2
bc'd (10, 11, 26, 27)    P3
ab'e (17, 19, 21, 23)   P4
ac'e (17, 19, 25, 27)   P5
b'ce (5, 7, 21, 23)  P6
abc' (24, 25, 26, 27)   P7
ade (19, 23, 27, 31)    P8
b'd' (0, 1, 4, 5, 16, 17, 20, 21)      P9
     

Uoavamo da postoje neoznaeni mintermi. Zbog toga primjenjujemo Pyne-McCluskey


pristup za pronalaenje minimalnog broja produkata koji ih pokriva.

Zahtjev:
p = (P1 + P3)(P1 + P3 + P 7 )

Rjeenje jednadbe:
p = P1 + P1 P3 + P1 P 7 + P3 + P3 P 7

Rjeenja s minimalnim brojem lanova su:


P1
P3

Postoje dakle dva minimalna oblika funkcije f:

1. f = bc'e' + ade + b'd'


2. f = bc'd + ade + b'd'

5.17. Zadatak

Zadane su funkcije
f 1 = (0,1,2,4,5,11,15) , f 2 = (0,2,4,13,15) , f 3 = (0,1,3,4,5,7,13,15) .
Pronai minimalni oblik ovih funkcija takav da je ukupni broj produkata u svim funkcijama
minimalan.

Ovaj problem moe se rijeiti uporabom Quine-McCluskey postupka opisanog u


nastavku. Postupak je slian standardnom postupku, uz neke modifikacije:
122 M. upi Zbirka rijeenih zadataka

Uz svaki se produkt vodi popis pripadnosti tog produkta pojedinim funkcijama


(u postupku e biti oznaen F: poljem gdje e i-ti bit oznaavati pripadnost (1)
ili odsustvo (0) i-toj funkciji.
Prilikom kombiniranja produkata u svrhu minimizacije, F: polje rezultata je
logika I operacija F: polja kombiniranih produkata (to je intuitivno jasno -
minimizirani produkt pripada i-toj funkciji samo ako oba produkta koja su se
minimizirala pripadaju i-toj funkciji). Ukoliko je F: polje rezultata jednako 0,
tada se taj minimizirani produkt odbacuje.
Prilikom kombiniranja produkata u svrhu minimizacije oznaavaju se samo oni
produkti ije je F: polje jednako F: polju kombiniranog produkta! Inae se
produkt ne oznaava (iako je iskoriten za kombiniranje).

Uz ove napomene postupak je sljedei (provodi se u tri faze opisane u nastavku).

U prvoj fazi pronalaze se primarni implikanti (produkti). Ova se faza ni po emu ne


razlikuje od standarnog Quine-McCluskey postupka (osim to treba paziti na
manipuliranje zastavicama F).

U drugoj fazi konstruira se tablica pokrivanja primarnih implikanata i minterma za sve


funkcije zajedniki (konstruira se jedna tablica koja ima onoliko zasebnih dijelova
koliko ima funkcija). Retci tablice sadre sve neoznaene produkte iz prethodnog
koraka. Ideja ovog koraka jest pronai minimalni skup zajednikih produkata koji e
sigurno biti dovoljan za realizaciju svih funkcija u ovoj fazi ne obavlja se
minimizacija pojedinane funkcije! Ovdje su mogua dva ishoda: ili e svi mintermi
svake funkcije biti pokriveni odmah, ili e se morati provesti Pyne-McCluskey kako bi
se pokrili mintermi koje ne pokriva niti jedan bitni primarni implikant.

Konano, u treoj fazi trae se minimalni oblici svake funkcije zasebno. Pri tome se jo
jednom moe konstruirati tablica (iz koje su izbrisani oni produkti koji su ispali u
drugoj fazi), ili se moe koristiti postojea tablica (uz krianje izbaenih produkata).
Specifinost ove faze jest da minimizacija provodi samo uz produkte koji nisu izbaeni
u drugoj fazi. I opet su mogue dvije situacije: ili e se sada svi mintermi za svaku
funkciju moi pokriti runo, ili se opet moe primjeniti Pyne-McCluskey.

Tablica koja prikazuje prvu fazu prikazana je u nastavku.

0000 * F:111 (0) 000X * F:101 (0, 1) 0X0X F:101 (0, 1, 4, 5)


00X0 F:110 (0, 2)
0X00 F:111 (0, 4)
0001 * F:101 (1) 0X01 * F:101 (1, 5) 0XX1 F:001 (1, 3, 5, 7)
0010 * F:110 (2) 00X1 * F:001 (1, 3)
0100 * F:111 (4) 010X * F:101 (4, 5)
0101 * F:101 (5) X101 * F:001 (5, 13) X1X1 F:001 (5, 7, 13, 15)
0011 * F:001 (3) 01X1 * F:001 (5, 7)
0X11 * F:001 (3, 7)
1011 * F:100 (11) 1X11 F:100 (11, 15)
1101 * F:011 (13) 11X1 F:011 (13, 15)
0111 * F:001 (7) X111 * F:001 (7, 15)
1111 F:111 (15)

Analizom tablice moe se vidjeti da npr. minterm 15 nije oznaen kao kombiniran
(nema zvjezdice), iako je taj minterm bio kombiniran ak dva puta. Zato onda nije
Minimizacija logikih funkcija. 123

oznaen? Pogledajmo prvi sluaj. Minterm 15 (maska 111) kombiniran je s mintermom


11 (maska 100) ime je dobiven produkt 1X11 (maska 100). Da bismo odluili to
smijemo oznaiti kao kombinirano, prisjetimo se pravila 3 (vidi opis postupka na
poetku zadatka). Maska minterma 11 poklapa se s maskom rezultata zbog toga se
minterm 11 oznaava kao kombiniran. Naime, minterm 11 pojavljuje se samo u funkciji
f1, a dobiveni produkt 1X11 takoer se pojavljuje u f1 time smo minterm 11
iskombinirali u svim funkcijama u kojima je on prisutan, i smijemo ga oznaiti kao
kombiniranog. S druge strane, minterm 15 koji je s njime kombiniran u produkt 1X11
kombiniran je samo kod funkcije f1, dok kod funkcija f2 i f3 nije kombiniran. Zbog
toga minterm 15 ne smijemo oznaiti kao kombiniranog, jer je za funkcije f2 i f3 on
moda bitni primarni implikant. Do slinog zakljuka dolazimo i kod kombiniranja
minterma 13 (maska 011) i minterma 15 (maska 111), pri emu dobivamo rezultat 11X1
(maska 011). Minterm 13 pojavljuje se u funkcijama f2 i f3 i u obje smo ga uspjeli
iskombinirati (njegova maska jednaka je maski rezultata) zato ga oznaavamo kao
kombiniranog. S druge pak strane, minterm 15 koji se nalazi u sve tri funkcije u ovom
smo koraku uspjeli iskombinirati samo u funkcijama f2 i f3 zato ga ne smijemo
oznaiti kao kombiniranog.

Paljivom analizom takoer se moe zakljuiti da smo ipak minterm 15 uspjeli


iskombinirati u sve tri funkcije ali ne u jednom koraku. Budui da opisani postupak
postavlja status kombiniranosti uvijek na temelju jednog kombiniranja (konano,
koristimo samo jednu zvjezdicu), ovakve su situacije mogue. Meutim, nema razloga
za zabrinutost. Produkte koji su doista suvini moi emo izbaciti u sljedeoj fazi
Quine-McCluskey postupka.

U nastavku je prikazana tablica konstruirana u okviru druge faze. Produkt P1 uzet je


zato to je bitni primarni implikant za funkcije f1 i f2, P2 zato to je bitni primarni
implikant za funkciju f2, P3 zato to je bitni primarni implikant za funkciju f1, P4 zato
to je bitni primarni implikant za funkciju f2, P5 zato to je bitni primarni implikant
funkcije f1 a P6 zato to je bitni primarni implikant za funkciju f3. Odabirom ovih
produkata svi su mintermi u svim funkcija pokriveni, i korak je gotov. Produkti P0 i P7
pokazali su se kao suvini, i u sljedeem koraku njih emo zanemariti.

f1 f2 f3
0 1 2 4 5 11 15 0 2 4 13 15 0 1 3 4 5 7 13 15
abcd    P0

a'b'd'      P1

a'c'd'        P2

acd    P3

abd      P4

a'c'          P5

a'd      P6

bd     P7
                   
124 M. upi Zbirka rijeenih zadataka

Da se je u ovom koraku dogodila situacija u kojoj svi mintermi nisu pokriveni, postupak
bismo nastavili Pyne-McCluskey metodom. Cilj bi bio pronai jo minimalni broj
produkata koje treba uzeti, tako da se pokriju sve funkcije. Produkti koji bi nakon tog
koraka ostali neiskoriteni, takoer bi se zanemarili u sljedeoj fazi.

U naem primjeru, pronaeni bitni primarni implikanti P1-P6 pokrivaju sve minterme i
dovoljni su za realizaciju svih funkcija (produkti P0 i P7 automatski se ne smiju koristiti
elimo li zaista minimalni zapis funkcija).

Prelazimo u sljedeu (posljednju) fazu. Cilj je samo uporabom dozvoljenih produkata


(P1-P6) pokriti svaku funkciju, ali na minimalan nain. Provedimo postupak odabira
bitnih primarnih implikanata u tablici samo za f1:

f1
0 1 2 4 5 11 15
a'b'd'    P1

a'c'd'   P2

acd    P3

abd P4

a'c'      P5

a'd P6
      

Dobili smo potpuno pokrivanje, i minimalni oblik P1+P3+P5, tj.

f1 = a'b'd' + acd + a'c'

Provjera za f2 takoer daje jednoznaan rezultat:

f2
0 2 4 13 15
a'b'd'    P1

a'c'd'    P2

acd P3

abd    P4

a'c' P5

a'd P6
    

i minimalni oblik P1+P2+P4:

f2 = a'b'd' + a'c'd' + abd

Pogledajmo jo i funkciju f3:


Minimizacija logikih funkcija. 125

f3
0 1 3 4 5 7 13 15
a'b'd' P1

a'c'd'   P2

acd P3

abd    P4

a'c'     P5

a'd      P6
     

Kod f3 nemamo potpuno pokrivanje. Minterme 0 i 4 treba pokriti uz minimalni utroak


dodatnih produkata. Primjenom Pyne-McCluskey metode dobijemo:

p = ( P 2 + P5)( P 2 + P5) = P 2 + P5 + P 2 P5

Rjeenja s minimalnim brojem lanova su P2 i P5, to vodi na dvije mogue minimalne


implementacije funkcije f3, P4+P6+P2 ili P4+P6+P5:

f3 = a'c'd' + abd + a'd

f3 = abd + a'c' + a'd

5.18. Zadatak

Minimizirati funkciju f = m(3,4,5,7,9,13,14,15) .

Na ovom primjeru pokazat emo jednu od estih pogreaka koje se dogaaju prilikom
minimizacije. Krenimo u minimizaciju tako da pronaemo najvee mogue zaokruenje
minterme 5, 7, 13 i 15, kao to je prikazano na slici.

BD
AB
00 01 11 10
CD 00 1
01 1 1 1
D
11 1 1 1
10 1 C

A
B
126 M. upi Zbirka rijeenih zadataka

Minimizirajmo i preostale lanove:

BD A BC
AB AC D
00 01 11 10
CD 00 1
01 1 1 1
D
11 1 1 1
10 1 C

A ABC
A CD B

Na prvi pogled izgleda da je rezultat minimizacije funkcija:

f = BD + ABC + A CD + A BC + AC D

No analizirajmo sada malo bolje prvo zaokruenje koje smo napravili. Osnovna ideja
minimizacije jest pokriti sve minterme, ali tako da se u svakom zaokruenju nalazi
barem jedan minterm kojeg ne pokriva niti jedno drugo zaokruenje to je uvjet
minimalnosti. No kao to vidimo, minterm 5 spojen je i s mintermom 4, minterm 7 i s
mintermom 3, minterm 13 i s mintermom 9 a minterm 15 i s mintermom 14. Dakle,
svaki od ta etiri minterma dodatno je pokriven nekim drugim zaokruenjem, te je stoga
redundantan. To veliko zaokruenje treba izbaciti iz dobivenog izraza, kako bismo
dobili minimalni oblik.

Konani rezultat minimizacije prikazan je slikom:

A BC
AB AC D
00 01 11 10
CD 00 1
01 1 1 1
D
11 1 1 1
10 1 C

A ABC
A CD B

Minimalni oblik zadane funkcije tada je:


Minimizacija logikih funkcija. 127

f = ABC + A CD + A BC + AC D

Pokuajmo sada razmiljati na drugi nain. Izbacili smo najvee zaokruenje, a ostavili
manja (dakle, koja ovise o vie varijabli). Moemo li nekako ipak to najvee
zaokruenje ostaviti, a manja proglasiti redundantima? Npr. pokuajmo sa
zaokruenjem koje obuhvaa minterme 3 i 7. Kada bi veliko zaokruenje ostalo, ono bi
pokrivalo minterm 7. No minterm 3 nitko drugi ne pokriva! A budui da prilikom
minimizacije uvijek traimo najvea mogua zaokruenja, minterm 3 nuno emo
pokriti zaokruenjem koje se protee preko minterma 7. Dakle, zaokruenje 3 i 7 nuno
ostaje. Slinu analizu moemo provesti i za ostala dvolana zaokruenja. Svako od njih
pokriva jedan minterm koji nitko drugi ne pokriva. Konaan rezultat analize slae se,
dakle, s prethodnim rjeenjem potrebno je odbaciti veliko zaokruenje.

Ovakve pogreke vrlo su este u rjeavanju zadatka minimizacije. Zbog toga je nakon
postupka minimizacije uvijek potrebno provjeriti uvjet minimalnosti:

Uvjet minimalnosti svako zaokruenje koje ulazi u minimalni oblik funkcije mora
imati barem jedan minterm (ili maksterm) koji je pokriven iskljuivo njime.

Iz ovog pravila slijedi i uvjet redundantnosti:

Uvjet redundantnosti zaokruenje iji je svaki minterm (ili maksterm) pokriven jo


nekim zaokruenjem jest redundantno.

5.19. Zadatak

Minimizirati funkciju f = m(0,2,8,9,10,11,13,15) .

Pokaimo opet "toan" nain rjeavanja:

BD
AD
AB
AB
00 01 11 10
CD 00 1 1
01 1 1
11 1 1
10 1 1
128 M. upi Zbirka rijeenih zadataka

Dakle, imamo veliko zaokruenje skroz desno ( AB ), veliko zaokruenje u sredini


( AD ), i veliko zaokruenje minterma u kutevima tablice ( B D ).

Rjeenje je, dakako, krivo! Paljivom analizom moe se uoiti da je prvo zaokruenje
( AB ) redundantno (moete li objasniti zato?). Ispravno rjeenje tada je:

BD
AD
AB
00 01 11 10
CD 00 1 1
01 1 1
11 1 1
10 1 1

Minimalni oblik funkcije glasi:

f = B D + A D

5.20. Zadatak

Zadana je funkcije f koja za ulazni trobitni binarno kodirano broj odreuje da li je broj djeljiv
sa 4.
a) pronai minimalni oblik funkcije f,
b) pronai minimalni oblik funkcije f, ako je poznato da e sklop koji obavlja ovu funkciju
ulaz dobivati sa sklopa koji obavlja kvadriranje.

a) prikaimo funkciju tablino:

n b2 b1 b0 f
0 0 0 0 1
1 0 0 1 0
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 0
6 1 1 0 0
7 1 1 1 0
Minimizacija logikih funkcija. 129

b1 b0
b1b0
00 01 11 10
b2 0 1
1 1 b2

b1
b0

f = b1 b0

b) ako je ulaz sklopa koji ostvaruje funkciju f spojen na izlaz sklopa koji obavlja
kvadriranje, tada se na njegovom izlazu mogu pojaviti samo brojevi 0, 1 i 4 jer su to
jedini kvadrati cijelih brojeva koji se mogu u binarnom zapisu zapisati pomou tri bita.
No to znai da nam je rezultat funkcije f bitan samo u ta tri sluaja, a ostalo nas nije
briga. Zbog toga tablini prikaz funkcije korigiramo kao to je prikazano u nastavku.

n b2 b1 b0 f
0 0 0 0 1
1 0 0 1 0
2 0 1 0
3 0 1 1
4 1 0 0 1
5 1 0 1
6 1 1 0
7 1 1 1

b0
b1b0
00 01 11 10
b2 0 1
1 1 b2

b1
b0

f = b0
130 M. upi Zbirka rijeenih zadataka

5.21. Pismeni ispit, 25. 02. 2004, 1. zadatak

Zadana je dvoizlazna funkcija f=[f1, f2] pri emu su izlazi definirani sljedeim izrazima:
f1 ( A, B, C , D ) = m(0,1,2,6,8,10 ) i f 2 ( A, B, C , D ) = M (0,1,2,3,4,5,9,11,12,13,14,15) .
Pronai njezin minimalni oblik koristei Quine-McCluskey metodu minimizacije za
vieizlazne funkcije.

Funkcija f2 nije zadana u prikladnom obliku za Quinne-McCluskey metodu trebamo


njezin zapis u obliku sume minterma. Slijedi:

f 2 = m(6,7,8,10) .

Dalje je postupak standardan.

0000 * F:10 (0) 000X F:10 (0, 1) X0X0 F:10 (0, 2, 8, 10)
00X0 * F:10 (0, 2)
X000 * F:10 (0, 8)
0001 * F:10 (1) 0X10 F:10 (2, 6)
0010 * F:10 (2) X010 * F:10 (2, 10)
1000 * F:11 (8) 10X0 F:11 (8, 10)
0110 F:11 (6) 011X F:01 (6, 7)
1010 * F:11 (10)
0111 * F:01 (7)

f1 f2
0 1 2 6 8 10 6 7 8 10
a'bcd'   P0
a'b'c'    P1
a'cd'   P2
ab'd'      P3
a'bc    P4
b'd'     P5
       

Iz tablice se vidi da postoje neki neoznaeni mintermi. Potrebno je primijeniti Pyne-


McCluskey pristup za pronalaenje minimalnog broja produkata koji ih pokriva, a jo
nisu oznaeni (P0, P2, P5).
p = ( P 2 + P5) ( P 0 + P 2) = P 2 + P 0 P 2 + P 0 P5 + P 2 P5

Minimalno pokrivanje postie se dodavanjem produkta P2. Produkte P0 i P5 tada se ne


smije koristiti, pa emo ih izbaciti iz tablice:

f1 f2
0 1 2 6 8 10 6 7 8 10
a'b'c'   P1
a'cd'   P2
ab'd'     P3
a'bc   P4
Minimizacija logikih funkcija. 131

Sada treba na temelju dobivene tablice minimizirati svaku funkciju posebno. Imamo:

f1
0 1 2 6 8 10
a'b'c'    P1
a'cd'    P2
ab'd'    P3
a'bc P4
     

f 1 = A B C + A CD + AB D

f2
6 7 8 10
a'b'c' P1
a'cd' P2
ab'd'    P3
a'bc    P4
   

f 2 = AB D + A BC

5.22. Pismeni ispit, 10. 10. 2003, 3. zadatak

Funkcije f(A,B,C,D) i g(A,B,C,D) zadane su f AB g AB


slikom. Metodom K-tablica izraunati CD 1 0 0 0 CD 0 1 0 1
0 1 1 0 0 1 0 0
minimalni oblik funkcije z = f g , ako je
1 0 0 1 0 0 1 0
poznato da e uvijek vrijediti:
0 1 1 0 0 1 1 1
B (D + A) (B + A D ) = 0 .

U sluaju da imamo tablini prikaz funkcija, zadatak moemo rjeavati na dva naina.
Prvi nain podrazumijeva oitavanje algebarskog oblika svake od funkcija f i g,
obavljanje zadane operacije nad njima kako je to definirano izrazom funkcije z, i zatim
zapis funkcije z natrag u tablini oblik kako bismo mogli obaviti minimizaciju.

Drugi nain (koji emo i koristiti u nastavku) prestavlja direktan rad s tablinim
oblikom funkcija (ime se izbjegava pretvorba u algebarski oblik i vraanje natrag).
Naime, vrijedi sljedee. Ako tablini zapis funkcije promatramo kao matricu, tada e
(uz zadan izraz za z) vrijediti:

z (i, j ) = f (i, j ) g (i, j )

Dakle, definiranu operaciju treba jednostavno primijeniti za svaki par elemenata tablice.
Dobije se sljedei prikaz funkcije z:
132 M. upi Zbirka rijeenih zadataka

z: AB

CD
0 0 1 0
1 1 0 1
0 1 0 0
1 1 1 0

Prije no to krenemo na minimizaciju, moramo jo iskoristiti sve to bi moglo dodatno


pridonijeti minimizaciji. Budui da znamo da e uvijek vrijediti izraz:

B ( D + A) ( B + A D ) = 0

slijedi:

(B + A D ) (B + A D ) = 0 A D (B + B ) = 0 A D = 0

Odavde moemo oitati koje se kombinacije ulaznih varijabli nikada nee pojaviti kod
funkcije, te ih moemo proglasiti don't care vrijednostima. Ako to jo nije oito,
moemo si pomoi i dalje. Naime, ako e prethodni izraz uvijek vrijediti, tada njegov
komplement nikada nee vrijediti:

A D = 0 A D 0 A+ D 1 A+ D = 0

Dakle, nikad nee biti A+D jednako 0, to znai da su oni mintermi kod koji su A i D
istovremeno jednaki 0 (jer je tada i A ILI D jednako 0) zapravo don't care mintermi. To
su redom m0, m2, m4 i m6. Oznaimo te minterme u tablici, i krenimo na minimizaciju.

Minimizacijom tada slijedi:

AB
z: AB
00 01 11 10 BCD
CD 00 1
01 1 1 1
D
11 1
10 1 C

A BD
B

z = A B + BD + B C D
Minimizacija logikih funkcija. 133

5.23. Zadatak

Zadana je funkcija f ( A, B, C ) = (1,5,6,7) . Funkciju je potrebno realizirati uporabom I, ILI i


NE logikih sklopova. Pri tome pretpostaviti da izlaz svakog od osnovnih logikih sklopova
kasni 10 ns.
a) Analizirati rad sklopa koji direktno realizira funkciju.
b) Minimizirati funkciju, prikazati sklopovsku realizaciju i opet analizirati rad.
c) Kako se moe ukloniti hazard u sklopu?

a) Raspiimo funkciju algebarski:

f ( A, B, C ) = A B C + AB C + ABC + ABC

Direktna realizacija ove funkcije prikazana je na slici.

i1
A &
1
B
i2
1 &
C
1 f
1
&
i3

&
i4

Za analizu rada posluit emo se Xilinx WebISE alatom. Svaki od osnovnih sklopova
opisan je kao komponenta u VHDL-u kod koje izlaz kasni za ulazom 10 ns, a opis
cijelog sklopa prikazan je u nastavku.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity sklop1 is
Port ( a : in std_logic;
b : in std_logic;
c : in std_logic;
f : out std_logic);
end sklop1;

architecture Behavioral of sklop1 is


component sklopNOT is
Port ( a : in std_logic;
z : out std_logic);
end component;
134 M. upi Zbirka rijeenih zadataka

component sklopOR4 is
Port ( a, b, c, d : in std_logic;
z : out std_logic);
end component;
component sklopAND3 is
Port ( a, b, c : in std_logic;
z : out std_logic);
end component;
signal ac, bc, cc, i1, i2, i3, i4: std_logic;
begin

ac1: sklopNOT PORT MAP (a,ac);


bc1: sklopNOT PORT MAP (b,bc);
cc1: sklopNOT PORT MAP (c,cc);
i11: sklopAND3 PORT MAP (ac,bc,c,i1);
i21: sklopAND3 PORT MAP (a,bc,c,i2);
i31: sklopAND3 PORT MAP (a,b,c,i3);
i41: sklopAND3 PORT MAP (a,b,cc,i4);
o11: sklopOR4 PORT MAP (i1, i2, i3, i4, f);

end Behavioral;

Kako se sklop ponaa, najbolje se vidi iz simulacije. Pri tome nisu simulirani svi
mogui ulazi, ve samo neki. Rezultat je prikazan na slici.

Da li je izlaz u skladu s oekivanjima? Oito nije jer se na mjestima gdje bi funkcija


trebala biti stalno u '1' pojavljuju kratkotrajni impulsi '0'. Pogledamo li jo malo bolje
valne oblike, vidimo ak da ne vrijedi jedan od temeljnih zakona Booleove algebre, tj.
ne vrijedi A + A = 1 (npr. prvi signal je A, drugi je njegov komplement; u odreenim
trenucima oba signala imaju iste vrijednosti)!

Analizirajmo sada detaljnije jedan konkretan sluaj. U trenutku t = 300 ns signali A, B i


C imaju vrijednost '1'. U trenutku t = 400 ns signal C pada na vrijednost '0'. Nedugo
nakon toga izlaz funkcije je pogrean. Krenimo analizirati sklop od samog izlaza. Izlaz
cijelog sklopa je ILI sklop koji e na svome izlazu dati '1' kada mu je barem jedan od
ulaza u '1'. No kako izlaz padne u '0' to oito u jednom trenutku nije bilo zadovoljeno. U
trenutku t = 400 ns izlaz je bio u '1' jer je sklop i3 na svom izlazu drao '1'. Promjenom
signala C na '0' u tom trenutku zapoinje propagacija novog izlaza i3, koji u ovom
sluaju iznosi '0'. Ta nula na izlaz sklopa i3 stigne u trenutku t = 410 ns (jer izlaz sklopa
kasni za ulazom 10 ns). Pogledamo li sada izlaze sklopova i1, i2, i3 i i4, svi su u '0'!
Zbog toga e se 10 ns kasnije, dakle u trenutku t = 420 ns pojaviti izlaz '0'. Meutim,
ovo dakako nije stabilno stanje. Pogledamo li to se dogaa s izlazom i4, vidimo da on
u trenutku t = 420 ns prijee u '1'. Time je ponovno na ulazu ILI sklopa prisutna
jedinica, te izlaz ILI sklopa 10 ns kasnije prelazi u '1', gdje i ostaje.

Iz ove analize vidimo da je vrijeme trajanja pogrenog izlaza jednako 10 ns, a pogreka
se je pojavila zbog toga to je jedinica na izlazu i3 nestala prije no to se je pojavila
Minimizacija logikih funkcija. 135

jedinica na izlazu i4, pa je konani rezultat pojava hazarda. Hazard ovog tipa, gdje je
izlaz stalno u '1' (osim kada kratkotrajno prijee u '0') naziva se statiki '1' hazard. No
zato je izlaz i4 kasnio? Analizirajmo to se dogaa s njegovim ulazima. Prva dva ulaza
spojena su na signale A i B. U trenutku t = 400 ns oni se ne mijenjaju. Na trei se ulaz
dovodi signal C . No on postaje '1' tek u trenutku t = 410 ns, a ne odmah kada C padne
na '0'! Zbog toga sklop i4 na svojim ulazima dobije sve '1' tek u trenutku t = 410 ns te se
njegov odziv '1' dobije 10 ns kasnije, dakle u trenutku t = 420 ns. Oito je glavni krivac
za cijeli dogaaj invertor! Naime, u trenutku t = 400 ns kad je C pao na '0' invertor koji
generira signal C ovu promjenu zakasni 10 ns, tako da na ulaz sklopa i4 signali A i B
dou odmah (u t = 400 ns), a ispravan signal C stigne tek u t = 410 ns. Razlog pojave
hazarda dakle je u razliitom vremenu potrebnom da svi signali prou kroz sklop do
izlaza (signali A, B i C to uine nakon dva sklopa, a njihovi komplementi tek nakon tri
sklopa).

Opisani hazard nastupio je pri prijelazu ABC="111" u ABC="110". Da li se dogaa


hazard na suprotnom prijelazu, tj. ako se iz ABC="110" vratimo natrag u ABC="111"?
Ova se promjena moe pogledati u trenutku t = 500 ns. Hazard se nije dogodio! Zato?
Pogledajmo kako su se sada mijenjali izlazi sklopova i3 i i4. Sklop i3 preao je u '1' ve
u trenutku t = 410 ns, dok je sklop i4 ostao na '1' sve do t = 420 ns, nakon ega je pao na
'0'. Oito je na ulazima ILI sklopa cijelo vrijeme bila prisutna jedinica i nije dolo do
pojave hazarda (iako se moe uoiti da je sklop i4 opet kasnio ak 20 ns s promjenom;
no, sada to kanjenje nije rezultiralo pogrenim radom sklopa).

Koji se zakljuak moe izvesti iz ove analize? Ako je sklop realiziran kao u zadatku (na
izlazu ILI koji dobiva izlaze I sklopova), hazard e se javiti prilikom one promjene
ulaza kod koje jedan od ulaznih signala iz '1' prelazi u '0'. Kako se ovdje svaki minterm
realizira jednim I sklopom, broj hazardnih prijelaza je relativno velik, to potvruju i
rezultati simulacije. Neki od prijelaza kod kojih se javlja hazard prikazani su u tablici,
kao i strelicama u K-tablici.

f: BC
00 01 11 10
A 0 1
1 1 1 1

Prijelaz Razlog hazarda Vidljivo gdje?


"101""001" A pada u '0' t = 200 ns
"111""110" C pada u '0' t = 400 ns
"111""101" B pada u '0' t = 600 ns
"111""001" A i B padaju u '0' t = 800 ns
"110""001" A i B padaju u '0' t = 1200 ns
136 M. upi Zbirka rijeenih zadataka

b) Minimizirajmo funkciju. Dobije se:

f = B C + AB

VHDL model sklopa koji realizira ovu funkciju prikazan je u nastavku.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity sklop2 is
Port ( a, b, c : in std_logic;
f : out std_logic);
end sklop2;

architecture Behavioral of sklop2 is

component sklopNOT is
Port ( a : in std_logic;
z : out std_logic);
end component;
component sklopOR2 is
Port ( a, b : in std_logic;
z : out std_logic);
end component;
component sklopAND2 is
Port ( a, b : in std_logic;
z : out std_logic);
end component;
signal bc, i1, i2: std_logic;

begin

bc1: sklopNOT PORT MAP (b,bc);


i11: sklopAND2 PORT MAP (bc,c,i1);
i21: sklopAND2 PORT MAP (a,b,i2);
o11: sklopOR2 PORT MAP (i1, i2, f);

end Behavioral;

Simulacijom ponaanja sklopa na istu pobudu kao u prvom sluaju dobivamo sljedei
rezultat:

Broj hazardnih impulsa manji je nego u prvom sluaju! Hazardi koji su ostali prikazani
su u tablici:

Prijelaz Razlog hazarda Vidljivo gdje?


"111""101" B pada u '0' t = 600 ns
"111""001" A i B padaju u '0' t = 800 ns
"110""001" A i B padaju u '0' t = 1200 ns
Minimizacija logikih funkcija. 137

Nestali su hazardi pri prijelazu "101""001" kao i pri prijelazu "111""110".


Pogledamo li kako izgleda ova funkcija prikazana u K-tablici, razlog njihovog nestanka
odmah e biti jasan.

f: BC
00 01 11 10
A 0 1
1 1 1 1

Sivim strelicama oznaeni su uklonjeni hazardi. Gdje se je to dogodilo? Odgovor je


unutar svakog produkta! Pogledajmo npr. produkt B C . Izvorno je hazard nastajao kada
je A prelazio iz '1' u '0', uz B='0' i C='1'. Kako sada ova oba minterma pokriva jedan
produkt B C (koji uope ne ovisi o A), ne dolazi do hazarda. Meutim, hazardi izmeu
pojedinih produkata ostali su i dalje.

c) to se jo moe uiniti kako bismo dodatno uklonili pojavu hazarda? esto se na


promjene ulaza funkcije moe postaviti sljedei uvjet (i): dozvoljena je istovremena
promjena samo jedne ulazne varijable. To u K-tablici znai da e se ulazi mijenjati
samo u susjedna polja. Na taj nain nestaju jo dva hazarda: "111""001" i
"110""001":

f: BC
00 01 11 10
A 0 1
1 1 1 1

Na ovaj su nain preostali jo samo hazardi koji nastaju kada ulazi prelazi iz jednog
produkta u susjedno polje koje pokriva neki drugi produkt. Takvi se hazardi mogu
ukloniti uvoenjem redundancije; naime, trebamo uvesti novi produkt koji e sadravati
susjedne minterme izmeu kojih nastaje hazard. U zadatku to konkretno znai da treba
uvesti redundantni produkt AC :

f: BC
00 01 11 10
A 0 1
1 1 1 1
138 M. upi Zbirka rijeenih zadataka

Time funkcija poprima oblik f = B C + AB + AC i vie oito nije minimalna. No, ako
vrijedi prethodno uveden uvjet, tada ovako realizirana funkcija vie nema statikog '1'
hazarda. VHDL model sklopa koji realizira funkciju prikazan je u nastavku:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity sklop3 is
Port ( a, b, c : in std_logic;
f : out std_logic);
end sklop3;

architecture Behavioral of sklop3 is

component sklopNOT is
Port ( a : in std_logic;
z : out std_logic);
end component;
component sklopOR3 is
Port ( a, b, c : in std_logic;
z : out std_logic);
end component;
component sklopAND2 is
Port ( a, b : in std_logic;
z : out std_logic);
end component;
signal bc, i1, i2, i3: std_logic;

begin

bc1: sklopNOT PORT MAP (b,bc);


i11: sklopAND2 PORT MAP (bc,c,i1);
i21: sklopAND2 PORT MAP (a,b,i2);
i31: sklopAND2 PORT MAP (a,c,i3);
o11: sklopOR3 PORT MAP (i1, i2, i3, f);

end Behavioral;
Rezultat simulacije uz istu pobudu kao i u prethodnom primjeru prikazan je u nastavku.

Kao to se vidi iz simulacije, jedini preostali hazardi javljaju se pri promjenama ulaza
kod kojih se mijenja vie od jedne varijable istovremeno (ime uvjet (i) nije
zadovoljen). Za sve promjene ulaza koje zadovoljavaju uvjet (i) hazard se ne pojavljuje.

U ovom zadatku provedena je analiza rada sklopa koji funkciju realizira kao sumu
produkata. Pri tome se mogu razmatrati etiri razliita sluaja:

ulazne varijable mijenjaju se iz polja gdje funkcija poprima '0' u polje gdje
funkcija poprima '0',
Minimizacija logikih funkcija. 139

ulazne varijable mijenjaju se iz polja gdje funkcija poprima '0' u polje gdje
funkcija poprima '1',
ulazne varijable mijenjaju se iz polja gdje funkcija poprima '1' u polje gdje
funkcija poprima '0' te
ulazne varijable mijenjaju se iz polja gdje funkcija poprima '1' u polje gdje
funkcija poprima '1'.

Prilikom analize promatrali smo samo zadnji sluaj.

Za vjebu.

Funkcija f iz zadatka moe se takoer prikazati i realizirati kao produkt suma


f = (0,2,3,4) . Sklopovska realizacija funkcije tada e na izlazu imati I sklop.
Analizirajte pri kojim se prijelazima u ovom sluaju javlja hazard (za sva etiri tipa
prijelaza), i to za sluaj kada se svaki maksterm realizira zasebnim sklopom, te za sluaj
kada se obavi minimizacija. Uklonite sve preostale hazarde, uz pretpostavku da e za
promjene ulaznih varijabli vrijediti uvjet (i).

5.24. Zadatak

Kada vrimo minimizaciju funkcije K-tablicom, traimo minimalni zapis funkcije prema
kojim kriterijima? Da li je dobiven prikaz funkcije najminimalniji?

Definirajmo (f,z) mjeru sloenosti implementacije funkcije f kao sumu broja


potroenih logikih sklopova i broja ulaza na svakom od tih sklopova, uz neki zapis z
funkcije f. K-tablicama se dobiva onaj zapis z' funkcije f za koji je (f) minimalno uz
dodatni uvjet da se funkcija implementira kroz maksimalno dvorazinsku logiku (ne
raunajui invertore).

Pogledajmo to na primjeru funkcije f ( A, B, C , D) = ABC + ABCD + ABC + AB CD . Za


realizaciju ove funkcije (uz zadani zapis z) potroili bismo 4 I logika sklopa (2
troulazna i 2 etveroulazna) te jedan etveroulazni ILI sklop. Tada je oito mjera
sloenosti funkcije jednaka (f,z)=4+1+23+24=19.

Nakon minimizacije K-tablicom funkcija f poprima zapis z':


f ( A, B, C , D) = AB + ACD . Mjera sloenosti funkcije sada je jednaka
(f,z')=2+1+22+13=10. Ovime je pronaen minimalni zapis funkcije u obliku sume
parcijalnih produkata.

No moe li se pronai zapis funkcije z'' za koji je mjera sloenosti jo manja? Generalno
govorei, potrebno je izbaciti dodatni uvjet koji postoji kod minimizacije K-tablicom:
funkcija vie ne mora biti izvedena kroz najvie dvije razine logike. Ako to uvaimo,
funkciju f moemo dalje zapisati kao z'': f ( A, B, C , D ) = A ( B + CD) . Mjera sloenosti
funkcije sada je jednaka (f,z'')=2+1+22+12=9. Dakle, pronali smo zapis funkcije kod
kojega je mjera sloenosti jo manja. Meutim, treba napomenuti da dobiveno
rjeenje ima jednu manu u odnosu na rjeenje K-tablica: povean je broj razina logike,
to u isto logikom smislu nema nikakvog utjecaja, no prilikom realizacije funkcije
140 M. upi Zbirka rijeenih zadataka

vei broj razina logike automatski znai i due vrijeme prolaska signala kroz logike
sklopove i time kasnija reakcija samog sklopa.

5.25. Zadatak

Objasnite sljedee pojmove: implikant, primarni implikant, bitni primarni implikant na


primjeru funkcije f ( A, B, C ) = m(1,3,6,7) .

Prikaimo funkciju pomou K-tablice.

AC
BC ABC BC
A BC
00 01 11 10
A 0 1 1
1 1 1 A

B
AB C
ABC ABC

Implikant je svaki produkt koji povlai da je vrijednost funkcije 1 (u tablici to su sva


mogua zaokruenja). Npr. ova funkcija ima etiri implikanta (u tablici zasivljeno) koji
ujedno odgovaraju i mintermima: A B C , A B C , A B C i A B C . Naime, im
je npr. A=0, B=0 i C=1 (to odgovara mintermu A B C ) funkcija je u 1 (dakle, taj
produkt implicira vrijednost funkcije). Osim navedenih, ova funkcija ima jo i sljedee
implikante: A C , A B i B C . Od navedenih 7 implikanata, samo su tri primarna
implikanta: A C , A B i B C . Naime, primarni implikanti su oni implikanti koji nisu
u cijelosti sadrani niti u jednom drugom implikantu. Tako npr. implikant A B C nije
primarni jer je sadran u implikantu A C . Od navedena tri primarna implikanta zadana
funkcija ima samo dva bitna primarna implikanta: A C i A B . Naime, bitni primarni
implikant je primarni implikant koji sadri barem jedan minterm koji nije sadran niti u
jednom drugom primarnom implikantu. Tako npr. bitni primarni implikant A C sadri
minterm A B C koji nije sadran niti u jednom drugom primarnom implikantu. Sada
je jasno i zato B C jest primarni implikant, ali nije bitni primarni implikant: on sadri
minterme A B C i A B C , od kojih je prvi pokriven primarnim implikantom A C
a drugi primarnim implikantom A B .

Vano je uoiti da funkcija moe biti zadana tako da nema niti jedan bitni primarni
implikant! Vidi nerijeene zadatke za primjer.
Minimizacija logikih funkcija. 141

ZADACI ZA VJEBU

1. Pronai sve implikante, primarne implikante te bitne primarne implikante funkcije


f ( A, B, C , D) = m(0,1,4,5,10,13,14) .

2. Pronai sve implikante, primarne implikante te bitne primarne implikante funkcije


f ( A, B, C , D) = m(0,1,3,4,7,12,13,15) . (Naputak: ne postoje bitni primarni implikanti!
Zato?)
3. Ako kao mjeru sloenosti sklopa definiramo sumu broja logikih sklopova i broja ulaza
koje ti sklopovi moraju imati potrebnih za realizaciju funkcije sklopa u zapisu z, u
kakvom su odnosu mjere sloenosti:
a) funkcije f zapisane u obliku minimalne sume parcijalnih produkata i funkcije f
zapisane u obliku minimalnog produkta parcijalnih suma?
b) funkcije f zapisane u obliku minimalne sume parcijalnih produkata i funkcije f
zapisane u obliku minimalnog produkta parcijalnih suma?
c) funkcije f zapisane u obliku minimalnog produkta parcijalnih suma i funkcije f
zapisane u obliku minimalne sume parcijalnih produkata?

4. Zadana je funkcija f ( A, B, C , D) = m(4,5,6,7,8,9,10,11,12,13) . K-tablicom pronai


minimalni oblik funkcije. Naputak: budui da nije zadano treba li minimizirati nule ili
jedinice, potrebno je pronai onaj oblik funkcije koji troi minimalni broj logikih
sklopova.
5. Moe li se Quinne-McCluskey metoda (ili bolje reeno ideja) primijeniti na
pronalaenje minimalnog oblika funkcije u obliku produkta parcijalnih suma? Objasnite
to na primjeru pokuaja minimizacije funkcije f ( A, B, C , D ) = M (0,1,4,5,8,10,11,15) .
to biste trebali dobiti moete provjeriti tako da istu funkciju minimizirate K-tablicom.
6. Zadana je funkcija f ( A, B, C , D, E ) = m(0,1,2,4,5,8,10,16,17,18,21,23,24,26,31) .
Uporabom K-tablica pronai minimalni zapis funkcije:
a) u obliku sume parcijalnih produkata
b) u obliku produkta parcijalnih suma
7. Algebarski minimizirajte funkciju
f ( A, B, C , D, E ) = m(0,1,2,4,5,8,10,16,17,18,21,23,24,26,31) .
8. Zadana je funkcija f. Dvorazinskom logikom ostvariti sklop koji realizira ovu funkciju.
Na raspolaganju su varijable, komplementi varijabli te osnovni logiki sklopovi (I, ILI).
Zadatak rijeiti tako da se ne koristi vie od 3 osnovna logika sklopa. Invertori nisu na
raspolaganju, a f glasi:
f ( A, B, C , D, E ) = (0,1,4,5,8,9,10,11,13,15,16,17,20,21,24,25,26,27,29,31)
9. Projektirati kombinacijski sklop (tablicom) koji zbraja dva dvobitna binarna broja A i B
te generira dvobitni rezultat i bit preljeva: cout r1 r0 = a1 a0 + b1 b0. Quine-McCluskey
metodom pronai minimalni zapis funkcija cout i r0 u obliku sume parcijalnih produkata.
Svaku funkciju minimizirati zasebno.
142 M. upi Zbirka rijeenih zadataka

10. Pismeni ispit 13.09.2004.

Funkcija f ( A, B, C , D) = A B C D + A C D + A B D direktno je realizirana nekim


sklopom S. Provjeriti ima li funkcija statiki hazard, a ako ima, pronai sve prijelaze
gdje se on javlja, te nacrtati sklop S' koji nema statiki hazard. Pretpostaviti da e se
prilikom promjene ulaza uvijek mijenjati samo jedna varijabla.
11. Pronai minimalni zapis funkcije f ( A, B, C , D) = m(0,1,5,8,9,10,14 ) + d (3,4,7,12 ) u
obliku sume parcijalnih produkata. Koristiti metodu Quine-McCluskey.
12. Pronai minimalni zapis funkcije f ( A, B, C , D) = m(0,1,5,8,9,10,14 ) + d (3,4,7,12 ) u
obliku produkta parcijalnih suma. Koristiti metodu Quine-McCluskey.
13. Zadana je vieizlazna funkcija f=[f1,f2]. Realizirajte te funkcije uporabom minimalnog
broja osnovnih logikih sklopova (u najvie dvije razine). Funkcije su:
f 1 ( A, B, C , D) = m(1,2,3,5,6,12,13,14,15) , f 2 ( A, B, C , D) = m(1,3,14,15) + d (0,2 ) .
Naputak: koristite Quine-McCluskey za vieizlazne funkcije prikladno modificiran za
rad s nepotpuno specificiranim funkcijama.

You might also like