Sunteți pe pagina 1din 32

4. CIRCUITE LOGICE COMBINAłIONALE (CLC)

4.1. ANALIZA ŞI SINTEZA CIRCUITELOR LOGICE COMBINAłIONALE

După cum s-a menŃionat, circuitele logice combinaŃionale sunt mulŃimi de componenete electronice interconectate, capabile să realizeze operaŃii logice şi caracterizate prin faptul că setul mărimilor de ieşire este complet determinat, în orice moment de timp, de combinaŃia curentă a mărimilor de intrare.

,x n sunt intrările, iar

y 1 , y 2 ,

Reprezentarea intrare/ieşire a unui CLC este prezentată în Fig. 4.1, unde x 1 , x 2 ,

,y m sunt ieşirile. Din punct de vedere sistemic, funcŃia logică este o funcŃie de transfer.

x

x

x

1

2

n

CLC

y

y

y

1

2

n

Fig. 4.1. Reprezentarea intrare/ieşire a unui CLC

Din grupa CLC fac parte porŃile logice elementare prezentate anterior: NU, ŞI, SAU, ŞI – NU, SAU – NU, SAU – EXCLUSIV. Alte exemple de porŃi logice elementare sunt INHIBARE (Fig. 4.2) şi IMPLICARE (Fig. 4.3). În afară de structurile elementare, în proiectare interesează şi alte structuri de circuite logice combinaŃionale dedicate, de complexitate mai mare: decodificatoare, codificatoare, convertoare de cod, multiplexoare, demultiplexoare, comparatoare numerice, generatoare şi detectoare de paritate, sumatoare, unităŃi aritmetice şi logice etc. Aceste structuri pot fi folosite ca module de bază în sinteza altor circuite logice.

ca module de baz ă în sinteza altor circuite logice. Fig. 4.2. Circuitul logic INHIBARE. Fig.

Fig. 4.2. Circuitul logic INHIBARE.

altor circuite logice. Fig. 4.2. Circuitul logic INHIBARE. Fig. 4.3. Circuitul logic IMPLICARE. Dat ă fiind

Fig. 4.3. Circuitul logic IMPLICARE.

Dată fiind structura fizică (schema circuitului), analiza unui CLC constă, în principal, în deducerea funcŃiei de transfer. Pe baza acestei funcŃii de transfer, cunoscând semnalele logice ale intrărilor, se pot determina semnalele logice de ieşire. Proiectarea (sinteza) unui CLC este operaŃia inversă analizei şi constă în determinarea structurii fizice (schemei circuitului), cunoscând funcŃia de transfer, dedusă, de cele mai multe ori, din intrările şi ieşirile corespunzătoare. În proiectarea CLC pot fi folosite mai multe metode: metode simple, metode complexe,

incluzând metodele de minimizare a funcŃiilor logice obŃinute, şi metode bazate pe module. Astfel, metoda de sinteză simplă pleacă direct de la funcŃia de transfer, utilizând porŃile logice elementare corespunzătoare operaŃiilor logice din funcŃia de transfer. În schimb, metoda de sinteză complexă presupune parcurgerea următoarelor etape:

a) Formularea problemei prin definirea variabilelor de intrare şi de ieşire; definirea restricŃiilor.

b) Alcătuirea tabelului de adevăr.

44

c)

ObŃinere funcŃiei logice în formă minimizată.

d) Implementarea circuitului logic (corespunzător sintezei simple).

Exemplul 4.1. Sinteza simplă

Să se implementeze un CLC corespunzător funcŃiei de transfer:

f(x 0 ,x 1 ,x 2 ,x 3 ) = ((x 0 ·x 1 ’+x 2 )·x 3 )’

Circuitul logic corespunzător funcŃiei de mai sus este prezentat în Fig.4.4.

ă tor func Ń iei de mai sus este prezentat în Fig.4.4. Fig. 4.4. Schema circuitului

Fig. 4.4. Schema circuitului logic din exemplul 4.1.

Exemplul 4.2. Sinteza complexă

Să se implementeze un CLC care să primească la intrare un număr natural cuprins între 0 şi 15 inclusiv, iar ieşirea să fie 1 dacă numărul este în intervalul [0,15] şi este divizibil cu 2 sau 3, şi să fie 0 dacă este în intervalul [0,15] şi nu este divizibil cu 2 sau 3. Rezolvarea acestei probleme, prin determinarea formei disjunctive minimale, s-a făcut în Exemplul 2.11, utilizând algoritmul Quine – McCluskey.

Structura fizică a unui CLC simplu depinde de forma de expresie a funcŃiei logice şi de operatorii logici de bază utilizaŃi. Astfel, cele mai folosite forme fizice de implementare sunt:

Forma disjunctivă (NU – ŞI – SAU);

Forma conjuctivă (NU – SAU – ŞI);

Forma NAND;

Forma NOR.

