You are on page 1of 15

ISD modelare VHDL

3


Laborator 1

Multiplexoare logice

1.1 Prezentare general

Se numete multiplexor logic (selector logic) o schem logic
combinational cu n intrri de selectie, cel mult 2
n
intrri de date i o
ieire i a crei functionare const in transmiterea la ieire a valorii logice
de pe intrarea de date al crei indice :ecimal este echivalentul :ecimal al
combinatiei binare de pe intrrile de selectie.

Schema bloc a unui multiplexor logic este prezentat n Iigura Fig.
1.1. Semnalele au urmtoarele semniIicatii:

E intrarea de validare;
S
n-1
S
n-2
.S
1
S
0
cele n intrri de selectie (S
0
are ponderea minim);
I
L-1
. I
0
cele L intrri de date (L_2
n
).
Y iesire de date; unele multiplexoare oIer si iesirea complementat
Y#).

Dac intrarea E este activat, modulul este validat. n acest caz la
iesire va apare o valoare logic egal cu cea de pe intrarea de date I
k
unde
k
10
(S
n-1
. S
0
)
2
. Celelalte intrri de date vor Ii neglijate. Din aceast cauz
multiplexoarele se mai numesc si selectoare logice.
Un multiplexor se va speciIica prin cuvntul cheie MUX urmat de
numrul de intrri de date (de exemplu MUX 4, MUX 8).
Schema de principiu a unui multiplexor MUX 4 cu intrare de validare
activ pe nivel cobort (1 logic) si dou iesiri (direct si inversat) este
prezentat n Iigura 1.2.
ISD modelare VHDL

4


Fig. 1.1 Fig. 1.2

Pe baza schemei din Fig. 1.2 este Ioarte usor s deducem ecuatia
pentru descrierea Iunctionrii unui multiplexor:

Y = E (I
0
S
1

S
0

+I
0
S
1

S
0
+I
0
S
1
S
0

+I
0
S
1
S
0
) (1.1)

Relatia (1.1) poate Ii Ioarte usor generalizat pentru un MUX 2
n
sub
Iorma :

Y = _ I
k
m
k
(S
n-1
.S
0
)
2
n
-1
k=0
(1.2)

unde m
k
(S
n-1
.S
0
) este mintermenul cu indice zecimal k Iormat cu
semnalele de pe intrrile de selectie.

L-2

L-1
. . .
Y
Y#
S
0
S
n-1
E
MUX
E
Y
Y#
S
0
S
1

1
ISD modelare VHDL

5

Y
Y
Y
Y
Y
Y
Y
Y
Y
I
0
I
7
I
6
I
5
I
4
I
3
I
2
I
1
S
2
S
1
S
0
S
2
S
1
S
0 i
0
i
3
9
i
3
2
i
3
1
i
2
4
i
2
3
i
1
6
i
1
5
i
8
i
7
i
4
8
i
4
7
i
4
0
i
6
3
i
5
6
i
5
5

0
y
"
1
"
E
s
0
s
3
s
2
s
1
s
5
s
4
v
a
l
i
d
Fig. 1.3
ISD modelare VHDL

6

n cazul n care este necesar un multiplexor cu un numr mare de
intrri de date, extinderea numrului de intrri se poate realiza Ioarte usor
cu ajutorul unor structuri ierarhice de tip arbore.
Pentru realizarea unui arbore de multiplexare se respect urmtoarele
reguli:

1) Toate multiplexoarele de la acelasi nivel sunt de acelasi tip (au
acelasi numr de intrri de date).
2) Numerotnd nivelele de la intrri ctre iesire (i0 nivelul intrrilor
de date), toate iesirile nivelului i se vor conecta la intrrile de date
ale nivelului i+1.
3) Intrarea de selectie cu ponderea minim este intrarea de selectie S
0
de pe nivelul 0, iar intrarea de selectie cu ponderea maxim este
intrarea de selectie cu ponderea cea mai mare de pe multiplexorul
de la iesire. Intrrile de selectie cu aceeasi pondere de la Iiecare
nivel se conecteaz la acelasi semnal de selectie.
4) Validarea este plasat pe nivelul de iesire.

