GHDL Features

  1. GHDL implements the VHDL87 (aka IEEE 1076-1987) standard, the VHDL93 standard (aka IEEE 1076-1993) and the protected types of VHDL00 (aka IEEE 1076a or IEEE 1076-2000). A specific VHDL version can be selected with a command line option.
  2. Although any given VHDL standard is carefully implemented, there might be implementation bugs. Please, send a bug report if you discover one. Some people have reported GHDL having a better implementation of standards than some commercial simulators.
  3. GHDL has been successfully employed for compiling and simulating the DLX processor and the LEON1 SPARC processor.
  4. GHDL 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.
  5. Since version 0.9, GHDL can annotate designs by means of a SDF file. However, this feature is still experimental.
  6. GHDL can be used to pretty print or to generate cross references in HTML. See the dlx section. For more details, see the --pp-html and --xref-html commands in the GHDL user guide.
  7. Due to lack of high level optimization, GHDL could be faster. However, by collapsing signals, GHDL 0.10 is about 3x faster than previous versions. The simulator kernel footprint has been greatly reduced with GHDL 0.11. I will further optimize GHDL's speed after full VHDL support.
  8. 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.
  9. You can download an example to see how to run a VHDL design with a VPI subprogram.
  10. A. Laeuger successfully used gcov with GHDL. See his page for details on code coverage or how to use gcov.
  11. 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 has been available since GHDL version 0.5. There are several examples using this feature in the vhpidirect folder.
  12. Tony Bybell is actively supporting gtkwave on Mac OS X with an SDK-10.6 (x86_64, Lion, Snow Leopard) currently in pre-release but very stable. It goes very well with the mcode version of GHDL available on the Download page (i386, SDK-10.5 Leopard/Snow Leopard/Lion compatible).