asdn4

10
  LUCRAREA NR. 4 CIRCUITE LOGICE COMBINAŢIONALE 1. Scopul lucrării Se prezintă circuitele logice combinaţionale fundamentale. Se realizează circuite combinaţionale pentru implementarea unor func ţii booleene în formă canonică şi minimală. Se studiaz ă şi se verifică funcţionarea unor circuite combina ţionale: circuit care realizeaz ă incrementarea cu 1 a codului BCD, comparator de numere pe 2 bi ţi, sumator de numere pe 2 bi ţi. 2. Consideraţii teoretice Circuitele logice combinaţionale constituie clasa dispozitivelor numerice f ără memorie, circuite ale c ăror ieşiri, la un moment dat, sunt complet determinate de intr ări. Ele sunt alcătuite din arbori de por ţi logice elementare. Pentru realizarea lor sunt suficiente unul sau mai multe t ipuri de porţi logice elementare. 2.1 Logică pozitivă şi logică negativă La implementarea funcţiilor logice cu dispozitive electronice, acestea opereaz ă cu tensiuni şi nu cu nivele logice. Exist ă întotdeauna dou ă interpret ări ale oricărui tabel de adev ăr care descrie func ţionalitatea unei porţi, bazate pe logica pozitiv ă şi respectiv pe logica negativ ă. Valorile de tensiune pot fi interpretate ca nivele logice numai prin prisma acestor convenţii. Tensiunile de la ie şire sunt fizic aceleaşi, numai interpretarea logică diferă. Până acum am presupus c ă "1" logic este reprezentat prin nivelul de tensiune mai mare decât "0" logic. Aceast ă convenţie se numeşte logică activă pe 1 (active high) sau logică pozitivă. Când dorim activarea unui anumit semnal (de exemplu "deschide u şa"), aplicăm un nivel de tensiune mai mare (High) pe acea linie de semnal şi acesta este interpretat ca "1"

Upload: popa-flavius

Post on 13-Jul-2015

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Asdn4

5/12/2018 Asdn4 - slidepdf.com

http://slidepdf.com/reader/full/asdn4 1/10

 

 

LUCRAREA NR. 4CIRCUITE LOGICE COMBINAłIONALE 

1. Scopul lucrării 

Se prezintă circuitele logice combinaŃionale fundamentale. Serealizează circuite combinaŃionale pentru implementarea unor funcŃiibooleene în formă canonică  şi minimală. Se studiază  şi se verifică funcŃionarea unor circuite combinaŃionale: circuit care realizează incrementarea cu 1 a codului BCD, comparator de numere pe 2 biŃi, sumator

de numere pe 2 biŃi.

2. ConsideraŃii teoretice 

Circuitele logice combinaŃionale constituie clasa dispozitivelornumerice f ără memorie, circuite ale căror ieşiri, la un moment dat, suntcomplet determinate de intrări. Ele sunt alcătuite din arbori de porŃi logiceelementare. Pentru realizarea lor sunt suficiente unul sau mai multe tipuri deporŃi logice elementare.

2.1 Logică pozitivă şi logică negativă 

La implementarea funcŃiilor logice cu dispozitive electronice, acesteaoperează cu tensiuni şi nu cu nivele logice. Există întotdeauna două interpretări ale oricărui tabel de adevăr care descrie funcŃionalitatea uneiporŃi, bazate pe logica pozitivă şi respectiv pe logica negativă. Valorile detensiune pot fi interpretate ca nivele logice numai prin prisma acestorconvenŃii. Tensiunile de la ieşire sunt fizic aceleaşi, numai interpretarealogică diferă.

Până acum am presupus că "1" logic este reprezentat prin nivelul de

tensiune mai mare decât "0" logic. Această convenŃie se numeşte logică  activă  pe 1 (active high) sau logică  pozitivă . Când dorim activarea unuianumit semnal (de exemplu "deschide uşa"), aplicăm un nivel de tensiunemai mare (High) pe acea linie de semnal şi acesta este interpretat ca "1"

Page 2: Asdn4

5/12/2018 Asdn4 - slidepdf.com

http://slidepdf.com/reader/full/asdn4 2/10

 

CIRCUITE LOGICE COMBINAłIONALE 39

logic. ConvenŃia opusă este însă uneori preferabilă, mai ales atunci cândfolosim porŃi ŞI-NU sau SAU-NU pentru implementarea logicii care iniŃiază evenimentul (logică  de validare) sau îi împiedică manifestarea sau apariŃia(logică de invalidare). Această convenŃie se numeşte logică activă pe 0 sau

