GHDL(1)

πŸ‘‘ GHDL(1) β€” the ghdl girlie manual πŸ’–

okay so bestie, this is the ghdl man page from the GHDL manual, and I'm gonna walk you through it like we're texting at 2am. it's short on purpose, keep reading πŸ‘‡


🌸 NAME

ghdl β€” VHDL compiler/simulator. yeah. that's the whole vibe. compiler AND simulator, main character energy fr πŸ’…


✨ SYNOPSIS

ghdl [command] [options] files...
ghdl-gcc [command] [options] files...
ghdl-llvm [command] [options] files...
ghdl-mcode [command] [options] files...

four ways in, pick your fighter 🫢


πŸŽ€ DESCRIPTION

so this page is a lil quick-and-dirty runthrough of the ghdl command. it was written for people using man, and ngl, it is not as complete as the reference documentation. like, at all. it's the sparknotes version. πŸ™ˆ

if you want the real thing, you should read the GHDL texinfo manual instead. that's where the full lore lives.

okay now here's the tea on how the Debian package handles backends β˜•: it supports installing multiple GHDL backends at the same time. when you do that, each one is available under its own name β€” that's ghdl-gcc, ghdl-llvm or ghdl-mcode. and ghdl? that's symlinked to a default backend. so if you've got multiple backends installed and you wanna switch up the default, run:

sudo update-alternatives --config ghdl

slay. pick your fave, no cap. ✨


πŸ’… OPTIONS

this program follows the usual GNU command line syntax, long options starting with two dashes (`-`). down below is a summary of the main modes and options. for a complete description, refer to the GHDL texinfo manual. (yes queen, the texinfo manual again. she knows everything.)

🧚 Basic commands

  • -a β€” Analysis, i.e. ghdl -a file.vhdl
  • -e β€” Elaboration, 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 so many more modes and options β€” please consult the documentation, bestie, I can't list them all here 😭

πŸ”₯ Simulation options (the compiled-executable era)

executables created by GHDL have addition simulation options (that's the original wording, don't @ me πŸ’€). 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) β€” your waveforms' forever home πŸ’œ

the texinfo manual fully documents GHDL. you may also browse it at <https://ghdl.github.io/ghdl/>. go read it, it ate πŸ”₯


πŸ’– 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. iconic behavior, honestly πŸ‘‘


and that's the whole page, bestie!! this was GHDL(1) from the GHDL manual, dated May 9, 2026. periodt. go compile something πŸ’…βœ¨

πŸ“¦ where this page comes from