Sunteți pe pagina 1din 13

PROIECTAREA LOGIC

Analiza i sinteza circuitelor combinaionale


Note de curs
Dr.Ing.Mat. Ion I. Bucur

Un circuit combinaional C, este definit prin relaiile dintre intrri i ieiri :
f
i
: B
n
B, (B={0,1}),
z
i
= f
i
(x
1
,x
2
, , x
n
),

unde :
o z
i
, 0 s i s m-1, este una dintre liniile de ieire ale circuitului, iar
o x
0
, x
1
, , x
n-1
sunt liniile de intrare n circuitul combinaional considerat (diagrama modelului
circuitelor combinaionale, este prezentat n figura 1).



x
0















1. Introducere

Se poate remarca, din relaia care leag liniile de intrare de liniile de ieire, dependena n exclusivitate
a valorilor ieirilor de valorile aplicate intrrilor.
Ca particularitate, funciile Boole-ene sunt, ntotdeauna, funcii cu domeniul de definiie finit. Aa
cum au fost prezentate mai sus funciile f
i
au 2
n
puncte, n-uple, distincte n domeniul lor de definiie
(produsul cartezian al mulimii B cu aceasta nsi de n ori).
Datorit faptului c funciile au un domeniu de definiie cu 2
n
n-uple distincte, iar funciile pot lua
doar dou valori, atunci numrul funciilor distincte, astfel considerate, este .
n
2
2

Exemplul 1.1
Funciile distincte f
i
: B
2
B cu dou variabile sunt :

Tabelul 1.1 Mulimea tuturor funciilor Boole-ene cu dou variabile.
x
1
x
0
f
0
f
1
f
2
f
3
f
4
f
5
f
6
f
7
f
8
f
9
f
10
f
11
f
12
f
13
f
14
f
15

0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1





Circuit Combinaional
C
z
0

x
1

z
1

.
.
.
.
.

.
x
n-1

z
m-1

Figura 1. Reprezentarea modelului unui circuit combinaional
1
Note de curs,
dr.ing.mat. Ion I. Bucur

2
Dintre acestea, se remarc, pentru ilustrarea exemplului :
- funciile constante 0 i 1, respectiv f
0
i f
15
;
- funciile identic x
1
i x
0
, respectiv f
3
i f
5
;
- funciile x
1
i x
0
, respectiv f
12
i f
10
;
- funciile SAU i I, respectiv f
7
i f
1
.


Circuitele combinaionale pot fi introduse prin enumerarea valorilor funciei corespunztoare
punctelor, n numr finit, domeniului de definiie sau printr-o descriere comportamental a circuitului.
Cea de-a doua cale este reductibil la prima.

Exemplul 1.2
Se consider un circuit combinaional care realizeaz suma a dou numere binare a i b
fr semn reprezentate fiecare printr-un singur rang. Un astfel de circuit se numete,
tradiional, semi-sumator.

Circuitul, se poate remarca, este introdus printr-o descriere comportamental. Acestei
descrieri se poate asoca, simplu, o descriere enumerativ punct cu punct, dup cum
urmeaz :

((a,b) | suma, transportul) :{ ((0, 0) | 0, 0), ((0, 1) | 1, 0), ((1, 0) |1, 0), ((1, 1) | 0, 1) }.

Se remarc utilizarea unui mod de scriere explicit att al valorilor argumentelor a i b ct
i al valorilor funciilor de ieire suma i transportul, separnd prin caracterul bar
vertical ( | ) punctul curent din domeniul de definiie, de valorile funciilor n acel punct.
Acest mod de scriere este mult rpndit n literatur.

Cele dou funcii sunt exprimabile separat ca formule Boole-ene utiliznd fie valorile 1
(acolo unde funcia este asertat), fie valorile 0 (acolo unde funcia este complementat).
n acest exemplu se va considera exprimarea celor dou funcii prin aseriuni.

Pentru aceasta se construiesc formulele celor dou funcii utiliznd teorema de
reprezentare a algebrelor Boole-ene :

suma(a,b) = ab + ab ; transportul(a,b) = ab.

S-a utilizat notaia, mult rspndit, a pentru variabila a complementat.

Exist o strns coresponden ntre definirea punct cu punct (numit i definirea prin
tabelul de adevr) i scrierea prin formule a unei funcii. n realitate, ambele cuprind
aceeai informaie. Se poate remarca, din forma canonic disjunctiv, c produsele
variabilelor funciilor sunt calculate acolo unde funcia ia valoarea 1. Produsele
respective se numesc, tradiional, termeni produs (din cauza analogiei, curent practicate,
dintre funcia I i Multiplicarea numerelor reale) i se calculeaz astfel :
- valoare 0 a variabilei, variabila apare n produs complementat,
- valoare 1 a variabilei, variabila apare n produs asertat.

Pentru termenii produs se mai utilizeaz, alternativ, denumirea de mintermi. Mintermii
sunt indiciai, curent, cu valorile zecimale corespunztoare scrierii binare a mintermului.
Astfel formulele pentru cele dou funcii pot fi scrise, n aceeai ordine, astfel :

