aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorumarcor <unai.martinezcorral@ehu.eus>2022-02-07 15:47:21 +0100
committerumarcor <unai.martinezcorral@ehu.eus>2022-02-07 18:04:58 +0100
commit78cf122a7535f79d9bfd6398eb30a43005a3863c (patch)
treed0f327e3084c6d1d0833a97e97f7c445a9efe337 /doc
parent29289cbb4fb0bf5c8424519bf97220205f892151 (diff)
downloadghdl-78cf122a7535f79d9bfd6398eb30a43005a3863c.tar.gz
ghdl-78cf122a7535f79d9bfd6398eb30a43005a3863c.tar.bz2
ghdl-78cf122a7535f79d9bfd6398eb30a43005a3863c.zip
doc/internals/Overview: update
Diffstat (limited to 'doc')
-rw-r--r--doc/_static/internals.pngbin0 -> 141392 bytes
-rw-r--r--doc/index.rst2
-rw-r--r--doc/internals/Overview.rst25
-rw-r--r--doc/internals/img/internals.pngbin80333 -> 0 bytes
-rw-r--r--doc/internals/index.rst34
5 files changed, 35 insertions, 26 deletions
diff --git a/doc/_static/internals.png b/doc/_static/internals.png
new file mode 100644
index 000000000..01399b5d9
--- /dev/null
+++ b/doc/_static/internals.png
Binary files differ
diff --git a/doc/index.rst b/doc/index.rst
index e114f3965..8cddac6bf 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -178,7 +178,7 @@ GHDL
:caption: Internals
:hidden:
- internals/Overview
+ internals/index
internals/Frontend
internals/AST
internals/RTI
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 <ghdldrv>`) to call the programs (compiler, assembler, linker) if needed.
-
-* a runtime library named GRT (sources in :ghdlsrc:`src/grt <grt>`) to help execution at run-time. This ensures that execution is cycle-accurate.
-
-* a front-end (sources in :ghdlsrc:`src/vhdl <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 <USING:Simulation>` (sources are in :ghdlsrc:`src/ortho <ortho>`): mcode, LLVM and GCC. See :ref:`BUILD`.
- * Two for :ref:`synthesis <USING:Synthesis>` (sources in :ghdlsrc:`src/synth <synth>`): :ref:`--synth <Synth:command>` 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
--- a/doc/internals/img/internals.png
+++ /dev/null
Binary files 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 <ghdldrv>`) to call the programs (compiler, assembler, linker) if needed.
+
+* a runtime library named GRT (sources in :ghdlsrc:`src/grt <grt>`) to help execution at run-time.
+ This ensures that execution is cycle-accurate.
+
+* a front-end (sources in :ghdlsrc:`src/vhdl <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 <USING:Simulation>` (sources are in :ghdlsrc:`src/ortho <ortho>`): mcode, LLVM and GCC.
+ See :ref:`BUILD`.
+ * Two for :ref:`synthesis <USING:Synthesis>` (sources in :ghdlsrc:`src/synth <synth>`):
+ :ref:`--synth <Synth:command>` 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.