Sunteți pe pagina 1din 80

1

ELECTRONICĂ

S.l.dr.ing. Madalin FRUNZETE


Circuite logice combinaţionale 2

Conţinutul cursului

 Generalităţi şi definiţii

 Funcţii logice elementare

 Analiza circuitelor logice combinaţionale

 Sinteza circuitelor logice combinaţionale

 Exemple de circuite logice combinaţionale

 Circuite aritmetice
3

Generalităţi şi definiţii
Circuite logice combinaţionale 4
Generalităţi şi definiţii

Generalităţi
 Prin interconectarea mai multor porţi logice se obţine un circuit logic.
 Într‑o astfel de schemă putem identifica următoarele elemente:
■ intrări (x1, x2, x3 ),
■ ieşiri (y1, y2);
■ căi (de exemplu de la intrarea x1 prin porţile P2, P4, P6 şi P8 la ieşirea y1),
■ bucle (de exemplu în jurul porţilor P4, P5) şi
■ noduri (de exemplu N1 nod extern; N2, N3, N4 şi N5 noduri interne schemei).

x1 P2 P6
P4 P8 y1
N 1 P1 N 2 N 3 N 4
x2
N 5
P5 P9 y2
x3 P3 P7
Circuite logice combinaţionale 5
Generalităţi şi definiţii

Generalităţi (cont.)
 Schemele care conţin bucle se numesc cu reacţie.
 Nodurile apar atunci când ieşirea unei porţi (sau o intrare) este legată
de intrările mai multor porţi. Numărul legăturilor posibile într‑un nod este
limitat de fan-out‑ul porţii de comandă.
 O cale va fi caracterizată de lungimea sa şi de timpul de propagare
asociat căii. Lungimea unei căi este dată de numărul porţilor care
formează calea (de exemplu, calea menţionată anterior de la x1 la y1 are
lungimea 4).
 Timpul de propagare asociat unei căi () va fi suma timpilor de
propagare (tpHL sau tpLH) ale porţilor din cale.
 În cazul schemelor fără bucle de reacţie, acest timp este întotdeauna
finit. În cazul schemelor cu reacţie, acest timp este în general finit,
excepţie făcând cazurile când schema oscilează (anumite bucle sunt
parcurse tot timpul).
Circuite logice combinaţionale 6
Generalităţi şi definiţii

Definiţii
 Să presupunem că semnalele de intrare xk se modifică la momente de
timp discrete ti–1, ti, ti+1 etc. şi că timpul de propagare maxim în schemă
este max.
 Dacă schimbările semnalelor de intrare se produc la intervale ti – ti–1 mai
mari decât max, atunci, în cazul unei scheme fără bucle de reacţie,
semnalele de ieşire vor depinde numai de valorile semnalelor de intrare
aplicate la momentul ti:
y1 t   f1 x1 ti  , x2  ti  , ... , xn  ti  
...
ym  t   f m  x1 ti  , x2  ti  , ... , xn  ti  
unde t  Δ
i max  t  ti 1

 O schemă (în cazul general) caracterizată de setul de ecuaţii de mai sus


se numeşte circuit logic combinaţional (CLC).
Circuite logice combinaţionale 7
Generalităţi şi definiţii

Definiţii (cont.)
 În cazul existenţei unor bucle de reacţie şi cu condiţia
ti  Δmax  t  ti 1
îndeplinită, semnalele de ieşire yj(t) vor depinde atât de valorile din
momentul ti ale variabilelor de intrare xt(ti) cât şi de valorile variabilelor
de intrare din momentele anterioare xk(ti–1), xk(ti–2), … etc.
 Un astfel de circuit se numeşte circuit logic secvenţial (CLS).

 Circuitele combinaţionale nu au memorie – semnalul de ieşire depinde


doar de combinaţia din acel moment al semnalelor de intrare.
 Circuitele secvenţiale au memorie – valoarea semnalelor de ieşire
depinde şi de evoluţia anterioară a circuitului.
8

Funcţii logice elementare


Circuite logice combinaţionale 9
Funcţii logice elementare

Logica pozitivă şi logica negativă


 În cazul realizării practice a porţilor logice sub forma unor circuite
electronice, în funcţie de modul cum atribuim nivelele de tensiune
simbolurilor 0 şi 1, una şi aceeaşi tabelă de adevăr va putea fi
interpretată în două moduri diferite.

 În logica pozitivă (activ high logic notată cu AH) simbolul 1 se atribuie


nivelului de tensiune mai ridicat (H – high).

 Convenţia inversă se numeşte logică negativă (active low logic notată


cu AL) şi atribuie simbolul 1 nivelului de tensiune mai coborât (L – low).
Circuite logice combinaţionale 10
Funcţii logice elementare

Logica pozitivă şi logica negativă (cont.)


 Interpretarea
tabelei de adevăr
în funcţie de logica
pozitivă/negativă
utilizată:
a) ŞI/SAU
b) SAU-NU/ŞI-NU
Circuite logice combinaţionale 11
Funcţii logice elementare

Logica pozitivă şi logica negativă (cont.)

 Pentru a evita confuziile, proiectanţii evită să amestece cele două logici


în schemele lor, ceea ce nu întotdeauna este posibil.

 O soluţie convenită este aceea de a considera că toate porţile lucrează


în logică pozitivă şi să ţinem seama în mod explicit dacă semnalul
asociat unei intrări sau ieşiri este activ pe nivelul de tensiune ridicat
(AH) sau este activ pe nivel de tensiune coborât (AL). Aceste din urmă
intrări sau ieşiri vor fi însoţite în scheme de un mic cerculeţ.

 Pentru a evita neînţelegerile şi a uşura citirea schemelor, este utilă


asigurarea compatibilităţii din punct de vedere a nivelelor active a
intrărilor şi ieşirilor. În aceste circuite cerculeţele pot fi neglijate şi funcţia
realizată de circuit este evidentă (punctul d din diapozitivul următor).
Circuite logice combinaţionale 12
Funcţii logice elementare

Logica pozitivă şi logica negativă (cont.)


 Intrări/ieşiri AH şi AL:
