Sunteți pe pagina 1din 9

Curs 5

2.3.2.1. Implementarea funciilor booleene cu circuite MSI


Circuitele integrate de tip MSI cum sunt decodificatorul DCD,
demultiplexorul DEMUX i multiplexorul MUX pot fi considerate
circuite universale deoarece genereaz n interior toi termenii canonici.
Implementarea cu DCD a unei funcii booleene nu necesit
operaii de minimizare. La ieirea DCD se obin toi termenii canonici
negai ai formei canonice disjunctive FCD ai funciei. Realizarea funciei
se face cu o poart logic de tip SI-NU, cu un numr de intrri egal cu
numrul de termeni ai funciei.
Implementarea cu MUX a unei funcii booleene se bazeaz pe
relaia care definete funcionarea sa. De exemplu, pentru un MUX de tip
4:1 avem ecuaia ieirii:
y = I0 x1 x2 + I1 x1 x2 + I2 x1 x2 + I3 x1 x2
n care se observ c exist intrri separate pentru fiecare din cele 4
combinaii ale variabilelor de selecie x1, x2.
Dac avem o funcie boolean de n variabile de intrare se pot da
factor variabilele x1 i x2 i se obin 4 funcii de n-2 variabile de intrare,
care se vor conecta la intrrile I 0 I3 ale unui MUX de tip 4:1. Similar, cu
un MUX 8:1 se pot elimina 3 variabile de intrare, iar cu un MUX 16:1 se
pot elimina 4 variabile de intrare.
Dac avem o funcie de 4 variabile se pot elimina 3 variabile prin
aplicarea lor pe intrrile de selecie ale unui MUX 8:1. La cele 8 intrri
ale MUX se vor conecta cele 8 funcii de o variabil. Singurele funcii
posibile de o variabil sunt: xi, xi, 0, 1. Deci putem implementa orice
funcie cu 4 variabile de intrare folosind un singur MUX de 8 ci i fr
pori adiionale.
Exemplu
Considerm funcia: f = (0, 1, 3, 5, 9, 10, 13, 15) = x3x2x1x0 + x3x2x1x0 +
x3x2x1x0 + x3x2x1x0 + x3x2x1x0 + x3x2x1x0 + x3x2x1x0 + x3x2x1x0
Folosim un MUX 8:1 i aplicm variabilele x2x1x0 pe intrrile de selecie.
Pentru a determina intrrile multiplexorului, I0 I7, vom face un tabel:
I0
x3
x2x1x0
I1
1
(x3 + x3) x2x1x0
I2
x3
x2x1x0
I3
x3
x2x1x0
I4
0
x2x1x0
I5
1
(x3 + x3) x2x1x0
I6
0
x2x1x0
I7
x3
x2x1x0

Implementarea funciei cu MUX este:


En
x3
1
x3
x3
f
0
f
1
0
x3
s2 s1 s0
x2 x1 x0
Avantajele implementrii cu MUX:
- se poate implementa funcia cu un sigur circuit de tip MUX;
- intrarea de Enable poate fi folosit ca un SI final cu ntreaga
funcie;
- doar o singur variabil trebuie s fie disponibil i adevrat i
negat.
Dezavantajele implementrii cu MUX:
- nu se pot folosi termeni n comun n cazul minimizrii
sistemelor de funcii (sisteme cu mai multe ieiri);
- nu se poate face implementarea funciilor la care numrul de
termeni este mai mare dect numrul intrrilor MUX;
- exist multe funcii care pot fi implementate comod prin
utilizarea de pori logice MUX utilizat doar pentru funcii
dificile.
Procedura de implementare cu MUX se poate face plecnd de la
diagrama Karnaugh. Se construiete o diagram Karnaugh n care se
definete domeniul intrrilor I.
x3x2 x1x0 00
01
11
10
00 I0
I1
I3
I2
01 I4
I5
I7
I6
11 I4
I5
I7
I6
10 I0
I1
I3
I2
x3x2

x1x0
00
01
11
10

00
1

01
1
1
1
1

11
1

10

1
1

Variabila care variaz este x3. Configuraiile de 1 din diagrama Karnaugh


indic modul de conectare a intrrilor MUX, la x3, x3, 1 sau 0.
2

I0 = x3; I1 = 1; I2 = x3; I3 = x3; I4 = 0; I5 = 1; I6 = 0; I7 = x3


