Sunteți pe pagina 1din 21

PROIECTAREA LOGIC

Metoda Quine McCluskey


Note de curs
Dr.Ing.Mat. Ion I. Bucur
Aceast metod este utilizabil, n principiu, pentru minimizarea funciilor scalare
ori vectoriale cu un numr arbitrar de variabile. Metoda se poate utiliza pentru
programarea unui calcul automat de minimizare. Minimizarea are loc n doi pai:
(1) stabilirea implicanilor primi, i
(2) calculul acoperirii minimale pentru funcia respectiv.
Metoda utilizeaz scrierea binar a mintermilor funciei i printr-o ordonare judicioas
faciliteaz gsirea implicanilor adiaceni dar i calculul implicanilor de ordin
superior rezultai.
ntr-o prim abordare vor fi prezentate principalele repere ale metodei aplicate
funciilor scalare. Acestea vor facilita mult nelegerea metodei n cazul general,
funciilor booleene vectoriale.
Minimizarea funciilor scalare prin metoda Quine-McCluskey
Generarea mulimii implicanilor primi. n calculul implicanilor primi, descris n cele

ce urmeaz, mintermii funciei sunt numii implicani, sau cuburi, de ordinul 0 ai


funciei. n timp ce, implicanii care rezult prin reducerea unei variabile sau a dou
sau mai multor variabile, sunt implicani de ordinul unu, respectiv de ordinul doi ori
superior. Calculul implicanilor primi se efectueaz considernd att mintermii
funciei ct i mintermii neprecizai ai acesteia (dac exist).
ntr-o prim etap se calculeaz pentru fiecare implicant de ordinul 0 al funciei
ponderea acestuia. Prin ponderea unui implicant se nelege numrul de uniti din
reprezentarea binar a respectivului implicant.
Astfel, spre exemplu, implicanii (de ordinul 0), 0101 i 1101 au ponderea 2, respectiv
3, iar implicanii -1-1 i 01-0 au ponderea 2 (ordinul 2), respectiv 1 (ordinul 1).
Toi implicanii de acelai ordin i avnd aceeai pondere sunt grupai n aceiai clas.
Pe durata calculului implicanilor primi, implicanii de ordine diferite, chiar dac au
aceiai pondere, fac parte din clase distincte.
Procesul de calcul al implicanilor primi ncepe prin aezarea implicanilor iniiali
(adic implicanii de ordinul 0) care au aceeai pondere, ntr-o aceeai clas. Clasele
sunt ntotdeauna etichetate prin valoarea ponderii implicanilor lor.
Etapa a doua, iterativ, este dedicat gsirii implicanilor de ordin superior
(implicanii rezultai prin contopirea a doi implicani adiaceni).
Termenii adiaceni se gsesc ntotdeauna printre implicanii de acelai ordin din dou
clase succesive.

PROIECTAREA LOGIC

Bunoar, printre implicanii claselor 0 i 1, dar i printre implicanii claselor 2 i 3


etc, de ordinul 0. Situaia este similar pentru ordinele superioare 1, 2 etc.
Astfel, se va cerceta sistematic adiacena termenilor dintre clasa 0 i clasa 1, apoi
adiacena dintre termenii claselor 1 i 2 etc. Se ncepe ordonat cu implicanii clasei cu
cea mai mic pondere, dac acetia exist (clasa 0, spre exemplu, dac aceasta este
nevid).
Este util de remarcat faptul c, implicanii clasei 1-a, spre exemplu, sunt cercetai mai
nti n raport cu adiacena fa de implicanii clasei 0 (venind dinspre aceasta), iar
apoi sunt cercetai n raport cu adiacena fa de implicanii clasei a 2-a. Firete, dac
respectivele clase sunt nevide.
Adiacena, este definit, astfel : doi implicani sunt adiaceni dac i numai dac
difer prin valoarea unui singur rang cu valoare binar, n rest cei doi implicani fiind
identici.
Dendat ce doi implicani se dovedesc adiaceni, este creat un implicant de ordin
imediat superior. Implicanii adiaceni respectivi sunt, fiecare n parte, marcai.
Marcajul implicanilor adiaceni semnific faptul c ambii au un succesor
(reprezentant) de ordin superior.
Implicantul de ordin imediat superior este stocat ntr-o clas, cu pondere
corespunztoare, de implicani de acelai ordin.
Dac s-au identificat doi implicani adiaceni din clasele a 3-a i a 4-a, de ordinul 0,
se va genera un implicant care va fi din clasa a 2-a, dar de ordinul 1, spre exemplu.
Odat ncheiat ciclul prin care s-au cercetat implicanii de ordinul zero se continu cu
implicanii de ordin 1 (toi aceti implicani au o variabil redus) dac exist cel
puin dou clase succesive nevide.
Criteriul adiacenei acestora este, n principiu acelai, cu meniunea c doi implicani
aparinnd unor clase consecutive, de ordinul 1, trebuie s aib, suplimentar, variabila
redus corespunztor aceluiai rang. Adiacena implicanilor de ordinul al doilea, sau
mai mare, se extinde similar, impunndu-se ca rangurile variabilelor reduse s
coincid. Pentru rangurile cu valori binare (nereduse) se menine acelai criteriu : s
existe un singur rang prin care s difere.
Aceast etap, de stabilirea a adiacenelor i de producere a implicanilor de ordin
superior este, aa cum s-a mai menionat, iterativ. Fiecare iteraie va fi reluat, cu
clasele implicanilor de ordin superior, atta vreme ct se pot genera implicani de
ordin superior celor existeni la nceputul iteraiei. Procesul iterativ se ncheie atunci
cnd nu se mai pot genera implicani de ordin superior.
n acel moment, mulimea implicanilor de ordin maxim (de la care ncepnd, nu s-au
mai generat implicani superiori acestora) reunit cu mulimea tuturor implicanilor,
din ordinele inferioare, nemarcai (inclusiv implicanii de ordin zero nemarcai),
formeaz mulimea implicanilor primi pentru funcia respectiv.

