Sunteți pe pagina 1din 18

1.

ELEMENTE DE ALGEBR BOOLEAN


n teoria circuitelor numerice i n electronica digital n general, semnalele electrice pot lua numai valori discrete, n majoritatea cazurilor aceste valori fiind asociate convenional lui 0 logic i 1 logic. n limbaj tehnic ne vom referi la aceste dou valori cu noiunea de bit (binary digit). Bitul se definete n teoria informaiei i este o unitate de msur a acesteia, echivalent cu informaia transmis prin furnizarea unui mesaj din dou egal probabile. Calculatoarele electronice digitale (numerice) efectueaz operaii logice. De aceea, pentru a studia principiile de operare ale subsistemelor de procesare logic, este necesar s se analizeze unele noiuni de logic matematic. Se disting mai multe direcii de preocupare n logica matematic, printre care logica claselor i logica propoziiilor. n logica claselor se studiaz relaiile dintre clasele (mulimile) de obiecte, prin clas nelegndu-se totalitatea obiectelor care au o anumit proprietate. n logica propoziiilor se studiaz propoziiile din punct de vedere al adevrului sau falsitii lor (este vorba de propoziii matematice). n afar de logica bivalent, n care propoziiile pot fi numai adevrate sau numai false, s-au dezvoltat i alte logici matematice n care se admit i alte valori pentru propoziii. Aceste logici au cptat atributul de polivalente. Majoritatea sistemelor digitale lucreaz n logic bivalent, utiliznd codificarea binar a informaiei. Exist i sisteme care lucreaz pe baza unor logici polivalente. Fie A o propoziie. Dac ea este adevrat vom scrie: A = 1. Dac este fals, vom scrie: A = 0. Astfel, 1 i/sau 0 reprezint valori de adevr (sau valori logice binare) pentru propoziia A. Expresiile n care intervin mai multe propoziii vor fi numite funcii logice. Algebra logic binar a fost fundamentat prin lucrrile matematicianului englez George Boole i din aceast cauz ea mai poart i denumirea de algebr Boole sau algebr boolean. Pentru studiul circuitelor numerice (digitale) se folosete ca suport matematic algebra boolean. Ea are la baz o serie de postulate (axiome) i teoreme.

cap.1 Elemente de algebr boolean

1.1 Axiome i teoreme booleene


Algebra boolean opereaz pe o mulime B = { x / x{0, 1}}. n aceast mulime binar se definesc trei legi de compoziie: complementarea (negare, NU, NOT, inversare logic), disjuncia (sum logic, +, SAU, OR, ) i conjuncia (produs logic, , I, AND, ), pentru care se dau n continuare tabelele de adevr, simbolurile grafice i implementarea prin contacte (figura 1.1) (xy ) x+y 0 1 1 1 (xy ) xy
0 0 0 1

x 0 1

x 1 0

x 0 0 1 1

y 0 1 0 1

x 0 0 1 1

y 0 1 0 1

x x

x x

x y

x+y

x y

xy

x x

Figura 1.1 Tabelele de adevr, simbolurile grafice i implementarea prin contacte electrice pentru complementare, disjuncie i conjuncie

Toate relaiile definite pe B au un caracter dual, adic relaiile rmn valabile dac se fac schimbrile: + cu i respectiv 0 cu 1 (teorema dualitii). n mulimea B se poate alege o structur de ase axiome duale pe baza crora se definesc teoremele i proprietile care stau la baza algebrei boolene. Acestea sunt prezentate n continuare. Axiome: 1. Mulimea B este o mulime nchis: X,Y B X+YB; X,Y B XYB ; 2. Asociativitatea: X+(Y+Z) = (X+Y)+Z ; X(YZ) = (XY) Z ; 3. Comutativitatea: X+Y = Y+X ; XY = YX ; 2

(1.1) (1.2) (1.3)

BAZELE PROIECTRII CIRCUITELOR NUMERICE 4. Distributivitatea: X+YZ = (X+Y)(X+Z) ; X (Y+Z) = XY+XZ ; 5. Element neutru: X + 0 = 0 + X = X ; X1 = 1 X = X ; 6. Complementul:

(1.4) (1.5) (1.6)

X + X = 1; X X = 0 ;

