ghdl

Open-source simulator for the VHDL language.

TLDR

Analyze a VHDL source file and produce an object file

$ ghdl -a [filename.vhdl]
copy


Elaborate a design (where {{design}} is the name of a configuration unit, entity unit or architecture unit)
$ ghdl -e [design]
copy


Run an elaborated design
$ ghdl -r [design]
copy


Run an elaborated design and dump output to a waveform file
$ ghdl -r [design] --wave=[output.ghw]
copy


Check the syntax of a VHDL source file
$ ghdl -s [filename.vhdl]
copy


Display the help page
$ ghdl --help
copy

SYNOPSIS

ghdl [command] [options] files...
ghdl-gcc [command] [options] files...
ghdl-llvm [command] [options] files...
ghdl-mcode [command] [options] files...

DESCRIPTION

This manual page documents briefly the ghdl command. This manual page was written for user of man, but is not as complete as the reference documentation.

Instead, users should read the GHDL texinfo manual

The Debian package supports installing multiple GHDL backends at the same time. The GHDL executable ghdl is actually a wrapper that will execute the first installed backend it finds in the order mcode, gcc, llvm. If you want to run GHDL with a specific backend you can directly run their executable, named ghdl-mcode, ghdl-gcc and ghdl-llvm respectively. Alternatively, you can run ghdl with the GHDL_BACKEND environment variable set to mcode, gcc or llvm to select a backend. If the backend in GHDL_BACKEND is not installed or invalid, the wrapper will silently revert to selecting the first installed backend it finds.

OPTIONS

This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of the main modes and options is included below. For a complete description, refer to the GHDL texinfo manual.

Basic commands:

-a

Analysis, i.e. ghdl -a file.vhdl

-e

Elabortation, i.e. ghdl -e unit_name

-r

Run: run the simulation, i.e. ghdl -r unit_name

-s

Syntax-check, i.e. ghdl -s file.vhdl

--clean

Clean: remove generated files, i.e. ghdl --clean

-h, --help

Help, i.e. ghdl --help

--version

Version, i.e. ghdl --version

Basic options:

--work=NAME

Name of the WORK library, i.e. ghdl -a --work=foo foo.vhdl

--std=STD

Which VHDL standard (87|93|93c|00|02), i.e. ghdl -a --std=87 old.vhdl

--ieee=VER

Which IEEE library (none|standard|synopsys|mentor), i.e. ghdl -a --ieee=synopsys broken.vhdl

--no-vital-checks

Disable VITAL restriction checking, i.e. ghdl -a --no-vital-checks unsupported_vital.vhdl

There are many more modes and options; please consult the documentation.

Executables created by GHDL have addition simulation options. The most important ones are listed below:

--help

Show options for simulation and execution.

--assert-level=LEVEL

Assert level at which to stop simulation (none|note|warning|error|failure), i.e. ./touchy_design --assert-level=note

--stop-time=TIME

Stop simuation after TIME, i.e. ./design --stop-time=50ns

--vcd=FILENAME

Dump VCD to FILENAME (a waveform dump, viewable with--for instance--gtkwave), i.e. ./design --vcd=design.vcd

--sdf=[TYPE=]PATH=FILENAME

Back annotate SDF onto design using TYPE (min|typ|max), instance PATH, and SDF file FILENAME, i.e. ./sdf_design --sdf=typ=top/inst=inst.sdf

SEE ALSO

gtkwave(1) The texinfo manual fully documents GHDL. You may also browse it at <https://ghdl.github.io/ghdl/>.

AUTHOR

This manual page was written by Wesley J. Landaker <wjl@icecavern.net>, for the Debian project (but may be used by others). It is released under the same terms as GHDL, i.e. the GNU General Public License. It was modified by Tristan Gingold to include it in the GHDL sources.

Copied to clipboard