GHDL is architectured like a traditionnal compiler. It has:

  • a driver (sources in src/ghdldrv) to call the programs (compiler, assembler, linker) if needed.
  • a library (sources in src/grt) to help execution at run-time.
  • a front-end (sources in src/vhdl) to parse and analyse VHDL.
  • a back-end (in fact many, sources are in src/ortho) to generate code.

The architecture is modular. For example, it is possible to use the front-end in the libghdl library for the language server or to do synthesis (sources in src/synth) instead of code generation.

The main work is performed by the front-end, which is documented in the next chapter.