2.3.3. Sinteza CLC cu circuite integrate LSI
Circuitele integrate de tip LSI Large Scale Integration au peste
500 de tranzistoare integrate pe capsul. Pentru exemplificarea sintezei
CLC se descriu dou tipuri de circuite din aceast categorie: ROM (Read
Only Memory) i PLA (Programmable Logic Array), cu varianta FPLA.
2.3.3.1. Sinteza CLC cu memorii de tip ROM
Memoria de tip ROM este numit i memorie fix sau permanent.
Ea este nevolatil, coninutul ei nu se modific n timpul funcionrii.
Structura ei este stabilit n procesul de fabricaie sau este stabilit de
utilizator prin programare.
I0
O0
DCD

Matrice

In-1

Om-1

Memoria ROM este format din dou niveluri de pori logice: SI


(un decodificator) i SAU-NU (matricea de memorie). DCD din primul
nivel primete codurile de intrare n binar (n este numrul intrrilor) i
activeaz pentru fiecare cod o ieire din cele 2 n. Ieirile DCD se
conecteaz sau nu se conecteaz la circuitele de tip SAU-NU i astfel se
memoreaz un 0 sau un 1 logic.
Vectorii de intrare n ROM se numesc adrese i reprezint codurile
n binar ale numerelor asociate fiecrui cuvnt de memorie. Ieirile sunt
de obicei three-state sau open colector pentru a permite legarea n
paralel cu ieirile altor memorii.
Avem notaiile:
n = numrul de bii ai vectorului de intrare (adresa)
c = numrul de cuvinte memorate n ROM c = 2n
b = numrul de bii din fiecare cuvnt
Numrul de cuvinte trebuie s fie putere a lui 2. Modul de
organizare a ROM este specificat prin produsul c x b. Capacitatea
memoriei se exprim prin numrul total de bii memorai: C = 2 n x b.
Unitatea de msur pentru capacitatea memoriei este kilobitul (1 Kb =
1024 bii).
Memoriile au o intrare de Enable care permite (E = 0) sau inhib
(E = 1) funcionarea ROM. Dac memoria este dezactivat, indiferent de
adresare, ieirile sunt pe semnal logic 1.
Aplicaiile mai importante ale memoriilor de tip ROM sunt:

- memorarea instruciunilor i datelor n sisteme de calcul i


automate secveniale;
- transformri de adres i nmagazinarea instruciunilor n
microprogramare;
- conversii de cod;
- generatoare de caractere;
- generare de secvene de impulsuri;
- implementarea CLC cu un numr mare de variabile de intrare i
ieire.
Implementarea CLC cu un numr mare de variabile de intrare i
ieire se bazeaz pe structura intern a memoriei ROM. Pe nivelul de
DCD se decodific toi termenii canonici. Fiecare cuvnt de la intrarea
matricei reprezint de fapt un termen canonic format din variabilele de
intrare. La nivelul urmtor se adun toi termenii din expresia oricrei
funcii i rezult funcia de ieire. Lista de cuvinte din ROM este chiar
tabelul de adevr al CLC. La implementarea cu ROM nu este necesar
minimizarea, deoarece sunt memorai toi termenii canonici i sunt
incluse toate posibilitile de apariie a acestora n funcia de ieire.
Pentru folosirea eficient a memoriei ROM n sinteza funciilor
booleene, variabilele de intrare i ieire trebuie codate, astfel nct s
conin ct mai mult informaie. Se poate codifica orice grup de
variabile care sunt mutual exclusive, adic doar una dintre ele poate fi
activ la un moment dat.
Pentru reducerea numrului de intrri n ROM se utilizeaz des i
multiplexoarele.
Exemplu: S se implementeze cu ROM funciile:
f0(x3,x2,x1,x0) = x3 x2 x1 x0
f1(x3,x2,x1,x0) = x2 x1
f2(x3,x2,x1,x0) = x3 x2 x1 x0 + x3 x2 x0 + x3 x2 x0 + x2 x1
Memoria folosit este de tipul:
x3
x2
x1
x0

A3
A2
A1
A0

16 x 4 bii
CS
D3D2D1D0

f2 f1 f0
Cu A s-au notat intrrile de adrese, cu D datele i cu CS (chip select),
intrarea de Enable a circuitului.
Coninutul nscris n memorie este dat n tabelul urmtor:

A3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

A2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

A1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

A0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

D3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

f2
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1

f1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0

f0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0

Scopurile urmrite la implementarea cu ROM sunt:


- utilizarea unui numr minim de circuite integrate;
- folosirea integral a capacitii memoriei.
Pentru implementarea CLC cu memorii ROM trebuie urmrite
urmtoarele etape:
- stabilirea dimensiunii memoriei necesare pentru aplicaia
respectiv;
- alegerea tipurilor de circuite de tip ROM cu dimensiuni identice
sau ct mai apropiate de cele stabilite anterior;
- dac nu exist memorii cu dimensiuni identice sau apropiate de
cele dorite se fac transformri de dimensiuni (modificarea
numrului de cuvinte sau numrului de bii pe cuvnt);
- stabilirea tabelului de adevr al ROM;
- reducerea dimensiunii ROM atunci cnd este posibil prin
utilizarea codificrii intrrilor sau ieirilor i a multiplexrii
intrrilor.
2.3.3.2. Sinteza CLC cu PLA
PLA (Programmable Logic Array) este un CLC cu dou nivele de
logic programabil, o matrice de pori SI i o matrice de pori SAU.
PLA este de fapt o structur universal, extins, de implementare cu 2
nivele de pori logice. Ambele matrici sunt programabile, n procesul de
fabricaie sau de ctre utilizator, conform aplicaiei concrete. PLA este o
structur mobil i se utilizeaz eficient pentru sisteme cu mai mult de 8
variabile de intrare.

Deoarece la PLA sunt programabile ambele nivele, implementarea


se face pornind de la termenii elementari ai funciei, obinui prin
minimizarea ei.
Reprezentarea schematic a PLA cu n intrri, m ieiri i p termeni
elementari realizabili este:
x1
conexiune programabil
x2

xn
Matrice
SI
1

p
1

conexiune
programabil

f1

Matrice
SAU
fm
m
conexiune
programabil

CS
Avantajele implementrii cu PLA fa de implementarea cu ROM
se refer la posibilitatea programrii matricei SI i a complementrii
variabilelor de ieire (variabilele de ieire pot fi programate individual ca
active pe 0 sau pe 1).
Aplicaii ale PLA sunt la:
- microprogramare;
- conversii de cod;
- generare de caractere;
- realizare de tabele de funcii;
- implementarea automatelor secveniale.
Observaie. Exist circuite integrate cu grad i mai mare de integrare
(VLSI) utilizate n implementare. Amintim dintre acestea FPGA (Field
Programmable Gate Array).

2.4. Hazardul combinaional


Datorit ntrzierilor produse de circuitele logice i de firele de
legtur ale unui CLC se poate ca starea ieirii circuitului n momentul
modificrii strii variabilelor s nu coincid cu valoarea funciei
corespunztoare valorii intrrilor n momentul considerat. Pentru timp
scurt circuitul are o comportare greit, numit hazard.
Exemplu
f(x1,x2,x3) = x1 x3 + x2 x3
x1
1
f
x3
g
3
f
x2
2
x3
h
Diagrama Karnaugh pentru funcie este:
x1 x2x3
00
01
11
10
0
1
1
1
1
1
n practic ntrzierile 1, 2, 3 ale porilor SI-NU nu sunt egale,
de aceea poate s apar hazardul combinaional i cnd se pune condiia
ca doar o singur variabil de intrare s se modifice la un moment dat.
Hazardul apare atunci cnd starea intrrilor x1x2x3 se modific de la
010 la 011 sau invers.
x1
x2
x3
1

g
2

h
f
f
3

tr
2 > 1 dei starea ar trebui s fie nemodificat.
7

Dup timpul de reacie tr = 1 + 2 va apare la ieire un impuls negativ de


durat t = 2 - 1 i n aceast durat ieirea ia o valoare incorect.
Eliminarea hazardului static se poate face n cazul n care se
impune ca la un moment dat s se modifice starea unei singure variabile
de intrare. Pentru realizarea funciei se consider i unii termeni
redundani din diagrama Karnaugh, astfel nct oricare doi de 1 aflai n
csue adiacente n diagram s fie inclui cel puin ntr-un contur luat n
considerare la sinteza schemei.
Pentru exemplul dat se va introduce n expresia funciei termenul
x1x2.
f = x2 x1 + x3 x1 + x3 x2
x1
x3

g 1
f

x2
x3

h 2

x1
x2

i t

x1
x2
x3
1

g
2

h
i
f
f
Observaii
1. Hazardul static poate s apar i cnd 1 > 2, la schimbarea
011 n 000.

2. Proiectarea unui CLC cnd se schimb mai mult dect o singur


variabil de intrare la un moment dat, fr s apar hazard, este
mai dificil sau chiar imposibil de realizat (hazard de funcie).
3. Eliminarea sigur a hazardului se poate face lund n
considerare ieirea circuitului dup un interval de timp mai
mare dect ntrzierea maxim din circuit.