Overview¶
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.
- Three for simulation (sources are in src/ortho): mcode, LLVM and GCC. See Building GHDL from Sources.
- Two for synthesis (sources in src/synth): –synth and Yosys plugin.
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.