Exemplul 1.1: Pentru a implementa un MUX 64 utiliznd multiplexoare de
tip MUX 8, se poate utiliza schema din Fig. 1.3. Ponderea minim o are S
0
de pe
nivelul de intrare iar ponderea maxim S
2
de pe nivelul de iesire.

1.2 Multiplexoare vectoriale

Se numete multiplexor vectorial un circuit logic combinational care
permite transferul la ieire a uneia dintre cele 2
n
magistrale de pe intrrile
de date in functie de combinatia binar de pe intrrile de selectie. Toate
magistralele (de la intrare i de la ieire) au aceeai ltime.

Schema bloc a unui multiplexor vectorial MUX 4x2 care selecteaz si
transmite la iesire magistrale una dintre cele 4 magistrale a 2 biti Iiecare
este prezentat n Iigura Fig. 1.4. Se realizeaza prin conectarea n paralel a
dou multiplexoare MUX 4, cu intrarile de selectie cu ponderi egale
conectate la acelasi semnal, ca n Fig. 1.5.
Multiplexoarele vectoriale sunt Irecvent utilizate n implementarea
circuitelor digitale moderne integrate pe scar larg.
ISD modelare VHDL

7

0

3

1
Y
E
S
0
S
1
MUX 4x2
A D C B

Fig. 1.4


Fig. 1.5

1.3 Modelare VHDL

n continuare vor Ii prezentate cteva variante de modelare a
multiplexoarelor logice Iolosind numai instructiuni VHDL concurente.

Exemplul 1.2: Se va considera o variant de modelare a unui multiplexor
logic MUX 8 Ir semnal de validare. Schema bloc a multiplexorului este cea din
Fig. 1.6. Programul VHDL pentru descrierea Iunctional a acestui multiplexor este
prezentat n Fig. 1.7. Modelarea se realizeaz cu ajutorul unei instructiuni de
asignare conditionat. Schema bloc a circuitului sintetizat este reprezentat n Fig.
1.8. Rezultatul simulrii Iunctionale a schemei rezultate este diagrama de timp
idealizat din Fig. 1.9.

ISD modelare VHDL

8



Fig. 1.6


Fig. 1.7
ISD modelare VHDL

9



Fig. 1.8


Fig. 1.9


Exemplul 1.3: Se va considera o variant de modelare a unui multiplexor
logic MUX 8 cu intrare de validare activ pe nivel ridicat. Dac semnalul de
validare este dezactivat, iesirea multiplexorului trece n stare de impedant ridicat,
ca si cum acesta ar Ii decuplat electric de la restul schemei n care este nglobat.
Schema bloc a multiplexorului este cea din Fig. 1.10. Programul VHDL pentru
descrierea Iunctional a acestui multiplexor este prezentat n Fig. 1.11. Schema
bloc a circuitului sintetizat este reprezentat n Fig. 1.12. Rezultatul simulrii
Iunctionale a schemei rezultate este diagrama de timp idealizat din Fig. 1.13.

Din schema din Fig. 1.12 se observ c solutia de sintez nu este optimizat
deoarece nu este utilizat un multiplexor predeIinit si exist prti ale circuitului Ir
nici o valoare Iunctional (cu iesiri n gol). Totusi din punct de vedere Iunctional
nu exist nici o problem, asa cum rezult din diagrama de timp din Fig. 1.8.


ISD modelare VHDL

10



Fig. 1.10


Fig. 1.11

ISD modelare VHDL

11



Fig. 1.12



Fig. 1.13

ISD modelare VHDL

12

Exemplul 1.4: Se va considera o alt variant de modelare a
multiplexorului logic MUX 8 din exemplul precedent. Schema bloc a
multiplexorului este cea din Fig. 1.10. Programul VHDL pentru descrierea
Iunctional a acestui multiplexor este prezentat n Fig. 1.14 iar schema bloc a
circuitului sintetizat este reprezentat n Fig. 1.15. Rezultatul simulrii Iunctionale
a schemei rezultate este identic cu cel din exemplul 1.13.