a) Poartă ŞI cu intrări şi ieşiri de tipul AH
b) Poartă ŞI cu o intrare de tipul AL
c) Exemplu de circuit fără asigurarea compatibilităţii nivelelor logice
d) Exemplu de circuit cu asigurarea compatibilităţii nivelelor logice
Circuite logice combinaţionale 13
Funcţii logice elementare

Simbolurile şi denumirile principalelor porţi logice


Circuite logice combinaţionale 14
Funcţii logice elementare

Buffere
 Unele porţi logice, cum ar fi cele care realizează funcţiile identitate,
inversare, NOR şi NAND, sunt realizate şi într‑o variantă numită
BUFFER. Termenul se referă la faptul că, printr‑o modificare a structurii
etajului de ieşire a porţii, s‑a obţinut o mărire a capacităţii de încărcare a
acesteia (fan-out‑ul).
 Bufferele pot fi realizate şi într‑o variantă cu trei stări (tri-state) cu
posibilitatea controlării stării de ieşire printr‑o intrare de comandă
suplimentară En (Enable). Ele pot fi unidirecţionale (Line drivers, Line
receivers) – Fig. a, sau bidirecţionale (Transceivers) – Fig. b.
Circuite logice combinaţionale 15
Funcţii logice elementare

Buffere (cont.)
 Exemplu de utilizare a bufferului pentru asigurarea accesului selectiv la
o magistrală unică.

E n =1
x1
Intrare 1 x1

E n =0
High z x1
Intrare 2 x2
Linia de Bus comuna
E n =0 controlata de intrarea 1
Intrare 3 x3 High z
Circuite logice combinaţionale 16
Funcţii logice elementare x
y= c •x
c

Poarta ŞI (a)

T m
 Funcţionarea circuitului ŞI în regim
de poartă este ilustrată în Fig. a. impulsuri de
0,1 T m

frecventa
 Semnalul de ieşire este condiţionat necunoscuta
T x
de comanda c, în sensul că (b)

■ Dacă c = 1 atunci y = x şi START STOP

spunem că poarta este T x

deschisă, N x

impulsuri de
■ Dacă c = 0 atunci y = 0 şi poarta frecventa
cunoscuta
este închisă. T
(c)

 Exemple de utilizare:
impuls de
b. măsurarea unei frecvenţe comanda

necunoscute MONO-
T
STABIL
c. Cronometru impulsuri de
frecventa
d. multiplicator de frecvenţă cunoscuta

(d)
Circuite logice combinaţionale 17
Funcţii logice elementare

Poarta XOR
 Sumatorul modulo doi (poarta XOR) poate fi întâlnit în aplicaţii şi în
postura de inversor programabil.
 În funcţie de semnalul aplicat pe una din intrări (intrarea de comandă),
semnalul de ieşire va fi sau nu inversat.

x _ x
x + 1 = x x + 0 = x
1 0
18

Analiza circuitelor logice combinaţionale

În cazul analizei este cunoscută structura circuitului şi se cere funcţia pe


care acesta o realizează.
Circuite logice combinaţionale 19
Analiza circuitelor logice combinaţionale

Circuit logic combinaţional


 Un CLC este un circuit logic cu mai multe intrări şi ieşiri, fără bucle de
reacţie, la care semnalele de ieşire depind numai de combinaţiile
semnalelor aplicate la intrare (cu condiţia ti+1 – ti  max).

x 1 (t) VN z 1 (t)
x 2 (t) z 2 (t)
X (t) Z (t)

x m (t) z n (t)

(a)
Circuite logice combinaţionale 20
Analiza circuitelor logice combinaţionale

Exemplu de analiză a unui CLC


c 0

b 1
V I
s 1
a 1
s1  c1  a1  c1 b1c1  c0  a1 b1c0

c 1 c1  a1  b1  a1 c 0 b1  c0
21

Sinteza circuitelor logice combinaţionale

În cazul sintezei este cunoscută funcţia logică dorită şi se cere structura


circuitului care realizează această funcţie.
Circuite logice combinaţionale 22
Sinteza circuitelor logice combinaţionale

Sinteza circuitelor logice combinaţionale


 Sinteza unui CLC urmăreşte obţinerea schemei circuitului care să
realizeze o funcţie logică dată la nivelul de performanţe cerut (parametri
electrici şi cost).
 Etapele sintezei sunt următoarele:
■ definirea funcţiei (sau a funcţiilor);
■ minimizarea funcţiei (funcţiilor);
■ desenarea schemei circuitului;
■ optimizarea schemei din punct de vedere al performanţelor electrice
şi a costului.
Circuite logice combinaţionale 23
Sinteza circuitelor logice combinaţionale

Sinteza circuitelor logice combinaţionale (cont.)


 Trebuie menţionat faptul că acelaşi CLC poate fi realizat în mai multe
variante (după modul cum a fost scrisă funcţia), de exemplu:
■ cu circuite ŞI, SAU, NU;
■ cu circuite SAU, ŞI, NU;
■ cu circuite ŞI-NU;
■ cu circuite SAU-NU; etc.
 Pentru exemplificare, considerăm un exemplu simplu, şi anume sinteza
unui circuit de anticoincidenţă cu două intrări (Fig. a) având tabela de
adevăr şi simbolul reprezentate în Fig. b şi, respectiv, Fig. c.
Circuite logice combinaţionale 24
Sinteza circuitelor logice combinaţionale

Sinteza circuitelor logice combinaţionale (cont.)


 Pentru sinteza cu circuite ŞI, SAU, NU:
■ se completează matricea Karnaugh corespunzătoare funcţiei y,
■ se minimizează scriind FDM a funcţiei,
■ după care se desenează schema circuitului:
Circuite logice combinaţionale 25
Sinteza circuitelor logice combinaţionale

Sinteza circuitelor logice combinaţionale (cont.)


 Pentru a face sinteza cu circuite SAU, ŞI, NU:
■ se scrie FCM a funcţiei şi
■ pe baza acesteia se desenează schema circuitului:
Circuite logice combinaţionale 26
Sinteza circuitelor logice combinaţionale

Sinteza circuitelor logice combinaţionale (cont.)


 Pentru sinteza cu circuite ŞI-NU:
