---
name: "ghdl-gcc"
section: "1"
platform: "linux"
package: "ghdl-gcc"
version: "5.0.1+dfsg-1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ghdl"
---

# ghdl-gcc(1)

VHDL compiler/simulator

Part of [ghdl(1)](/ghdl/1.md).

## NAME

ghdl - VHDL compiler/simulator

## 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)](/gtkwave/1.md)

*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.*
