GHDL home page

Introduction

GHDL is a VHDL simulator, using the GCC technology.

VHDL is a language standardized by IEEE intended for developping electronic systems.

GHDL implements the VHDL language according to the IEEE 1076-1987 or IEEE 1076-1993 standard, that is it executes your design.

GHDL do not synthesis: it cannot translate your design into a netlist.

GHDL is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

GHDL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

GHDL main features

GHDL implements nearly all VHDL87 (common name for IEEE 1076-1987) standard and most features of VHDL93 (aka IEEE 1076-1993). The VHDL version can be selected with a command line option.

The current version is a beta version: some VHDL features, such as overflow checking, are not implemented. However, it is complete enough to compile the std_logic_1664 package or the vital packages. It have also successfully compiled and run DLX and leon1.

It creates directly binaries or executable images, which is the best form for testbenches (ie autonomous self-checking VHDL designs which use assert). A binary can also creates a VCD file, which may visually be inspected with wave viewers.

Since GHDL is a compiler (ie, it generates object files), you can call function or procedure written in a foreign language, such as C, C++ or Ada95. This feature is available since GHDL version 0.5. There are severals examples of use in the vhpidirect directory.

Downloading GHDL

Currently, GHDL is only available on the GNU/Linux system; simply because I have access only to this system.

You can download the sources of ghdl here.

You can download the binaries for i686-pc-linux-gnu here. Please, read the INSTALL file before installing the binaries, there are many requirements to install it.

You can read the GHDL documentation here. Thanks to Sakasita Yuichi from cyber-labo, a japanese translation is available. However, this version may be not up to date.

If you don't have GNAT installed, get it from here or one of the mirrors. GNAT is only required to build GHDL from the sources.

Current and previous versions

VersionDateGCCSources Binaries (i686-pc-linux)
0.7 Aug 2 03 3.3 ghdl-0.7.tar.bz2 ghdl-0.7-i686-pc-linux.tar
0.6 Jun 8 03 3.3 ghdl-0.6.tar.bz2 ghdl-0.6-i686-pc-linux.tar
0.5 May 11 03 3.2.3 ghdl-0.5.tar.bz2 ghdl-0.5-i686-pc-linux.tar
0.4.1 Apr 7 2003 3.2.2 ghdl-0.4.1.tar.bz2 ghdl-0.4.1-i686-pc-linux.tar
0.4 Apr 2 2003 3.2.2 ghdl-0.4.tar.bz2 ghdl-0.4-i686-pc-linux.tar
0.3 Jan 16 2003 3.2.1 ghdl-0.3.tar.bz2 ghdl-0.3-i686-pc-linux.tar
0.2 Dec 13 2002 3.2.1 ghdl-0.2.tar.bz2 ghdl-0.2-i686-pc-linux.tar
0.1 Nov 14 2002 3.2 ghdl-0.1.tar.bz2 ghdl-0.1-i686-pc-linux-gnu.tgz

The NEWS file contains notes about GHDL releases.

More about GHDL

Technically speaking, GHDL is a GCC front-end: it compiles VHDL files into objects files, like GCC does for c, c++, fortran or Ada95 files. GHDL does not generates intermediate c files.

GHDL is written in Ada95. I use the GNAT compiler (the GCC Ada compiler) to create the binary image. The GHDL sources includes AGCC, an Ada binding for interfacing with GCC.

The GHDL run-time library was also written in Ada95 and uses some of the Ada95 and GNAT packages.

Due to lake of high level optimization, GHDL is not very fast. I will optimize GHDL speed after full VHDL support.

How to help

I have a lots of items on my GHDL TODO list. I also have planned some importants internal modifications. However, I am still interested by: Please, send bugs report and comments to ghdl@free.fr.

Developpment plan

The "Sokcho" edition (until version 1.0)

The "Puyeo" edition (until version 2.0)

The ?? edition (until version 3.0)


Tristan Gingold
Last modified: Sat Aug 2 11:22:36 CEST 2003