Sunteți pe pagina 1din 10

LUCRAREA NR.

4
CIRCUITE LOGICE COMBINAIONALE
1. Scopul lucrrii Se prezint circuitele logice combinaionale fundamentale. Se realizeaz circuite combinaionale pentru implementarea unor funcii booleene n form canonic i minimal. Se studiaz i se verific funcionarea unor circuite combinaionale: circuit care realizeaz incrementarea cu 1 a codului BCD, comparator de numere pe 2 bii, sumator de numere pe 2 bii.

2. Consideraii teoretice Circuitele logice combinaionale constituie clasa dispozitivelor numerice fr memorie, circuite ale cror ieiri, la un moment dat, sunt complet determinate de intrri. Ele sunt alctuite din arbori de pori logice elementare. Pentru realizarea lor sunt suficiente unul sau mai multe tipuri de pori logice elementare. 2.1 Logic pozitiv i logic negativ La implementarea funciilor logice cu dispozitive electronice, acestea opereaz cu tensiuni i nu cu nivele logice. Exist ntotdeauna dou interpretri ale oricrui tabel de adevr care descrie funcionalitatea unei pori, bazate pe logica pozitiv i respectiv pe logica negativ. Valorile de tensiune pot fi interpretate ca nivele logice numai prin prisma acestor convenii. Tensiunile de la ieire sunt fizic aceleai, numai interpretarea logic difer. Pn acum am presupus c "1" logic este reprezentat prin nivelul de tensiune mai mare dect "0" logic. Aceast convenie se numete logic activ pe 1 (active high) sau logic pozitiv. Cnd dorim activarea unui anumit semnal (de exemplu "deschide ua"), aplicm un nivel de tensiune mai mare (High) pe acea linie de semnal i acesta este interpretat ca "1"

CIRCUITE LOGICE COMBINAIONALE

39

logic. Convenia opus este ns uneori preferabil, mai ales atunci cnd folosim pori I-NU sau SAU-NU pentru implementarea logicii care iniiaz evenimentul (logic de validare) sau i mpiedic manifestarea sau apariia (logic de invalidare). Aceast convenie se numete logic activ pe 0 sau logic negativ. n acest caz, se folosete nivelul de tensiune cobort (Low) pentru a indica faptul c semnalul este activat, n timp ce nivelul de tensiune mai mare (High) indic faptul c semnalul este inactiv. n figura 4.1 se prezint un tabel de adevr exprimat n termenii a dou valori de tensiune relative, High i Low. n interpretarea logicii pozitive, tabelul de adevr descrie o funcie I, dar n interpretarea logicii negative, obinem funcia SAU. Fiind dat o funcie n logic pozitiv, putem afla funcia sa echivalent n logic negativ aplicnd teoremele lui De Morgan:
A+ B = A B A + B = A B (4.1)
F Tabel de adevr al tensiunilor A low low high high B low high low high F low low low high

Logic pozitiv A 0 0 1 1 B 0 1 0 1 F 0 0 0 1

Logic negativ A 1 1 0 0 B 1 0 1 0 F 1 1 1 0

Figura 4.1 Interpretrile tabelului de adevr n logic pozitiv i negativ


Din cauza realelor posibiliti de confuzie, este de preferat s se evite folosirea amestecat a logicii pozitive i a celei negative ntr-un acelai proiect. ns acest fapt nu este ntotdeauna posibil, de aceea trebuie verificat ntotdeauna cu mare atenie convenia folosit pentru fiecare semnal n parte, pentru a evita situaii de genul conectrii unui semnal de ieire activ pe "1" la un semnal de intrare activ pe "0".

40

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

