asdn4
TRANSCRIPT
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"
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".
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
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.
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):
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):
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
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
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
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?