PROIECTAREA LOGIC
Exemplul 1
Se consider funcia
f = m0 + m3 + m4 + m7 + m8 + m10 + m11 + m12 + m14 + m15 + m18 + m19 + m23 +
m26 + m28 + m29 + m30. Se observ, cu uurin, c funcia are 5 variabile care
vor notate prin : x0, x1, x2, x3 i x4.
Transcriind i grupnd mintermii n clase (mintermi pot fi considerai implicanii de
ordin 0) ai funciei se poate ncepe etapa iterativ a procesului de generare a
tuturor implicanilor primi (aa cum se poate vedea n tabelul 1a).
Tabelul 1a
Implicanii de ordinul 0
ai funciei din exemplul 1
Grupa Indicii x4x3x2x1x0
0
0
00000
1
4
00100
8
01000
3
00011
2
10
01010
12
01100
18
10010
7
00111
11
01011
14
01110
3
19
10011
26
11010
28
11100
15
01111
23
10111
4
29
11101
30
11110

Tabelul 1a are, pentru raiuni de claritate, incluse anumite elemente suplimentare


(redundante) i simboluri n plus fa de expunerea algoritmului.
Astfel, apar coloanele indicilor n care sunt notate, n zecimal, informaiile
echivalente informaiei binare alturate (coloana etichetat prin x4x3x2x1x0, care
gzduiete formatul binar al implicanilor).
Se poate constata faptul c mintermul m0 (fcnd parte din grupa 0, cu nici o
unitate) se poate grupa cu mintermul m4 i cu mintermul m8 (care aparin grupei
1, cu o unitate).
Similar, mintermul m4 (fcnd parte din grupa cu 1, cu o unitate) se poate grupa
cu mintermul m12 iar mintermul m8, din aceeai grup cu mintermul m4, se poate
grupa cu mintermul m10 i mintermul m12 (mintermii m10 i m12 aparin grupei 2, cu
dou uniti), etc.
Simbolul inserat n dreapta imaginii binare a implicanilor reprezint marcajul
aplicat implicanilor care au fost inclui n implicanii de ordin superior (succesori)
n procesul de generare al acestora.
Astfel, att mintermul m8 ct i mintermul m10, primesc simbolul n coloana
imaginii binare, spre exemplu.
Se poate remarca faptul c, n tabelul 1a, toi implicanii de ordinul 0 au asociat
simbolul n coloana etichetat prin x4x3x2x1x0.
n baza acestui fapt se poate concluziona c toi implicanii de ordinul 0 au fost
inclui n implicani de ordin superior - mai precis n implicani de ordinul 1.
Rezultatele gruprilor mintermilor din tabelul 1a se pot urmri n coloanele
indicilor i implicanilor (x4x3x2x1x0) din tabelul 1b.

PROIECTAREA LOGIC
Tabelul 1b
Implicanii de ordinul 1
Grupa Indicii x4x3x2x1x0
0
0,4
00-00
0,8
0-000
4,12
0-100
1
8,10
010-0
8,12
01-00
3,7
00-11
3,11
0-011
3,19
-0011
10,11 0101-
2
10,14 01-10
10,26 -1010
12,14 011-0
12,28 -1100
18,19 100118,26 1-010
7,15
0-111
7,23
-0111
11,15 01-11
14,15 0111-
3
14,30 -1110
19,23 10-11
26,30 11-10
28,29 111028,30 111-0

Tabelul 1b faciliteaz reluarea procesului de grupare dar, de data aceasta, ntre


implicanii de ordinul 1 (acoperind fiecare doi implicani de ordinul 0).
Ca i n tabelul precedent sunt inserate simboluri n dreapta imaginii binare a
unor implicani de ordinul 1. i n acest caz, aceasta reprezint faptul c
respectivii implicani au fost inclui n implicanii de ordin superior (succesori),
respectiv implicanii de ordinul 2 (tabelul 1c).
Dar, spre deosebire de tabelul 1a, aici n tabelul 1b sunt imagini binare care nu
au acest simbol. Respectivele imagini binare descriu implicani primi (respectivii
implicani nu mai pot fi extini astfel nct s acopere mai muli mintermi).
Tabelul 1c arat c procesul de grupare al implicanilor din exemplul 1 s-a
ncheiat. Aa cum este alctuit tabelul 1c nu se mai pot face alte grupri ntre
implicanii de ordinul 2. n consecin, coloana imaginii binare (coloana etichetat
prin x4x3x2x1x0) nu conine nici un, simbol . Toi implicanii de ordinul 2 sunt
primi. Procesul generrii mulimii tuturor implicanilor primi s-a ncheiat.
Tabelul 1c.
Implicanii de ordinul 2.
Grupa
Indicii
x4x3x2x1x0
0
0,4,8,12
0- -00
0,8,4,12
(0- -00 )
1
8,10,12,14
01- -0
812,10,14
(01- -0)
3,7,11,15
0- -11
3,7,19,23
-0-11
3,11,7,15
(0--11)
3,19,7,23
(-0-11)
2
10,11,14,15
01-110,14,26,30
-1-10
10,26,14,30
(-1-10)
12,14,28,30
-11-0
12,28,14,30
(-11-0)

Parantezele rotunde ntre care sunt scrii unii dintre implicanii de ordinul 2 vin s
sublinieze faptul c acei implicani se repet urmnd s fie considerai o singur
dat (vor fi luai n consideraie cei care nu sunt ncadrai ntre paranteze, spre
exemplu).

PROIECTAREA LOGIC
Din calculul descris succint n tabelele 1 a, b i c se pot determina toi implicanii
primi ai funciei.
Acetia sunt descriptibili, n mod unic, prin mintermii acoperii (coninui):
(18,19), (18,26), (28,29),
(0,4,8,12), (8,10,12,14), (3,7,11,15), (3,19,7,23), (10,11,14,15), (10,14,26,30) i
(12,14,28,30).
Implicanii primi sunt, adesea, ilustrai i prin imaginea binar asociat lor.
Funcia scalar din exemplul 1 poate fi descris prin suma implicanilor si primi.
Aceasta sum de produse prime nu este minim dar poate fi minimizat:
f = x4x3x2x1 + x4x2x1x0 + x4x3x2x1 + x4x1x0 + x4x3x0 + x4x1x0 + x3x1x0 + x4x3x1 +
x3x1x0 + x3x2x0.
Pot s existe, n general, multiple variante de obinere a unei acoperiri minimale
(dup un criteriu sau altul) care s cuprind mai puini termeni produs.
Calculul prin care se gsesc acoperirile minime iredundante este realizat n cel
de-al doilea pas al algoritmului Quine Mc Cluskey.