Teoreme (proprieti): 7. Idempotena: X+X+..+X = X ; XX..X = X ; 8. Elemente neutre: X+1 = 1 ; X0 = 0 ; 9. Involuia: X = X, X = X; 10. Absorbia: X+XY = X ; X(X+Y) = X ; 11. Relaiile lui De Morgan:

(1.7) (1.8) (1.9) (1.10) (1.11)

X + Y = XY ,

XY = X + Y

n general, notnd cu suma i respectiv cu produsul boolean, relaiile De Morgan se scriu:

xk =

k =1

k =1

xk

k =1

xk =

xk
k =1

(1.12)

Pe mulimea B sunt valabile teoremele enunate. Demonstraia lor se poate face folosind axiomele, dar este mai comod dac se folosesc tabelele de adevr. Tabela de adevr stabilete o coresponden ntre valorile de adevr ale variabilelor i valoarea de adevr a funciei. Exemplu: x 0 0 1 1 y 0 1 0 1
x+y 0 1 1 1

x+y

x 1 1 0 0

y 1 0 1 0

xy 1 0 0 0

1 0 0 0

Figura 1.2 Relaiile lui De Morgan

cap.1 Elemente de algebr boolean

Perechile de operatori NOT i AND, respectiv NOT i OR formeaz fiecare cte un sistem complet, adic orice relaie definit pe B poate fi exprimat folosind numai operatorii unei singure perechi. Circuitul fizic care implementeaz un operator logic se numete poart logic. Sistemele complete prezentate au fost realizate cu cte o singur poart: I-NU (NAND, Scheffer) i SAU-NU (NOR, funcie nici sau funcie Pierce). Un sistem complet de operatori poate exprima orice relaie logic ca n exemplul urmtor, n care ne propunem s implementm operatorii NOT, OR i AND folosind operatori NAND i NOR. NOT NAND x = xx OR x + y = xy AND xy = xy

NOR

x = x+x

x+y = x+y

xy = x + y

Figura 1.3 Implementarea operatorilor NOT, OR i AND folosind operatori NAND i NOR.

Relaii booleene utile: 1) x + 1 = ( x + 1) * 1 = ( x + 1)( x + x ) = x * x + x * x + 1 * x + 1 * x = = x+0+x+x = x+x =1 2) proprietatea de absorbie: x + ( x * y ) = x * (1 + y ) = x i relaia dual: x * ( x + y ) = x * x + x * y = x + xy = x

(1.13)

(1.14)

3) x + x * y = x + y (1.15) Demonstraie: x + y = ( x + y )( x + x )( y + y ) = ( xx + x x + yx + y x )( y + y ) = ( x + xy + xy )( y + y ) =
= xy + x y + xy + xy y + xy + xy y = xy + x y + xy = x( y + y ) + xy = x + xy 4) x( x + y ) = x * y (duala relaiei precedente). (1.16) (1.17)

1.2 Funcii logice


O funcie f : Bn B se numete funcie boolean. Altfel spus, o funcie boolean de n variabile y = f (x1,x2,..xn), unde xi sunt variabile de intrare, se caracterizeaz prin faptul c att funcia ct i variabilele nu pot lua dect dou valorile distincte, 0 i 1.

BAZELE PROIECTRII CIRCUITELOR NUMERICE

Exemplu: Considerm un rezervor alimentat de trei robinete x, y i z. Ne propunem s meninem rezervorul plin cu ajutorul acestor trei robinete. Rezervorul poate fi meninut plin dac cel puin dou robinete sunt deschise simultan. Dac considerm c un robinet deschis are atribuit valoarea logic 1, atunci funcia care descrie din punct de vedere logic aceast situaie este urmtoarea:

U( x, y, z) = xy z + x yz + xyz + xyz

(1.18)

1.3 Reprezentarea funciilor logice


Pentru reprezentarea funciilor logice se folosesc n mod curent i n principal trei metode, descrise mai jos.
A. Reprezentare prin tabela de adevr

Aceast reprezentare presupune marcarea, ntr-un tabel, a corespondenei dintre valorile de adevr ale variabilelor de intrare i valoarea de adevr a funciei n fiecare punct al domeniului de definiie.
Exemplu: Pentru cazul problemei considerate n exemplul anterior, reprezentarea prin tabel arat ca n figura 1.4