2.2 Funcii incomplet specificate Pn acum am presupus c trebuie s definim o funcie de n variabile pentru toate cele 2n combinaii posibile ale variabilelor de intrare. n realitate, lucrurile nu stau ntotdeauna astfel. S considerm o funcie care are drept intrri un semi-octet n codul BCD (vezi Anexa 1). Reamintim c numerele BCD sunt cifre zecimale din intervalul [0-9] care sunt reprezentate de numere binare pe patru bii, folosind combinaiile 00002 (0) pn la 10012 (9). Celelalte combinaii, de la 10102 (10) pn la 11112 (15) nu vor fi niciodat ntlnite. Putem simplifica expresiile booleene presupunnd c funcia are n aceste cazuri un comportament indiferent (sau don't care). Tabelul 4.1 reprezint tabelul de adevr al unui circuit care realizeaz cod BCD incrementat cu 1. Fiecare numr BCD este reprezentat cu patru variabile booleene, A, B, C i D. Ieirea circuitului de incrementare este reprezentat de funcii booleene de patru variabile: W, X, Y i Z. Tabelul 4.1 Tabelul de adevr al circuitului cod BCD incrementat cu 1
A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 W 0 0 0 0 0 0 0 1 1 0 X 0 0 0 1 1 1 1 0 0 0 Y 0 1 1 0 0 1 1 0 0 0 Z 1 0 1 0 1 0 1 0 1 0

Valorile funciilor sunt "" (indiferente sau don't care) pentru toate combinaiile variabilelor de intrare care nu apar niciodat. A nu se confunda aceast valoare "" cu valoarea "" sau "X" raportat de multe simulatoare logice, unde ea reprezint o valoare nedefinit (sau don't know). Orice implementare practic a circuitului va genera totui o anumit ieire pentru

CIRCUITE LOGICE COMBINAIONALE

41

cazurile indiferente. Folosind ntr-un tabel de adevr valoarea "X" sau "" nseamn c avem posibilitatea de a alege ntre a atribui valoarea 0 sau 1 logic respectivei ieiri din tabelul de adevr. n general urmrim s alegem acea valoare care va duce la cea mai simpl implementare fizic. 2.3 Simplificarea circuitului Simplificarea circuitului este operaia de gsire a unui circuit care este funcional echivalent cu circuitul dat, dar care este mai simplu ntr-un anumit sens. Putem oricnd aplica legile algebrei booleene pentru a simplifica o expresie, dar atunci apar mai multe probleme. n primul rnd, nu exist algoritm care s determine dac soluia obinut este optim - atunci nseamn c nu tim cnd putem s ncetm s mai cutm soluii simplificatoare. n al doilea rnd, de multe ori este necesar s complicm expresiile nainte de a le putea simplifica. Este mpotriva firii umane de a cuta un "minim local" n sperana gsirii unei soluii globale mai bune, dar este exact ceea ce suntem nevoii s facem. n fine, este mult prea riscant s manipulm manual expresii booleene, mai ales de mari dimensiuni. Deoarece exist suficient de multe unelte software de simplificare a expresiilor booleene, de ce trebuie s nvm metode manuale, mai ales atunci cnd acestea sunt inaplicabile pentru probleme cu multe variabile (mai mult de ase)? Este totui necesar cunoaterea principiilor fundamentale utilizate n simplificare. Pe msur ce instrumentele CAD devin tot mai sofisticate, trebuie s avem o cunoatere mai profund a algoritmilor pe care ele le aplic pentru a le putea utiliza efectiv. i s nu uitm c instrumentele CAD au fost scrise tot de oameni i c ele nu funcioneaz ntotdeauna fr greeal! Trebuie s fim n msur s verificm rezultatul generat de aceste instrumente. Criteriul tradiional al simplificrii l constituie numrul de pori, iar n vederea satisfacerii lui au fost descoperite mai multe metode i algoritmi. ns odat cu apariia noilor tehnologii, adeseori nu numrul de pori este cel care conteaz att de mult, ci numrul sau lungimea firelor de cablaj. Acest aspect schimb radical procesul de simplificare. Nu vom insista aici asupra acestor criterii; vom prezenta n continuare cteva reguli simple de simplificare, care sunt cel mai des folosite i care sunt adeseori suficiente pentru proiecte mai mici.

42

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

a) introducerea de variabile auxiliare Aceast metod se mai numete i partajarea semnalelor. S lum de exemplu dou definiii: a = x y+ zw