Criteriile de cost utilizate n determinarea acoperirilor prime minime i minimale.

Pentru gsirea formei disjunctive (sum de produse) minime trebuiesc alei numai
acei implicani primi care includ toi termenii canonici (toate punctele din domeniul
de definiie al funciei) astfel nct reprezentarea s fie iredundant (nici un implicant
prim s nu fie inclus ntr-o reuniune a altor implicani primi) i s satisfac anumite
criterii de cost optim.
Implicanii primi care satisfac aceste restricii formeaz soluia optim. Aceast
soluie poate s nu fie, ntotdeauna, unic. O cale mult utilizat este gsirea, nainte de
toate, a acoperirilor prime iredundante iar acestor acoperiri li se aplic un calcul i o
selecie dup criteriile de cost.
Costul unei acoperiri (eventual) prime iredundante este, n general, o funcie aditiv
cu implicanii. Astfel costul unui implicant prim cu n-j variabile, al unei funcii cu n
variabile introduce o mbuntire a costului proporional cu j numrul variabilelor
reduse (ndeprtate).
Costul unei funcii este de forma:
C1( f ) = mj (n - j).
n formula costului C1 s-a notat prin mj numrul de implicani primi cu n - j variabile
din acoperirea prim considerat pentru funcia f. nsumarea, n formula costului C1 se
face dup j, iar acest indice satisface relaia 0 j n -1.
Se consider, n general, c se realizeaz un cost minim al acoperirii atunci cnd suma
costurilor implicanilor primi este minim.
n cazul implementrii un circuit combinaional cu pori costul implementrii este mai
mic dac sunt utilizate mai puine pori iar porile respective au mai puine linii de
intrare. Din acest motiv expresia costului, n acest caz, devine :
C2( f ) = p + mj (n-j).

PROIECTAREA LOGIC

n formula costului C2 s-a notat prin p numrul de pori din implementare aleas (p =
mj), p fiind numrul de implicani primi ai acoperirii considerate.
Se poate face presupunerea c fiecare implicant prim se implementeaz separat
(printr-un circuit). Atunci, formula anterioar se poate rescrie astfel :
C2( f ) = mj (n - j) + mj = mj ( n j + 1).
S-a constat, adesea, c acoperirile minime cu implicani primi satisfac att costul C1
ct i costul C2.

Determinarea acoperirilor prime minime i minimale. Alegerea implicanilor primi

utilizeaz reprezentarea matriceal a incidenelor pentru sintetizarea raporturilor


dintre implicanii primi, pe de-o parte, i termenii canonici, mintermii, pe de-alt
parte.
Matricea, tabelul, de inciden are cte o coloan pentru fiecare termen canonic al
funciei, i cte o linie pentru fiecare implicant prim calculat prin algoritmul
precedent.
Este de menionat un aspect remarcabil legat de termenii canonici neprecizai ai
funciei. Acetia au fost utilizai atunci cnd s-au generat implicanii primi, dar nu vor
fi considerai n problema de acoperire deoarece termenii, pentru care funcia are
valoare neprecizat, nu trebuie acoperii.
Matricea de inciden se completeaz linie cu linie.
Dendat ce implicantul prim pi, corespunztor liniei i din matrice, acoper, sau
conine, termenul canonic mj corespunztor coloanei j, elementul matricei aij, este
marcat cu simbolul *, altfel spaiu.
n maniera aceasta sunt marcate toate elementele matricei.
Ideea central, n continuare, este s se aleag un numr ct mai mic de implicani
primi care, fiecare n parte, s acopere ct mai muli termeni canonici, iar reuniunea
lor s acopere n totalitate termenii canonici, mintermii, funciei.
Pentru aceasta, dup completarea ntregii matrice, se examineaz rnd pe rnd
coloanele (corespunztoare termenilor canonici precizai) i liniile (corespunztoare
implicanilor primi) matricei pentru anumite situaii particulare.
Implicanii primi eseniali. Ori de cte ori pe o coloan apare un singur marcaj (*),

corespunztor acestuia, se determin un implicant prim pi corespunztor liniei pe care


se afl marcajul unic, care acoper n exclusivitate termenul canonic respectiv, mj.
Implicantul prim respectiv trebuie, n mod cert, inclus n orice acoperire a funciei
deoarece este singurul care acoper mintermul mj neacoperit (neconinut) de ali
implicani primi. Astfel de implicani primi se numesc implicani primi eseniali.
Implicanii primi eseniali sunt ndeprtai din matricea de inciden, micornd
mrimea acesteia i complexitatea procesului determinrii acoperirilor minime i
respectiv minimale.
6

PROIECTAREA LOGIC

Extragerea liniei unui implicant prim esenial din tabelul de inciden se soldeaz cu
ndeprtarea a cel puin o coloan, corespunztoare termenului canonic acoperit n
exclusivitate.
Mai pot fi i alte coloane acoperite de implicantul prim pi. Acestea, dac exist, sunt
ndeprtate din tabel deoarece sunt acoperite de implicantul prim pi care acum face
parte n mod sigur din compoziia oricrei soluii.
De multe ori aceste extrageri provocate de un implicant prim esenial provoac
esenializri secundare ale altor coloane, care la rndul lor vor desemna alegeri certe
ale unor implicani primi i, n consecin, micorarea tabelei (implicit i a dificultii
problemei). Pot apare i dominane de linii, n urma eliminrii esenialilor.
Dominana liniilor. O alt situaie care poate reduce dimensiunile matricei se refer la
cazurile n care o linie din matricea de inciden este coninut n ntregime n alt
linie. Aparent, pare s fie o situaie imposibil. Un implicant prim nu poate fi coninut
n alt implicant, din raiuni de definiie a implicanilor primi.

Dar, dac un implicant prim a fost generat utiliznd muli termeni canonici
corespunztori punctelor neprecizate din domeniul de definiie al funciei iar n
matrice punctele neprecizate nu sunt reprezentate, atunci poate s apar aceast
situaie.
Alte situaii care pot genera dominane ale liniilor, din matricea de incidene dintre
implicanii primi i termenii canonici, sunt modificrile matricei n urma ndeprtrii
implicanilor primi. Acestea pot micora numrul de termeni canonici asociai unui
implicant prim.
Practic, astfel de situaii descalific un implicant prim privitor la selecia acestuia ntro posibil soluie. Deoarece, astfel de implicant nu mai are calitatea de a fi prim.
Acesta este ndeprtat din matrice, se micoreaz dimensiunea matricei i se
faciliteaz sarcina de gsire a unei acoperiri optime (optimale).
Dominana coloanelor. Dac n matricea incidenelor apare o coloan j al crei

