ghdl -a adder.vhd
ghdl -r adder
same analyze & run:
ghdl -a adder_tb.vhd
ghdl -r adder_tb
ghdl -r adder --wave=adder.ghw
or
ghdl -r adder --vcd=adder_wave.vcd
gtkwave adder.ghw
or
gtkwave adder_wave.vcd
if using
use std.env.all;
we must add --std=08 to our -a, -r commands:
ghdl -a --std=08 debounce_filter.vhd
ghdl -a --std=08 debounce_filter_tb.vhd
ghdl -e --std=08 debounce_filter_tb
ghdl -r --std=08 debounce_filter_tb --vcd=debounce.vcd
VHDL-2008 is a significant revision of the VHDL (VHSIC Hardware Description Language) standard that was released in 2008. It introduced several important improvements over the previous versions (like VHDL-93 and VHDL-2002).
Key features introduced in VHDL-2008 include:
-
Enhanced type system:
- Fixed-point and floating-point packages
- Better support for mixed-language simulation
- Enhanced array types and operations
-
Improved design and verification capabilities:
- Force/release statements for debugging
- Enhanced generic types
- Better package generics
- The
std.envpackage (which we used withfinishin our testbench)
-
Simplified coding:
- Direct entity instantiation (without needing component declarations)
- Enhanced file I/O capabilities
- Better support for PSL (Property Specification Language)
- External names
-
Better tool support:
- Standardized VHDL PSL integration
- Enhanced synthesis packages
- Improved error handling
For example, in VHDL-93 you would need to write:
-- VHDL-93 style
component Debounce_Filter is
generic (DEBOUNCE_LIMIT : integer);
port (...);
end component;
-- Then instantiate
UUT: Debounce_Filter
generic map (...)
port map (...);While in VHDL-2008 you can directly write:
-- VHDL-2008 style
UUT: entity work.Debounce_Filter
generic map (...)
port map (...);The newer standard makes the code more concise and easier to maintain, which is why many modern designs prefer using VHDL-2008 when the tools support it.