■ se pleacă de la FDM a funcţiei care
■ se prelucrează cu ajutorul formulei lui De Morgan astfel:

 
y  y  x1  x2  x1  x2  x1  x2  x1  x2 
■ această expresie permite desenarea schemei:

x1
y
x2
Circuite logice combinaţionale 27
Sinteza circuitelor logice combinaţionale

Sinteza circuitelor logice combinaţionale (cont.)


 Pentru a realiza o schemă cu circuite SAU-NU:
■ se pleacă de la FCM a funcţiei care
■ se prelucrează cu ajutorul formulei lui De Morgan astfel:

  
y  y   x1  x2   x1  x2   x1  x2   x1  x2 
■ această expresie permite desenarea schemei:

x1
x2
y
Circuite logice combinaţionale 28
Sinteza circuitelor logice combinaţionale

Sinteza circuitelor logice combinaţionale (cont.)


 O interesantă teoremă a lui Shannon ne va conduce la ideea realizării
unor circuite universale care vor permite realizarea oricărei funcţii cu un
număr arbitrar de variabile.
 Teorema de dezvoltare a lui Shannon
Orice funcţie Booleană poate fi scrisă sub forma
f  x1 , x2 , ... , xi , ... , xn   xi  f  x1 , x2 , ... , xi 1 , 1, xi 1 , ... , xn  
 X i  f  x1 , x2 , ... , xi 1 , 0, xi 1 , ... , xn 
 Dacă aplicăm teorema de mai sus unei funcţii de trei variabile, de două ori
consecutiv, vom obţine
f  x1 , x2 , x3   x1  x2  f  0, 0, x3   x1  x2  f  0 , 1, x3  
 x1  x2  f 1, 0, x3   x1  x2  f 1, 1, x3  
 x1  x2  f0  x1  x2  f1  x1  x2  f 2  x1  x2  f3
unde funcţiile fi nu pot lua decât valorile: 0, 1, x3 şi x3.
Circuite logice combinaţionale 29
Sinteza circuitelor logice combinaţionale

Sinteza circuitelor logice combinaţionale (cont.)


 În expresia anterioară intervin patru funcţii (f0, f1, f2 şi f3), fiecare la rândul ei
putând lua patru valori distincte. În consecinţă, rezultă un număr de 4 4 =
256 configuraţii diferite pentru expresia lui f. Cum numărul3
funcţiilor
booleene de 3 variabile este , rezultă că2 2schema
 256 care realizează
funcţia dată de ecuaţia anterioară va reprezenta un circuit universal pentru
funcţii de trei variabile.
 În diapozitivul următor (Fig. b) este definită o funcţie oarecare de trei
variabile iar în Fig. c modul ei de realizare cu acest circuit universal (circuit
de multiplexare).
 Grupul de variabile x1 şi x2 selectează intrările fi. Pentru x1 = 0 şi x2 = 0,
este selectată intrarea f0 căreia îi corespunde în tabelă primele două linii.
Valoarea funcţiei în aceste două puncte coincide cu valoarea variabilei x3,
ceea ce justifică legarea intrării f0 la x3. Pentru următoarele două linii (x1 =
0 şi x2 = 1), funcţia ia valoarea 1, indiferent de valoarea variabilei x3, ceea
ce justifică legarea intrării f1 la valoarea 1 etc.
Circuite logice combinaţionale 30
Sinteza circuitelor logice combinaţionale

Sinteza circuitelor logice combinaţionale (cont.)


 Circuit logic combinaţional universal pentru funcţii cu 3 variabile
a) Schema logică b) Exemplu de funcţie c) Mod de realizare
31

Exemple de circuite logice combinaţionale

În continuare vor fi prezentate câteva circuite reprezentative din această


categorie, utilizând pentru exemplificare circuite integrate existente.
Circuite logice combinaţionale 32
Exemple de circuite logice combinaţionale

Circuite de multiplexare
 Circuitele de multiplexare (selecţie) sunt circuite logice combinaţionale
care permit trecerea datelor de la una din intrări spre o ieşire unică.
Selecţia intrării se face printr‑un cuvânt de cod de selecţie (adresă).
 Multiplexor cu două intrări
Circuitul permite comutarea datelor de pe intrarea I0 (A = 0) sau de pe
intrarea I1 (A = 1) spre borna de ieşire Y.
Circuite logice combinaţionale 33
Exemple de circuite logice combinaţionale A B C
_
E

Circuite de multiplexare (cont.)


 MUX 8 la 1 integrat – SN74151
I0
■ Circuitul are 3 intrări de
adrese (A, B, C), 8 intrări de
I1
date (I0, I1, … , I7) şi o intrare
de validare (Enable) notată I2

cu E .
■ Ca funcţie de I3

bază, circuitul Y_
Y
permite I4

selecţia
I5
datelor de pe
una din cele
I6
8 intrări la
ieşirea unică. I7
Circuite logice combinaţionale 34
Exemple de circuite logice combinaţionale

Circuite de multiplexare (cont.)


 Realizarea unei funcţii de 4 variabile utilizând un MUX 8 la 1
■ MUX‑urile sunt circuite universale care permit realizarea oricăreia
din funcţiile booleene cu un anumit număr de variabile.
4
Un MUX cu
8 intrări va permite realizarea oricăreia din cele 22  65.536 de
funcţii de 4 variabile.
■ Exemplu de utilizare
a multiplexorului
pentru realizarea
unei funcţii de
4 variabile:
a) Funcţia
b) Grupările impuse
c) Modul de
conectare
Circuite logice combinaţionale 35
Exemple de circuite logice combinaţionale 0 MUX
1 8:1
2
Circuite de multiplexare (cont.) f( x 4 ) 3
4 y1
5
6
 Folosirea MUX‑ului pentru 7

realizarea unui CLC cu mai A 2 A 1 A 0

multe ieşiri x1x2x3

Un circuit combinaţional cu 0 MUX


x1 1 8:1
mai multe ieşiri se va putea x2
y1 2
f( x 4 ) 3
realiza prin folosirea în x3 CLC y2  4 y2
5
y3
paralel a mai multor MUX‑uri x 4
6
7
A 2 A 1 A 0

