Documente Academic
Documente Profesional
Documente Cultură
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
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:
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:
X + Y = XY ,
XY = X + Y
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
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)
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)
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
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:
(1.19) (1.20)
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
(1.22)
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:
(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)
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)
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:
(1.32)
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)
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:
(1.34)
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
(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
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)
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)
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
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
+ 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
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
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 )
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
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
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
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)
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)
16
(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