coninut este cuprins, inclus, n totalitate n coninutul altei coloane k, se spune c


prima coloan este dominat de cea de-a doua (sau, alternativ, se spune despre
coloana k c domin coloana j).
O coloan dominant poate fi scoas din matricea de incidene deoarece acoperirea
coloanei dominate printr-o alegere sau alta de implicani primi va acoperi, n mod
cert, i coloana dominant.
ndeprtarea unei coloane din matrice datorit faptului c aceasta include o alt
coloan, poart denumirea de ndeprtare a coloanelor dominante. Este nc o cale de
micorare a complexitii problemei.
Aplicarea celor trei ci de reducere a dimensiunii problemei se face alternativ i
iterativ pn cnd:
se construiete astfel, o soluie unic (matricea dispare) sau,
7

PROIECTAREA LOGIC

se constat c matricea nu mai poate fi redus, se ajunge la un nucleu ciclic.

Cel de-al doilea caz face s apar ceea ce se numete, n literatur, nucleul dur al
problemei. Se poate proceda prin euristici pentru gsirea unei soluii peste acest
nucleu dur, sau se pot calcula, atunci cnd dimensiunea nucleului dur permite, toate
soluiile posibile.
Exemplul 2
Funcia Boole-an din Exemplul 1 are urmtorii termeni canonici:
f = m0 + m3 + m4 + m7 + m8 + m10 + m11 + m12 + m14 + m15 + m18 + m19 + m23 +
m26 + m28 + m29 + m30, funcia avnd 5 variabile : x0, x1, x2, x3 i x4.
Mulimea implicanilor primi ai acestei funcii este, aa cum s-a calculat in
exemplul 1:
f = x4x3x2x1 + x4x2x1x0 + x4x3x2x1 + x4x1x0 + x4x3x0 + x4x1x0 + x3x1x0 + x4x3x1 +
x3x1x0 + x3x2x0.
Asocierea dintre implicanii primi i termenii canonici este descris n tabelul 2a.
Tabelul 2a
Corespondena dintre implicanii primi i termenii canonici
Implicanii primi

Indicii Mintermilor Acoperii

10011-010
11100- -00
01- -0
0- -11
-0-11
01-1-1-10
-11-0

18,19
18,26
28,29
0,4,8,12
8,10,12,14
3,7,11,15
3,7,19,23
10,11,14,15
10,14,26,30
12,14,28,30

Matricea de inciden a termenilor canonici i a implicanilor primi este alctuit,


aa cum s-a descris anterior i este prezentat n tabelul 2b.
Tabelul 2b
Matricea de inciden iniial
Implicanii
primi
10011-010
11100- -00
01- -0
0- -11
-0-11
01-1-1-10
-11-0

10

11

Termenii canonici
12 14 15 18

23

26

28

29

30

e
e

19

Deoarece implicantul prim 1110- este unicul implicant prim care acoper
termenul canonic m29 acesta este esenial. Aceasta nseamn c n orice soluie
de acoperire a funciei, acest implicant prim este sigur selecionat. ndeprtarea
din matrice a acestui implicant prim conduce la ndeprtarea coloanelor

PROIECTAREA LOGIC
corespunztoare termenilor canonici: m28 i m29 acoperii de implicantul prim
1110-.
Mai sunt nc doi implicani primi eseniali n matrice.
Implicantul prim 0- -00 este esenial (a se vedea coloanele corespunztoare
mintermilor m0 i m4). ndeprtarea acestui implicant prim se soldeaz cu
eliminarea coloanelor corespunztoare mintermilor: m0,m4,m8 i m12.
Al treilea implicant prim esenial este -0-11 (din cauza coloanei corespunztoare
mintermului m23). ndeprtarea acestui implicant prim produce eliminarea
coloanelor corespunztoare mintermilor: m3, m7, m19 i m23.
n tabelul 2c este prezentat matricea care rezult dup eliminarea implicanilor
eseniali i a termenilor canonici acoperii de acetia. S-a introdus, fa de tabele
2a i 2b, coloana care conine numrul curent al fiecrei linii, respectiv indexul
liniei. Aceast coloan este menit s faciliteze urmrirea comparaiei dintre
liniile matricei dar va fi utilizat i ulterior n calculul formulei lui Petrick asociat
acestei matrice.
Tabelul 2c
Matricea de inciden redus, dup eliminarea
implicanilor eseniali.

10
10011-010
01- -0
0- -11
01-1-1-10
-11-0

Nr.
crt.

Termenii Canonici

Implicani
i primi
11

14

15

18

26

30
1
2
3
4
5
6
7

Linia 5, a implicantului prim 01-1-, domin liniile 4 i 3, ale implicanilor 0- -11 i


01- -0. Implicanii primi 0- -11 i 01- -0 vor fi eliminai din matrice.
Linia 6, a implicantului prim -1-10 domin linia 7, a implicantului -11-0.
Acesta din urm, -11-0, va fi eliminat din matrice.
Tabelul 2d
Matricea de inciden redus, n care sunt marcate liniile dominate.
Termenii Canonici

Implicanii
primi
10
10011-010
01- -0
0- -11
01-1-1-10
-11-0

11

14

15

18

Numr
crt.
26

30

1
2
3
4
5
6
7

Linia 1 din matricea redus, prezentat n tabelul 2c, corespunztoare


implicantului prim 1001-, este dominat de linia 2, a implicantului prim 1-010.
Primul implicant, 1001-, este eliminat. n tabelul 2d liniile dominate din matricea
de inciden redus, sunt marcate n prin subliniere.

PROIECTAREA LOGIC
Toi implicanii eliminai, n urma dominanei altor implicani primi, nu vor fi utilizai
n calculul soluiilor de acoperire a funciei f.
Se poate remarca faptul c, implicanii eliminai (0- -11, 01 - - 0, -11-0 i 1001-)
nu mai apar, n actuala matrice, ca fiind implicani primi (maximali) din cauza
tergerilor (anterioare) de linii i coloane din matrice cauzate de extragerea
implicanilor primi eseniali.
Tabelul 2e
Matricea final
Implicanii primi
1-010
01-1-1-10