x 0 0 0 0 1 1 1 1

y 0 0 1 1 0 0 1 1

z 0 1 0 1 0 1 0 1

U 0 0 0 1 0 1 1 1

Figura 1.4 Exemplu de reprezentare prin tabel a unei funcii logice B. Reprezentarea prin diagrame Karnaugh

Reprezentarea prin diagrame Karnaugh const n a marca punctele domeniului de definiie ntr-o diagram plan i a preciza valoarea funciei n fiecare din aceste puncte.

x \ yz 0 1

00 0 0

01 0 1

11 1 1

10 0 1

Figura 1.5 Reprezentarea funciilor logice prin diagrame Karnaugh

cap.1 Elemente de algebr boolean Dac lum n considerare vrful cubului caracterizat prin coordonatele 000, constatm c acest vrf este vecin cu vrfurile 001, 010, 100. n diagrama Karnaugh constatm c 000 este vecin doar cu 001 i 100. Pentru ca diagrama Karnaugh s fie echivalent cu reprezentarea prin cub, ea trebuie s pstreze acelai vecinti, lucru ce devine posibil doar dac ne imaginm latura din stnga a diagramei Karnaugh n continuarea celei din dreapta, iar latura de sus n continuarea celei de jos. n acest fel, punctul 000 devine vecin i cu punctul 010.
C. Reprezentarea prin echivaleni zecimali ai mintermilor

Reprezentarea prin echivaleni zecimali ai mintermilor const n indicarea echivalenilor zecimali ai conjunciilor pentru care valoarea funciei este 1 sau a echivalenilor zecimali corespunztori valorii 0 ale funciei.
Exemplu:

U( x,y,z ) = R1 ( 3,5,6,7 ) U( x,y,z ) = R0 ( 0,1,2,4 )

(1.19) (1.20)

1.4 Expresii analitice ale funciilor logice


n majoritatea aplicaiilor practice este necesar utilizarea formei analitice a funciilor booleene. n acest scop se utilizeaz dou forme de dezvoltare: - forma canonic disjunctiv (FCD) care presupune utilizarea unor funcii elementare numite constitueni ai unitii (termeni minimali sau mintermi); - forma canonic conjunctiv (FCC) care presupune utilizarea unor funcii elementare numite constitueni ai lui zero (termeni maximali sau maxtermi).
Notaie:

x, pentru = 1 x = x, pentru = 0

(1.21)

Definiie: Se numete constituent al unitii funcia elementar Q(n) caracterizat prin faptul c k

ia valoarea 1 logic ntr-un un singur punct al domeniului de definiie. Constituentul unitii va fi produsul logic al tuturor variabilelor negate sau nenegate: Q(n) k
=

xi
i=0

n 1

k(10) = n-1,.. 0 (2)

(1.22)

Pentru ca Q(n) s fie 1 ntr-un anumit punct al domeniului de definiie este k

necesar ca toi termenii produsului s fie 1 logic, ceea ce presupune ca argumentele s aib valoarea xi = i. Aadar rezult urmtoarea regul de scriere a mintermenilor Q(n) : n k conjuncia variabilelor, variabilele care iau valoarea 0 n punctul respectiv al domeniului de definiie se vor lua negate, iar cele care iau valoarea 1 se vor lua nenegate.

BAZELE PROIECTRII CIRCUITELOR NUMERICE Numim conjuncii vecine dou conjuncii care sunt constituite din aceleai variabile i difer doar prin comlementarea uneia singure. Prin sumarea a dou conjuncii vecine se obine o conjuncie cu un numr de variabile mai mic cu 1, lipsind variabila a crei complementaritate difer.
Exemplu: Pentru cazul unei funcii de 4 variabile, fie suma a dou conjuncii vecine:

Q( 4 ) + Q( 4 ) = x 3 x 2 x1x 0 + x 3 x 2 x1 x 0 = x 3 x 2 x1( x 0 + x 0 ) = x 3 x 2 x1 = Q(3 ) 4 9 8

(1.23)

Definiie: Se numete constituent al lui zero funcia elementar D(n) care ia valoarea 0 logic k ntr-un singur punct al domeniului de definiie. Constituentul lui 0 va fi suma logic a tuturor variabilelor negate sau nenegate:

D( n ) = k