suma(a,b) = m
1
+ m
2
; transportul(a,b) = m
3
.

Construcia formulelor prin punctele unde funciile sunt complementate se poate deduce
similar sau se poate calcula simplu utiliznd relaiile De Morgan aplicate formulei deduse
pentru punctele unde funciile sunt asertate. Este un foarte bun exerciiu.



PROIECTAREA LOGIC

1.1 Dualitatea i Legile DeMorgan

Dualitatea este o proprietate foarte util a algebrelor booleene. Expresia dual a unei expresii Boole-
ene se deduce prin:
- nlocuirea operatorului I (), prin operatorul SAU (+) i reciproc;
- nlocuirea constantei 0, prin constanta 1 i reciproc;
- n timp ce, variabilele expresiei rmn neschimbate.

Orice teorem ori propoziie demonstrat din algebra boolean ca fiind adevrat, are ntodeauna o
dual, deasemenea adevrat. Dualitatea este, n esen, o meta-teorem, cu alte cuvinte o teorem
despre teoreme.

Cu toate c dualitatea nu cuprinde, n sine, o modalitate direct de simplificare a expresiilor booleene,
aceasta ofer posibilitatea deducerii unor noi teoreme din cele deja cunoscute ajuntnd astfel n
procesul de simplificare al expresiilor.

Astfel, teorema de unificare x y + x y = x, are duala formulat astfel (x + y) (x + y) = y.

O demonstraie a dualei teoremei de unificare decurge, succesiv, n dou etape astfel:
(1) aplicnd legea de distributivitate se poate transcrie expresia membrului stng al dualei teoremei de
unificare:
(x + y) (x + y) = x (x + y) + y (x + y),
(2) n continuare, expresia obinut devine:
x (x + y) + y (x + y) = x + y x = x ( y + 1) = x,
ceea ce trebuia demonstrat.

Se consider expresia: f = abc + a(b + c), pentru care se calculeaz duala. O cale simpl de calcul a
dualei poate fi imaginat prin divizarea expresiei date n sub-expresii mai mici pentru care efortul de
calcul poate fi mai uor controlat: f = e
1
+ e
2
, unde e
1
= abc, iar e
2
= a(b + c).
Se noteaz, tradiional, duala expresiei f prin f
D
, rezultnd c:
f
D
= e
1D
e
2D
.
Aplicnd principiul dualitii sub-expresiei e
1D
, rezult:
e
1D
= a + b + c.
Similar, se calculeaz sub-expresia:
e
2D
= a + bc.
Rezultatul final arat astfel :
f
D
= (a + b + c)( a + bc).

Legea DeMorgan ofer o modalitate teoretic de complementare a unei funcii, de complexitate
modic. Expresia complementar a unei expresii date se formeaz pornind de la expresia original prin
nlocuirile:
- oricare literal, prin complementul su (x prin x i reciproc),
- oricare constant, prin complementara sa (0 se substituie prin 1 i reciproc),
- operatorul I se substituie prin operatorul SAU i reciproc.

Aceast teorem, aplicat chiar operatorilor I i SAU arat relaiile cu operatorii complementari
SAU-NU respectiv I-NU:
(x + y) = x y,
(x y) = x + y.

Relaiile anterioare pot fi interpretate astfel:
3
Note de curs,
dr.ing.mat. Ion I. Bucur

4
Operatorul SAU-NU aplicat unor variabile, este identic cu operatorul I aplicat variabilelor respective
dar complementate, n timp ce operatorul I-NU aplicat unor variabile este identic cu operatorul SAU
aplicat variabilelor respective dar complementate.

Se consider expresia boolean de trei variabile E(a,b,c) = abc + abc + abc + abc. Complementara
acesteia se calculeaz, pas cu pas astfel:
(E(a,b,c)) = (abc + abc + abc + abc),
(E(a,b,c)) = (abc) (abc) (abc) (abc),
(E(a,b,c)) = (a + b + c) (a + b + c) (a + b + c) (a + b + c),
(E(a,b,c)) = (a + ab + ac + ab + bc + bc + c) (a + ab + ac + ab + bc + ac + bc),
(E(a,b,c)) = (a + bc + bc + c) (a + bc + bc),
(E(a,b,c)) = (a + c)(a + bc + bc),
(E(a,b,c)) = abc + abc + ac + bc,
(E(a,b,c)) = abc + bc + ac.

O metod, puin mai simpl, pentru calculul formal al complementului expresiei unei funcii const n
calculul dualei expresiei funciei urmat de complementarea fiecrui literal.

Astfel, complementul expresiei booleene de trei variabile din exemplul precedent ar putea fi calculat
dup cum urmeaz:
E
D
(a,b,c) = (a + b + c) (a + b + c) (a + b + c) (a + b + c),
Complementnd fiecare literal din expresia dualei rezult:
(E(a,b,c)) = (a + b + c) (a + b + c) (a + b + c) (a + b + c).