Termenii Canonici
10

11

14

15

18

26

30

Obs.
e
e
e

Implicanii primi care au mai rmas sunt toi eseniali, aa cum se poate remarca
din matricea de inciden final, prezentat n tabelul 2e.
Acoperirea funciei se calculeaz din implicanii primi eseniali:
(1110-) + (0- -00) + (-0-11) + (-1-10) + (01-1-) + (1-010),
formula algebric a acesteia fiind:
f = x4 x3 x2 x1 + x4 x1 x0 + x3 x1 x0 + x3 x1 x0 + x4 x3 x1 + x4 x2 x1 x0.

Algoritmul lui Petrik. Acest algoritm permite, ntr-o formulare concis, descrierea

construciei tuturor soluiilor peste un, eventual, nucleu ciclic al matricei de inciden.
Se consider c termenii canonici unei funcii f, sunt notai prin m j1 , m j 2 , i m ju .
n continuare se cerceteaz matricea de incidene pe coloane. n maniera aceasta se
pot determina, pentru fiecare termen canonic, corespunztor unei coloane, care sunt
implicanii primi care acoper respectivul termen canonic.
Cu aceti implicani primi, asociai unui termen canonic mj, se construiete o formul
Boole-an sj constituit prin sumarea logic (disjuncia) implicanilor primi
corespunztori. Aceast formul se mai numete i clauza respectivului minterm.
Se presupune, spre exemplu, c implicanii primi pi1 , pi2 ,..., piv

canonic m j1 .
canonic mj este:

acoper termenul

Atunci, clauza ori formula Boole-an corespunztoare termenului

s j1 pi1 pi2 ... piv

Explicaia acestei construcii rezid n faptul c implicantul prim pi1 sau implicantul
prim pi2 sau implicantul prim piv acoper, n adevr, termenul canonic m j1 .

10

PROIECTAREA LOGIC

Pe de-alt parte, trebuie acoperii cu implicani primi toi termenii canonici, adic i
m j1 i m j 2 i i m ju .

Apare, acum, justificat determinarea expresiei:


s j1 s j 2 ...s ju ( pi1 pi2 ... piv )
i

ca furnizoare a tuturor soluiilor de acoperire pentru matricea de inciden considerat.


Adeseeori sunt necesare soluii de acoperire ale unei funcii booleene care s satisfac
anumite cerine specifice, sau, se caut toate soluiile cu un anumit cost.
Algoritmul lui Petrik poate fi, n acest sens, foarte util. Acest algoritm, n principiu,
furnizeaz toate soluiile de acoperire pornind de la setul complet de implicani primi.
Exemplul 3.
Pentru funcia din exemplul 1, tiind care sunt implicanii eseniali (cei care vor
face parte din orice acoperire a funciei) se poate calcula care sunt ceilali
implicani primi care pot fi utilizai n vederea unor acoperiri minimale.
Considernd matricea de inciden din tabelul 2c (dup ndeprtarea implicanilor
primi eseniali) se pot calcula, rnd pe rnd, clauzele, termenii sum, din
algoritmului lui Petrik. n acest scop se va folosi ca identificator al implicanilor
primi din tabel, pentru simplificarea expresiilor, indexul ori numrul curent al
acestora. Astfel se poate determina:
c10 = {3,5,6}, c11 = {4,5}, c14 = {3,5,6,7}, c15 = {4,5},
c18 = {1,2}, c26 = {2,6}, c30 ={6,7},
unde prin c10, spre exemplu, s-a notat clauza, ori mulimea implicanilor primi care
acoper termenul canonic m10 .
Se poate remarca un fapt care micoreaz complexitatea calculului, clauzele c11
i c15 sunt identice.
Cu ajutorul acestor clauze se alctuiete expresia formal, formula lui Petrick:
F = {3+5+6} * {1+2} * {4+5} * {3+5+6+7} * {2+6} * {6+7},
innd cont de identitatea (a + b + c) * (a + b) = a + b, atunci se poate scrie:
{3+5+6} * {3+5+6+7} = {3+5+6}.
Astfel, expresia formal F se mai poate rescrie, astfel:
F = {3+5+6}*{1+2}*{4+5}*{2+6}*{6+7}.
Prin efectuarea calculului algebric n expresia anterioar rezult:
F = 642 + 652 + 641 + 651 + 7532 + 76431 + 76531 + 7542 + 752 + 76541 +
7651.
Aceste grupuri de indici (separate prin +), identific fiecare n parte o soluie de
acoperire alctuit din implicanii primi respectivi.
Astfel, grupul de indici 76431 arat c se poate constitui o acoperire prim
minimal cu cinci implicani primi:
f = (-11-0) + (-1-10) + (0- -11) + (01- -0) + (1001-).

11

PROIECTAREA LOGIC
Dintre toate aceste forme, determinate prin metoda lui Petrick n raport cu
implicanii primi din matricea de inciden redus prin ndeprtarea implicanilor
primi eseniali, doar cinci sunt cu cost minim:
F* = 642 + 652 + 641 + 651 + 752,
Celelalte forme calculate sunt minimale. Se poate remarca prezena soluiei
determinate, n urma eliminrii liniilor dominate, n lista celor cinci acoperiri cu
cost minim.
Costul C1 acestor acoperirii minime este acelai 10, iar C2 este de asemenea
egal pentru c toate cele 5 acoperiri minime au acelai numr de pori.

Metoda Quine-McCluskey aplicat funciilor scalare avnd termeni


nespecificai

Metoda Quine-McCluskey minimizeaz reprezentarea oricrei expresii Boole-ene.


Aceast metod ofer o un procedeu sistematic pentru generarea mulii implicanilor
primi urmat de extragerea soluiilor minime i minimale de acoperire prime.
Primul pas al metodei calculeaz toi implicanii primi prin aplicarea repetat a
metodei unitare. Acest pas este urmat de un procedeu matricial, tabelar, care
determin acoperirile prime ale expresiei iniiale.

Exemplul 4. Se consider funcia f : B4 B,