Pentru implementarea unor CLC mari, complexe, cu multe intrări şi ieşiri, această proiectare bazată pe porŃi logice elementare nu mai este posibilă sau nu mai este convenabilă. În acest caz se folosesc combinaŃii de circuite modulare standard, cu un grad sporit de integrare (de regulă, MSI şi LSI) – Fig. 4.5. Aceste

module logice pot avea, pe lângă intrările propriuzise de date (x 1 ,

,

x k ) şi intrări de comandă (c 1 ,

,

c i ).

x 1

x k

y MODUL 1 CLC y m c 1 c i Fig.4.5. Modul CLC cu intrări
y
MODUL
1
CLC
y
m
c 1
c i
Fig.4.5. Modul CLC cu intrări de comandă.

Evident, o funcŃie logică are mai multe soluŃii de implementare. Alegerea unei soluŃii depinde şi de anumite criterii auxiliare, ce nu apar în etapele de proiectare specificate, ca de exemplu: încadrarea în familiile de circuite integrate existente, timpii de propagare a fronturilor, cum ar fi t pLH (timpul de propagare la comutarea ieşirii din 0 în 1) sau t pHL (timpul de propagare la comutarea ieşirii din 1 în 0), fanout – ul (numărul maxim de intrări de porŃi logice pe care le poate comanda o ieşire de poartă logică), gradul de complexitate (considerat, de regulă, ca fiind numărul total de intrări de poartă din circuit), adâncimea sau nivelul de profunzime (numărul maxim de niveluri de porŃi logice pe care le poate parcurge semnalul de la intrare la ieşire şi care este proporŃional cu timpul de propagare prin poartă, fanin – ul etc.

45

4.2. STRUCTURI

CLC

(MODULE)

FOLOSITE

ÎN

PROIECTARE

Modulele CLC folosite în proiectare sunt împărŃite în două categorii, în funcŃie de destinaŃia circuitelor complexe proiectate: module CLC pentru sinteza funcŃiilor logice (codificatoare, decodificatoare, multiplexoare, demultiplexoare etc.) şi module CLC pentru sinteza funcŃiilor aritmetice (sumatoare, unităŃi logice – aritmetice etc.).

4.2.1. Decodificatoare

Decodificatoarele sunt CLC complexe cu mai multe intrări (I 0 ,I 1 ,

k-1 , m>k (Fig. 4.6).

,E

n-1 ) şi mai multe ieşiri (O 0 ,O 1 ,

I

, O m-1 ) care transformă biunivoc cuvintele dintr-un anume cod la intrare în cuvinte din alt cod la ieşire (sunt de fapt convertoare de cod). Pentru un decodificator, codul de la intrare are mai puŃini biŃi decât codul de la ieşire (m>n). În afară de intrările de date (cuvintele de cod de intrare), decodificatoarele mai au şi intrări de

activare: E 0 ,

Decodificatoarele se folosesc în diverse aplicaŃii cum ar fi adresarea memoriilor, afişarea datelor numerice etc. De obicei, decodificatoarele sunt CI de tip MSI .

I 0

I n-1

DECODIFICA- TOR E 0 E k-1
DECODIFICA-
TOR
E 0
E k-1

O 0

O m-1

Fig. 4.6. Structura unui decodificator.

Exemplul 4.3

Decodificatorul BCD – 7 segmente 74x49, reprezentat în Fig. 4.7 şi tabelul 4.1 are patru intrări de date (A,B,C,D), ce pot reprezenta o cifră zecimală codificată binar, şi şapte ieşiri (a,b,c,d,e,f,g), pentru comanda LED-urilor dispozitivului de afişare. BI reprezintă intrarea de blocare (activă pe 0).

BI
BI

Fig. 4.7. Decodificator BCD – 7 segmente şi dispozitivul de afişare cu 7 segmente.

Dispozitivul de afişare considerat are şapte segmente formate din LED-uri şi este conectat doar la V cc (nu are legătură directă la masă). Un LED este aprins dacă pe intrarea corespunzătoare (a, b,…,f, g) apare 0 logic. Pentru fiecare ieşire se poate extrage funcŃia logică folosită fără a Ńine seama de intrarea de blocare BI (blochează circuitul când este 0). Astfel, pentru funcŃia g se obŃine diagrama Karnaugh din Fig. 4.8. Rezultă forma minimală a lui g:

46

g = B’·C’·D’ + A·B·C

Analog, se poate descrie convertorul BCD – zecimal (binar, 1 din 10).

Tabelul 4.1.Tabelul de adevăr pentru decodificatorul 74x49

BI

D

C

B

A

a

b

c

d

e

f

g

Nr.

afişat

0

X

X

X

X

1

1

1

1

1

1

1

 

1

0

0

0

0

0

0

0

0

0

0

1

0

1

0

0

0

1

1

0

0

1

1

1

1

1

1

0

0

1

0

0

0

1

0

0

1

0

2

1

0

0

1

1

0

0

0

0

1

1

0

3

1

0

1

0

0

1

0

0

1

1

0

0

4

1

0

1

0

1

0

1

0

0

1

0

0

5

1

0

1

1

0

1

1

0

0

0

0

0

6

1

0

1

1

1

0

0

0

1

1

1

1

7

1

1

0

0

0

0

0

0

0

0

0

0

8

1

1

0

0

1

0

0

0

1

1

0

0

9

BA 00 01 11 10 DC 00 1 1 01 1 11 − − −1
BA
00
01
11
10
DC
00
1
1
01
1
11
−1
10

Fig.4.8. Diagrama Karnaugh pentru g.

Exemplul 4.4

Decodificatorul de adrese 74x138, cu 3 intrări şi 8 ieşiri, este reprezentat în Fig. 4.9 şi tabelul 4.2.

Tabelul 4.2. Tabelul de adevăr pentru decodificatorul de adrese 3: 8.

 

Intrări

   

Ieşiri

 

G 1

G 2A

G 2B

C

B

A

y 7

y 6

y 5

y 4

y 3

y 2

y 1

y 0

0

x

x

x

x

x

1

1

1

1

1

1

1

1

x

1

x

x

x

x

1

1

1

1

1

1

1

1

47

x

x

1

x

x

x

1

1

1

1

1

1

1

1

1

0

0

0

0

0

1

1

1

1

1

1

1

0

1

0

0

0

0

1

1

1

1

1

1

1

0

1

1

0

0

0

1

0

1

1

1

1

1

0

1

1

1

0

0

0

1

1

1

1

1

1

0

1

1

1

1

0

0

1

0

0

1

1

1

0

1

1

1

1

1

0

0

1

0

1

1

1

0

1

1

1

1

1

1

0

0

1

1

0

1

0

1

1

1

1

1

1

1

0

0

1

1

1

0

1

1

1

1

1

1

1

G

 

1

y 0

G2A

2A

1y

y

G

2B

y

2

 

y

3

y

4

A

y

5

B

C

y 6

y

7

3 y 4 A y 5 B C y 6 y 7 Fig. 4.9. Decodificatorul de
3 y 4 A y 5 B C y 6 y 7 Fig. 4.9. Decodificatorul de
3 y 4 A y 5 B C y 6 y 7 Fig. 4.9. Decodificatorul de
3 y 4 A y 5 B C y 6 y 7 Fig. 4.9. Decodificatorul de
3 y 4 A y 5 B C y 6 y 7 Fig. 4.9. Decodificatorul de
3 y 4 A y 5 B C y 6 y 7 Fig. 4.9. Decodificatorul de
3 y 4 A y 5 B C y 6 y 7 Fig. 4.9. Decodificatorul de
3 y 4 A y 5 B C y 6 y 7 Fig. 4.9. Decodificatorul de

Fig. 4.9. Decodificatorul de adrese 3: 8.

Evident, dacă pe intrările de activare (G 1 G 2A G 2B ) se găseşte cuvântul (1 0 0), o singură linie de ieşire y j este activă (pe 0) pentru un cuvânt de intrare (CBA) j . Rezultă imediat funcŃiile logice pentru ieşiri. De exemplu, pentru y 0 se obŃine expresia următoare :

de unde:

4.2.2. Convertoare de cod

y 0

= C + B + A

y

0

= C B A

,

Convertoarele de cod binar au acelaşi număr de intrări şi de ieşiri.

Exemplul 4.5

Convertorul din cod binar natural în cod Gray pentru patru biŃi este prezentat în Fig. 4.10, iar implementarea lui cu porŃi elementare, în Fig. 4.11.

48

Fig. 4.10. Convertorul cod BN – cod Gray. ł inând seama de modul de ob

Fig. 4.10. Convertorul cod BN – cod Gray.

łinând seama de modul de obŃinere a codului Gray din codul binar, prezentat în Cap.1, funcŃiile logice ce caracterizează ieşirile y 0 , y 1 , y 2 , y 3 sunt următoarele:

y

y

y

y

0

1

2

3

= x

= x

= x

= x

0

1

2

3

x

1

x

2

x

3

0 1 2 3 = x = x = x = x 0 1 2 3

Fig. 4.11. Implementarea convertorului Cod BN-Cod Gray.

Pentru conversia inversă, cod Gray - cod binar natural, schema convertorului este prezentată în Fig 4.12, iar implementarea lui cu porŃi elementare, în Fig. 4.13.

în Fig 4.12, iar implementarea lui cu por Ń i elementare, în Fig. 4.13. Fig. 4.12.

Fig. 4.12. Convertorul Cod Gray – Cod BN.

49

Fig. 4.13.Implementarea convertorului Cod Gray-Cod BN. Func Ń iile logice ce caracterizeaz ă ie ş

Fig. 4.13.Implementarea convertorului Cod Gray-Cod BN.

FuncŃiile logice ce caracterizează ieşirile y 0 , y 1 , y 2 , y 3 sunt următoarele:

y

0

= x

0

x

= x

y

1

= x

1

y 2

1

2

x

2

y 3

= x

3

x

x

2

3

x

3

x

3

4.2.3. Codificatoare

Codificatoarele sunt circuite logice combinaŃionale asemănătoare decodificatoarelor, dar având funcŃionarea inversă, astfel încât, la ieşire oferă un cod binar corespunzător combinaŃiei de la intrare

(Fig.4.14). Cuvântul de la intrare are mai mulŃi biŃi decât codul de la ieşire. În afară de intrările pentru datele

m-1 , codificatorul mai prezintă comenzi de

n

de codificat, I 0 ,

n-1 , şi de ieşirile pentru datele codificate, O 0 ,

,I

,O

activare a intrărilor E 0 , = 2 m .

k-1 , şi, respectiv, de validare a ieşirilor, Y 0 ,

,E

p-1 . De regulă, n > m, n > k, n > p,

,Y

I 0 I n-1
I
0
I n-1
Y 0 Y p-1 O 0 CODIFICATOR O m -1 E 0 E k-1
Y 0
Y p-1
O 0
CODIFICATOR
O m -1
E 0
E k-1

Fig. 4.14. Schema generală a unui codificator.

De exemplu, un codificator de adresă simplu, cu opt intrări şi trei ieşiri, este prezentat în Fig. 4.15 şi tabelul 4.3. Codul de intrare este un cod binar, 1 din 8, iar codul de ieşire este cel binar natural.

50

I 0 I 1
I 0
I 1
I 7
I
7
C O D I F 8:3 I C A T O R
C
O
D
I
F
8:3
I
C
A
T
O
R
O 0 O 1 O 2
O 0
O 1
O 2
I 1 I 7 C O D I F 8:3 I C A T O R

Fig. 4.15. Codificator de adresă, simplu.

Tabelul 4.3. Tabelul de adevăr al codificatorului 8:3.

 

Intrări

   

Ieşiri

I 7

I 6

I 5

I 4

I 3

I 2

I 1

I 0

O 2

O 1

O 0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

0

1

0

0

0

1

0

0

0

0

0

1

0

0

0

0

1

1

0

0

0

1

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

1

0

1

0

1

0

0

0

0

0

0

1

1

0

1

0

0

0

0

0

0

0

1

1

1

łinând seama de restricŃia ca una şi numai una dintre intrări să fie 1, din tabela de adevăr, rezultă expresii simple pentru funcŃiile logice ale ieşirilor:

O

2

=

I

O 1 = I

O

7

7

0

= I

7

+ I

+ I

6

6

+ I

5

+ I

+ I

+ I

5

3

3

+ I

+ I

+ I

4

2

1

Implementarea codificatorului 8:3 cu ajutorul porŃilor elementare este foarte simplă şi este prezentată în Fig. 4.16. Pentru a preveni funcŃionarea defectuoasă a codificatorului, în cazul activării a două sau mai multe intrări simultan, s-au realizat codificatoare cu priorităŃi. De regulă, prioritatea cea mai mare o are intrarea cu numărul de ordine cel mai mare (I 7 ), iar prioritatea cea mai mică o are intrarea I 0 . Deoarece este posibil ca nicio intrare să nu fie egală cu 1, s-a considerat ieşirea suplimentară OS, care indică acestă stare. Tabela de adevăr pentru un codificator cu priorităŃi este prezentată în Tabelul 4.4 (prin x s-a marcat starea indiferentă).

51

Fig. 4.16. Implementarea codificatorului de adrese 8 :3 cu ajutorul func Ń iilor logice elementare

Fig. 4.16. Implementarea codificatorului de adrese 8 :3 cu ajutorul funcŃiilor logice elementare

Tabelul 4.4. Tabela de adevăr pentru codificatorul cu priorităŃi

 

Intrări

   

Ieşiri

I 7

I 6

I 5

I 4

I 3

I 2

I 1

I 0

O 2

O 1

O 0

OS

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

0

0

1

x

0

0

1

1

0

0

0

0

0

1

x

x

0

1

0

1

0

0

0

0

1

x

x

x

0

1

1

1

0

0

0

1

x

x

x

x

1

0

0

1

0

0

1

x

x

x

x

x

1

0

1

1

0

1

x

x

x

x

x

x

1

1

0

1

1

x

x

x

x

x

x

x

1

1

1

1

Ieşirile vor avea funcŃiile logice următoare:

0 2 = I 7 +I 7 ·I 6 +I 7 ·I 6 ·I 5 +I 7 ·I 6 ·I 5 ·I 4 ,

0 1 = I 7 +I 7 ·I 6 +I 7 ·I 6 ·I 5 ·I 4 ·I 3 + I 7 ·I 6 ·I 5 ·I 4 ·I 3 ·I 2

,

0 0 = I 7 + I 7 ·I 6 ·I 5 +I 7 ·I 6 ·I 5 ·I 4 ·I 3 + I 7 ·I 6 ·I 5 ·I 4 ·I 3 ·I 2 ·I 1 ,

OS = I 7 +I 6 +I 5 +I 4 +I 3 +I 2 +I 1 +I 0

Un exemplu de codificator 8:3 cu priorităŃi este 74x148 la care atât intrările cât şi ieşirile sunt active pe 0. În acest caz, tabelul de adevăr se modifică în mod corespunzător, înlocuindu-se 0 cu 1 şi 1 cu 0.

52

4.2.4 Multiplexoare

Multiplexorul (MUX) este un dispozitiv cu mai multe canale de intrare şi un canal de ieşire, de acelaşi

tip, care, la un moment dat, comută la ieşire unul dintre canalele de intrare, selectat potrivit unei legi sau unui cod de selecŃie. Datele de pe canalele de intrare şi de ieşire pot fi analogice (multiplexoare analogice) sau numerice (multiplexoare numerice). În continuare, prin multiplexoare vom denumi multiplexoarele

numerice. Vom considera n canale de intrare sau de date (D 0 ,

având câte m biŃi, un canal de selecŃie (S) având s biŃi şi un canal de activare (E) de un bit (Fig. 4.17).

De regulă, n = 2 s , iar notaŃia semnifică legătura pe mai multe fire (legaturi paralele). Se poate considera că, dacă adresele canalelor sunt codificate în cod binar natural, tabela de adevăr a funcŃiei de selectare S conŃine n = 2 s mintermeni m , i = 0,1, n 1 , dintre care, la un moment dat, doar unul ia valoare logică 1.

n-1 ), un canal de ieşire (Y), fiecare canal

,D

i

,

Presupunând că egalitatea E = 1 are semnificaŃia de multiplexor activat şi notând cu

m-1, biŃii canalului de intrare

b

i

j

şi y , j =

j

, logice pentru ieşirea multiplexorului:

0,1,

D , respectiv biŃii canalului de ieşire y, se pot scrie următoarele funcŃii

i

y

j

=

n

1

i = 0

E

m

i

b

i

j

,

j

=

0,1,

,

m

1

(4.1)

Pentru utilizarea modulară, există multiplexoare standard în capsule dual in line de 16 pini, având diverse configuraŃii: opt intrări de un bit (74x151), patru intrări de doi biŃi (74x153) şi două intrări de patru biŃi (74x157). De exemplu, multiplexorul 74x151 are simbolul prezentat în Fig. 4.18, structura în Fig. 4.19, iar tabela de adevăr in tabelul 4.5. Se observă că, în această schemă, intrarea E este activă pe 0, relaŃia (4.1) devenind (4.2):

y

=

7

E

m

i

D

i

 

i

=

0

 
 

D

0

E

 

D

1

.

 

Y

.

.

D

n-1

 
 

S

 
.   Y . . D n-1     S   (4.2) Fig. 4.17. Schema bloc
.   Y . . D n-1     S   (4.2) Fig. 4.17. Schema bloc
.   Y . . D n-1     S   (4.2) Fig. 4.17. Schema bloc

(4.2)

Fig. 4.17. Schema bloc a unui multiplexor.

53

Fig. 4.18. Simbolul multiplexorului 74 x 151. Tabelul 4.5 E C B A   y

Fig. 4.18. Simbolul multiplexorului 74x151.

Tabelul 4.5

E

C

B

A

 

y

 

y

1

X

X

X

0

1

0

0

0

0

D

0

D

0

0

0

0

1

D

1

D

1

0

0

1

0

D

2

D

2

0

0

1

1

D

3

D

3

0

1

0

0

D

4

D

4

0

1

0

1

D

5

D

5

0

1

1

0

D

6

D

6

0

1

1

1

D

7

D

7

Există aplicaŃii care cer, fie un număr mai mare de surse de intrare, fie un număr mai mare de biŃi, fie ambele dezvoltări . Aceste cerinŃe se pot îndeplini utilizând o structură cu mai multe multiplexoare şi, eventual, un decodificator. De exemplu, o structură de multiplexor cu opt intrări de câte patru biŃi, se poate realiza fie cu patru multiplexoare de tip 74x151, fie cu patru multiplexoare de tip 74x157, fie cu patru multiplexoare de tip 74x153. În primul caz, realizarea nu impune un decodificator pentru selectarea multiplexoarelor, ele funcŃionând în paralel, pe fiecare bit. În celelalte două cazuri se impune utilizarea unor decodificatoare pentru selectarea multiplexoarelor. De regulă, creşterea numărului de canale impune utilizarea decodificatoarelor pentru selectarea multiplexoarelor intermediare.

54

Fig. 4.19. Structura multiplexorului 74 x 151. Fig. 4.20. Implementarea unui multiplexor de un bit

Fig. 4.19. Structura multiplexorului 74x151.

Fig. 4.19. Structura multiplexorului 74 x 151. Fig. 4.20. Implementarea unui multiplexor de un bit cu

Fig. 4.20. Implementarea unui multiplexor de un bit cu 32 de intrari.

55

În Fig. 4.20 este prezentată realizarea unui multiplexor de un bit cu 32 de intrări utilizând patru multiplexoare de un bit cu opt intrări (74x151) şi un decodificator 2:4 (1/2 din 74x139). Se observă că biŃii de adresă care depăşesc capacitatea de adresare (A,B,C) a multiplexoarelor, se repartizează pe adresarea decodificatorului ( A A ). Astfel, partea inferioară ( A A A ) a cuvântului de

3

4

2

1

0

adresă se distribuie multiplexoarelor (în paralel), iar partea superioară ( A A ) se repartizează decodificatorului. łinând seama de ieşirile negate ale multiplexoarelor, poarta NAND de la ieşire realizează de fapt un SAU între ieşirile normale ale multiplexoarelor (care nu pot fi 1 simultan, datorită condiŃiilor de adresare).

3

4

fi 1 simultan, datorit ă condi Ń iilor de adresare). 3 4 Fig. 4.21. Implementarea unei