n noua variant a Iost introdus un semnal sY care permite separarea
multiplexorului de circuitul buIIer care controleaz trecerea n stare de impedant
ridicat. In general se recomand descompunerea schemei sinteti:ate in blocuri
functionale ct mai simple, cu functii bine definite, pe ct posibil implementate
prin scheme predefinite .



Fig. 1.14


ISD modelare VHDL

13


Fig. 1.15

Exemplul 1.5: Se va considera o a III-a variant de modelare a
multiplexorului logic MUX 8 din exemplul 1.2 Iolosind o Iunctie de conversie din
tipul STD_LOGIC_VECTOR n tipul INTEGER. Programul VHDL pentru
descrierea Iunctional a acestui multiplexor este prezentat n Fig. 1.16. Rezultatul
simulrii Iunctionale a schemei rezultate este identic cu cel din exemplul 1.13.


Fig. 1.16
ISD modelare VHDL

14

Se observ c n acest caz pentru modelarea multiplexorului se utilizeaz
doar o instructiune de asignare neconditionat. Acest lucru este posibil deoarece
este utilizat Iunctia conv_integer() care converteste un numr binar de tipul
STD_LOGIC_VECTOR ntr-un numr zecimal de tipul integer. Utilizarea
acestei Iunctii simpliIic mult scrierea programelor dar reduce portabilitatea
acestora deoarece Iunctiile nu sunt standardizate.

Exemplele analizate anterior au ca numitor comun o anumit rigiditate
n programare si anume, pentru Iiecare tip de multiplexor este necesar s se
scrie un program special. n plus, programele, exceptnd ultima variant
devin greu de editat dac avem un multiplexor cu un numr mare de intrri
de selectie. Pentru a evita astIel de situatii, limbajul VHDL oIer
posibilitatea scrierii unor programe generice, n care o variabil generic
poate lua diverse valori n Iunctie de necesitti iar programul rmne
nemodiIicat.

Exemplul 1.6: Se va considera o variant general de modelare a unui
multiplexor logic MUX 2
n
unde n reprezint numrul intrrilor de selectie.
Scrierea unui astIel de program este posibil datorit utilizrii Iunctiei
conv_integer(). Programul VHDL pentru descrierea Iunctional a acestui
multiplexor este prezentat n Fig. 1.17. Valoarea minim a lui n este 1 (pentru
MUX 2) iar valoarea maxim a lui n este 7 pentru compilatorul VHDL utilizat
(MUX 128).

Exemplul 1.7: Se va modela VHDL un multiplexor vectorial MUX 4x2.
Schema bloc este cea din Fig. 1.18 iar programul aIerent este prezentat n Fig.
1.19. Rezultatul simulrii Iunctionale este diagrama din Fig. 1.20.
ISD modelare VHDL

15


Fig. 1.17



Fig. 1.18
ISD modelare VHDL

16



Fig. 1.19



Fig. 1.20

ISD modelare VHDL

17

1.4 Exerci(ii

E1. S se modeleze Iunctional si s se veriIice un multiplexor
MUX 32 cu dou intrri de validare E0n si E1. E0n este activ pe
nivel cobort iar E1 activ pe nivel ridicat. Dac modulul nu este
activat, iesirile trec n stare de impedant ridicat.

E2. S se modeleze Iunctional si s se veriIice varianta generic
pentru multiplexorul de la exercitiul precedent.

E3. S se modeleze Iunctional si s se veriIice un multiplexor
vectorial MUX 8x8.

E4. S se modeleze Iunctional si s se veriIice un multiplexor
vectorial MUX Nx8 (N1, 2, 4, 8, 16}).

E5. S se modeleze Iunctional si s se veriIice un multiplexor
vectorial MUX 16x8 cu dou intrri de validare E0n (activ pe nivel
cobort) si E1 (activ pe nivel ridicat). Dac modulul nu este activat,
iesirile trec n stare de impedant ridicat.