VHDL Quick Start
VHDL Quick Start
Peter J. Ashenden
The University of Adelaide
Objective
• Quick introduction to VHDL
– basic language concepts
– basic design methodology
• Use The Student’s Guide to VHDL
or The Designer’s Guide to VHDL
– self-learning for more depth
– reference for project work
Structural Functional
high level of
abstraction
low level of
abstraction
Structural Functional
Algorithm
(behavioral)
Register-Transfer
Language
Boolean Equation
Differential Equation
Structural Functional
Processor-Memory
Switch
Register-Transfer
Gate
Transistor
Structural Functional
Polygons
Sticks
Standard Cells
Floor Plan
entity reg4 is
port ( d0, d1, d2, d3, en, clk : in bit;
q0, q1, q2, q3 : out bit ); punctuation
end entity reg4;
entity reg4 is
port ( d0, d1, d2, d3, en, clk : in bit;
q0, q1, q2, q3 : out bit );
end reg4;
bit1
d_latch
d1 q1
d q
clk
bit2
d_latch
d2 q2
d q
clk
bit3
d_latch
d3 q3
d q
gate clk
and2
en int_clk
a y
clk
b
...
begin
bit0 : d_latch
port map ( d0, int_clk, q0 );
bit1 : d_latch
port map ( d1, int_clk, q1 );
bit2 : d_latch
port map ( d2, int_clk, q2 );
bit3 : d_latch
port map ( d3, int_clk, q3 );
gate : and2
port map ( en, clk, int_clk );
end struct;
shift_reg
control_ shift_
section adder
reg
product
bit1
d_latch
d1 q1
d q
clk
bit2
d_latch
d2 q2
d q
clk
bit3
d_latch
d3 q3
d q
gate clk
and2
en int_clk
a y
clk
b
clk
bit1
d_latch(basic)
d1 d q q1
clk
bit2
d_latch(basic)
d2 d q q2
clk
bit3
d_latch(basic)
d3 d q q3
gate clk
and2(basic)
en a y int_clk
clk b
process with variables
and statements
Synthesize
Gate-level
Model Simulate Test Bench
Timing
Model Simulate