logică negativă . În acest caz, se foloseşte nivelul de tensiune coborât (Low)pentru a indica faptul că semnalul este activat, în timp ce nivelul de tensiunemai mare (High) indică faptul că semnalul este inactiv.

În figura 4.1 se prezintă un tabel de adevăr exprimat în termenii adouă valori de tensiune relative, High şi Low. În interpretarea logiciipozitive, tabelul de adevăr descrie o funcŃie ŞI, dar în interpretarea logiciinegative, obŃinem funcŃia SAU.

Fiind dată o funcŃie în logică pozitivă, putem afla funcŃia saechivalentă în logică negativă aplicând teoremele lui De Morgan:

)1.4( B A B A

 B A B A

•=+

•=+  

Logică negativă 

Flowlowlowhigh

F0001

F1110

Alowlowhighhigh

Blowhighlowhigh

B0101

A0011

A1100

B1010

F

Tabel de adevăral tensiunilor Logică pozitivă 

Figura 4.1  Interpret ă rile tabelului de adevă r în logică pozitivă   şi negativă  

Din cauza realelor posibilităŃi de confuzie, este de preferat să se evitefolosirea amestecată a logicii pozitive şi a celei negative într-un acelaşiproiect. Însă acest fapt nu este întotdeauna posibil, de aceea trebuieverificată întotdeauna cu mare atenŃie convenŃia folosită pentru fiecaresemnal în parte, pentru a evita situaŃii de genul conectării unui semnal de

ieşire activ pe "1" la un semnal de intrare activ pe "0".

Page 3: Asdn4

5/12/2018 Asdn4 - slidepdf.com

http://slidepdf.com/reader/full/asdn4 3/10

 

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 40

2.2 FuncŃii incomplet specificate

Până acum am presupus că trebuie să definim o funcŃie de n variabilepentru toate cele 2n  combinaŃii posibile ale variabilelor de intrare. În

realitate, lucrurile nu stau întotdeauna astfel.Să considerăm o funcŃie care are drept intrări un semi-octet în codul

BCD (vezi Anexa 1). Reamintim că numerele BCD sunt cifre zecimale dinintervalul [0-9] care sunt reprezentate de numere binare pe patru biŃi,folosind combinaŃiile 00002 (0) până la 10012 (9). Celelalte combinaŃii, dela 10102 (10) până la 11112 (15) nu vor fi niciodată întâlnite. Putemsimplifica expresiile booleene presupunând că funcŃia are în aceste cazuri uncomportament indiferent (sau don't care).

Tabelul 4.1 reprezintă tabelul de adevăr al unui circuit care realizează cod BCD incrementat cu 1. Fiecare număr BCD este reprezentat cu patru

variabile booleene, A, B, C şi D. Ieşirea circuitului de incrementare estereprezentată de funcŃii booleene de patru variabile: W, X, Y şi Z.

Tabelul 4.1 Tabelul de adevă r al circuitului cod BCD incrementat cu 1

A B C D W X Y Z0 0 0 0 0 0 0 10 0 0 1 0 0 1 00 0 1 0 0 0 1 10 0 1 1 0 1 0 00 1 0 0 0 1 0 10 1 0 1 0 1 1 0

0 1 1 0 0 1 1 10 1 1 1 1 0 0 01 0 0 0 1 0 0 11 0 0 1 0 0 0 01 0 1 0 ∅  ∅  ∅  ∅ 1 0 1 1 ∅  ∅  ∅  ∅ 1 1 0 0 ∅  ∅  ∅  ∅ 1 1 0 1 ∅  ∅  ∅  ∅ 1 1 1 0 ∅  ∅  ∅  ∅ 1 1 1 1 ∅  ∅  ∅  ∅ 

Valorile funcŃiilor sunt "∅" (indiferente sau don't care) pentru toatecombinaŃiile variabilelor de intrare care nu apar niciodată. A nu se confundaaceastă valoare "∅" cu valoarea "∅" sau "X" raportată de multe simulatoarelogice, unde ea reprezintă o valoare nedefinit ă  (sau don't know). Oriceimplementare practică a circuitului va genera totuşi o anumită ieşire pentru

Page 4: Asdn4

5/12/2018 Asdn4 - slidepdf.com

http://slidepdf.com/reader/full/asdn4 4/10

 

CIRCUITE LOGICE COMBINAłIONALE 41

cazurile indiferente. Folosind într-un tabel de adevăr valoarea "X" sau "∅" înseamnă că avem posibilitatea de a alege între a atribui valoarea 0 sau 1logic respectivei ieşiri din tabelul de adevăr. În general urmărim să alegemacea valoare care va duce la cea mai simplă implementare fizică.

2.3 Simplificarea circuitului

Simplificarea circuitului este operaŃia de găsire a unui circuit careeste funcŃional echivalent cu circuitul dat, dar care este mai simplu într-unanumit sens.

Putem oricând aplica legile algebrei booleene pentru a simplifica oexpresie, dar atunci apar mai multe probleme. În primul rând, nu există algoritm care să determine dacă soluŃia obŃinută este optimă - atunci

 înseamnă că nu ştim când putem să încetăm să mai căutăm soluŃii

simplificatoare. În al doilea rând, de multe ori este necesar să complicămexpresiile înainte de a le putea simplifica. Este împotriva firii umane de acăuta un "minim local" în speranŃa găsirii unei soluŃii globale mai bune, dareste exact ceea ce suntem nevoiŃi să facem. În fine, este mult prea riscant să manipulăm manual expresii booleene, mai ales de mari dimensiuni.

Deoarece există suficient de multe unelte software de simplificare aexpresiilor booleene, de ce trebuie să învăŃăm metode manuale, mai alesatunci când acestea sunt inaplicabile pentru probleme cu multe variabile(mai mult de şase)? Este totuşi necesară cunoaşterea principiilorfundamentale utilizate în simplificare. Pe măsură ce instrumentele CADdevin tot mai sofisticate, trebuie să avem o cunoaştere mai profundă a

algoritmilor pe care ele le aplică pentru a le putea utiliza efectiv. Şi să nuuităm că instrumentele CAD au fost scrise tot de oameni şi că ele nufuncŃionează întotdeauna f ără greşeală! Trebuie să fim în măsură să verificăm rezultatul generat de aceste instrumente.

Criteriul tradiŃional al simplificării îl constituie numărul de porŃi, iar în vederea satisfacerii lui au fost descoperite mai multe metode şi algoritmi.Însă odată cu apariŃia noilor tehnologii, adeseori nu numărul de porŃi este celcare contează atât de mult, ci numărul sau lungimea firelor de cablaj. Acestaspect schimbă radical procesul de simplificare. Nu vom insista aici asupraacestor criterii; vom prezenta în continuare câteva reguli simple de

simplificare, care sunt cel mai des folosite şi care sunt adeseori suficientepentru proiecte mai mici.

Page 5: Asdn4

5/12/2018 Asdn4 - slidepdf.com

http://slidepdf.com/reader/full/asdn4 5/10

 

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 42

a) introducerea de variabile auxiliare Această metodă se mai numeşte şi partajarea semnalelor. Să luăm deexemplu două definiŃii:

)2.4(w z y xb

w z y xa

•+•=

•+•=

 

Vom introduce variabilele auxiliare u şi v definite astfel:

)3.4(w zv

 y xu

•=

•= 

Atunci:

)4.4(vub

vua

+=

+= 

b) aplicarea teoremelor algebrei booleene Practic, prin aplicarea teoremelor se obŃine un circuit echivalent (nu

neapărat mai simplu). Trebuie însă  Ńinut cont de faptul că în termeniielectronicii, porŃile ŞI-NU sunt întrucâtva mai simple decât porŃile ŞI şiSAU, astfel încât uneori aplicarea teoremelor conduce într-adevăr la uncircuit mai simplu.