De remarcat faptul c duala unei expresii i legea DeMorgan aplicat aceleiai expresii nu sunt unul i
acelai lucru. Procedeul de obinere al dualei este similar cu meniunea c literalii nu sunt
complementai pe durata procesului de calcul. Astfel, duala funciei SAU-NU este funcia I-NU i
reciproc, iar duala funciei I este funcia SAU i reciproc. Atunci cnd se aplic, unei funcii,
teorema dualitii se obine o cu totul alt funcie. Prin aplicarea legii DeMorgan unei funcii anumite
se obine complementara respectivei funcii.



2. Optimizarea circuitelor logice combinaionale

n continuare se vor aborda principiile optimizrii circuitelor logice combinaionale modelate prin
expresii formate din sume de produse (SDP) n dou niveluri sau, echivalent, prin forme tabelare (FT)
cum ar fi, spre exemplu, tabelele de implicani. Translatarea ntre cele dou forme este imediat, n
ambele sensuri. Dat fiind faptul c translatarea ntre cele doua forme este fr echivoc, pentru fixarea
ideilor, se poate considera n continuare c orice circuit este prezentat sub prima form, suma de
produse.

Minimizarea exact unei funcii scalare Booleene are drept principal obiectiv, pentru respectiva
funcie, stabilirea unei expresii algebrice echivalente, prin sume de produse, minime ca numr de
termeni i avnd, eventual, un numr minim de literali.
Astfel de exprimare se mai numete, tradiional, acoperire prin sum de produse. Sunt utilizate, n
acest scop, toate punctele din domeniul de definiie n care funcia este definit prin valoarea 1 i
punctele n care valoarea funciei nu este precizat, dac astfel de puncte exist n specificaia funciei.
Gsirea unei forme n produs de sume este similar i simplu de dedus din forma n sum de produse.

nainte s se considere aspecte att teoretice ct i de natur tehnologic, pragmatice, este util s se
aib n vedere un exemplu, de complexitate redus dar care s contureze aspectele definitorii ale
acestei probleme, eseniale n proiectarea logic.
PROIECTAREA LOGIC


Exemplul 2.1. Pentru funcia specificat prin suma de mintermi:
f = m
5
+ m
6
+ m
9
+ m
10
+ m
13
+ m
14
,
se dorete stabilirea unor posibile implementri, ct mai simple
Numrul (minim) de variabile pentru aceast funcie este patru, i aceste variabile vor fi
notate prin: x
8
, x
4
, x
2
i x
1
.

Exprimarea mintermilor n format binar este prezentat n tabelul 4:

Tabelul 2.1
Funcia din exemplul 2.1
Variabilele funciei Mintermii
funciei f x
8
x
4
x
2
x
1

m
5
0 1 0 1
m
6
0 1 1 0
m
9
1 0 0 1
m
10
1 0 1 0
m
13
1 1 0 1
m
14
1 1 1 0


Translatarea literal, n ordine, a mintermilor funciei conduce la aceast expresie, n
sume de produse canonice, a funciei considerate:
f = x
8
'x
4
x
2
'x
1
+ x
8
'x
4
x
2
x
1
' + x
8
x
4
'x
2
'x
1
+ x
8
x
4
'x
2
x
1
' + x
8
x
4
x
2
'x
1
+ x
8
x
4
x
2
x
1
', (1)




innd cont de comutativitatea operatorului + i de faptul c n algebrele Boole-ene are
loc identitatea a + a = a, expresia funciei f se poate scrie, dup o prealabil grupare
convenabil a termenilor produs, astfel:
f = (x
8
'x
4
x
2
'x
1
+ x
8
x
4
x
2
'x
1
) + (x
8
x
4
'x
2
'x
1
+ x
8
x
4
x
2
'x
1
) +
&
&
x
1
'
x
2''

x
4
'
x
8'

x
&
&
+
&
x
1
'
&
x
2'

x
4'

x
8'

x
1'

x
2
'
x
4'

x
8
'
x
1'

x
2
'
x
4
'
x
8'

x
1'

x
2
'
x
4''

x
8'

x
1
'
x
2'

x
4'

x
8
'
f
(a)
&
x
1'
x
2
'
x
8'
&
x
1
'
x
2'
x
4'
+
&
1'
x
2
'
x
4'
&
x
x
1
'
x
2'
x
8'
f
(b)
1'

&
x
2
'
&
x
2'

x
1
'
+
x f
+ 4
x
8
(c)
Figura 2.1. Realizri posibile ale funciei din exemplul 2.1.
5
Note de curs,
dr.ing.mat. Ion I. Bucur

6
(x
8
'x
4
x
2
x
1
' + x
8
x
4
x
2
x
1
' ) + (x
8
x
4
'x
2
x
1
' + x
8
x
4
x
2
x
1
'), (2)
n expresia anterioar a funciei f, din fiecare parantez se pot factoriza produse de cte
trei variabile, astfel:
f = x
4
x
2
'x
1
(x
8
' + x
8
) + x
8
x
2
'x
1
(x
4
+ x
4
') + x
4
x
2
x
1
'(x
8
'+ x
8
) + x
8
x
2
x
1
'(x
4
' + x
4
), (3)
Considernd identitile Boole-ene a + a' = 1 i a 1 = a, expresia funciei f se rescrie
astfel:
f = x
4
x
2
'x
1
+ x
8
x
2
'x
1
+ x
4
x
2
x
1
' + x
8
x
2
x
1
'. (4)
Se poate remarca, n expresia anterioar a funciei f, urmtoarea factorizare:
f = (x
4
+ x
8
)x
2
'x
1
+ (x
4
+ x
8
)x
2
x
1
'. (5)
Expresia iniial a funciei, expresia (1), forma minimizat (4) i forma factorizat (5) sunt
reprezentate schematic, simbolic, n figura 2 (a), (b) i respectiv (c).

Cercetnd circuitele din figura 2.1 se poate observa cu uurin c dintre cele trei realizri
ale funciei f, cea mai complex este cea din figura 2.1.(a).
Comparnd, n continuare, circuitele 2.1.(b) i 2.1.(c) se poate spune c n cazul
circuitului 2.1(c) sunt utilizate mai puine componente dar, n acelai timp se observ c,
spre deosebire de celelalte dou circuite are mai multe niveluri. Un numr crescut de
niveluri poate implica, depinznd de tehnologie, o vitez de lucru mai sczut pentru un
circuit combinaional.

Alegerea ntre un circuit mai economicos, dar mai lent, i unul mai costisitor, dar mai rapid, este
tranat prin considerente care in seama de contextul n care este plasat circuitul aflat n discuie. Este
de reinut c toate considerentele ce vor fi fcute n continuare se vor referi exclusiv la circuitele cu
dou niveluri.
De remarcat faptul c n cazul circuitelor combinaionale cu dou niveluri, aa cum se poate vedea n
figura 2.1(b), fiecare produs din suma de produse reprezint o poart (I) iar fiecare literal dintr-un
produs reprezint o intrare ntr-o poart. ntreaga sum de produse corespunde unei pori (SAU).
Similar se ntmpl n cazul implementrii circuitelor combinaionale prin produse de sume: fiecare
sum reprezint o poart (SAU) iar ntregul circuit este realizat printr-o poart (I). Ca i n cazul
sumelor de produse, un literal dintr-o sum este o linie de intrare ntr-o poart SAU. Trebuie remarcat,
pe scurt, c numrul de linii de intrare ntr-o poart este, n general, limitat iar numrul respectiv
depinde de tehnologia n care este construit poarta n cauz.

Porile au costuri dup cum i liniile de intrare n pori au costurile lor. Raportul dintre costul unei linii
de intrare ntr-o poart i costul acelei pori este dependent de tipul porii, de tehnologia n care se
realizeaz poarta etc. Se poate aprecia, n general, c atunci cnd se pune problema unei pori
suplimentare, costul acesteia este de cteva ori mai mare dect costul unei linii de intrare ntr-o poart
deja existent n circuitul respectiv. Din acest punct de vedere, micorarea numrului de pori este un
criteriu important n gsirea, n general, a unei forme mai simple pentru o funcie Boole-ean dat.

2.1 Principiile optimizrii logice.

Obiectivul minimizrii logice n dou niveluri este reducerea mrimii reprezentrii funciilor Booleene
n oricare din formele de reprezentare sume de produse ori produse de sume.
Se poate remarca faptul c oricare din cele dou forme ale funciilor Booleene poate fi dedus din
cealalt cu ajutorul legilor De Morgan iar aceast transformare pstreaz numrul de termeni i de
literali. Prin urmare, se poate concentra abordarea doar asupra minimizrii unei singure forme i
anume suma de produse, fr s se piard din generalitate.

Obiectivul detaliat al minimizrii logice n dou niveluri poate varia puin n funcie de stilurile de
implementare. Circuitele PLA sunt un astfel de stil de implementare. Prima int a minimizrii logice,
pentru acest stil de implementare este reducerea numrului de produse i inta secundar este
reducerea literalilor din produse.

PROIECTAREA LOGIC

Alte obiective de optimizare sunt relevante atunci cnd funciile modelate prin forme n dou niveluri
sunt implementate altfel dect prin PLA-uri. Reprezentrile logice n doua niveluri pentru funcii
scalare, spre exemplu, pot fi implementate prin pori complexe a cror mrime este corelat cu
numrul de literali din forma factorizat a acelei reprezentri. n astfel de situaii obiectivul major este
minimizarea numrului de literali.

Minimizarea logic pentru o funcie scalar sau o funcie vectorial se face dup aceleai principii, dar
cazul vectorial este mult mai complex. Minimizarea disjunct a componentelor scalare ale unei funcii
vectoriale poate conduce la rezultate suboptimale deoarece optimizarea nu poate exploata comunitatea
unor termeni produs. Un rezultat important n optimizarea logic n dou niveluri este echivalena
funciilor vectoriale binare de variabile binare cu funciile binare scalare de variabile multi-valorice.
Din astfel de raiuni, pentru nceput, abordarea se va concentra asupra tehnicilor de optimizare ale
funciilor scalare de variabile bi-valorice.


