From 78cf122a7535f79d9bfd6398eb30a43005a3863c Mon Sep 17 00:00:00 2001 From: umarcor Date: Mon, 7 Feb 2022 15:47:21 +0100 Subject: doc/internals/Overview: update --- doc/internals/Overview.rst | 25 ------------------------- doc/internals/img/internals.png | Bin 80333 -> 0 bytes doc/internals/index.rst | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 25 deletions(-) delete mode 100644 doc/internals/Overview.rst delete mode 100644 doc/internals/img/internals.png create mode 100644 doc/internals/index.rst (limited to 'doc/internals') diff --git a/doc/internals/Overview.rst b/doc/internals/Overview.rst deleted file mode 100644 index fd29f5832..000000000 --- a/doc/internals/Overview.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. _INT:Overview: - -Overview -######## - -.. image:: img/internals.png - :width: 350px - :align: center - -`GHDL` is architectured like a traditionnal compiler. It has: - -* a driver (sources in :ghdlsrc:`src/ghdldrv `) to call the programs (compiler, assembler, linker) if needed. - -* a runtime library named GRT (sources in :ghdlsrc:`src/grt `) to help execution at run-time. This ensures that execution is cycle-accurate. - -* a front-end (sources in :ghdlsrc:`src/vhdl `) to parse and analyse VHDL. See :ref:`INT:Frontend` and :ref:`INT:AST`. - -* multiple back-ends to generate either code or netlists. - - * Three for :ref:`simulation ` (sources are in :ghdlsrc:`src/ortho `): mcode, LLVM and GCC. See :ref:`BUILD`. - * Two for :ref:`synthesis ` (sources in :ghdlsrc:`src/synth `): :ref:`--synth ` and :ref:`Synth: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. diff --git a/doc/internals/img/internals.png b/doc/internals/img/internals.png deleted file mode 100644 index cc6714287..000000000 Binary files a/doc/internals/img/internals.png and /dev/null differ diff --git a/doc/internals/index.rst b/doc/internals/index.rst new file mode 100644 index 000000000..4614d0edc --- /dev/null +++ b/doc/internals/index.rst @@ -0,0 +1,34 @@ +.. _INT:Overview: + +Overview +######## + +.. figure:: ../_static/internals.png + :width: 100% + :align: center + + Architecture overview of the GHDL toolkit (CLI, libghdl, pyGHDL and ghdl-yosys-plugin). + +`GHDL` is architectured like a traditionnal compiler. It has: + +* a driver (sources in :ghdlsrc:`src/ghdldrv `) to call the programs (compiler, assembler, linker) if needed. + +* a runtime library named GRT (sources in :ghdlsrc:`src/grt `) to help execution at run-time. + This ensures that execution is cycle-accurate. + +* a front-end (sources in :ghdlsrc:`src/vhdl `) to parse and analyse VHDL. + See :ref:`INT:Frontend` and :ref:`INT:AST`. + +* multiple back-ends to generate either code or netlists. + + * Three for :ref:`simulation ` (sources are in :ghdlsrc:`src/ortho `): mcode, LLVM and GCC. + See :ref:`BUILD`. + * Two for :ref:`synthesis ` (sources in :ghdlsrc:`src/synth `): + :ref:`--synth ` and :ref:`Synth:plugin`. + +The architecture is modular and some of the components are available through the shared library ``libghdl``. +``libghdl`` is used by the :ref:`Synth:plugin`, the Language Server Protocol (LSP) server, and to fill the data of +pyVHDLModel (see :doc:`vhdlmodel:index`). + +The main work with regard to understanding the VHDL language is performed by the front-end, which is documented in the +next section. -- cgit v1.2.3