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.