Fig. 4.21. Implementarea unei funcŃii logice cu ajutorul multiplexoarelor.

Cu ajutorul multiplexoarelor de un bit se pot implementa direct funcŃiile logice, utilizând mintermenii. În acest scop, variabilele funcŃiei se asociază intrărilor de adrese ale multiplexorului, iar pe intrările de date (canale) ale multiplexorului se pun valorile logice asociate mintermenilor din tabelul de adrese. Intrările de date corespunzatoare mintermenilor de valoare 0 (care nu apar în FCD) se pun la masă, iar intrările de date corespunzatoare mintermenilor de valoare 1 (care apar in FCD) se pun, printr-o rezistenŃă, la

. Astfel, în Fig. 4.21 este prezentată implementarea funcŃiei logice (4.3) de patru variabile cu ajutorul a

două multiplexoare cu opt intrări.

V

cc

f (x

3

, x

2

, x , x

1

0

) = x

'

0

+ x

3

x

'

2

x

'

1

+ x

'

3

x

'

2

x

'

1

+ x

3

x

2

x

1

(4.3)

Aceasta este forma minimală a funcŃiei din exemplul 2.11. Considerând multiplexorul activat, relaŃia (4.1) se poate scrie astfel:

56

y

=

n

1

i = 0

m

i