2.2 Definiii

Se vor considera funcii binare (Boole-ene) de variabile binare incomplet specificate, de forma:
f: B
n
{0, 1, *}
m
,
deoarece funciile complet specificate sunt un caz particular al funciilor cu puncte nedefinite,
nespecificate (dont care).

Pentru fiecare linie de ieire f
i
(1 i m) se definesc trei mulimi de puncte disjuncte, partiii ale
domeniului de definiie:
- mulimea punctelor n care funcia f
i
are valoarea 1,
- mulimea punctelor n care funcia f
i
are valoarea 0 i
- mulimea punctelor n care funcia f
i
are valoarea * sau mulimea punctelor nedefinite.

Aceste partiii sunt notate respectiv prin mp1, mp0, respectiv mp* (submulimi ale domeniului de
definiie B
n
).
Prin aceast partiionare a domeniului de definiie, fiecare funcie scalar incomplet specificat poate
fi privit ca un triplet de funcii complet specificate.

Funciile sunt reprezentate (prin sume de produse ori tabelar) ca liste de implicani. Conceptul
implicantului multi-ieire (multi-funcie) este general ca natur, deoarece combin vectorul valorilor
liniilor de intrare cu vectorul valorilor corespunztoare liniilor de ieire.
n consideraiile care urmeaz se va restriciona noiunea de implicant doar la valoarea 1 sau *
(neprecizat) a unei funcii.

n consecin, partea de ieire a unui implicant multi-ieire este bivaloric pentru o component
scalar a respectivei funcii vectoriale, avnd urmtoarea semnificaie:
- o valoare 1 implic fie o valoare 1, fie o valoare * a componentei scalare respective, n timp ce,
- o valoare 0 nu implic atribuirea unei valori a respectivei componente scalare; pur i simplu acea
component scalar este ignorat n punctul corespunztor prii de intrare.

n astfel de situaii partea de intrare a implicantului, cu alte cuvinte, se refer la unul sau mai multe
puncte din domeniul de definiie, unde anumite componente scalare ale funciei vectoriale iau valoarea
1 ori * i anume acele componente pentru care partea de ieire a implicantului multi-valoric este
nenul.

Definiia 2.1 Un implicant multi-ieire (multi-funcie) al unei funcii vectoriale
f: B
n
{0, 1, *}
m

este o pereche de vectori linie de dimensiune n i m numii partea de intrare i respectiv
partea de ieire.

7
Note de curs,
dr.ing.mat. Ion I. Bucur

8
Partea de intrare are componente cu valori din mulimea {0, 1, *} i reprezint un produs de literali.
Partea de ieire are componente cu valori din mulimea {0, 1}. Pentru fiecare componenta a ieirii o
valoare nenul implic o valoare 1 sau * a respectivei funcii scalare n punctul (punctele)
corespunztor (corespunztoare) prii de intrare.

Mintermii multi-ieire sunt implicani supui unor restricii deosebite.

Definiia 2.2 Un minterm multi-ieire al unei funcii precum cea definit anterior este un
implicant multi-ieire a crui parte de intrare are componente cu valori din mulimea {0, 1}
(exact n literali) i care implic valoare nenul pentru una i numai pentru una dintre
componentele (funciile scalare) de ieire.

Exemplul care urmeaz ilustreaz printr-o funcie vectorial simpl, cu dou componente scalare,
aspectele definitorii ale implicanilor canonici, mintermii, n cazul funciilor vectoriale.

Exemplul 2.2. f = (f
1
, f
2
);
f
1
= abc + abc + abc + abc+ abc,
f
2
= abc + abc

Un implicant multi-ieire al acestei funcii vectoriale f este (*01|11) .

Acest implicant multi-ieire reprezint patru mintermi multi-ieire:

(001|10), (101|10), (001|01) i (101|01).

Datorit faptului c un implicant, necanonic, poate acoperi mai muli implicani canonici (mintermi)
multi-ieire, se poate concepe reprezentarea unei funcii printr-o mulime de implicani necanonici. Iar
numrul implicanilor necanonici ai respectivei mulimi s fie, posibil, mai mic dect numrul
implicanilor canonici ai funciei. O astfel de mulime cu implicani necanonici, asociat unei funcii
date, este definit n continuare.

Definiia 2.3 O acoperire a unei funcii vectoriale binare este o mulime (o list) de
implicani care conin (acoper) mintermii acelei funcii.

Se noteaz prin F acoperirea funciei f. Mulimile mp1, mp0, mp* pot fi modelate prin acoperiri, unde
implicanii i mintermii sunt corespunztori funciilor complet specificate respective. Acoperirile mp1,
mp0 i mp* sunt notate, tradiional, prin F
ON
, F
OFF
i respectiv F
DC
. O acoperire F a unei funcii f
satisface inegalitatea: F
ON
_ F _ F
ON
F
DC
. Atunci cnd o funcie este complet definit, F
ON
i F sunt
identice (deoarece F
DC
este mulimea vid).

