Sunteți pe pagina 1din 25

Universitatea Tehnică „Gh.

Asachi”,Iaşi

Facultate:ELECTRONICĂ ŞI TELECOMUNICAŢII
Student: Chiosa Ana-Maria
Specializare: Microtehnologii
Profesor: Dănuţ Burdia
Grupa: 5405
Tema de proiect: nr. 13
Enuţul temei
Partea I – Proiectarea şi analiza dinamică în SPICE a circuitului
JKFFS

1 1. Să se dimensioneze tranzistoarele MOS corespunzător tehnologiei date


şi să se scrie netlist-ul SPICE al circuitului. (Netlist-ul se va scrie ierarhic
folosind subcircuite).
2
3 2. Să se efectueze analiza tranzitorie a circuitului pentru a pune în
evidenţă funcţionarea sa. La fiecare ieşire a circuitului se va considera cîte o
capacitate de sarcină. Valorile pentru tensiunea de alimentare VDD, timpii de
tranziţie TR ai formelor de undă de la intrări şi, respectiv, capacităţile de sarcină
CL se vor adopta în funcţie de tehnologia impusă conform tabelului următor:
4
Tehnologie 0.13
0.18μm 0.25μm 0.35μm 0.50μm
CMOS μm
VDD 1.2V 1.8V 2.5V 3.3V 5V
TR 0.1ns 0.15ns 0.2ns 0.3ns 0.4n
CL 0.06pF 0.07pF 0.08pF 0.09pF 0.1pF
1
2 3. Determinaţi prin simulare timpii de propagare intrinsecă a circuitului de la
intrarea de clock la ieşiri şi coeficientul Kload de variaţie a acestor timpi cu
capacitatea de sarcină. Timpul de propagare total este dat de următoarea relaţie:
3
tptotal = tpintrinsec + Kload*CL

Timpul de propagare intrinsec al circuitului se obţine pentru CL = 0 pF.


Se va completa un tabel de felul următor:

tpLH tpHL
Descriere
tpLHintrinsec Kload tpHLintrinsec Kload
CK → Q
CK → QN

1 4. Determinaţi prin simulare parametrii de constrângere SETUP_TIME,


HOLD_TIME şi durata minimă a pulsului MINPW pentru pinii de intrare
specificaţi în tabelul următor:

2
Durata interval
Pin intrare Parametru constrângere
[ns]
SETUP_TIME_LH → CK
SETUP_TIME_HL → CK
D HOLD_TIME_LH → CK
HOLD_TIME_HL → CK
MINPW_HIGH
CK
MINPW_LOW

Pentru simulările efectuate la fiecare din punctele 2, 3 şi 4 se vor prezenta


schema de test, fişierul SPICE (.cir) şi formele de undă sau caracteristicile
reprezentative pe baza cărora s-au determinat parametrii ceruţi în tabele.
Mai jos sunt prezentate descrierea, schema bloc şi tabelul de funcţionare
al circuitului.
Partea II - VHDL
Denumirea circuitului: decodor binar
Descriere: Decodorul identifică un cod de intrare de width biţi de la
portul de intrare A, activând o ieşire din cele 2width ale portului de ieşire B, în
conformitate cu valoarea cuvântului de la intrare.

Porturile circuitului

Descrierea funcţionării

Cerinţe:
1 • modelarea comportamentală în VHDL a circuitului.
2 • realizarea unui program de test pentru width=4.
Partea I
Proiectarea şi analiza dinamică în SPICE a circuitului
JKFFS

Schema la nivel de poartă logica pentru circuitul JKFFS conţine porţi


logice de 4 tipuri : NOR cu 2 intrări, NAND cu 2 intrări, inversoare şi inversoare
tristate. Aceste circuite pot fi descrise la rândul lor la nivel de tranzistor după
scheme cunoscute. Tranzistoarele MOS din componenţa porţilor logice se vor
dimensiona conform tehnologiei de 0.13 μm.

În general, pentru dimensionarea tranzistoarelor dintr-un model de poartă


logică se pleacă de la următoarea constrângere : curentul din ieşire nu trebuie să-
şi modifice valorea la tranziţii diferite ale tensiunii din ieşire. Acest lucru
impune ca rezistenţa văzută în ieşire să rămână constantă la diferite tranziţii ale
ieşirii. In urma acestui deziderat rezulta 2 situatii limita :
1. out=0 : R d  R P
2. out=1 : R u  2  R N
Egalitatea curenţilor în cele 2 situaţii impune o relaţie de egalitate între
cele 2 rezistenţe : R d  R u . Cunoscând formulele de calcul pentru rezitenţele
tranzistoarelor în funcţie de parametrii tehnologici şi înlocuind în relaţia de
egalitate se rezolvă problema dimensionării.
Poartă NOR cu 2 intrări

În acest caz folosim relatia:




RP  RN 

LN WP  WP 
LP    2   4 
RP    LP WN   WN  
WP  K  Vdd  VT 
P  LN  LP  0.13m 
 WN  1.8 m 

LN 
RN  
WN  K N  Vdd  VT  

 WP  7.2 m

Poartă NAND cu 2 intrări:

În acest caz folosim relaţiile: 



RP  2  RN 
LP 
 LP 1 LN
RP     
WP  K P  V dd  VT   WP  K P  V dd  VT  2 WN  K N  V dd 
LN 
RN  
WN  K N  V dd  VT  

K 1 LN WP
 N
  
K P 2 LP WN

1 LN WP 
  1 
2 LP WN   WP  WN  1.8m
LN  LP  0.13m 

Poartă inversoare:

Vdd
(2)

MP

(1)
IN (3) OUT

MN

(0)

În acest caz folosim relaţiile:




RP  RN 
 LN WP  WP 
LP    2   2 
RP    LP WN   WN  
WP  K  V d d  VT 
P  LN  LP  0.13m 
 W  1.8 m 

LN  N

RN  
WN  K N  V d d  VT  

 WP  3.6 m

Poartă inversoare tristate:

(2) Vdd
CN (5)

MP1
(7)

MP2
IN (1) (3) OUT

MN1

(6)
MN2
C (4)
(0)

În acest caz folosim relaţiile:




RP  RN 
 LN WP  WP 
LP    2. 5   2.5 
RP    LP WN   WN 
WP  K  V dd  VT 
P  LN  LP  0.13 m 
 WN  2 m 

LN 
RN  
WN  K N  V d d  VT  

 WP  5 m
Subcircuitul bistabilului JKFFS, precum si a portilor folosite, este scris in
fisierul BIST_JK.txt.

*subcircuite
.SUBCKT JKFFS 1 3 15 19 16 13 14
X1 1 2 19 4 NAND2
X2 9 15 19 10 NAND2
X3 11 15 19 12 NAND2
X4 2 3 19 5 NOR2
X5 6 5 19 7 NOR2
X6 4 19 6 INV
X7 7 19 8 INV
X8 12 19 2 INV
X9 2 19 13 INV
X10 12 19 14 INV
X11 8 19 18 17 9 INV3S
X12 10 18 19 17 9 INV3S
X13 10 19 18 17 11 INV3S
X14 12 19 18 17 11 INV3S
X15 16 19 17 INV
X16 17 19 18 INV
.ENDS

.SUBCKT INV 1 2 3
MP1 3 1 2 2 CMOSP L=0.13u W=3.6u
MN1 3 1 0 0 CMOSN L=0.13u W=1.8u
.ENDS

.SUBCKT INV3S 1 2 4 5 3
MP1 3 1 7 2 CMOSP L=0.13u W=5u
MP2 7 5 2 2 CMOSP L=0.13u W=5u
MN1 3 1 6 0 CMOSN L=0.13u W=1.8u
MN2 6 4 0 0 CMOSN L=0.13u W=1.8u
.ENDS

.SUBCKT NAND2 1 2 3 4
MP1 4 1 3 3 CMOSP L=0.13u W=1.8u
MP2 4 2 3 3 CMOSP L=0.13u W=1.8u
MN1 5 1 0 0 CMOSN L=0.13u W=1.8u
MN2 4 2 5 0 CMOSN L=0.13u W=1.8u
.ENDS

.SUBCKT NOR2 1 2 3 4
MP1 5 1 3 3 CMOSP l=0.13u w=7.2u
MP2 4 2 5 3 CMOSP l=0.13u w=7.2u
MN1 4 1 0 0 CMOSN l=0.13u w=1.8u
MN2 4 2 0 0 CMOSN l=0.13u w=1.8u
.ENDS

In tehnologia MOS cu L=0.13um alegem : Vdd=1.2V, TR=TF=0.1ns,


CL=0.06pF.
Pentru analiza tranzitorie circuitul este:

*bistabil
VDD 7 0 1.2v
Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vk 2 0 pulse(0 1.2 10n 0.1n 0.1n 10n 20n)
Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
Vck 4 0 pulse(0 1.2 0 0.1n 0.1n 5n 10n)
C1 5 0 0.06p
C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc”BIST_JK.txt”
.inc "CMOS_IBM_013_T55R.txt"
.TRAN 1n 60n 0.13n
.PROBE
.END

2.Analiza tranzitorie a circuitului


In urma efectuǎrii analizei au rezultat urmǎtoarele forme de undǎ:
2.0V

SEL>>
-2.0V
V1(C1) V1(C2)
2.0V
1.0V
0V
V1(Vsn)
2.0V
1.0V
0V
V1(Vk)
2.0V
1.0V
0V
V1(Vj)
2.0V
1.0V
0V
0s 10ns 20ns 30ns 40ns 50ns 60ns
V1(Vck)
Time

3. Determinarea timpilor de propagare intrinseca


Voi determina prin simulare timpii de propagare intrinseci ai circuitului de
la intrarea de clock la iesiri si coeficientul K load de variatie a acestor timpi cu
capacitatea de sarcina.
Timpul de propagare total este dat de relatia urmatoare:
tptotal  tpint rin sec  K load  Cl
Timpul de propagare intrinsec al circuitului se obţine pentru CL = 0 pF.
In continuare sunt prezentate circuitul de simulare si formele de unda
pentru timpii de propagare totali obtinuti prin simulare. Se folosesc functiile tplh
si tphl pentru a calcula distanta dintre mijlocul frontului crescator (activ) al clk-
ului si mijlocul frontului crescator sau descrescator in functie de caz al
semnalelor Q si QN.
Pentru calcularea timpilor totali de propagare nodul RN al subcircuitului
DFFR se conectează la alimentare :

*bistabil
VDD 7 0 1.2v
Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vk 2 0 pulse(0 1.2 10n 0.1n 0.1n 10n 20n)
*Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
Vsn 3 0 1.2V
Vck 4 0 pulse(0 1.2 0 0.1n 0.1n 5n 10n)
C1 5 0 0.06p
C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc”BIST_JK.txt”
.inc "CMOS_IBM_013_T55R.txt"
.TRAN 1n 60n 0.13n
.PROBE
.END

Functiile tplh si tphl sunt descrise mai jos.

→ functia tplh
tpLH (1,2)=x2-x1
{
1| search forward level (50%,n) !1;
2| search forward level (50%,p) !2;
}

→ functia tpHL
tpHL (1,2)=x2-x1
{
1| search forward level (50%,p) !1;
2| search forward level (50%,n) !2;
}
1.26V

1.00V

(20.051n,606.549m) (20.616n,601.286m)

0.50V

0V
19.843ns 20.000ns 20.200ns 20.400ns 20.600ns 20.800ns
V1(Vck) V1(C1)
Time

Timpul total de propagare: tpLH total (CK , Q )  0.565ns

1.244V

1.000V

(10.051n,606.581m) (10.840n,605.143m)

0.500V

0V

10.0ns 10.2ns 10.4ns 10.6ns 10.8ns 11.0ns


V1(Vck) V1(C1)
Time

Timpul total de propagare: tpHLtotal (CK , Q)  0.789n

1.21V

1.00V

(10.050n,600.685m) (10.800n,603.810m)

0.50V

0V
9.80ns 10.00ns 10.20ns 10.40ns 10.60ns 10.80ns 11.00ns 11.20ns
V1(Vck) V1(C2)
Time

Timpul total de propagare: tpLH total (CK , QN )  0.750n


1.21V

1.00V

(20.050n,600.457m) (20.559n,600.457m)

0.50V

0V
19.60ns 19.80ns 20.00ns 20.20ns 20.40ns 20.60ns 20.80ns 21.00ns
V1(Vck) V1(C2)
Time

Timpul total de propagare: tpHLtotal (CK , QN )  0.509n

Timpul de propagare intrinsec al circuitului se obţine pentru CL = 0 pF.


Pentru calculul timpilor de propagare intrinseci se eliminǎ condensatoarele,
circuitul CIR arǎtând astfel:

*bistabil
VDD 7 0 1.2v
Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vk 2 0 pulse(0 1.2 10n 0.1n 0.1n 10n 20n)
*Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
Vsn 3 0 1.2V
Vck 4 0 pulse(0 1.2 0 0.1n 0.1n 5n 10n)
*C1 5 0 0.06p
*C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc”BIST_JK.txt”
.inc "CMOS_IBM_013_T55R.txt"
.TRAN 1n 60n 0.13n
.PROBE
.END

Timpul de propagare intrinsec: tpLH total (CK , Q)  0.623ns :


1.21V

1.00V

(30.050n,600.457m) (30.673n,600.457m)

0.50V

0V
29.901ns 30.000ns 30.200ns 30.400ns 30.600ns 30.800ns 30.943ns
V1(Vck) V(6)
Time

Timpul total de propagare: tpHLtotal (CK , Q )  0.431ns

1.21V

1.00V

(20.050n,600.457m) (20.481n,600.457m)

0.50V

0V
19.800ns 20.000ns 20.200ns 20.400ns 20.600ns 20.732ns
V1(Vck) V(6)
Time

Timpul total de propagare: tpLH total (CK , QN )  0.498ns :


1.21V

1.00V

(20.050n,599.258m) (20.548n,599.258m)

0.50V

0V
19.922ns 20.000ns 20.100ns 20.200ns 20.300ns 20.400ns 20.500ns 20.600ns 20.700ns
V1(Vck) V(5)
Time

Timpul total de propagare: tpHLtotal (CK , QN )  0.683ns :

1.21V

1.00V

(30.050n,600.457m) (30.733n,600.457m)

0.50V

0V
29.901ns 30.000ns 30.200ns 30.400ns 30.600ns 30.800ns 30.943ns
V1(Vck) V(5)
Time

Se completeaza tabelul de mai jos folosind formula :


tptotal  tpint rin sec
tptotal  tpint rin sec  K load  C L  K load 
CL

tpLH tpHL
Descriere
tpLH intrinsec Kload tpHL intrinsec Kload
CK -> Q 0.623 ns 9666 0.431 ns 5966
CK -> QN 0.498 ns 4200 0.683 ns 2900

4. Determinarea parametrilor de constrangere


SETUP_TIME,
HOLD_TIME si durata minima a pulsului MINPW
4.1 Determinarea SETUP_TIME_LHCK si SETUP_TIME_HLCK

Timpul minim dinaintea frontului activ de ceas in care este obligatoriu ca


semnalul de intrare sa fie stabil se numeste setup_time. Pentru determinarea
acestui timp se va face o analiza parametrica asupra componentei td a
semnalului de intrare D. Acestă variabilă va lua valori de timp apropiate de
momentul unui front activ de ceas, dinaintea acestuia. Pentru fiecare valoare de
timp se va urmări comportarea ieşirii.
Circuitul care descrie aceasta analiza este :

*bistabil
VDD 7 0 1.2v
*Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vj 1 0 0.6V
Vk 2 0 pulse (0 1.2 {td} 0.1n 0.1n 10n 20n)
.param td=10n
.step param td LIST 9.5n 9.6n 9.7n 9.8n 9.9n
Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
C1 5 0 0.06p
C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc”BIST_JK.txt”
.TRAN 1n 60n 0.13n
.PROBE
.END

Masuram timpul pentru Q si QN la jumatatea frontului si timpul


corespunzator frontului de ceas la jumatatea frontului pozitiv. Timpii
SETUP_TIME_LHCK si SETUP_TIME_HLCK se obtin ca diferenta
dintre cei doi timpi.

tsLH=10.050ns-9.750ns=0.3ns
1.5V

1.0V

(9.750n,600.000m)

0.5V

0V
V1(Vk)
1.2V

0.8V
(10.050n,602.198m)

0.4V

SEL>>
0V
8.85ns 9.00ns 9.20ns 9.40ns 9.60ns 9.80ns 10.00ns 10.20ns 10.40ns
V1(Vck)
Time

tsHL=20.050ns-19.650ns=0.4n
1.3V

1.0V

(19.850n,601.562m)

0.5V

SEL>>
0V
V1(Vk)
1.2V

0.8V (20.050n,603.077m)

0.4V

0V
18.30ns 18.50ns 19.00ns 19.50ns 20.00ns 20.50ns 21.00ns 21.49ns
V1(Vck)
Time

4.2 Determinarea HOLD_TIME_LHCK si HOLD_TIME_HLCK

Timpul minim de dupa frontul activ de ceas in care este obligatoriu ca


semnalul de intrare sa fie stabil se numeste hold_time.Pentru determinarea
acestui timp se va face o analiza parametrica tot asupra componentei td a
semnalului pulse de pe intrarea D.Valorile lui td vor fi momente de timp de dupa
frontul activ, apropiate de acesta.
Circuitul care descrie aceasta analiza este :
*bistabil
VDD 7 0 1.2v
*Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vj 1 0 0.6V
Vk 2 0 pulse (0 1.2 {td} 0.1n 0.1n 10n 20n)
.param td=10n
.step param td LIST 10.10n 10.20n 10.30n 10.40n 10.5n
Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc”BIST_JK.txt”
.TRAN 1n 60n 0.13n
.PROBE
.END

Masuram timpul pentru Q si QN la jumatatea frontului si timpul


corespunzator frontului de ceas la jumatatea frontului pozitiv. Timpii
HOLD_TIME_LHCK si HOLD_TIME_HLCK se obtine ca diferenta dintre
cei doi timpi.

thLH =10.350ns-10.050ns=0.3ns
1.5V

1.0V

(10.350n,600.000m)

0.5V

SEL>>
0V
V1(Vk)
1.2V

0.8V
(10.050n,602.198m)

0.4V

0V
9.4ns 9.6ns 9.8ns 10.0ns 10.2ns 10.4ns 10.6ns 10.8ns 11.0ns
V1(Vck)
Time

thHL = 20.450ns-20.050ns=0.4ns
1.5V

1.0V

(20.450n,600.000m)

0.5V

0V
V1(Vk)
1.2V

0.8V
(20.050n,602.198m)

0.4V

SEL>>
0V
19.4ns 19.6ns 19.8ns 20.0ns 20.2ns 20.4ns 20.6ns 20.8ns 21.0ns
V1(Vck)
Time

4.3 Determinarea duratei minime a pulsului MINPW_HIGH si


MINPW_LOW

Pentru determinarea parametrului minpw_high se face o analiza parametrica


dupa “PW”(PULSE WIDTH) din semnalul de clock de tip pulse. Acesta se va
micsora pana cand iesirea nu mai urmareste tranzitiile intrarii.
Circuitul care descrie aceasta analiza este :

*bistabil
VDD 7 0 1.2v
Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vk 2 0 pulse(0 1.2 10n 0.1n 0.1n 10n 20n)
Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
Vck 4 0 pulse(0 1.2 0 0.1n 0.1n {pw} 10n)
.param pw=5n
.step param pw LIST 4.8n 4.6n 4.3n 4.0n 3.5n 3.3n
C1 5 0 0.06p
C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc "BIST_JK.txt"
.TRAN 1n 60n 0.13n
.PROBE
.END
2.0V

0V

SEL>>
-2.0V
V1(C1)
2.0V

1.0V

0V
V1(Vj) V1(Vk)
2.0V

1.0V

0V
0s 10ns 20ns 30ns 40ns 50ns 60ns
V1(Vck)
Time

Din anliza facuta am observat ca oricat de mic ar fi {pw},iesirea tot urmareste


tranzitiile intrarii,deci minpw_high nu poate fi determinat.

Pentru determinarea minpw_low se pastreaza “pw” constant şi se face o


analiza parametrica dupa perioada clock-ului. Deoarece PW este constant,
perioada minimă este 5n+0.1n+0.1n = 5.2n