x1x2x3

0 MUX
1 8:1
2
f( x 4 ) 3
4 y3
5
6
7
A 2 A 1 A 0

x1x2x3
Circuite logice combinaţionale 36
Exemple de circuite logice combinaţionale

Circuite de multiplexare (cont.)


 Folosirea
MUX‑ului 0 MUX
1 8:1
pentru 2
3
f( x 7 )
realizarea unei 4
5
6
funcţii cu şapte 7
variabile x1 A 2 A 1 A 0
x2 0 MUX
Un circuit x3
x6x5x4 1 8:1
2
combinaţional x 4 y 
3
y
CLC 4
care să realizeze x 5
5
6
o funcţie cu mai x 6
7
0 MUX A 2 A 1 A 0
multe variabile x 7 1 8:1
2
se poate realiza f( x 7 ) 3
4
x3x2x1

prin conectarea 5
6
7
în cascadă a
A 2 A 1 A 0
multiplexoarelor
x6x5x4
Circuite logice combinaţionale 37
Exemple de circuite logice combinaţionale

Circuite de decodificare şi demultiplexare


 Se numesc circuite decodificatoare, circuitele logice combinaţionale
care activează una sau mai multe ieşiri în funcţie de cuvântul de cod
aplicat la intrare.

 Circuitele de demultiplexare (DEMUX) sunt circuite logice


combinaţionale care permit trecerea datelor de pe o intrare unică spre
ieşirea selectată. Selectarea ieşirii se face cu un cuvânt de cod de
adresă.
Circuite logice combinaţionale 38
Exemple de circuite logice combinaţionale

Circuite de decodificare şi demultiplexare (cont.)


 Decodificator de adresă
■ Decodificatorul de adresă este un tip de decodificator caracterizat
prin faptul că activează ieşirea a cărei adresă este prezentă la
intrare.
■ Exemplul ales are
2 intrări de adresă
(A1, A0) şi 22 = 4
ieşiri selectabile
(Y0, Y1, Y2, Y3).
a) Schema bloc
b) Tabela de funcţionare
c) Schema circuitului
Circuite logice combinaţionale 39
Exemple de circuite logice combinaţionale

Circuite de decodificare şi demultiplexare (cont.)


 Decodificator de adresă cu intrare de validare (Strobe)
■ În numeroase aplicaţii, este necesar ca decodificarea stărilor de
intrare să apară numai pe anumite intervale de timp specificate.
■ Acest lucru se poate realiza prin introducerea unei intrări
suplimentare de validare
(enable E ) care să
controleze porţile de
ieşire şi să autorizeze
decodificarea atunci când
semnalele de intrare sunt
stabile (funcţia îndeplinită
de intrarea de validare
este una de strobare
a ieşirilor).
Circuite logice combinaţionale 40
Exemple de circuite logice combinaţionale

Circuite de decodificare şi demultiplexare (cont.)


 Folosirea decodificatorului de adresă,
cu intrare de validare, ca un demultiplexor
■ Prezenţa unei intrări de validare (Strobe) permite inactivarea
decodificatorului (pentru E = H, toate ieşirile sunt pe L, indiferent de
starea intrărilor de selecţie A1 şi A0) sau autorizarea funcţionării sale
(pentru E = L).
■ Ieşirile depind şi de semnalul E (vezi tabela de funcţionare din
diapozitivul anterior). Pentru o adresă precizată, de exemplu A1 = 1
şi A0 = 0, vom avea Y0 = L, Y1 = L, Y2 = E şi Y3 = L; cu alte cuvinte,
ieşirea selectată depinde de semnalul aplicat pe borna E, ceea ce
este echivalent cu o funcţie de demultiplexare.
■ În concluzie, în regim de demultiplexare, datele se aplică pe intrarea
comună E şi sunt dirijate spre ieşirea selectată de cuvântul de
adresă A1A0.
Circuite logice combinaţionale 41
Exemple de circuite logice combinaţionale

Circuite de decodificare şi demultiplexare (cont.)


 Realizarea unei funcţii booleene cu decodificatoare
■ Din tabela de funcţionare a decodorului de adresă, rezultă că ieşirile
decodificatorului reprezintă funcţii elementare de două variabile
(constituenţi ai unităţii – minterm-eni).
■ Decodarea fiind completă, avem la dispoziţie toţi constituenţii
posibili. Constituenţii unităţii
DECODOR
permit scrierea funcţiilor DE Y3 = x1 x0
booleene sub formă ADRESA _
Y2 = x1 x0
disjunctivă minimă:
n _
E=L Y1 = x1 x0
f   i  mi _ _
i 1 Y0 = x1 x0
■ Exemplu: A 1 A 0
funcţia sumă modulo doi
f  x1  x2  x1  x2  x1  x2 x1 x0
f= x 1 + x 2
Circuite logice combinaţionale 42
Exemple de circuite logice combinaţionale

Circuite de decodificare şi demultiplexare (cont.)


 Conectarea în cascadă a circuitelor de demultiplexare
■ Prin conectarea în cascadă a demultiplexoarelor se pot realiza
scheme de demultiplexare cu ieşiri multiple.
■ Pentru exemplificare este prezentată o structură în cascadă folosind
demultiplexoare cu 4 ieşiri pentru a realiza o demultiplexare pe 16
ieşiri. DEMUX 0
1:4 1
E 2
3
A 1 A 0

DEMUX 0 a1 a0 2
1:4 1 2
INTRARE E 2 4 x 4 = 16 IESIRI = 2
3
A 1 A 0
DEMUX 0
a3 a2 1:4 1
E 2
3
A 1 A 0

a1 a0
Circuite logice combinaţionale 43
Exemple de circuite logice combinaţionale

Circuite de decodificare şi demultiplexare (cont.)


 Conectarea în cascadă a circuitelor de
multiplexare cu cele de demultiplexare
■ Prin legarea în cascadă a unui circuit de multiplexare cu unul de
demultiplexare, se poate realiza o schemă de selecţie care va
permite cuplarea oricărei intrări de date cu oricare ieşire.
0 MUX DEMUX 0
1 8:1 1:8 1
2 2
INTRARI 3 3
DE DATE 4 4 IESIRI
5 5
6 6
7 7
A 2 A 1 A 0 A 2 A 1 A 0