Mrimea sau cardinalitatea unei acoperiri este numrul de implicani ai acelei acoperiri.

Definiia 2.4. O acoperire minim este o acoperire de cardinalitate minim.

n cele ce urmeaz se va considera c obiectivul minimizrii logice combinaionale exacte n dou
niveluri este determinarea unei acoperiri minime.
Este, adesea, util s se determine acoperiri minimale, locale, numite acoperiri minimale, deoarece
calculul acestora poate fi atins cu resurse (memorie i timp) mai reduse.
Obiectivul minimizrii euristice logice combinaionale n dou niveluri este determinarea unei
acoperiri minimale. Astfel de acoperiri sunt adesea foarte apropiate n cardinalitate de acoperirile
minime i pot astfel oferi soluii eficiente pentru problemele practice. n mod normal minimalitatea
local se definete n termeni de coninere, includere.

Definiia 2.5 O acoperire iredundant a unei funcii este o acoperire care nu este un
superset propriu al niciunei alte acoperiri pentru aceeai funcie.

PROIECTAREA LOGIC

Altfel spus, ndeprtarea oricrui implicant dintr-o acoperire minim nu mai acoper, nu mai conine,
funcia. Echivalent, nici un implicant nu este coninut n orice subset de implicani ai acoperirii. O
proprietate de minimalitate mai slab este minimalitatea n raport cu coninerea unui singur implicant,
numit adeseori, coninerea singular.

Definiia 2.6 O acoperire este minimal n raport cu coninerea singular dac nici un
implicant nu este coninut n orice alt implicant al acoperirii.

O acoperire iredundant este deasemenea minimal n raport cu coninerea singular, dar nu i
reciproc. Raiunea acestei afirmaii este aceea c un implicant poate fi redundant deoarece este
coninut ntr-un subset de implicani ai acoperirii i nu de un singur implicant. Din acest motiv,
redundana este o proprietate mai puternic.

Exemplul 2.3. Se reia funcia f = (f
1
, f
2
) din exemplul 2.2.
O acoperire minimal de cardinalitate trei este specificat prin:

(00*|10)
(*01|11)
(11*|10)

O acoperire iredundant de cardinalitate patru este definit prin:

(00*|10)
(*01|01)
(1*1|10)
(11*|10)

O acoperire redundant de cardinalitate cinci, dar care este minimal n raport cu
coninerea singular este exemplificat prin:

(00*|10)
(*01|01)
(*01|10)
(1*1|10)
(11*|10)

De reinut c cel de-al treilea implicant (cel indicat printr-o sgeat orizontal) este
coninut n reuniunea dintre primul i cel de-al patrulea implicant.

O alt proprietate a implicanilor i a acoperirilor este aceea de a fi primi, respectiv prime.

Definiia 2.7. Un implicant este prim dac nu este coninut de nici un alt implicant al
funciei. O acoperire este prim dac toi implicanii si sunt primi.

n raport cu definiia 2.7 se cuvin fcute cteva remarci complementare:
- definiia calitii de implicant prim a unui implicant este legat de toi implicanii posibili ai funciei
i nu doar de cei ai acoperirii considerate;
- pentru funciile scalare, un implicant prim corespunde unui produs de literali, unde nici un literal nu
poate fi eliminat fr s se piard proprietatea de implicant.

n termeni generici, un implicant prim corespunde unui implicant cu dimensiune maximal.
Dimensiunea maximal nseamn cea mai mare dimensiune ce poate fi atins fr s se intersecteze
F
OFF
sau, echivalent, mp0.

Pentru funciile vectoriale, un implicant prim conine i un numr maxim de componente scalare
(funcii scalare) ale funciei vectoriale reprezentate n partea de ieire a implicantului. Implicanii
9
Note de curs,
dr.ing.mat. Ion I. Bucur

10
primi sunt adesea numii primi, pentru o exprimare mai scurt, mai simpl, fr s existe riscul de
echivoc.

Exemplul 2.4. Se reia funcia vectorial de variabile binare din exemplele precedente.
Lista tuturor implicanilor primi arat astfel:

(00*|10)
(*01|11)
(1*1|10)
(11*|10)

Prin definiie nici un implicant prim nu este coninut n alt implicant prim al funciei.
Implicanii anteriori reprezint o acoperire prim, dar care nu este minim. In adevr, al
treilea implicant prim este coninut n reuniunea dintre al doilea i al patrulea implicant
prim. Prin definiia unui implicant prim, dac acoperirea este prim, atunci aceasta este
minimal n raport cu coninerea singular.
nlturnd cel de-al treilea implicant prim se obine o acoperire minim care este necesar
iredundant.
Se presupune, acum, c funcia este incomplet specificat i mulimea mp* (sau F
DC
)
pentru ambele ieiri este specificat, simplu, prin implicantul cu partea de intrare 100.

Atunci, implicanii primi ar fi:
(*0*|10),
(*01|11),
(1**|10).

Aceti implicani primi formeaz o acoperire minim.