x i
i=0

n 1

k (10 ) = n 1..... 0 ( 2)

(1.24)

Pentru ca D(n) s fie 0 ntr-un un anumit punct al domeniului de definiie este k necesar ca toi termenii sumei s fie 0, ceea ce este echivalent cu x i = i . Prin urmare rezult urmtoarea regul de scriere a maxtermului D(n) : n k disjuncia variabilelor, variabilele care iau valoarea 0 n punctul respectiv al domeniului de definiie se vor lua nenegate, iar cele care iau valoarea 1 se vor lua negate. Disjunciile vecine se definesc n mod similar cu conjunciile vecine. Prin nmulirea a dou disjuncii vecine se obine o disjuncie avnd o variabil mai puin (dispare acea variabil care i modific complementaritatea).
D( 4 ) D( 4 ) = ( x 3 + x 2 + x1 + x 0 )( x 3 + x 2 + x1 + x 0 ) = (D( 3 ) + x 0 )(D( 3 ) + x 0 ) = 4 4 9 8 = D( 3 )D( 3 ) + D( 3 ) ( x 0 + x 0 ) + x 0 x 0 = D( 3 ) + D(3 ) + 0 = D(3 ) = x 3 + x 2 + x1 4 4 4 4 4 4

(1.25)

Pentru o funcie de o variabil x, f(x) se poate scrie sub forma: f ( x ) = xf (1) + xf (0) n mod similar, pentru o funcie de dou variabile f(x1, x0) avem relaia:
f (x1, x0 ) = x1f(1 x0 ) + x1f (0, x0 ) = x1[x0f(11) + x0f(10)] + x1[x0f(0,1) + x0f(0,0)] = , , , = x1x0f (11) + x1x0f(10) + x1x0f(0,1) + x1x0f(0,0) = , ,
1 0

(1.26)

1, 0 {0,1}

x1 x f(10 ) 0

(1.27)

Prin inducie rezult: f ( x n 1,..., x 0 ) =

xj {0,1}
(
j

n 1 j=0

) f ( n 1,..., 0 ),

j = 0,..., n 1

(1.28)

cap.1 Elemente de algebr boolean Termenii de sum pentru care f ( n 1,..., 0 ) = 0 dispar, deci:
f ( x n 1,..., x 0 ) =

f ( n1,..., 0

xj ) =1
(
j=0

n 1

( FCD )

(1.29)

Expresia unei funcii logice este suma mintermilor pentru care funcia ia valoarea 1.
Exemplu: U( x, y, z ) = x1y1z0 + x1y 0 z1 + x 0 y1z1 + x1y1z1 = xy z + x yz + xyz + xyz

(1.30)

Forma canonic conjunctiv ( FCC ) se obine astfel:


f ( x n 1,..., x 0 ) = f ( x n 1,..., x 0 ) =

f ( n1,..., 0

) =1
(
j=0

n 1

xj j ) =

f ( n1,..., 0 ) =1 j = 0

xj

n 1

)=

(1.31)

f ( n1,..., 0

xj )=0
(
j=0

n 1

)=

f ( n1,..., 0 ) = 0 j = 0

xj

n 1

Expresia funciei logice poate fi scris deci ca produsul maxtermilor pentru care funcia ia valoarea 0.
Exemplu:

U( x, y, z) = ( x 0 + y 0 + z0 )( x 0 + y 0 + z1)( x 0 + y1 + z 0 )( x1 + y 0 + z 0 ) = = ( x + y + z)( x + y + z)( x + y + z )( x + y + z)

(1.32)

1.5 Implementarea funciilor logice


Implementarea unei funcii logice nseamn realizarea ei cu ajutorul circuitelor (porilor) fundamentale. Se definete cost al unei implementri numrul de intrri n circuitele fundamentale care realizeaz funcia dat. Pentru implementarea unei funcii cu circuite NAND se pornete de la FCD:
f ( x n 1,..., x 0 ) =

f ( n 1,..., 0 ) =1

Q( n ) = k

f ( n 1,..., 0 ) =1

Q( n ) , k

Q( n ) = k

xj
j=0

n 1

, k10 = n 1,..., 0 ( 2)

