GHDL features

GHDL implements the VHDL87 (common name for IEEE 1076-1987) standard, the VHDL93 standard (aka IEEE 1076-1993) and the protected types of VHDL00 (aka IEEE 1076a or IEEE 1076-2000). The VHDL version can be selected with a command line option.

Although I tried to fully implement the VHDL standard (and its revisions), there may be remaining bugs. Please, send a bug report if you discover a bug. However, some people have already reported GHDL has (in a few case) better implementation of standards than some commercial simulators.

GHDL has successfully compiled and run a DLX processor and the the LEON1 SPARC processor.

It directly creates binaries or executable images, which is the best form for testbenches (i.e. autonomous self-checking VHDL designs which use assert). A binary can also create a VCD file or a GHW file, which may be visually inspected with a waveform viewer. See the wave viewer page for more details.

Since version 0.9, GHDL can annotate designs with an SDF file. This feature is still experimental.

GHDL can also be used to pretty print or to generate cross references in HTML. See the dlx example, click on any file and follow the links. For more details, see the --pp-html and --xref-html commands in the documentation.

Due to lack of high level optimization, GHDL is not very fast. However, by collapsing signals, GHDL 0.10 is about 3x faster than previous versions. Simulator kernel footprint has been greatly reduced with GHDL 0.11. I will further optimize GHDL's speed after full VHDL support.

F. Bertram has added enough VPI functionality so that IVI supports GHDL. IVI is an interactive and graphical front-end for simulating and debugging designs. Furthermore, he has ported GHDL to Mac OS X, proving that GHDL can be ported to other CPUs or OSs. The distribution for Mac OS X is available at sourceforge.

You can download an example to see how to run a vhdl design with a VPI subprogram.

A. Laeuger successfully used gcov with GHDL. See his page, for details on code coverage or how to use gcov.

Since GHDL is a compiler (i.e., it generates object files), you can call functions or procedures written in a foreign language, such as C, C++ or Ada95. This feature is available since GHDL version 0.5. There are several examples using this feature in the vhpidirect directory.


Copyright (C) 2004, 2005, 2008 Tristan Gingold -- tgingold AT free DOT fr

Last modified: Thu Mar 16 04:39:49 CET 2006