LinuxCommandLibrary

ghdl

Analyze, compile, and simulate VHDL designs

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 help
$ ghdl --help
copy

SYNOPSIS

ghdl command [options] VHDL files

PARAMETERS

--analyze
    Analyze the VHDL files.

--elaborate
    Elaborate the design.

--run
    Run the simulation.

--simulate
    Synonym for --run.

--synth
    Generate code for synthesis.

--v87
    Use the VHDL-87 standard.

--v93
    Use the VHDL-93 standard.

--v02
    Use the VHDL-2002 standard.

--v08
    Use the VHDL-2008 standard.

--ieee=synopsys
    Use Synopsys ieee library.

--work=library_name
    Specify the working library.

--std=standard
    Specify the VHDL standard to use.

--help
    Display help information.

-o
    Specify the output file name.

DESCRIPTION

GHDL is an open-source VHDL simulator. It analyzes, elaborates, simulates, and compiles VHDL code. It is a powerful tool for verifying hardware designs before they are implemented in physical hardware. GHDL supports multiple backends, including code generation for other simulators or synthesis tools. It uses the GNU GCC or LLVM compiler to compile the generated code, resulting in fast and efficient simulation. GHDL is compliant with multiple VHDL standards (IEEE 1076), including VHDL-87, VHDL-93, VHDL-2002, and VHDL-2008.
It's a valuable tool for hardware engineers, students, and anyone working with VHDL.

CAVEATS

GHDL requires a working GCC or LLVM installation.

CODE GENERATION

The '--synth' option allows GHDL to generate code compatible with various synthesis tools. The output format depends on the target synthesis tool.

LIBRARIES

VHDL designs often rely on pre-compiled libraries. GHDL provides mechanisms to manage and use these libraries, including standard libraries like IEEE and vendor-specific libraries.

HISTORY

GHDL was initially developed by Tristan Gingold as part of his PhD thesis. It has evolved over the years with contributions from numerous developers. Originally, GHDL was based on the GCC compiler. Later, support for LLVM was added, providing alternative backend options. GHDL has become a widely used tool in the open-source hardware community.

SEE ALSO

gcc(1), llvm(1)

Copied to clipboard