(1.32) Realiznd Q(n) cu circuite NAND, funcia f se obine prin cuplarea ieirilor k circuitelor NAND precedente la intrrile unui alt circuit NAND.
Exemplu: f ( x, y, z ) = xy z + x yz + xyz + xyz (problema implementat de realaia1.18)

BAZELE PROIECTRII CIRCUITELOR NUMERICE


x y z

x y z

x y z

x y z

f
Figura 1.6 Exemplu de implementare a unei funcii logice cu circuite NAND, pornind de la FCD

Costul implementrii din figura 1.6 este: C1( f ) = 3 4 + 4 = 16 Pentru implementare cu circuite NOR se pornete de la FCC:
f ( x n 1,..., x 0 ) =

f ( n 1,..., 0 ) = 0

D( n ) = k

f ( n 1,..., 0 ) = 0

D(n ) , k

D(n ) = k

xj
j=0

n 1

, k (10 ) = n 1,..., 0

(1.33) Funcia f se obine prin cuplarea ieirilor circuitelor NOR ce implementeaz D(n) la k intrrile unui alt circuit NOR.
Exemplu:

x y z

x y z

x y z

x y z

C2( f )= 3 4 + 4 = 16 f
Figura 1.7 Exemplu de implementare a unei funcii logice cu circuite NOR, pornind de la FCC Nivelul unei implementri logice se definete ca fiind numrul maxim de circuite pe care le strbate un semnal de la intrare ctre ieire. n cazurile precedente s-au considerat structuri logice cu dou nivele. Exemplu:

Fie f(x,y,z) = xy + yz + xz = xy yzxz

(1.34)

cap.1 Elemente de algebr boolean

C1 = 2 3 + 3 = 9;

N1 = 2

f f

Figura 1.8 Exemplu de implementare a unei funcii logice(1.34) cu NAND, pe dou nivele, fr reducerea costului

Rescriind relaia (1.34) sub alt form se obine (1.35).