D

i

,

(4.4)

unde m reprezintă mintermenul cu numărul de ordine i din spaŃiul de dimensiune s al unei funcŃii logice,

, Dacă numărul de variabile ale funcŃiei logice este mai mare decât numărul intrărilor de adrese ale multiplexorului, atunci se folosesc structuri de multiplexoare extinse, comandate de decodificatoare. Variabilele cele mai puŃin semnificative se pun la intrările de adrese ale multiplexoarelor, iar variabilele cele mai semnificative se pun la intrările de adrese ale decodificatoarelor. Dacă se notează cu Y 1 ieşirea lui MUX 1 şi cu Y 2 ieşirea lui MUX 2 , se observă că:

reprezentată în tabelul de adevăr prin valorile mintermenilor

i

D

i

i = 0,1,

,2

s

1

.

f = Y 1 + Y 2

Din acest punct de vedere, circuitul de multiplexare poate fi privit ca un circuit universal. Se poate reduce complexitatea schemei dacă se utilizează funcŃii logice parŃiale pentru varibilele cele mai semnificative. Numărul de funcŃii logice parŃiale va corespunde cu numărul de intrări de date ale multiplexorului de un bit. FuncŃia logică de mai sus, pentru care s-a găsit forma logică minimală (4.3), se poate implementa şi cu un singur MUX de un bit cu opt intrări prin partiŃionarea spaŃiului de definiŃie S 4 în două subspaŃii, unul de dimensiune 3 (S 3 ) şi unul de dimensiune 1 (S 1 ). Astfel, în loc de:

se poate scrie:

f

=

f

7

i = 0

=

15

=

0

i

D

D

i

g

i

i

(

m

x

3

)

i

,

,

se determină înlocuind toate valorile posibile ale variabilelor

logice x 0 ,x 1 ,x 2 în forma minimală. Aceste valori se pot stabili şi din tabela de adevăr, urmărind, pentru fiecare combinaŃie de cod a variabilelor x 0 ,x 1 ,x 2 , comportarea funcŃiei f faŃă de schimbarea lui x 3 . Pentru exemplul dat, expresiile funcŃiilor logice parŃiale sunt următoarele:

unde funcŃiile logice parŃiale g i , i = 0,1,

,7,

g 0 (x 3 ) = f(x 3 ,0,0,0) = 1,

g 1 (x 3 ) = f(x 3 ,0,0,1) = x 3 ,

g 2 (x 3 ) = f(x 3 ,0,1,0) = 1,

g 3 (x 3 ) = f(x 3 ,0,1,1) = x 3 ’,

g 4 (x 3 ) = f(x 3 ,1,0,0) = 1,

g 5 (x 3 ) = f(x 3 ,1,0,1) = 0,

g 6 (x 3 ) = f(x 3 ,1,1,0) = 1,

g 7 (x 3 ) = f(x 3 ,1,1,1) = x 3