f = m4 + m5 + m6 + m8 + m9 + m10 + m13 + d0 + d7 + d15.
Variabilele funciei vor fi notate prin x8, x4, x2 i x1.
Termenii produs, mintermii i termenii neprecizai, sunt ordonai dup numrul de
uniti i apoi introdui n tabelul 3a.
Tabelul 3a
Implicanii de ordinul 0
ai funciei din exemplul 4
Grupa Indicii x8x4x2x1
0
0
0000
1
4
0100
8
1000
5
0101
6
0110
2
9
1001
10
1010
7
0111
3
13
1101
4
15
1111

Toi termenii din tabelul 3a au succesori n tabelul 3b, fapt pentru care fiecare
termen produs, din tabelul 3a, are asociat simbolul .

12

PROIECTAREA LOGIC

Tabelul 3b
Implicanii de ordinul 1
ai funciei din exemplul 4
Grupa Indicii x8x4x2x1
0
0,4
0-00
0,8
-000
4,5
010-
1
4,6
01-0
8,9
1008,10
10-0
5,7
01-1
5,13
-101
2
6,7
011-
9,13
1-01
7,15
-111
3
13,15 11-1
4
15
1111

n tabelul implicanilor de ordinul 1 (tabelul 3b) apar cinci implicani primi:


0-00, -000, 100-, 10-0 i 1-01.
n tabelul implicanilor de ordinul 2 (tabelul 3c) apar ali doi implicani primi,
01- - i -1-1,
pentru funcia f(x8, x4, x2, x1).
Tabelul 3c
Implicanii de ordinul 2
ai funciei din exemplul 4
Grupa
Indicii
x8x4x2x1
1
4,5,6,7
01- 2
5,7,13,15
-1-1

Tabelul 3d arat, pentru fiecare implicant prim termenii canonici acoperii de


respectivul implicant prim.
Acest tabel este utilizat pentru completarea matricei de inciden prin care se va
determina o acoperire prim minim a funciei f.

Tabelul 3d
Corespondena dintre implicanii primi i termenii canonici
Implicanii primi

Indicii Mintermilor Acoperii

0-00
-000
10010-0
1-01
01- -1-1

0,4
0,8
8,9
8,10
9,13
4,5,6,7
5,7,13,15

Matricea de inciden dintre implicanii primi ai funciei i termenii canonici va


cuprinde doar termenii canonici precizai, cei neprecizai nefiind referii.
n tabelul 3e este prezentat matricea de inciden dintre termenii canonici
precizai i implicanii primi. Fiecare implicant prim are asociata o etichet

13

PROIECTAREA LOGIC
plasat ntre paranteze. Astfel primul implicant prim 0-000 (0,4) este etichetat
prin (p), cel de-al doilea -000 (0,8) este etichetat prin (q) etc.

Tabelul 3e
Matricea de inciden iniial
Implicanii
primi

Termenii canonici
4

(p) 0-00 (0,4)


(q) -000 (0,8)
(r) 100- (8,9)
(s)10-0 (8,10)
(t) 1-01 (9,13)
(u) 01- - (4,5,6,7)
(v) -1-1 (5,7,13,15)

*
*
*

10

13

*
*
*
*

*
*

e
*

e
*

Implicanii s i u sunt eseniali, deoarece primul acoper n exclusivitate


mintermul m10 iar al doilea acoper, la rndul su, n exclusivitate mintermul m6.
Aceti doi implicani primi fac parte din oricare soluie de acoperire, a funciei f,
cu implicani primi. Liniile celor doi implicani primi eseniali vor fi ndeprtate din
matricea de inciden i odat cu acestea vor fi ndeprtate i coloanele
acoperite de aceti doi implicani primi.
Tabelul 3f cuprinde matricea redus a incidenelor dintre implicanii primi i
termenii canonici.
Tabelul 3f
Matricea de inciden redus
Implicanii
Termenii canonici
primi
9
13
*
(r) 100- (8,9)
*
*
(t) 1-01 (9,13)
*
(v) -1-1 (5,7,13,15)

Linia implicantului prim t domin liniile implicanilor primi r i v. Din acest motiv,
liniile dominate pot fi terse din matricea de inciden. n final, soluionarea
acoperirii prime minime este constituit din trei implicani primi: s + u + t:

f(x8, x4, x2, x1) = x8x4'x1' + x8'x4 + x8x2'x1.

Adesea circuitele combinaionale se dovedesc s aib mai multe linii de ieire pentru
un acelai set de linii de intrare. Specificaiile proiectrii unor astfel de circuite multiieire constau, de regul, dintr-un set de funcii f1(u,v,w, x, y, z), f2(u,v,w, x, y, z),
fm(u,v,w, x, y, z) definite peste acelai set de variabile de intrare.
Soluia cea mai simpl pentru circuitele multi-ieire poate consta, aparent, din
minimizarea separat a fiecrei funcii din setul de funcii caracteriznd circuitul
multi-ieire aceasta fiind urmat de implementarea separat pentru fiecare funcie a
propriului circuit.
Aceast abordare are darul simplitii dar nu conduce la soluia cea mai eficient a
circuitelor cu dou niveluri avnd mai multe linii de ieire. Un exemplu simplu poate

14

PROIECTAREA LOGIC

releva n ce const particularitatea minimizrii circuitelor combinaionale vectoriale,


multi-ieire.
Exemplul 5. Se consider sistemul de funcii F (x, y, z) = (f1, f2):
f1(x, y, z) = m1 + m3 + m7, i
f2(x, y, z) = m3 + m6 + m7.
Minimizarea separat a celor dou funcii conduce la expresiile:
f1(x, y, z) = x'z + yz, i
f2(x, y, z) = yz + xy.
Astfel, implementarea sistemului de funcii, minimizate aa cum s-a artat, este
prezentat n figura 1.

x'
z

&

y
z

&

y
z

&

x
y

&

f1(x, y, z)

f2(x, y, z)

Figura 1. Circuitul rezultat din sumele


minime ale celor dou funcii.

O implementare mai eficient a acestei funcii vectoriale, F(x, y, z), cu dou


componente scalare f1 i f2, este prezentat n figura 2.

x'
z

&

y
z

&

x
y

&

f1(x, y, z)
f2(x, y, z)

Figura 2. Circuitul optimizat corespunztor


