Documente Academic
Documente Profesional
Documente Cultură
PROIECTAREA LOGIC
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
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
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.
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.
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
PROIECTAREA LOGIC
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
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
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
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
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
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 .
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.
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
Tabelul 3d
Corespondena dintre implicanii primi i termenii canonici
Implicanii primi
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
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
*
*
*
10
13
*
*
*
*
*
*
e
*
e
*
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:
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
x'
z
&
y
z
&
y
z
&
x
y
&
f1(x, y, z)
f2(x, y, z)
x'
z
&
y
z
&
x
y
&
f1(x, y, z)
f2(x, y, z)
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,
&
+
&
+
g1(x, y,
g2(x, y,
&
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
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
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
&
X0
1
X2
&
f0
X0
X2
&
X1
X0
X2
f2
&
X1
1
X0
X1
&
f1
X0
X2
&
X1
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
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