f(x,y,z) = xy+ z(x+y) = xy z( x + y + = xyz x y

(1.35)

Scderea costului n varianta a doua s-a fcut pe seama creterii nivelului, ceea ce implic ns micorarea vitezei.

x
y
x y

C2 = 2 + 2 + 2 + 2 = 8;

N2 = 3

Figura 1.9 Exemplu de implementare a unei funcii logice cu NAND (1.34), pe trei nivele, cu reducerea costului

1.6 Funcii incomplet definite


n unele cazuri, pentru anumite combinaii de variabile de intrare nu este precizat valoarea funciei sau aceste combinaii nu apar niciodat n sistemul fizic ce materializeaz funcia. Astfel de funcii se numesc funcii incomplet definite i prezint valori indiferente, pe care n tabelul de adevr le vom nota cu x: x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 0 0 1 0 1 0 1 f 0 1 1 x x x x x

10

BAZELE PROIECTRII CIRCUITELOR NUMERICE Un alt mod de reprezentare a acestor funcii este prin echivaleni zecimali (1.36). f ( x,y,z ) = R1 ( 1,2,4 ) + Rx ( 3,5,6,7 ) f ( x,y,z ) = R0 ( 0 ) + Rx ( 3,5,6,7 ) f ( x,y,z ) = R0 ( 0 ) + R1 ( 1,2,4 ) (1.36)

1.7 Minimizarea funciilor logice


n proiectarea sistemelor digitale, analiza i sinteza circuitelor numerice se bazeaz pe algebra boolean. Rezult o legtur fireasc ntre gradul de complexitate al circuitului care se obine i gradul de complexitate al funciei care l descrie. Din acest motiv, pentru sinteza circuitelor numerice (circuite funcionnd n regim de comutaie), dup etapa de definire a funciei, urmeaz obligatoriu etapa de minimizare a funciei n scopul obinerii unei forme simplificate (form minim). Minimizarea unei funcii este procedeul prin care, pentru un nivel dat, se obine o expresie care genereaz un cost minim pentru un numr dat de nivele logice. Implementarea practic a circuitului se realizeaz pe baza formei minimizate, ceea ce conduce la configuraia optim de circuit. Exist mai multe metode de minimizare, cteva dintre acestea fiind: - metoda analitic - metoda Veitch - Karnaugh - metoda Quine - McCluskey
1.7.1 Metoda analitic

Metoda analitica se bazeaz pe simplificarea expresiei unei funcii pe baza axiomelor i teoremelor algebrei booleene.
Exemplu: f ( x,y,z ) = xy z + x yz + xyz + xyz ;

C1 = 34 + 4 = 16

(1.37)

Prelucrnd forma dat a funciei, ea se poate rescrie:

f(x, y, z) = xyz + xyz + xyz + xyz + xyz + xyz = = xy(z + z) + xz(y + y) + yz(x + x) = xy + xz + yz ;
C2 = 32 + 3 = 9
1.7.2 Metoda Veitch - Karnaugh

(1.38)

Aceast metod transpune axiomele i teoremele algebrei booleene pe reprezentarea funciei cu diagrame Karnaugh. O diagram Karnaugh poate fi privit ca o reprezentare a funciei booleene, dac se au n vedere produsele logice ale coordonatelor, prin mintermi, aa cum se observ n reprezentarea care urmeaz.

11

cap.1 Elemente de algebr boolean x2 \ x1x0 0 1 00 x 2 x1 x 0 x 2 x1 x 0 01 x 2 x1x 0


x 2 x1x 0

11 x 2 x1x 0 x 2 x1x 0

10 x 2 x1 x 0 x 2 x1 x 0

Fiecare celul din diagram conine un minterm. Dou celule vecine conin mintermi care difer prin valoarea unei singure variabile. Prin adunarea mintermilor din dou celule vecine se elimin variabila care i schimb valoarea. Aceasta permite simplificarea expresiei funciei care se obine i implicit simplificarea structurii logice corespunztoare
Exemplu:

x2 \ x1x0 0 1

00 0 0

01 0 1

11 1 1

10 0 1

FCD se obine prin sumarea mintermilor pentru care funcia ia valoarea 1. Prin gruparea celulelor vecine pentru care valoarea funciei este 1 se obin x2x1, x2x0, x1x0 (prin eliminarea variabilelor care i schimb valoarea n cadrul aceleiai grupri). Fiecare celul ocupat de valoarea 1 trebuie s fac parte din cel puin o grupare, dar poate fi inclus n mai multe grupri. Pentru exemplul considerat se obine FMD: f ( x2, x1, x0 ) = x2x1 + x2x0 + x1x0. (1.39) Dac un grup de dou celule vecine este vecin la rndul su cu un alt grup de dou celule vecine, acestea se pot contopi ntr-un singur grup de patru celule vecine, ceea ce va permite eliminarea a dou variabile. n general, un grup de 2m celule vecine ocupate de uniti permite eliminarea a m variabile.
Exemplu: f ( x 3 , x 2 , x1, x 0 ) = x1 x 0 + x 2 x 0

(1.40) 01 0 0 0 0 11 0 0 0 0 10 1 0 0 1

x3x2 \ x1x0 00 01 11 10

00 1 1 1 1

Cel mai avansat grad de simplificare se obine dac valorile 1 dintr-o diagram Karnaugh sunt grupate ntr-un numr minim de grupuri, fiecare grup coninnd un numr maxim de uniti, aa cum este exemplificat n diagrama care urmeaz. x4x3 \ x2x1x0 00 01 11 10 000 001 1 1 1 1 011 1 1 1 1 010 011 1 1 1 1 111 101 1 1 1 1 100 1 1

12

BAZELE PROIECTRII CIRCUITELOR NUMERICE


Exemplu: f (x4, x3, x2, x1, x0 ) = x1x0 + x4 x2x0 + x4 x2x1x0 + x3 x2x1x0 +

+ x3x2x0 + x4 x2 x1

(FMD)

(1.41)

Pentru simplitate, n diagram nu s-au trecut dect valorile 1 ale funciei. Costul este: C1 = ( 2 + 3 + 4 + 4 + 3 + 3 ) + 6 = 25 Implementarea cu circuite NAND este prezentat n figura 1.10.
x1 x 0 x 4 x2 x0

x 4 x 2 x1 x 0

x 3 x 2 x1 x 0

x3x2x0

x 4 x 2 x1

f
Figura 1.10 Implementarea cu circuite NAND a funciei (1.41)

Pentru minimizarea funciilor scrise sub forma conjunctiv, n diagrama Karnaugh se vor considera disjunciile corespunztoare valorilor 0 ale funciei i se va urma o procedur asemntoare cu cea folosit la forma disjunctiv. Metoda const n cuplarea de disjuncii vecine din care va disprea termenul corespunztor bitului ce se modific, n echivalenii binari.
Exemplu:

x4x3 \ x2x1x0 00 01 11 10

000 001 011 010 110 111 101 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0

f ( x 4 , x 3 , x 2 , x1, x 0 ) = ( x 4 + x 2 + x 0 ) ( x 4 + x1 + x 0 ) ( x 4 + x 2 + x1 + x 0 )

( x 3 + x 2 + x1 + x 0 ) ( x 3 + x 2 + x1 + x 0 )
C2 = ( 3 + 3 + 4 + 4 + 4 ) + 5 = 23 Implementarea cu circuite NOR este prezentat n figura 1.11.

(1.42)

13

cap.1 Elemente de algebr boolean x 4 x2 x0


x 4 x1 x 0

x 4 x 2 x1 x0 x 3 x 2 x1 x 0

x 3 x 2 x1 x 0

f
Figura 1.11 Implementarea cu circuite NOR a funciei (1.42)

n cazul funciilor incomplet definite, valorile indiferente ale funciei se iau 1 pentru forma disjunctiv i 0 pentru forma conjunctiv dac aceste valori particip la minimizare. Valorile indiferente care nu sunt cuplate devin 0 pentru forma disjunctiv i 1 pentru forma conjunctiv. Considerarea valorilor indiferente determin simplificarea formei funciei care se obine n sensul reducerii numrului de variabile.
Exemplu: f (x3, x2, x1, x0 ) = R1( 0, 1, 2, 4 ) + Rx( 3, 5, 10, 15 )

(1.43) 00 01 x 0 0 11 x 0 x 0 (1.44) (1.45) 01 x 0 0 11 x 0 x 0 (1.46) (1.47) 10 0 0 x 10 0 0 x

x3x2\x1x0 00 01 11 10

00 1 1

01 1 x

11 x x

10 1 x

x3x2\x1x0 00 01 11 10

0 0

f ( x 3 , x 2 , x1, x 0 ) = x 3 x1 x 0 + x 3 x 2 x 2 + x 3 x 2 x1;

C1 = 3 3 + 3 = 12

f ( x 3 , x 2 , x1, x 0 ) = ( x 3 + x1)( x 3 + x 2 + x 0 )( x 3 + x 2 + x1)( x 2 + x1 + x 0 ); C3 = (2 + 3 3) + 4 = 15

x3x2\x1x0 00 01 11 10

00 1 1

01 1 x

11 x x

10 1 x

x3x2\x1x0 00 01 11 10
C2 = 2 2 + 2 = 6 C4 = 2 + 2 = 4

00

0 0

f ( x 3 , x 2 , x1, x 0 ) = x 3 x1 + x 3 x 2 ; f ( x 3 , x 2 , x1, x 0 ) = x 3 ( x 2 + x1);

14

BAZELE PROIECTRII CIRCUITELOR NUMERICE Concluzia este c prin participarea valorilor indiferente la minimizarea funciilor incomplet definite se obine o reducere a costurilor.
1.7.3 Metoda Quine McCluskey

Pentru funcii ce depind de mai mult de 5 variabile, metoda Veitch - Karnaugh devine greoaie i se prefer o alt metod, metoda Quine - McCluskey. n cazul formei disjunctive, minimizarea prin aceast metod presupune parcurgerea etapelor prezentate n continuare. 1) Ordonarea echivalenilor binari ai conjunciilor corespunztoare valorilor 1 ale funciei dup pondere.
Definiie:
n 1 j=0 n 1 j=0