Astfel:

x 0 = A,

x 1 = B,

x 2 = C,

D 0 = D 2 = D 4 = D 6 = 1,

D 5 = 0,

D 3 = x 3 ’,

D 1 = D 7 = x 3

57

Fig. 4.22. Implementarea unei func Ń ii logice prin parti Ń ionarea spa Ń iului

Fig. 4.22. Implementarea unei funcŃii logice prin partiŃionarea spaŃiului de intrare.

Pentru variabilele care nu se aplică direct pe adrese, se utilizează porŃi logice care realizează, unde este cazul, restricŃiile g j , dependente de aceste variabile. Implementarea funcŃiei logice f prin partiŃionarea spaŃiului variabilelor de intrare, cu ajutorul unui singur multiplexor, este dată în Fig. 4.22.

4.2.5. Demultiplexoare

Demultiplexorul (DMUX), indeplineşte o funcŃie inversă faŃă de cea a multiplexorului, adică distribuie datele de pe canalul de intrare pe unul dintre canalele de ieşire, selectat într-un anume mod. Schema unui demultiplexor cu n canale de ieşire şi s biŃi pentru adresare (de regulă n = 2 s ) este prezentată în Fig. 4.23. Atât canalul de intrare cât şi canalul de ieşire pot fi pe unul sau mai multi biŃi (m). În Fig. 4.24 este prezentată schema unui demultiplexor cu opt canale de un bit.

