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 theWORKlibrary, 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
- ubuntu stonking: ghdl-common 6.0.0+dfsg3-1ubuntu2 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms