Simulation and Timing in VHDL: EE 595 EDA / ASIC Design Lab
Simulation and Timing in VHDL: EE 595 EDA / ASIC Design Lab
Simulation and Timing in VHDL: EE 595 EDA / ASIC Design Lab
Part III
Simulation and Timing in
VHDL
EE 595 EDA / ASIC Design Lab
Simulation Cycle in VHDL
First-Generation simulators used a technique CAD developers call a one-list algorithm,
which is relatively fast but cannot handle parallel zero delay events such as exchanging
A and B.
AA<=
<=B;
B; zero
zerodelay
delay
BB<=
<=A;
A; zero
zerodelay
delay
This example would not exchange the values of A and B, but would give both A and B the
old value of B, using one-list algorithm.
VHDL uses a two-list algorithm, which tracks the previous and new values of signals. In
this method, expressions are first evaluated, then signals are assigned new values. In
VHDL, the example code performs a data exchange between the two signals A and B at
some point in simulation time. In operation, the old values of A and B are fetched and
scheduled for assignment, for zero delay, after a subsequent WAIT statement is executed.
Start
StartSimulation
Simulation
Delay
Update
UpdateSignals
Signals Execute
ExecuteProcesses
Processes
End
EndSimulation
Simulation
Input
Output
Output
Output
Output<=
<= REJECT
REJECT5ns
5nsINERTIAL
INERTIALnot(Input)
not(Input)after
after10ns;
10ns;
Input
Output
0 5 10 15 20 25 30 35
Note that REJECT feature is new to VHDL 1076-1993
Output
Output<=
<=not(Input);
not(Input);
----Output
Outputassumes
assumesnew
newvalue
valueininone
onedelta
deltacycle
cycle
IN: 1->0 C
A
AND
ANDgate
gateevaluated
evaluatedfirst:
first:
NAND
NANDgate
gateevaluated
evaluatedfirst:
first: IN:
IN:1->0
1->0
IN:
IN:1->0
1->0 A:A: 0->1
0->1
A:
A: 0->1
0->1 C:C: 0->1
0->1
B:
B: 1->0
1->0 B:B: 1->0
1->0
C:
C: 0->0
0->0 C:C: 1->0
1->0
Using
Usingdelta
deltadelay
delayschedulingA
scheduling B
Time Delta Event
0 ns 1 IN: 1->0
eval INVERTER
2 A: 0->1
eval NAND, AND
3 B: 1->0
C: 0->1
eval AND
4 C: 1->0
1 ns
Transport Delay
Must specify with key word TRANSPORT
Ideal delay., passes any width pulse
Good for wire delay and time modeling.
Time
0 ns 10 ns 18 ns 24 ns 40 ns