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 runtime library named GRT (sources in src/grt) to help execution at run-time. This ensures that execution is cycle-accurate.
- a front-end (sources in src/vhdl) to parse and analyse VHDL. See Front-end and AST.
- multiple back-ends to generate either code or netlists.
The architecture is modular. For example, the front-end in the
libghdl library is used for the language server.
The main work is performed by the front-end, which is documented in the next chapter.