b = x y + z w (4.2) Vom introduce variabilele auxiliare u i v definite astfel: u = x y v = z w (4.3) Atunci: a =u+v b = u + v (4.4) b) aplicarea teoremelor algebrei booleene Practic, prin aplicarea teoremelor se obine un circuit echivalent (nu neaprat mai simplu). Trebuie ns inut cont de faptul c n termenii electronicii, porile I-NU sunt ntructva mai simple dect porile I i SAU, astfel nct uneori aplicarea teoremelor conduce ntr-adevr la un circuit mai simplu. c) eliminarea termenilor redundani Rezult n urma aplicrii urmtoarelor echivalene:
x=x x y+ x y = y x+ x y = x+ y x ( x + y ) = x y (4.5)

Exist mai multe metode utilizate pentru simplificarea expresiilor booleene, dintre care cele mai cunoscute sunt metoda lui M. Karnaugh (construirea diagramelor Karnaugh) i metoda iterativ Quine-McCluskey (larg rspndit n programele de simplificare automat a expresiilor booleene).

2.4 Aplicaii: implementarea funciilor logice


2.4.1 Funcia multidimensional cod BCD incrementat cu 1 Am prezentat n seciunea 2.3 funcia cod BCD incrementat cu 1 ca un exemplu de funcie cu combinaii indiferente. Pe baza tabelului de adevr 4.1 se genereaz diagrame Karnaugh de 4 variabile (figura 4.2):

CIRCUITE LOGICE COMBINAIONALE

43

AB CD 00 W 01 11 C 10

A 00 0 0 0 0 01 0 0 1 0 B A 00 0 1 0 1 01 0 1 0 1 B 11 X X X X 10 0 0 D X Z 11 X X X X 10 1 0 D X X

AB CD 00 01 11 C 10

A 00 0 0 1 0 01 1 1 0 1 B A 00 1 0 0 1 01 1 0 0 1 B 11 X X X X 10 1 0 D X X 11 X X X X 10 0 0 D X X

AB CD 00 Y 01 11 C 10

AB CD 00 01 11 C 10

Figura 4.2 Diagramele Karnaugh ale funciei cod BCD incrementat cu 1 Urmrim s realizm cele mai mari grupri posibile de celule adiacente, profitnd de prezena locaiilor indiferente pentru a mri suprafaa sub-cuburilor. Obinem urmtoarele expresii pentru fiecare funcie de ieire unidimensional (W, X, Y i Z) din componena circuitului:
W = B C D + A D; Y = A C D + C D; X = B D + B C + B C D; Z = D.

(4.6)

2.4.2 Comparator de numere pe doi bii Se cere proiectarea unui circuit care primete la intrare dou numere pe doi bii, N1 i N2, i genereaz trei ieiri: F1 dac N1 = N2, F2 dac N1 < N2 i F3 dac N1 > N2. Vom nota biii constitueni ai numerelor N1 i N2 prin A, B i respectiv C, D. Primul pas n abordarea problemei este de a nelege foarte clar funcionalitatea circuitului. Vom construi aadar o schem bloc a circuitului i vom determina tabelele de adevr ale funciilor (figura 4.3):

44

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

A B C D A B C D N1 F1 F2 F3 AB = CD AB < CD AB > CD

F 1 F 2 F3

N2

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

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

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

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

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

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

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

Figura 4.3 Schema bloc i tabelul de adevr al comparatorului pe 2 bii n continuare, pe baza tabelului de adevr, vom obine urmtoarele diagrame Karnaugh (figura 4.4) pentru ieiri:
AB CD 00 01 11 C 10 0 0 B 0 1 A 00 1 0 0 01 0 1 0 11 0 0 1 10 0 0 D 0 C 10 1 1 B 0 0 11 1 1 0 1 C 10 0 0 B 1 0 AB CD 00 01 A 00 0 1 01 0 0 11 0 0 10 0 0 D 11 0 0 0 0 AB CD 00 01 A 00 0 0 01 1 0 11 1 1 10 1 1 D