H L L L L H
Comanda Comanda
de selectie de selectie
a intrarii a iesiri
Circuite logice combinaţionale 44
Exemple de circuite logice combinaţionale

Circuite de decodificare şi demultiplexare (cont.)


 Decodificatorul integrat
BCD-zecimal 7442
■ Decodificatorul are 4
intrări de selecţie (A, B, C
şi D) şi zece ieşiri (0, 1, …,
9) şi permite selectarea
ieşirii al cărui cod BCD
este prezent la intrări.
■ Decodificarea nu este
completă (zece din cele 24
= 16 combinaţii).
■ Poate fi utilizat ca circuit
de demultiplexare, cu o
intrare comună de date
(D), trei intrări de selecţie
(A, B, şi C) şi 8 ieşiri (0, 1,
…, 7).
Circuite logice combinaţionale 45
Exemple de circuite logice combinaţionale

Circuite de decodificare şi demultiplexare (cont.)


 Decodificatorul BCD-7 segmente
■ Este un circuit de decodificare utilizat la comanda sistemelor de
afişare numerice realizate din şapte segmente.
■ Decodificatorul va fi un CLC cu patru intrări, notate cu D, C, B şi A,
şi cu şapte ieşiri, notate cu a, b, c, d, e, f şi g.
a) Schema bloc b) Tabela de funcţionare c) Dispunerea segmentelor
Circuite logice combinaţionale 46
Exemple de circuite logice combinaţionale

Circuite de decodificare şi demultiplexare (cont.)


■ Afişarea cifrei zecimale dorite se poate face fie prin aprinderea
segmentelor necesare, presupunând că iniţial toate segmentele
sunt stinse, fie prin
stingerea anumitor
segmente,
considerând că iniţial
toate sunt aprinse.
■ Se recomandă
pentru sinteză cea
dea doua variantă
deoarece realizarea
comenzilor necesită
mai puţine operaţii
logice.
Circuite logice combinaţionale 47
Exemple de circuite logice combinaţionale

Circuite de decodificare şi demultiplexare (cont.)


■ Grupând în mod convenabil zerourile din D C B A

aceste matrici (dorim să stingem anumite


segmente), se obţin expresiile logice care
permit întocmirea schemei logice a
decodificatorului cu circuite ŞI, SAU, NU.
■ În cazul în care se cere întocmirea unei _
a

scheme cu circuite ŞI-NU, expresiile


obţinute vor fi prelucrate cu ajutorul
formulei lui De Morgan. _
b

_
c

_
g
Circuite logice combinaţionale 48
Exemple de circuite logice combinaţionale

Codificatoare de adresă
 Circuitele codificatoare sunt CLC care la activarea unei intrări conduc la
apariţia unui cuvânt de cod la ieşire.
 Un codificator este de adresă dacă furnizează la ieşire adresa intrării
activate.
 Codificatorul de adresă simplu

I1 I2 I3 I4 I5 I6 I7

A0  I1  I 3  I 5  I 7 A 0
A1  I 2  I 3  I 6  I 7
A2  I 4  I 5  I 6  I 7 A 1

A 2
Circuite logice combinaţionale 49
Exemple de circuite logice combinaţionale

Codificatoare de adresă (cont.)


 Codificatorul de adresă prioritar
■ La acţionarea simultană a mai multor intrări, la ieşire apare adresa
intrării cu prioritatea cea mai mare.
■ Circuitul mai este prevăzut şi cu o intrare suplimentară EI (Enable
Input) de autorizare a funcţionării.
■ Ieşirea GS devine activă (nivel 0) atunci când cel puţin una din
intrări este activată. Ieşirea
EO este activată atunci când toate
intrările de date sunt inactive. __
0 1 2 3 4 5 6 7 EI

__ __ __ ___ ___
A 2 A 1 A 0 EO GS
Circuite logice combinaţionale 50
Exemple de circuite logice combinaţionale

Codificatoare de adresă (cont.)


0
___
EO

___
GS

__
A 0

__
4 A 1

5 __
A 2

_ 7_
EI
Circuite logice combinaţionale 51
Exemple de circuite logice combinaţionale

Comparatoare numerice
 Comparatoarele numerice sunt circuite logice care permit determinarea
relaţiei de mai mare, mai mic sau egal între două numere.
 Comparatorul numeric de un bit
Acest circuit permite compararea a două numere de câte un bit,
indicând la ieşire situaţiile de mai mare, egal sau mai mic.

( A i< B i)

A i

( A i= B i)

B i

( A i> B i)
Circuite logice combinaţionale 52
Exemple de circuite logice combinaţionale

Comparatoare numerice (cont.)


 Comparatoare numerice de mai A  A0  20  A1  21
mulţi biţi
Prin interconectarea a două comparatoare
B  B0  20  B1  21

