Lecture 5b - VHDL Design
Lecture 5b - VHDL Design
high level of
abstraction
low level of
abstraction
“Y-chart” due to
Geometric Gajski & Kahn
Domains and Levels of Modeling
Structural Functional
Algorithm
(behavioral)
Register-Transfer
Language
Boolean Equation
Differential Equation
“Y-chart” due to
Geometric Gajski & Kahn
Domains and Levels of Modeling
Structural Functional
Processor-Memory
Switch
Register-Transfer
Gate
Transistor
Polygons
Sticks
Standard Cells
Floor Plan
reserved words
VHDL Program Structure
4-bit Adder
4-bit Adder (cont’d)
4-bit Adder - Simulation
Modeling Flip-Flops Using VHDL
Processes
General form of process
Start
Simulation Delay
End
Simulation
Delay Types
• All VHDL signal assignment statements prescribe an
amount of time that must transpire before the signal
assumes its new value
• This prescribed delay can be in one of three forms:
– Transport -- prescribes propagation delay only
– Inertial -- prescribes propagation delay and minimum input pulse
width
– Delta -- the default if no delay time is explicitly specified
Input Output
delay
Transport Delay
• Transport delay must be explicitly specified
– I.e. keyword “TRANSPORT” must be used
• Signal will assume its new value after specified delay
Input Output
Input
Output
0 5 10 15 20 25 30
35
Inertial Delay
• Provides for specification propagation delay and input
pulse width, i.e. ‘inertia’ of output:
target <= [REJECT time_expression] INERTIAL waveform;
Input
Input Output
Output
0 5 10 15 20 25 30
35
Inertial Delay (cont.)
• Example of gate with ‘inertia’ smaller than propagation delay
– e.g. Inverter with propagation delay of 10ns which suppresses pulses
shorter than 5ns
Input
Output
• 0
Note: the REJECT feature5is new
10to VHDL
15 1076-1993
20 25 30
35
Delta Delay
• Default signal assignment propagation delay if no delay is
explicitly prescribed
– VHDL signal assignments do not take place immediately
– Delta is an infinitesimal VHDL time unit so that all signal
assignments can result in signals assuming their values at a future
time
– E.g.
Two processes:
• the first represents the combinational network;
• the second represents the state register
Simulation of the VHDL Model
Simulation command file:
Waveforms:
Dataflow VHDL Model
Q1 (t ) Q2
Q2 (t ) Q1
Q3 (t ) Q1Q2 Q3 X ' Q1Q '3 X ' Q '1 Q '2
Z X ' Q '3 XQ3
Structural Model
Waveforms:
Wait Statements
• ... an alternative to a sensitivity list
– Note: a process cannot have both wait statement(s)
and a sensitivity list
• Generic form of a process with wait statement(s)
How wait statements work?
process • Execute seq. statement until
begin a wait statement is encountered.
sequential-statements • Wait until the specified condition is satisfied.
wait statement • Then execute the next
set of sequential statements until
sequential-statements
the next wait statement is encountered.
wait-statement • ...
... • When the end of the process is reached start
end process; over again at the beginning.
Forms of Wait Statements
wait on sensitivity-list;
wait for time-expression;
wait until boolean-expression;