Anumii implicani primi au proprietatea special c trebuie s fie inclui n orice acoperire a
funciei. Aceti implicani sunt numii implicani primi eseniali.

Definiia 2.8. Un implicant prim este esenial dac exist un minterm al funciei acoperit
(coninut) n exclusivitate (fa de mulimea tuturor implicanilor primi ai funciei) de acest
implicant prim.

Exemplul urmtor abordeaz cteva proprieti importante ale implicanilor primi.

Exemplul 2.5. Funcia considerat n exemplele anterioare are asociai aceti implicani
primi:
(00*|10)
(*01|11)
(1*1|10)
(11*|10)

Pentru prima component scalar se observ c primul implicant prim este esenial
deoarece acoper n exclusivitate mintermul (000|10), iar al patrulea implicant prim este
deasemenea esenial pentru c acoper n exclusivitate mintermul (110 |10).

A doua funcie scalar este implicat de numai un singur implicant, mai exact de al doilea
implicant. Acest implicant este, n consecin, esenial.
Dintre toi implicanii primi, doar al treilea nu este esenial.

Minimizarea logic exact

Minimizarea logic exact vizeaz rezolvarea gsirii unei acoperiri minimale. Este considerat o
problema clasic n teoria funciilor binare de variabile discrete i primul rezultat remarcabil n gsirea
unei acoperiri minime a fost formulat de Quine i McCluskey. Soluia problemei, aa cum a fost
PROIECTAREA LOGIC

formulat de autori, se bazeaz pe teorema lui Quine, teorem care delimiteaz spaiul cutrilor
soluiei optime.

Teorema Quine

Exist o acoperire minim care este prim.

Demonstraie Se consider o acoperire minim care nu este alctuit din implicani
primi. Fiecare implicant care nu este prim poate fi nlocuit printr-un implicant prim care-l
conine. Astfel, mulimea rezultat de implicani este o acoperire i are aceeai
cardinalitate ca i acoperirea iniial. n consecin, exist o acoperire minim care este
alctuit doar din implicani primi.

Teorema Quine permite limitarea cutrii unei acoperiri minimale la acele acoperiri care constau
exclusiv din implicani primi. Se remarc faptul ca teorema se poate generaliza pentru a manevra
definiii mai largi ale acoperirii minime, unde costul unui implicant este ntotdeauna mai mic sau egal
cu costul unui implicant pe care-l conine. Teorema se aplic, spre exemplu, cazului de minimizare al
numrului literalilor pentru funciile scalare (cu o singur ieire).

E. McCluskey a formulat cutarea unei acoperiri minime ca o problema de acoperire ntr-un tabel de
implicani primi. Se va aborda aceasta formulare considernd funcii scalare complet definite.
Un tabel de implicani primi este, n fapt, o matrice binar A ale crei coloane sunt n coresponden
biunivoc cu implicanii primi ai funciei f, iar rndurile sunt n coresponden biunivoc cu mintermii
funciei. Un element a
i,j
eA este 1 dac i numai dac cel de-al j-lea prim acoper (conine) cel de-al i-
lea minterm. O acoperire minim este o mulime minim de coloane care acoper toate liniile, sau
echivalent: o mulime minim de primi ce acoper (conin) toi mintermii funciei.
Se poate observa c:
Problema acoperirii poate fi vzut ca fiind problema gsirii unui vector binar x reprezentnd o
mulime de implicani primi cu cardinalitate ( |x| ) minim astfel nct :
Ax >= 1 (1)
Matricea A poate fi privit ca matricea de inciden a unui hipergraf ale crui noduri corespund
mintermilor, iar arcele corespund implicanilor primi. ntr-o astfel de modelare, problema acoperirii
corespunde unei acoperiri cu arce ale hipergrafului.

Exemplul 2.6. Fie funcia scalar de trei variabile a, b i c:

f(a, b, c) = abc + abc + abc + abc + abc

Se poate verifica cu uurin faptul c implicanii primi ai acestei funcii sunt acetia:

(p) 0 0 * |1
(q) * 0 1 |1
(r) 1 * 1 |1
(s) 1 1 * |1


innd seama de implicanii primi p, q, r i s, matricea A arat astfel:

p q r s
000 1 0 0 0
001 1 1 0 0
101 0 1 1 0
111 0 0 1 1
110 0 0 0 1

Vectorul x = [1101]
T
reprezint o acoperire, pentru c Ax >= 1.
Se poate afirma c vectorul x selecteaz implicanii primi p,q i s.
11
Note de curs,
dr.ing.mat. Ion I. Bucur

12

Minimizarea exact poate fi rezolvat calculnd nti tabelul de implicani primi i apoi soluionnd
problema de acoperire rezultat. De remarcat faptul c problema de acoperire n acest caz este unat,
deoarece toate clauzele de acoperire pot fi exprimate ca o disjuncie de implicani. Dificultatea
abordrii const din intractabilitatea problemei de acoperire i din mrimea tabelului de implicani.