Ponderea conjunciei Q(n) = k suma algebric.

xj

este numrul

P[Q(n) ] = k

j , unde

este

Exemplu: P[ x 3 x 2 x1 x 0 ] = P[ x 0 x1 x1x 0 ] = 0 + 1 + 1 + 0 = 2 3 2 1 0

(1.48)

Pentru o conjuncie Q = Q1Q2, ponderea este P[Q]= P[Q1]+ P[Q2].


Lem: Pentru dou conjuncii vecine ponderile difer cu o unitate.
P[ x iQ] = P[ x i ] + P[Q] = 1 + P[Q]

P[ xiQ] = P[ xi ] + P[Q] = 0 + P[Q] = P[Q] Reciproca nu este adevrat: P[ x 3 x 2 x1 x 0 ) = P[ x 3 x 2 x1x 0 ] + 1 2) Determinarea implicanilor primi prin comparaii succesive ale echivalenilor binari.
Definiie: Se numete implicant prim al unei funcii un termen al acesteia care nu se mai poate reduce.

Pentru determinarea implicanilor primi se cupleaz echivalenii binari care difer doar printr-o cifr din acelai rang. Se obine astfel primul tabel de comparaii n care dispariia variabilei corespunztoare cifrei care se modific se noteaz cu -. n continuare, se pot cupla dou conjuncii din grupe vecine dac simbolul - se afl n acelai rang i echivalenii binari difer doar printr-o cifr din acelai rang. Rezult al doilea tabel de comparare i procedura se repet. Conjuncia care nu se mai poate cupla cu nici o alt conjuncie din tabel este un implicant prim al funciei date.