sumelor minime ale celor dou funcii.
Costul implementrii funciei multi-ieire din figura 2 este evident mai mic dect
cel al implementrii, aceleiai funcii, din figura 1. Se poate remarca, imediat, c
nu este necesar s se implementeze de dou ori circuitul care implementeaz
produsul variabilelor y i z. Astfel, prin utilizarea raional a unui singur circuit
care realizeaz produsul yz, se micoreaz costul implementrii iniiale a funciei
vectoriale F(x, y, z) cu 25%.

15

PROIECTAREA LOGIC

Exemplul 5 a pus n valoare un implicant prim comun celor dou funcii, ceea ce
constituie, totui, un caz particular. Spre deosebire de exemplul anterior, exemplul
care urmeaz conine un caz care este mai general i pune n eviden mai precis
natura problemei minimizrii funciilor multi-ieire, a funciilor vectoriale.
Exemplul 6. Se consider sistemul de funcii G (x, y, z) = (g1, g2):
g1(x, y, z) = m1 + m3 + m7, i
g2(x, y, z) = m2 + m6 + m7.
Minimizarea separat a celor dou funcii conduce la expresiile:
g1(x, y, z) = x'z + yz, i
g2(x, y, z) = yz' + xy.
Diagrama, schema, soluiei obinute prin minimizarea separat a funciilor
g1(x, y, z) i g2(x, y, z) este nfiat n figura 3.

x'
z

&

y
z

&

y
z'

&

x
y

&