O funcie scalar binar cu n variabile binare poate avea 3
n
/n primi i 2
n-1
mintermi. De aceea, un
algoritm exponenial al unei probleme de mrime exponenial este probabil s necesite un timp lung
de calcul i un volum mare de memorie. Rezultatele actuale arat c multe probleme practice de
minimizarea logic ale unor funcii dificile pot fi rezolvate exact prin algoritmi performani care
exploateaz natura problemei i structuri de date eficiente.

Tabelul de implicani poate fi redus. Se pot extrage coloanele eseniale corespunztoare implicanilor
primi eseniali, deoarece acetia oricum trebuie s aparin oricrei soluii. Se pot nltura liniile
dominante i coloanele dominate.
Extracia implicanilor primi eseniali i nlturarea coloanelor dominate i a liniilor dominante se
poate face iterativ. Se obine astfel, n final, tabelul redus al implicanilor primi.

Dac tabelul redus se ntmpl sa fie vid, atunci s-a gsit soluia deja, prin implicanii primi eseniali
anterior extrai.
Altfel, tabelul redus, numit uneori i tabel ciclic, modeleaz aa-zisul miez ciclic al problemei. Metoda
original propus de E. McCluskey revine la branri, adic se aleg diferite combinaii de coloane
(implicani primi) i se evalueaz costul corespunztor.

Chiar dac alegerea unei coloane (un prim implicant) poate conduce la simplificri bazate pe regulile
de dominan i de eseniali, procesul este exponenial (n cel mai defavorabil caz) n raport cu
mrimea tabelei reduse.

Exemplul 2.7. Se consider matricea A din exemplul 2.6.

p q r s
000 1 0 0 0
001 1 1 0 0
101 0 1 1 0
111 0 0 1 1
110 0 0 0 1

Se remarc imediat c implicanii p i s sunt eseniali. Aceasta revine la a spune c
implicanii primi p i s aparin oricrei acoperiri.
Din acest motiv, coloanele corespunztoare pot fi terse la fel ca i liniile incidente lor.
Dup procesul de reducere al matricei, matricea astfel obinut are o singur linie i dou
coloane, artnd astfel :
q r
101 1 1

n acest caz matricea ilustreaz faptul c oricare dintre cei doi implicani q i r poate fi
folosit pentru a completa o acoperire minim. Matricea redus nu este ciclic i nu este
necesar, n consecin, un proces de branare.

n concluzie, exist dou soluii ale problemei acoperirii prime pentru aceast funcie:

{p, q, s} i {p, r, s}.

O alt abordare clasic numit, adesea, metoda lui Petrick const n scrierea clauzelor de acoperire ale
tabelului (redus) de implicani n forma unui produs de sume. Fiecare clauz (sau, echivalent, fiecare
sum din acest produs) corespunde unui minterm i aceasta reprezint disjuncia implicanilor primi
PROIECTAREA LOGIC

13
care acoper respectivul minterm. Produsul de sume este apoi transformat ntr-o suma de produse ce
este satisfcut ori de cte ori un termen al su ia valoarea 1. n acest caz, termenii produs reprezint
implicanii primi care au fost alei. Costul unei acoperiri este legat de numrul de literali din produs.
Ca rezultat, o acoperire minim este identificat prin orice termen produs al SDP avnd cei mai puini
literali.

Exemplul 2.8. Se aplic metoda lui Petrick matricei A (tabelului cu incidena implicanilor
primi, cum mai este numit) din exemplul 2.6.

p q r s
000 1 0 0 0
001 1 1 0 0
101 0 1 1 0
111 0 0 1 1
110 0 0 0 1

Clauza care stabilete acoperirea primului minterm este p; clauza relativ la cel de-al
doilea minterm este p +q, etc. Produsul de sume arat astfel:

(p)(p + q)(q + r)(r + s)(s) = 1

Calculnd produsele se obine forma sum de produse (SDP):

pqs + prs = 1

ceea ce exprim faptul c exista dou acoperiri minime avnd aceeai cardinalitate, 3.

Prima acoperire este alctuit din aceast submulime {p, q, s} a implicanilor primi, iar a
doua reprezint submulimea {p, r, s} a implicanilor primi.

De remarcat c metoda lui Petrick s-ar fi putut aplica, nc mai eficient, tabelului redus de
implicani primi i ar fi condus la o singura clauz:

|+ =1

Astfel, ori implicantul prim q ori implicantul prim r, mpreun cu implicanii primi eseniali
{p, s} determin o acoperire minim alctuit din implicani primi ai funciei considerate.

Chiar dac exprimarea produsului de sume i alegerea termenului produs din suma de produse sunt
imediate, transformarea produsului de sume ntr-o sum de produse (SDP) implic un numr
exponenial de operaii. Acest fapt limiteaz metoda Petrick la tabele cu dimensiuni relativ mici.

Algoritmul Quine-McCluskey poate fi extins la funcii vectoriale prin calculul implicanilor primi
multi-ieire i a tabelei corespunztoare. Extensii pentru ca acest algoritm s opereze cu funcii
incomplet specificate sunt, de asemenea, relativ simplu de alctuit i de aplicat.

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