15

cap.1 Elemente de algebr boolean 3) Determinarea tabelului de acoperire al funciei Tabelul de acoperire este un tablou rectangular, la care liniile corespund implicanilor primi, iar coloanele corespund echivalenilor zecimali ai conjunciilor pentru care funcia ia valoarea 1. Tabloul se completeaz cu 1 n poziiile pentru care conjunciile de pe coloane realizeaz implicanii primi de pe linii.
4) Calculul formal de determinare a tuturor soluiilor funciei

Fiecrui implicant prim X i se ataeaz o variabil logic Fx care ia valoarea 1 cnd implicantul prim este realizat (conform tabelului de acoperire). Pentru realizarea funciei este necesar ca n expresia ei s existe toate conjunciile corespunztoare valorilor 1 ale funciei. Pentru determinarea tuturor soluiilor funciei, se exprim aceast cerin cu ajutorul variabilelor Fx.
Exemplu:

f ( x3, x2, x1, x0 ) = R1 ( 0, 1, 3, 4, 7, 8, 11, 12, 13, 15 ) 1) Ordonarea echivalenilor binari 0 1 2 3 4 2) Determinarea implicanilor primi 0000-00 -000 00-1 -100 1-00 0-11 -011 110-111 1-11 11-1 - -00 - -11 .... A .... B 0000 0001 0100 1000 0011 1100 0111 1011 1101 1111 0 1 4 8 3 12 7 11 13 15

(1.49)

.... C .... D .... E .... F

16

BAZELE PROIECTRII CIRCUITELOR NUMERICE A = x 3 x 2 x1 ; B = x 3 x 2 x 0 ; C = x 3 x 2 x1 ;

D = x 3 x 2 x 0 ; E = x1 x 0 ; F = x1x 0 3) Determinarea tabelului de acoperire al funciei A B C D E F 0 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 4 7 8 11 12 13 15

(1.50)

4) Calculul formal de determinare a tuturor soluiilor funciei ( FA + FE )( FA + FB )( FB + FF) FE FF FE FF ( FC + FE )( FC + FD )( FD + FF ) = 1 ( FA + FB ) FE FF ( FC + FD ) = 1 FA FC FE FF + FA FD FE FF + FB FC FE FF + FB FD FE FF = 1 Funcia f poate avea 4 expresii: f=A+C+E+F f = A + D+ E + F f = B + C+ E + F f = B + D+ E + F n prima variant de obine f ( x 3 , x 2 , x1, x 0 ) = x 3 x 2 x1 + x 3 x 2 x1 + x1 x 0 + x1 x 0 Implementarea cu circuite NAND este prezentat n figura 1.12. x 3 x 2 x1
x 3 x 2 x1

(1.51)

(1.52)

(1.53)

x1 x 0

x1 x 0

f
Figura 1.12 Implementarea cu circuite NAND a funciei (1.53)

17

cap.1 Elemente de algebr boolean n cazul formei conjunctive a funciilor, procedura este similar, dar se vor considera valorile 0 ale funciei i disjunciile corespunztoare. Metoda Quine McCluskey se preteaz implementrii automate a sistemelor numerice. Algoritmul bazat pe aceast metod poate fi transpus n aplicaii software care determin automat structura logic a circuitului.

18