*bistab
VDD 7 0 1.2v
Vj 1 0 pulse(0 1.2 0n 0.1n 0.1n 10n 20n)
Vk 2 0 pulse(0 1.2 10n 0.1n 0.1n 10n 20n)
Vsn 3 0 pulse(0 1.2 10n 0.1n 0.1n 20n 30n)
Vck 4 0 pulse(0 1.2 0 0.1n 0.1n 5n {per})
.param per=11n
.step param per LIST 5.4n 5.8n 6n
C1 5 0 0.06p
C2 6 0 0.06p
X1 1 2 3 7 4 5 6 JKFFS
.inc "BIST_JK.txt"
.TRAN 1n 60n 0.13n
.PROBE
.END
2.5V
0V

SEL>>
-4.8V
V1(C1)
2.0V

1.0V

0V
V1(Vk) V1(Vj)
2.0V

1.0V

0V
13.3ns 16.0ns 20.0ns 24.0ns 28.0ns 32.0ns 36.0ns 40.0ns 44.0ns 48.0ns
V1(Vck)
Time

Durata interval
Prin intrare Parametru constrangere
[ns]
SETUP_TIME_LH->CK 0.3ns
SETUP_TIME_HL->CK 0.4ns
K
HOLD_TIME_LH->CK 0.3ns
HOLD_TIME_HL->CK 0.4ns
MINPW_HIGH
CK
MINPW_LOW
Partea II - VHDL
Denumirea circuitului: decodor binar
Descriere: Decodorul identifică un cod de intrare de width biţi de la
portul de intrare A, activând o ieşire din cele 2width ale portului de ieşire B, în
conformitate cu valoarea cuvântului de la intrare.

Porturile circuitului

Descrierea funcţionării

Cerinţe:
3 • modelarea comportamentală în VHDL a circuitului.
4 • realizarea unui program de test pentru width=4.
Declaratia de entitate pentru decodor:
-- decodor binar
library ieee;
use ieee.std_logic_1164.all;

entity decodor is
port(A: in std_logic_vector(3 downto 0);
B:out std_logic_vector(15 downto 0));
end decodor;

architecture beh of decodor is


begin
process(A)
begin
case A is
when "0000" => B<="0000000000000001";
when "0001" => B<="0000000000000010";
when "0010" => B<="0000000000000100";
when "0011" => B<="0000000000001000";
when "0100" => B<="0000000000010000";
when "0101" => B<="0000000000100000";
when "0110" => B<="0000000001000000";
when "0111" => B<="0000000010000000";
when "1000" => B<="0000000100000000";
when "1001" => B<="0000001000000000";
when "1010" => B<="0000010000000000";
when "1011" => B<="0000100000000000";
when "1100" => B<="0001000000000000";
when "1101" => B<="0010000000000000";
when "1110" => B<="0100000000000000";
when "1111" => B<="1000000000000000";
when others => B<="0000000000000000";
end case;
end process;
end beh;

--decodor testbench
library ieee;
use ieee.std_logic_1164.all;
entity decodortest is
end decodortest;

architecture testbench of decodortest is


component decodor
port(A:in std_logic_vector(3 downto 0);
B:out std_logic_vector(15 downto 0));
end component;

signal A: std_logic_vector(3 downto 0);


signal B: std_logic_vector(15 downto 0);

begin
UnitUnderTest: decodor port map (A, B);
process
begin
A<="0000";
wait for 5 ns;
A<="0110";
wait for 5 ns;
A<="1001";
wait for 5 ns;
A<="1101";
wait for 5 ns;
A<="0100";
wait for 5 ns;
A<="0001";
wait for 5 ns;
A<="1111";
wait for 5 ns;
A<="1100";
wait for 5 ns;
A<="1011";
wait for 5 ns;
A<="1010";
wait for 5 ns;
A<="1000";
wait for 5 ns;
A<="0111";
wait for 5 ns;
A<="0101";
wait for 5 ns;
A<="0011";
wait for 5 ns;
A<="0010";
wait for 5 ns;
A<="1110";
wait for 5 ns;
end process;
end testbench;

In urma simularii vor rezulta urmatoarele forme de unda :

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