F1

F2

F3

Figura 4.4 Diagramele Karnaugh pentru comparatorul pe 2 bii Vom obine urmtoarele expresii pentru funcii: F1 = A B C D + A B C D + A B C D + A B C D
F1 = ( A C ) ( B D) F2 = A B D + B C D + A C F3 = A C + A B D + B C D 2.4.3 Sumator de numere pe doi bii Se cere proiectarea unui circuit care primete la intrare dou numere pe doi bii, N1 i N2, i genereaz la ieire un numr binar pe 3 bii, N3. i (4.7)

CIRCUITE LOGICE COMBINAIONALE

45

aici, numrul N1 este reprezentat de biii A i B, N2 prin C i D, iar N3 prin funciile booleene X, Y i Z, unde X reprezint transportul (carry), iar Y i Z sunt biii propriu-zii constitueni ai rezultatului. Vom construi de asemenea o schem bloc a circuitului i vom determina tabelele de adevr ale funciilor (figura 4.5):
A B C D A B C D N1 N3 N2 X Y Z X Y Z

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

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

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

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

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

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

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

Figura 4.5 Schem bloc i tabel de adevr pentru sumatorul pe 2 bii n continuare, pe baza tabelului de adevr, vom obine urmtoarele diagrame Karnaugh (figura 4.6) pentru ieiri:
AB CD 00 01 11 C 10 0 0 B 1 1 A 00 0 0 0 01 0 0 1 11 0 1 1 10 0 0 D 1 C 10 1 1 B 0 0 11 1 0 1 0 C 10 0 1 B 1 0 AB CD 00 01 A 00 0 0 01 0 1 11 1 0 10 1 1 D 11 1 0 0 1 AB CD 00 01 A 00 0 1 01 1 0 11 1 0 10 0 1 D

Figura 4.6 Diagramele Karnaugh pentru sumatorul pe 2 bii

46

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

Vom obine urmtoarele expresii pentru funciile de ieire:


X = A C + B C D + A B D Z = B D + B D = B D Y = B ( A C) + B ( A C D) sau : Y = A B C + A B C + A C D + A C D + A B C D + A B C D

(4.8)

Observm c putem reduce i mai mult expresiile finale dac utilizm operatorul SAU-EXCLUSIV. Acest lucru se vede foarte clar dac examinm expresia lui Y minimizat cu SAU-EXCLUSIV i apoi minimizat doar n form de sum de produse. n figura 4.7 sunt prezentate cele dou variante posibile de implementare a funciei Y:
A
A

Y1

Y2

Figura 4.7 Dou variante de implementare pentru funcia Y

CIRCUITE LOGICE COMBINAIONALE

47

3. Desfurarea lucrrii 1. Se vor realiza i se vor verifica schemele logice care implementeaz funciile W, X, Y i Z ale circuitului cod BCD incrementat cu 1. 2. Se vor implementa funciile F1, F2 i F3 constituente ale comparatorului de numere binare pe 2 bii, potrivit expresiilor obinute dup minimizare. Se va verifica funcionarea comparatorului. Pot s fie active mai multe semnale de ieire simultan? 3. Se vor implementa funciile X i Z constituente ale sumatorului de numere binare pe 2 bii, conform expresiilor obinute dup minimizare. Se va verifica funcionarea sumatorului. 4. Se va implementa funcia Y din cadrul aceluiai sumator potrivit celor dou scheme din figura 4.7. Care variant este mai avantajoas? 5. Se va construi un convertor de cod din 8421 n 2421, parcurgndu-se toi paii succesivi prezentai la comparator i la sumator. Se vor implementa funciile constituente ale convertorului i se vor verifica din punct de vedere funcional. 6. Pentru problemele enunate anterior, se va realiza implementarea numai cu pori I-NU; cu pori SAU-NU; cu pori I-SAU-NU. Comparai implementrile respective. Care este implementarea cea mai avantajoas din punctul de vedere al preului, al numrului de pori i a suprafeei ocupate de circuitele integrate?