ă schema unui demultiplexor cu opt canale de un bit. Fig. 4.23. Schema bloc a unui

Fig. 4.23. Schema bloc a unui demultiplexor.

Pentru realizarea demultiplexoarelor pe un bit se pot utiliza decodificatoare. Astfel, în Fig. 4.25 este prezentat un demultiplexor cu opt canale de ieşire realizat cu un decodificator (de adrese) cu trei intrări şi opt ieşiri, 74x138. În acest caz, ieşirile apar negate, iar D G 1 .

58

Fig. 4.24. Schema bloc a unui demultiplexor de opt canale cu un bit. Fig. 4.25.

Fig. 4.24. Schema bloc a unui demultiplexor de opt canale cu un bit.

Schema bloc a unui demultiplexor de opt canale cu un bit. Fig. 4.25. Schema bloc a

Fig. 4.25. Schema bloc a unui demultiplexor de opt canale cu un bit realizat cu un decodificator 74x138.

O pereche MUX-DMUX poate fi utilizată pentru a gestiona transmiterea pe o magistrală de date de la

, Cu ajutorul unui DEMUX şi al unor tranzistoare MOS de comutaŃie se poate realiza un circuit de multiplexare bidirecŃional (MDX). Ca şi multiplexoarele, demultiplexoarele pot fi utilizate drept circuite universale pentru implementarea unei funcŃii logice reprezentate în FCD (Exemplul 4.6). Considerând un DMUX cu ieşiri nenegate, pentru implementarea funcŃiei logice, dată în FCD sau prin tabel de adevăr, se conectează variabilele funcŃiei pe intrările de adresă (respectând ponderile corespunzatoare). Intrarea de date D se pune la V cc (valoare logică 1), iar ieşirile corespunzătoare adreselor mintermenilor de valoare logică 1 (sau care apar în FCD) se leagă la intrările unui SAU a cărui ieşire reprezintă funcŃia logică f. Celelalte ieşiri se lasă libere (Fig. 4.27). Dacă ieşirile sunt negate, poarta SAU se înlocuieşte cu NAND.

mai multe surse S 1 , S 2 ,

, S 8 la mai multe receptoare R 1 , R 2 ,

R 8 (Fig. 4.26).

59

Fig. 4.26. Magistral ă pe un bit realizat ă cu o pereche MUX-DEMUX. Exemplul 4.6.

Fig. 4.26. Magistrală pe un bit realizată cu o pereche MUX-DEMUX.

Exemplul 4.6. Implementarea unei funcŃii logice cu ajutorul DEMUX.

f

= x

2

x x

1

0

+ x

2

x

1

= x

2

x x

1

0

+ x

2

x x

1

0

+ x

2

x x

1

0

Schema circuitului logic combinaŃional de implementare a funcŃiei este prezentată în Fig. 4.27.

implementare a func Ń iei este prezentat ă în Fig. 4.27. Fig. 4. 27. Schema circuitului