numerice de câte un bit, se poate realiza un
comparator numeric de doi biţi.
■ Procesul de comparare începe cu
compararea biţilor cei mai semnificativi A1 P1
A 1` < B 1
cu B1. Dacă avem A1 > B1, sau A1 < B1,
acest lucru implică şi faptul că A > B sau A A 1
< B, indiferent de valoarea biţilor A0 şi B0. În
schemă, acest lucru se materializează prin P8 A 1= B 1
legarea ieşirilor porţilor P1 respectiv P2
direct la intrările porţilor P5 respectiv P6. B 1
A 1> B 1
■ Dacă A1 = B1, pentru determinarea relaţiei P2
dintre numerele A şi B, se impune
examinarea biţilor A0 şi B0, situaţie în care
ieşirea porţii P8 asigură deschiderea porţilor A 0< B 0 P5 A < B
P3
P3 şi P4.
A 0
■ Dacă A0 < B0 respectiv A0 > B0, rezultă că
sunt valabile şi relaţiile A < B respectiv A > P9 A 0= B 0
B, ceea ce se obţine prin legarea ieşirilor P6 A > B
porţilor P3 respectiv P4, la intrările porţilor P5 B 0
respectiv P6. A 0> B 0
P4
■ Dacă pentru A1 = B1 avem şi A0 = B0,
rezultă că cele două numere sunt egale, A P7 A = B
= B, şi se activează ieşirea porţii P7.
Circuite logice combinaţionale 53
Exemple de circuite logice combinaţionale

Generatorul şi detectorul de paritate


 În procesul transmiterii informaţiilor numerice pot apărea erori. O
metodă simplă de detectare a acestora constă în utilizarea codurilor
detectoare de erori (cu verificare la paritate sau imparitate).
 Aceste coduri se bazează pe faptul că la emisie se formează un nou
cuvânt de cod prin adăugarea unui bit suplimentar la cei existenţi, astfel
încât numărul de "1" din cuvântul nou format să fie par (sau impar).
 La recepţie, se verifică paritatea sau imparitatea numărului de "1" din
cuvântul recepţionat.
 În funcţie de rezultatul verificării, se decide asupra corectitudinii
cuvântului recepţionat.
 Operaţiile susmenţionate se realizează cu CLC numite generatoare şi
detectoare de paritate.
 Detectorul elementar de paritate (pentru cuvinte de doi biţi) este circuitul
de anticoincidenţă – sumatorul modulo doi – SAU-EXCLUSIV (XOR).
Circuite logice combinaţionale 54
Exemple de circuite logice combinaţionale

Generatorul şi detectorul de paritate (cont.)


 Generator sau detector de paritate (imparitate) pentru cuvinte de
patru biţi
■ Sumatorul modulo doi S1 verifică paritatea biţilor A0 şi A1, iar S2
paritatea biţilor A2 şi A3.
■ Rezultatul acestor verificări este la rândul lui verificat de S3, pe
ieşirea Y3 a acestuia apare nivel logic 1, dacă cuvântul A0A1A2A3 are
un număr impar de unităţi, şi nivel logic 0, în caz contrar.
■ Introducerea circuitului S4 în schemă, împreună cu comanda P,
asigură pe ieşirea Y nivel logic 1 sau 0 în funcţie de numărul
unităţilor din cuvântul de cod şi de comanda P aplicată (S4
funcţionează ca un inversorA comandat
0
S
Y1 de P). A 0
A 1 1 A 1
Y3 Y
S3 A 2
S4 Y
A 2 A 3
S2
A 3 Y2
P
P
Circuite logice combinaţionale 55
Exemple de circuite logice combinaţionale

Generatorul şi detectorul de paritate (cont.)


 Lanţ de transmisiune cu verificare de paritate
■ La emisie – la cei trei biţi informaţionali – se mai adaugă bitul de
paritate formând cuvântul de cod transmis.
■ La recepţie cei patru biţi ai cuvântului recepţionat sunt introduşi în
acelaşi circuit reprezentat în diapozitivul anterior, care de această
dată funcţionează ca un detector de paritate, validând sau nu, prin
bitul său de paritate, recepţionarea cuvântului de cod.

A 0 A 0
A 1 A 1
Y Y
A 2 A 2
A 3 A 3
P P

Mesajul Cuvânt de Cuvânt de cod Decizia cu privire la


cod transmis receptionat corectitudinea mesajului

Generator de paritate Detector de paritate


Circuite logice combinaţionale 56
Exemple de circuite logice combinaţionale

Generatorul şi detectorul de paritate (cont.)


 Generator/detector de paritate (pară sau impară) de 8 biţi cu
posibilităţi de expandare – SN74180
■ Circuitul este prevăzut cu intrările P (par) şi I (impar) care permit
funcţionarea ca generator / detector de paritate pară sau impară.

A 0
A 1
YP
A 2
A 3

A 4
A 5

A 6 YI
A 7
I
P
Circuite logice combinaţionale 57
Exemple de circuite logice combinaţionale

Generatorul şi detectorul de paritate (cont.)


 Generator/detector de paritate de 16 biţi
■ Prin interconectarea mai multor circuite SN74180, se pot realiza
generatoare/detectoare de paritate (pară sau impară) cu un număr
arbitrar de biţi.

Cuvânt de 16 biti

A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7
I YI I YI

H P YP P YP
SN74180 SN74180
58

Circuite aritmetice
Circuite logice combinaţionale 59
Circuite aritmetice

Reprezentarea numerelor
 În circuitele digitale, numerele reale sunt aproximate prin numere raţio­
nale, cu un număr finit de cifre.
 Reprezentarea unui număr raţional pozitiv scris într‑o bază de
numeraţie oarecare B este
N  bn 1 bn  2 ... b1 b0 , b1 b 2 ... b m
    
partea int reagă partea fractională
 Valoarea în baza zece a numărului este dată de expresia
n 1
N  bi B i
im
Circuite logice combinaţionale 60
Circuite aritmetice

Reprezentarea numerelor (cont.)


 Baza de numeraţie utilizată în circuitele digitale este B = 2, când bi   0, 1
n 1
N  bn 1 bn  2 ... b1 b0 , b1 b 2 ... b m  i
b 2i

i m
 Relaţia anterioară reprezintă un număr binar fără semn. Pentru
reprezentarea numerelor cu semn, pentru a indica semnul operandului
se utilizează bitul cel mai reprezentativ bn–1, numit bit de semn
N  bn 1 bn  2 ... b1 b0 , b1 b 2 ... b m
   
bit de mărime
semn

 Prin convenţie s‑a ales bn–1 = 0 pentru numere pozitive şi bn–1 = 1 pentru
numere negative.
Circuite logice combinaţionale 61
Circuite aritmetice

Reprezentarea numerelor (cont.)


 În funcţie de modul în care biţii bn 1 bn  2 ... b1 b0 , b1 b 2 ... b m
reprezintă valoarea numerelor negative, avem trei moduri de
reprezentare a numerelor cu semn:
 Reprezentarea prin semn şi valoare absolută
 Cifrele binare bn 2 ... b m reprezintă valoarea absolută a numărului
N.
n2
Valoarea zecimală a numărului reprezentat va fi:
N    1 
 bn 1
 bi 2i
i m

 Exemplu:
(+2) = 00010 (+5) = 00101
(–2) = 10010 (+5) = 10101
 Această reprezentarea este avantajoasă în operaţiile de înmulţire şi
împărţire, dar necesită algoritmi speciali la adunare şi scădere.
Circuite logice combinaţionale 62
Circuite aritmetice

Reprezentarea numerelor (cont.)


 În cazul particular al numerelor întregi (m = 0), gama numerelor
reprezentabile este cuprinsă în intervalul:

  2  1  N   2  1
n 1 n 1

   

 Dacă împărţim relaţia anterioară cu 2n–1, obţinem în urma acestei


operaţii de scalare o reprezentare numită în virgulă fixă

 1  2   N'  N  2 1 n  1  2 1 n 
1 n
  
   

în care virgula este poziţionată imediat după bitul de semn.


Circuite logice combinaţionale 63
Circuite aritmetice

Reprezentarea numerelor (cont.)


 Reprezentarea prin complement faţă de unu (C1)
 Reprezentarea în C1 au unui număr negativ se obţine din reprezentarea
numărului pozitiv prin complementarea tuturor biţilor acestei reprezentări
  N  C1  0 bn  2 ... b1 b0 , b1 ... b m
  N  C1  1 bn 2 ... b1 b0 , b1 ... bm
 Se poate demonstra că
  N  C1  2n  1  N
 Exemplu: (+2)C1 = 00010 (+5)C1 = 00101
(–2)C1 = 11101 (+5)C1 = 11010
 Domeniul numerelor reprezentabile (pentru numere întregi) este:

2
n 1  
 1  N   2
n 1
 1
   
 Avantaj: uşurinţa cu care se obţin numerele negative
 Dezavantaj: dualitatea reprezentării numărului zero (00000 dacă îl
considerăm număr pozitiv şi 11111 dacă îl considerăm număr negativ)
Circuite logice combinaţionale 64
Circuite aritmetice

Reprezentarea numerelor (cont.)


 Reprezentarea în complement faţă de doi (C2)
  N  C2  0 bn  2 ... b1 b0 , b1 ... b m
  N  C2
 2n  N
 Obţinerea practică a reprezentării numerelor negative:
 complementăm numărul faţă de unu;

 adăugăm un unu pe poziţia bitului cel mai puţin semnificativ;

 ignorăm eventualul transport care poate apare pe poziţia bitului


de semn.
 Exemplu:
Circuite logice combinaţionale 65
Circuite aritmetice

Reprezentarea numerelor (cont.)


 Domeniul numerelor întregi reprezentabile în C2 este
 n 1  
 2   N  2
n 1
 1
   
 Dezavantajul legat de reprezentarea mai greoaie a numerelor
negative în C2 este compensat de faptul că o operaţie de scădere a
două numere binare se transformă într‑o operaţie de adunare în C2.
Circuite logice combinaţionale 66
Circuite aritmetice

Adunarea şi scăderea
 Cazul numerelor de un bit

 Cazul numerelor de mai mulţi biţi


 Algoritmii de adunare şi scădere depind de reprezentarea folosită.
 Scăderea a două numere se poate executa prin adunarea primului
cu complementul faţă de doi al celui de al doilea. Rezultatul pozitiv
sau negativ va fi corect reprezentat în C2 în lipsa depăşirilor.
 Operaţia de adunare propriu-zisă se efectuează bit cu bit, începând
cu bitul cel mai puţin semnificativ şi terminând cu bitul de semn.
Circuite logice combinaţionale 67
Circuite aritmetice

Adunarea şi scăderea (cont.)


 Pentru fiecare poziţie, la cifrele binare curente xi şi yi se adaugă
transportul de intrare ci, rezultând, în urma adunării, suma si şi
transportul de ieşire ci+1.
Circuite logice combinaţionale 68
Circuite aritmetice

Adunarea şi scăderea (cont.)


 Exemple: folosind reprezentările în (C2) ale numerelor 2, 3 şi 5
prezentate anterior, vom exemplifica operaţiile de adunare şi
scăderea în (C2):
Circuite logice combinaţionale 69
Circuite aritmetice

Adunarea şi scăderea (cont.)


 Depăşirea
 Depăşirea (overflow) apare atunci când rezultatul nu se mai
încadrează în domeniul de reprezentabilitate ale operanzilor.
 Situaţia de depăşire se detectează prin teste efectuate asupra
operanzilor şi a rezultatului.
 Fie doi operanzi întregi X şi Y şi rezultatul adunării lor algebrice S
X  xn 1 xn  2 ... x0
Y  yn 1 yn  2 ... y0
S  sn 1 sn  2 ... s0
 Situaţia de depăşire apare doar atunci când cei doi operanzi sunt de
acelaşi semn şi se manifestă prin alterarea bitului de semn al
rezultatului.
 Pentru a găsi o modalitate de a indica situaţia de depăşire, vom
urmări modul de formare a bitului de semn al rezultatului (sn-1).
Circuite logice combinaţionale 70
Circuite aritmetice

Adunarea şi scăderea (cont.)

 Considerăm în tabelul alăturat


xi = xn–1 şi yi = yn–1 biţii de semn ai celor doi operanzi,
ci = cn–1 transportul în poziţia bitului de semn,
si = sn–1 semnul rezultatului, iar
ci+1 = cn transportul din poziţia bitului de semn (carry).
 Numai operanzii de acelaşi semn pot produce depăşire:
 Liniile 0 şi 1 corespund adunării a 2 operanzi pozitivi,

 Liniile 6 şi 7 corespund adunării a doi operanzi negativi.

 Liniile 1 şi 6 au semnul rezultatului opus semnului operanzilor, ceea


ce este incorect (depăşire).
 Numai în situaţiile de depăşire, transporturilor de intrare ci = cn-1
respectiv de ieşire ci+1 = cn în şi din poziţia bitului de semn nu sunt
egali.
Circuite logice combinaţionale 71
Circuite aritmetice

Adunarea şi scăderea (cont.)

 Funcţia logică care semnalizează anticoincidenţă a doi biţi este funcţia


suma modulo doi, iar circuitul electronic este un SAU-EXCLUSIV:
OVF  cn 1  cn

 Bitul de transport de ieşire cn = C se numeşte transport sau în engleză


Carry.
 Interpretarea valorii sale depinde de operaţia efectuată. De exemplu, în
cazul adunării unor numere întregi şi pozitive de 8 biţi, C = 1 indică
depăşirea valorii de 255.
Circuite logice combinaţionale 72
Circuite aritmetice

Circuite sumatoare
 Aşa cum s‑a arătat anterior, în C2 operaţiile de adunare şi de scădere
se tratează similar şi, în consecinţă, pentru realizarea practică a acestor
operaţii, vom avea nevoie doar de circuite de sumare şi complementare.
 Se poate arăta că operaţiile de înmulţire şi împărţire în binar se reduc la
adunări şi deplasări succesive.
 În concluzie, rezultă că cele patru operaţii matematice de bază, folosind
reprezentarea în C2, se reduc la complementări, adunări şi deplasări,
ceea ce simplifică foarte mult realizarea unor automate aritmetice
programabile.
 O operaţie matematică, oricât de complicată ar fi ea, se va realiza
printr‑o înşiruire de asemenea operaţii elementare.
 Pentru că o operaţie matematică, care poate conţine un număr foarte
mare de asemenea operaţii elementare, să se efectueze într‑un timp
scurt, este necesar ca aceste operaţii elementare să se efectueze
într‑un timp extrem de scurt.
Circuite logice combinaţionale 73
Circuite aritmetice

Circuite sumatoare (cont.)


 Schema de principiu a unui sumator
 Funcţiile de ieşire ale sumatorului de un bit se pot scrie într‑o formă
convenabilă care permite realizarea schemei sumatorului de mai
mulţi biţi, prin conectarea în cascadă a unor celule elementare
(sumator elementar) identice.

y n -1 x n -1 yi xi y0 x0

SE SE SE
cn c n -1 ci c i -1 c1 c0

s n -1 si s0
Circuite logice combinaţionale 74
Circuite aritmetice

Circuite sumatoare (cont.)


 Sumatorul elementar

ci  xi  yi  xi  ci1  yi  ci 1

si  xi  yi  ci 1  xi  yi  ci 1 
 xi  yi  ci 1  xi  yi  ci 1 
 xi  yi  ci 1
Circuite logice combinaţionale 75
Circuite aritmetice
xi yi
Circuite sumatoare (cont.)
 Sumatorul elementar
 Expresia care reprezintă valoarea
transportului, poate fi scrisă şi sub gi pi
forma
ci  xi  yi   xi  yi   ci 1 
g i  pi  ci 1
 Interpretarea acestei relaţii este
următoarea: la ieşirea unui sumator
ci c i-1
elementar va apare un transport ci
dacă el a fost generat local
( gi  xi  yi  1 ) sau dacă transportul
de intrare ci–1 s‑a propagat prin
p  xi  yi  1
celulă ( i ).

si
Circuite logice combinaţionale 76
Circuite aritmetice

Circuite sumatoare (cont.)


 Sumator de patru biţi realizat cu sumatoare elementare
 Viteza de calcul a schemei este limitată de timpul de propagare a
transportului.
x4 y4 x3 y3 x2 y2 x1 y1

g4 p4 g3 p3 g2 p2 g1 p1

c4 c0
c3 c2 c1

s4 s3 s2 s1
Circuite logice combinaţionale 77
Circuite aritmetice

Circuite sumatoare (cont.)


 Sumator de patru biţi cu calculul anticipat al transportului
 O soluţie de mărire a vitezei de calcul se bazează pe un calcul
anticipat al transportului (look ahead carry), direct din biţii celor doi
operanzi, x4 y4 x3 y3 x2 y2 x1 y1

într‑un timp
mult mai scurt
decât timpul g4 p4 g3 p3 g2 p2 g1 p1

necesar
propagării în
cascadă a
transportului
prin celulele
c4 c0
sumatorului. c3 c2 c1

s4 s3 s2 s1
Circuite logice combinaţionale 78
Circuite aritmetice

Unităţi Aritmetice Logice


 Odată cu creşterea densităţii de integrare a circuitelor digitale, funcţiile
aritmetice şi logice se execută în circuite integrate complexe,
programabile, numite unităţi aritmetico-logice (Arithmetic and Logic Unit
– ALU). Aceste circuite se pot folosi ca atare, sau se vor regăsi ca
elemente componente (de execuţie) ale unor structuri programabile şi
mai complexe (procesoare).
 Structura internă a unui ALU cuprinde în esenţă următoarele tipuri de
circuite:
 un circuit logic de intrare, comandat, care efectuează operaţii logice
elementare asupra operanzilor;
 un sumator binar paralel cu calculul anticipat al transportului;
 un generator de transport anticipat;
 circuite de comparare.
Circuite logice combinaţionale 79
Circuite aritmetice

Unităţi Aritmetice Logice (cont.) 4


A=B
A 0÷3 X
 Un ALU are următoarele intrări şi ieşiri tipice: Y
4 4
 intrări operanzi (A0 … A3, B0 … B3); B 0÷3 F 0÷3

 ieşiri funcţie (F0 … F3); _ _


c n c n+4
 intrare de transport (cn); M S 0÷3

 ieşire de transport (Cn+4);


 ieşiri pentru calculul anticipat al transportului (X, Y);
 ieşiri indicatoare de egalitate între operanzi (A = B);
 intrări de comandă:
 comanda modului (M cu M = 0 pentru aritmetic, M = 1 pentru
logic);
 selecţia funcţiei (S0 … S3).
Circuite logice combinaţionale 80
Circuite aritmetice

Unităţi Aritmetice Logice (cont.)


 Exemplu:
SN74181 – ALU de 4 biţi
 16 funcţii aritmetice şi
16 logice prezentate
alăturat (cu date de
intrare de tipul AH şi
cn  1 ).
 ALU pot fi conectate în
cascadă pentru a
prelucra operatori cu
lungime mai mare de 4
biţi. Pentru viteză mare,
trebuie folosite şi
circuite de calcul
anticipat al
transportului între
celule (SN74182).

S-ar putea să vă placă și