g1(x, y,

g2(x, y,

Figura 3. Circuitul rezultat din sumele


minime ale funciilor g1 i g2.
Cel mai eficient circuit al acestor dou funcii, aa se poate remarca din figura 4,
face uz de termenul xyz care nu este un implicant prim nici al funciei g1 i nici al
funciei g2.
x'
z
x
y
z
x
y

&
+
&
+

g1(x, y,
g2(x, y,

&

Figura 4. Circuitul rezultat din minimizarea


multi-ieire a celor dou funcii, g1 i g2.

Pentru circuitele scalare (cu o singur linie de ieire) trebuie considerat doar
mulimea tuturor implicanilor primi pentru stabilirea circuitelor combinaionale
optime, minime, cu dou niveluri.

16

PROIECTAREA LOGIC

Exemplul 6 demonstreaz c nu este suficient s se considere doar implicanii primi ai


funciilor liniilor scalare de ieire atunci se proiecteaz reele combinaionale ale
funciilor vectoriale.
Se vor considera, n continuare, doar circuite cu dou niveluri constituite prin sume de
produse. n situaia n care, ntr-un circuit combinaional cu dou niveluri, exist pori
I (spre exemplu) care sunt conectate la dou (sau mai multe) linii de ieire y1 i y2,
cazul trebuie privit prin prisma conexiunii, practic, la respectivele dou (sau mai
multe) linii de ieire.
Atunci cnd ieirea unei astfel de pori, conectat la mai multe linii de ieire, are
valoarea 1, este evident faptul c respectivele dou (ori mai multe) linii de ieire au i
acestea valoarea 1.
Acest fapt revine la a spune, n mod evident, c produsul liniilor de intrare ale acelei
pori I, de forma x1x2xp, este inclus n intersecia funciilor corespunztoare celor
dou linii de ieire:
x1x2xp f1 f2.
Rezult c porile I care sunt conectate la dou linii de ieire y1 i y2 trebuie s
realizeze un implicant prim al funciei f12 = f1 f2. Acest implicant prim nu trebuie s
aparin mulimii implicanilor funciei f1 ori funciei f2.
Exemplul 7.
Se consider funcia

F : B3 {0,1}3

definit astfel:

f2=m1 + m5 + m6 +m7;
f1=m1 +m4 + m5 +m6;
f0=m0 + m2 + m5 + m6 + m7;
Generarea implicanilor primi pentru aceast funcie vectorial se face printr-un
procedeu foarte puin diferit n comparaie cu cazul funciilor scalare.
Tabelul 4a
Iniializarea metodei QuineMcCluskey, aplicat funciei
vectoriale din Exemplul 7.
Implicanii de ordinul 0
Grupa Indicii x2x1x0 f2f1f0
0
0
000
001
1
001
110
1
2
010
001
4
100
010
2
5
101
111
6
110
111
3
7
111
101

Doi implicani ai unei funcii vectoriale sunt adiaceni dac ndeplinesc condiia de
adiacen a implicanilor funciilor scalare, aplicat prilor de intrare, la care se
adaug condiia de compatibilitate a prii de ieire.
Aceasta const dintr-o intersecie nevid a respectivelor pri de ieire.
Astfel, spre exemplu, implicanii de ordinul 0: (000 | 001) i (001 | 110), au partea
de intrare adiacent dar funciile sunt disjuncte.
n concluzie, aceti implicani de ordinul 0 nu sunt adiaceni, aa cum se poate
remarca i din tabelul 4a.

17

PROIECTAREA LOGIC

Tabelul 4b
Implicanii de ordinul 1 ai funciei
vectoriale din Exemplul 7.
Grupa
Indicii
x2x1x0
f2f1f0
0
0,2
0-0
001
1,5
-01
110
2,6
-10
001
1
4,5
10010
4,6
1-0
010
2
5,7
1-1
101
6,7
11101

Dendat ce un implicant are un succesor de index superior, acesta este marcat


(cu caracterul ).
Astfel, (010 | 001) i (110 | 111) sunt adiaceni dar este marcat doar primul
Tabelul 4c
Matricea de inciden a implicanilor primi ai funciei vectoriale din exemplul 7.
Implicanii primi
Termenii canonici
f2
f1
f0
Simbol
Binar
Indicii 1 5 6 7 1 4 5 6 0 2 5 6 7
(101 | 111)
5
*
*
*
p
(110 | 111)
6
*
*
*
q
* *
(0-0 | 001)
0,2
r
* *
*
*
(-01 | 110)
1,5
s
(-10 | 001)
2,6
*
*
t
(10- | 010)
4,5
* *
u
(1-0 | 010)
4,6
*
*
v
(1-1 | 101)
5,7
*
*
*
*
w
(11- | 101)
6,7
* *
* *
x

pentru c succesorul lor este n fapt doar succesorul primului, spre exemplu.
Deoarece, exceptnd cei doi implicani din grupa 0, nici un alt implicant de ordin
0 nu are partea de ieire complet reprezentat, rezult c implicanii grupei 0 nu
au succesori si vor fi implicani primi, spre exemplu.
Implicanii primi ai funciei f sunt:
(101 | 111), (110 | 111), (0-0 | 001), (-01 | 110), (-10 | 001), (10- | 010), (1-0 |
010), (1-1 | 101), (11- | 101).
Se ataeaz fiecrui implicant prim din lista iniial cte un simbol distinct:
p = (101 | 111), q = (110 | 111), r = (0-0 | 001), s = (-01 | 110), t = (-10 | 001),
u = (10- | 010), v = (1-0 | 010), w = (1-1 | 101) i x = (11- | 101).
Matricea de inciden a acestei funcii vectoriale este prezentat n tabelul 4c.
Tabelul 4d
Matricea de inciden dup ndeprtarea implicanilor primi p i q
aparinnd celor trei funcii f2, f1 i f0.
Implicanii primi
Termenii canonici
f2
f1
f0
simbol
binar
indicii
1
7
1
4
0
2
7
(0-0 | 001)
0,2
*
*
r
(-01 | 110)
1
*
*
s
(-10 | 001)
2
*
t
(10- | 010)
4
*
u
(1-0 | 010)
4
*
v
(1-1 | 101)
7
*
*
w
(11- | 101)
7
*
*
x

18

PROIECTAREA LOGIC
Raionnd dup apartenena la funcii, implicanii primi p = (101 | 111), avnd
indicele 5, i q = (110 | 111), avnd indicele 6, aparin interseciei celor trei funcii f2 f1 f0
i vor avea ramificaii spre cele trei linii de ieire reprezentnd f2, f1 i f0.
Cu alte cuvinte, implicanii primi p i q, aparin oricrei soluii de acoperire minim

prim care poate fi alctuit prin setul actual de implicani primi.


Trebuie menionat faptul c odat acoperii mintermii interseciei celor trei funcii
(m5 i m6), coloanele acestora (5 i 6) vor fi ndeprtate din matricea de inciden
mpreun cu liniile celor doi implicani primi.
Aceast transformare a matricei de inciden este ilustrat n tabelul 4d.
X2

&

X0
1
X2

&

f0

X0
X2

&

X1

X0
X2

f2
&

X1
1

X0
X1

&

f1

X0
X2

&

X1

Figura 5. Implementarea funciei


vectoriale minimizate din exemplul 9.
Considernd matricea de inciden rezultat dup ndeprtarea implicanilor primi
p i q, aparinnd celor trei funcii f2, f1 i f0, se remarc faptul c implicantul prim
s aparine interseciei funciilor f2 i f1.
Acest implicant prim acoper termenul canonic m1, iar acest termen canonic este
chiar intersecia celor dou funcii, m1 = f2 f1.
Implicantul prim s va avea ramificaii att spre linia de ieire a funciei f2, ct i
spre linia de ieire a funciei f1. n aceast manier se dovedete c implicantul
prim s va aparine oricrei acoperiri minime prime a acestei funcii vectoriale.
Tabelul 4e
Matricea de inciden dup ndeprtarea
implicantului prim s i a coloanelor m1.
Implicanii primi
Termenii canonici
f2 f1
f0
simbol
binar
indicii 7 4 0 2 7
(0-0 | 001)
0,2
* *
r
(-10 | 001)
2
*
t
(10- | 010)
4
*
u
(1-0 | 010)
4
*
v
(1-1 | 101)
7
*
*
w
(11- | 101)
7
*
*
x

19

PROIECTAREA LOGIC
Tabelul 4e prezint matricea de inciden dup excluderea implicantului prim s i
a coloanelor corespunztoare termenului canonic m1, att din dreptul funciei f2
ct i din dreptul funciei f1.
Matricea de inciden din tabelul 4e a sczut considerabil n complexitate.
Astfel, termenul canonic m7 aparinnd funciei f2 i funciei f0 poate fi acoperit de
implicantul prim w sau de implicantul prim x, unul dintre acetia.
n mod analog, termenul canonic m4, aparinnd funciei f1, poate fi acoperit de
implicantul prim u sau de implicantul prim v, oricare dintre acetia.
Implicantul prim r domin implicantul prim t, n consecin acesta din urm poate
fi ndeprtat din matrice.
Acoperirea prim minim a funciei vectoriale arat astfel:
(101|111), (110|111), (-01|110), (1-1|101), (10-|010), (0-0|001).
Implementarea prin circuite logice I i SAU a descrierii simbolice
corespunztoare acoperirii prime minime a acestei funcii vectoriale este
prezentat n figura 5.

&
0

&
01

&
02

&
012

&
1

1
f0

1
f1

1
f2

&
12

&
2

Figura 6. Implementarea generic a


unei funciei vectoriale avnd trei
componente scalare.

n cazul unei funcii vectoriale, avnd trei componente scalare, de forma:


F: Bn B3,
structura minimizat generic a funciei F arat ca n figura 6.
Toate porile I sunt generice i sunt indexate.
Indexul unei pori I este nscris, n figura 6, la baza simbolului porii respective.
Circuitele I sunt generice n sensul c pot fi mai multe circuite avnd acelai index
dar realiznd fiecare, n parte, alt termen produs. Doi termeni produs, avnd acelai
index, pot diferi att prin paritatea variabilelor ct i prin faptul c liniile lor de intrare
pot defini dou submulimi distincte ale domeniului de definiie.
Codul indexului unui circuit I este determinat n raport cu ramificaiile pe care le are
linia de ieire a respectivului circuit. Astfel, un circuit I avnd indexul 012 va avea
linia de ieire ramificat spre circuitele SAU aparinnd liniilor funciilor scalare f0, f1
i f2.

20

PROIECTAREA LOGIC

n mod similar, o poart I avnd indexul 12 i ramific liniile de ieire spre porile
SAU ale funciilor scalare f1 i f2. n timp ce o poart I cu indexul 0 se va conecta
doar la poarta SAU a crei linie de ieire este etichetat prin f0, spre exemplu.
Porile indexate printr-o singur cifr (0, 1 sau 2, n cazul acesta) nu au linia de ieire
ramificat dar sunt generice. Aceste pori se conecteaz, fiecare, doar intrarea unei
pori SAU a unei singure funcii scalare (respectiv f0, f1 sau f2).
Analog, sunt definibile structurile generice pentru funciile multi-ieire avnd patru
ori mai multe linii scalare de ieire.

21

S-ar putea să vă placă și