Fig. 4. 27. Schema circuitului de implementare a funcŃiei din exemplul 4.1.

4.2.6. Circuite logice de comparare

Circuitele logice de comparare pot furniza informaŃii despre relaŃiile în care se află două numere A şi B codificate binar (natural): egal (A = B), mai mic (A < B), mai mare (A > B). Comparatoarele pentru indicarea egalităŃii se pot realiza cu porŃi logice de tipul XOR sau NXOR. În Fig. 4.28 sunt prezentate comparatoare simple, pe un bit, pentru indicarea egalităŃii (a) sau a inegalităŃii (b). În tabelul 4.6 sunt prezentate funcŃia egalitate (EQ) şi funcŃia inegalitate (INEQ) pentru un bit. Utilizând mai multe porŃi de acest tip se pot realiza comparatoare pentru indicarea egalităŃii pe mai mulŃi biŃi (Fig. 4.29). În acest caz, EQ = 1 dacă sunt îndeplinite simultan condiŃiile: A 0 = B 0 , A 1 = B 1 , A 2 = B 2 şi A 3 = B 3

A 1 = B 1 , A 2 = B 2 ş i A 3 =
A 1 = B 1 , A 2 = B 2 ş i A 3 =

Fig.4.28. Comparatoare simple pentru indicarea egalităŃii.

60

Tabelul 4.6. Tabelul de adevăr pentru funcŃia EQ şi pentru funcŃia INEQ.

A

B

EQ

INEQ

0

0

1

0

0

1

0

1

1

0

0

1

1

1

1

0

0 1 0 1 1 0 0 1 1 1 1 0 Fig. 4.29. Comparator pe

Fig. 4.29. Comparator pe 4 biŃi pentru indicarea egalităŃii.

Există comparatoare pe 4 biŃi, realizate ca circuite integrate pe scară medie, pentru indicarea uneia dintre cele trei stări posibile: A = B, A < B, A > B (Fig. 4.30) şi având posibilităŃi de interconectare, pentru a putea fi extins la mai mulŃi biŃi. SemnificaŃiile notaŃiilor din figură sunt următoarele:

A 0 , A 1 , A 2 , A 3 – biŃii corespunzători numărului A;

B 0 , B 1 , B 2 , B 3 – biŃii corespunzători numărului B;

ALTB OUT – ieşire pentru A < B;

AEQB OUT – ieşire pentru A = B;

AGRB OUT – ieşire pentru A > B;

ALTB IN – intrare pentru A < B (egală cu 1, dacă A < B în etajul anterior, în cazul în care există o

conexiune în lanŃ a modulelor în vederea comparării a două numere reprezentate pe un număr mai mare de

biŃi);

AEQB IN – intrare pentru A = B (egală cu 1, dacă A = B, în etajul anterior);

AGRB IN – intrare pentru A > B (egală cu 1, dacă A > B, în etajul anterior).

B (egal ă cu 1, dac ă A > B , în etajul anterior). Fig. 4.30.

Fig. 4.30. Simbolul comparatorului pe 4 biŃi 74x85.

Se precizează că:

ALTB OUT = 1, dacă (A < B) sau [(A = B) şi (ALTB IN = 1)];

61

AEQB OUT = 1, dacă (A = B) şi (AEQB IN = 1);

AGRB OUT = 1, dacă (A > B) sau [(A= B) şi (AGRB IN = 1)]

În cuvântul binar de ieşire, unul şi numai unul singur dintre cei trei biŃi este egal cu 1.

i numai unul singur dintre cei trei bi Ń i este egal cu 1. Fig. 4.31.

Fig. 4.31. Comparator pe 12 biŃi realizat cu trei comparatoare pe 4 biŃi standard (de tip 74x85).

Pentru extinderea capacităŃii în biŃi a comparatoarelor, se conectează mai multe comparatoare standard (cu număr fixat de biŃi) în casacadă, ca în Fig. 4.31.

4.2.7. Detectoare de paritate / imparitate

În cazul codurilor detectoare de erori, bazate pe bit de paritate, este posibilă detectarea parităŃii/imparităŃii numărului de biŃi ai cuvântului de cod. łinând seama de structura cuvântului de cod, nerespectarea parităŃii/imparităŃii impuse semnifică apariŃia unei erori în cuvântul respectiv. Această problemă se poate rezolva simplu, printr-o operaŃie de tip SAU EXCLUSIV asupra biŃilor componenŃi ai cuvântului de cod.

62

Fie în acest sens x 0 , x 1 ,

, x n-1 ) care ia valoarea 1 dacă:

, x n-1 biŃi unui cuvânt de cod. Se poate cosidera funcŃia logică IMPAR(x 0 , x 1 ,

x

0

x

1

x

n

 

1

=

Analog, se poate considera funcŃia logică PAR(x 0 , x 1 ,

,

x

0