c) eliminarea termenilor redundan Ń i Rezultă în urma aplicării următoarelor echivalenŃe:

)5.4()(  y x y x x y y x y x

 y x y x x x x

•=+•=•+•

+=•+=  

Există mai multe metode utilizate pentru simplificarea expresiilorbooleene, dintre care cele mai cunoscute sunt metoda lui M. Karnaugh(construirea diagramelor Karnaugh) şi metoda iterativă Quine-McCluskey(larg răspândită în programele de simplificare automată a expresiilorbooleene).

2.4 AplicaŃii: implementarea funcŃiilor logice

2.4.1 FuncŃia multidimensională cod BCD incrementat cu 1

Am prezentat în secŃiunea 2.3 funcŃia cod BCD incrementat cu 1 caun exemplu de funcŃie cu combinaŃii indiferente. Pe baza tabelului de adevăr4.1 se generează diagrame Karnaugh de 4 variabile (figura 4.2):

Page 6: Asdn4

5/12/2018 Asdn4 - slidepdf.com

http://slidepdf.com/reader/full/asdn4 6/10

 

CIRCUITE LOGICE COMBINAłIONALE 43

AB

00 01 11 10

0 0 X 1

0 0 X 0

0 1 X X

0 0 X X

00

01

11

10

C

CD

A

D

B

AB

00 01 11 10

0 1 X 0

0 1 X 0

1 0 X X

0 1 X X

00

01

11

10

C

CD

A

D

B

AB

00 01 11 10

0 0 X 0

1 1 X 0

0 0 X X

1 1 X X

00

01

11

10

C

CD

A

D

B

AB

00 01 11 10

1 1 X 1

0 0 X 0

0 0 X X

1 1 X X

00

01

11

10

C

CD

A

D

B

ZY

XW

Figura 4.2  Diagramele Karnaugh ale func Ń iei cod BCD incrementat cu 1 

Urmărim să realizăm cele mai mari grupări posibile de celuleadiacente, profitând de prezenŃa locaŃiilor indiferente pentru a mări suprafaŃasub-cuburilor. ObŃinem următoarele expresii pentru fiecare funcŃie de ieşireunidimensională (W, X, Y şi Z) din componenŃa circuitului:

W B C D A D X B D B C B C D

Y A C D C D Z D

= • • + • = • + • + • •

= • • + • =

; ;

; .(4.6)

2.4.2 Comparator de numere pe doi biŃi

Se cere proiectarea unui circuit care primeşte la intrare două numerepe doi biŃi, N1 şi N2, şi generează trei ieşiri: F1 dacă N1 = N2, F2 dacă N1 <N2 şi F3 dacă N1 > N2. Vom nota biŃii constituenŃi ai numerelor N1 şi N2 prin A, B şi respectiv C, D.

Primul pas în abordarea problemei este de a înŃelege foarte clarfuncŃionalitatea circuitului. Vom construi aşadar o schemă bloc a circuituluişi vom determina tabelele de adevăr ale funcŃiilor (figura 4.3):

Page 7: Asdn4

5/12/2018 Asdn4 - slidepdf.com

http://slidepdf.com/reader/full/asdn4 7/10

 

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 44

AB = CD

N2 

N1 

A

B

C

D

F1

F2

F3

AB < CD

AB > CD

A B C D F1 F2 F3 0 0 0 0 1 0 00 0 0 1 0 1 00 0 1 0 0 1 00 0 1 1 0 1 00 1 0 0 0 0 10 1 0 1 1 0 00 1 1 0 0 1 00 1 1 1 0 1 01 0 0 0 0 0 11 0 0 1 0 0 11 0 1 0 1 0 01 0 1 1 0 1 01 1 0 0 0 0 11 1 0 1 0 0 11 1 1 0 0 0 11 1 1 1 1 0 0

Figura 4.3 Schema bloc  şi tabelul de adevă r al comparatorului pe 2 bi Ń i 

În continuare, pe baza tabelului de adevăr, vom obŃine următoarelediagrame Karnaugh (figura 4.4) pentru ieşiri:

 

F3F1 F2

AB

00 01 11 10

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

00

01

11

10

C

CD

A

D

B

AB

00 01 11 10

0 0 0 0

1 0 0 0

1 1 0 1

1 1 0 0

00

01

11

10

C

CD

A

D

B

AB

00 01 11 10

0 1 1 1

0 0 1 1

0 0 0 0

0 0 1 0

00

01

11

10

C

CD

A

D

B

 Figura 4.4 Diagramele Karnaugh pentru comparatorul pe 2 bi Ń i

Vom obŃine următoarele expresii pentru funcŃii:

F A B C D A B C D A B C D A B C D

F A C B D

F A B D B C D A C  

F A C A B D B C D

1

1

2

3

= • • • + • • • + • • • + • • •

= ⊕ • ⊕

= • • + • • + •

= • + • • + • •

( ) ( )(4.7)

2.4.3 Sumator de numere pe doi bi Ń i 

Se cere proiectarea unui circuit care primeşte la intrare două numerepe doi biŃi, N1 şi N2, şi generează la ieşire un număr binar pe 3 biŃi, N3. Şi

Page 8: Asdn4

5/12/2018 Asdn4 - slidepdf.com

http://slidepdf.com/reader/full/asdn4 8/10

 

CIRCUITE LOGICE COMBINAłIONALE 45

aici, numărul N1 este reprezentat de biŃii A şi B, N2 prin C şi D, iar N3 prinfuncŃiile booleene X, Y şi Z, unde X reprezintă transportul (carry), iar Y şiZ sunt biŃii propriu-zişi constituenŃi ai rezultatului.

Vom construi de asemenea o schemă bloc a circuitului şi vom

determina tabelele de adevăr ale funcŃiilor (figura 4.5):

X

N2 

N1 

A

B

C

D

N3 Y

Z

A B C D X Y Z0 0 0 0 0 0 00 0 0 1 0 0 10 0 1 0 0 1 00 0 1 1 0 1 10 1 0 0 0 0 10 1 0 1 0 1 00 1 1 0 0 1 10 1 1 1 1 0 0

1 0 0 0 0 1 01 0 0 1 0 1 11 0 1 0 1 0 01 0 1 1 1 0 11 1 0 0 0 1 11 1 0 1 1 0 01 1 1 0 1 0 11 1 1 1 1 1 0

Figura 4.5 Schemă bloc şi tabel de adevă r pentru sumatorul pe 2 bi Ń i 

În continuare, pe baza tabelului de adevăr, vom obŃine următoarele

diagrame Karnaugh (figura 4.6) pentru ieşiri:

AB00 01 11 10

0 0 0 0

0 0 1 0

0

 

1 1 1

0 0 1 1

00

01

11

10C

CD

A

D

B

AB00 01 11 10

0 0 1 1

0 1 0 1

1 0 1 0

1 1 0 0

00

01

11

10C

CD

A

D

B

AB00 01 11 10

0 1 1 0

1 0 0 1

1 0 0 1

0 1 1 0

00

01

11

10C

CD

A

D

B

 

X Y Z

Figura 4.6  Diagramele Karnaugh pentru sumatorul pe 2 bi Ń i

Page 9: Asdn4

5/12/2018 Asdn4 - slidepdf.com

http://slidepdf.com/reader/full/asdn4 9/10

 

ANALIZA ŞI SINTEZA DISPOZITIVELOR NUMERICE 46

Vom obŃine următoarele expresii pentru funcŃiile de ieşire:

 DC  B A DC  B A DC  A DC  AC  B AC  B AY sau

 DC  A BC  A BY 

 D B D B D B Z 

 D B A DC  BC  A X 

•••+•••+••+••+••+••=

⊕⊕•+⊕•=

⊕=•+•=

••+••+•=

:

)()( (4.8)

Observăm că putem reduce şi mai mult expresiile finale dacă utilizăm operatorul SAU-EXCLUSIV. Acest lucru se vede foarte clar dacă examinăm expresia lui Y minimizată cu SAU-EXCLUSIV şi apoiminimizată doar în formă de sumă de produse.

În figura 4.7 sunt prezentate cele două variante posibile deimplementare a funcŃiei Y:

A

B

C

D

Y1

Y2

CA B D

 

Figura 4.7  Două variante de implementare pentru func Ń ia Y 

Page 10: Asdn4

5/12/2018 Asdn4 - slidepdf.com

http://slidepdf.com/reader/full/asdn4 10/10

 

CIRCUITE LOGICE COMBINAłIONALE 47

3. Desf ăşurarea lucrării 

1.  Se vor realiza şi se vor verifica schemele logice care implementează funcŃiile W, X, Y şi Z ale circuitului cod BCD incrementat cu 1.

2.  Se vor implementa funcŃiile F1, F2 şi F3 constituente ale comparatoruluide numere binare pe 2 biŃi, potrivit expresiilor obŃinute după minimizare.Se va verifica funcŃionarea comparatorului. Pot să fie active mai multesemnale de ieşire simultan?

3.  Se vor implementa funcŃiile X şi Z constituente ale sumatorului denumere binare pe 2 biŃi, conform expresiilor obŃinute după minimizare.Se va verifica funcŃionarea sumatorului.

4.  Se va implementa funcŃia Y din cadrul aceluiaşi sumator potrivit celordouă scheme din figura 4.7. Care variantă este mai avantajoasă?

5.  Se va construi un convertor de cod din 8421 în 2421, parcurgându-se toŃi

paşii succesivi prezentaŃi la comparator şi la sumator. Se vor implementafuncŃiile constituente ale convertorului şi se vor verifica din punct devedere funcŃional.

6.  Pentru problemele enunŃate anterior, se va realiza implementarea numaicu porŃi ŞI-NU; cu porŃi SAU-NU; cu porŃi ŞI-SAU-NU. ComparaŃiimplementările respective. Care este implementarea cea mai avantajoasă din punctul de vedere al preŃului, al numărului de porŃi şi a suprafeŃeiocupate de circuitele integrate?