From 8185ed878df5054a9624af97ae4c73bbd3e906ef Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Mon, 28 Feb 2022 19:46:53 +0100 Subject: Prepare for release 2.0.0 --- configure | 2 +- doc/ghdl.texi | 38494 ++++++++++++++++++++++++++++----------------- doc/licenses.rst | 2 +- pyGHDL/__init__.py | 2 +- src/ghdldrv/ghdlmain.adb | 2 +- 5 files changed, 23706 insertions(+), 14796 deletions(-) diff --git a/configure b/configure index fb5d4fe19..17e29fa29 100755 --- a/configure +++ b/configure @@ -21,7 +21,7 @@ # place. # Note the absence of spaces and the quotes. # Suffix "-dev" is used during development. -ghdl_version="2.0.0-dev" +ghdl_version="2.0.0" backend=mcode CC=${CC:-gcc} diff --git a/doc/ghdl.texi b/doc/ghdl.texi index da2aa4d51..39d2fad6d 100644 --- a/doc/ghdl.texi +++ b/doc/ghdl.texi @@ -3,7 +3,7 @@ @setfilename GHDL.info @documentencoding UTF-8 @ifinfo -@*Generated by Sphinx 3.3.1.@* +@*Generated by Sphinx 4.4.0.@* @end ifinfo @settitle GHDL Documentation @defindex ge @@ -21,7 +21,7 @@ @copying @quotation -GHDL 2.0.0-dev, Jun 26, 2021 +GHDL 2.0.0, Feb 28, 2022 Tristan Gingold and contributors @@ -47,8 +47,8 @@ Copyright @copyright{} 2002-2021, Tristan Gingold and contributors @end ifnottex @c %**start of body -@anchor{index doc}@anchor{3c} -@c # Load pre-defined aliases and graphical characters like © from docutils +@anchor{index doc}@anchor{41} +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -70,7 +70,7 @@ Copyright @copyright{} 2002-2021, Tristan Gingold and contributors -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -334,21 +334,25 @@ pyGHDL pyGHDL.cli -* pyGHDL.cli.DOM: pyGHDL cli DOM. +* pyGHDL.cli.dom: pyGHDL cli dom. * pyGHDL.cli.lsp: pyGHDL cli lsp. pyGHDL.dom * pyGHDL.dom.Aggregates: pyGHDL dom Aggregates. -* pyGHDL.dom.Common: pyGHDL dom Common. +* pyGHDL.dom.Attribute: pyGHDL dom Attribute. +* pyGHDL.dom.Concurrent: pyGHDL dom Concurrent. * pyGHDL.dom.DesignUnit: pyGHDL dom DesignUnit. * pyGHDL.dom.Expression: pyGHDL dom Expression. * pyGHDL.dom.InterfaceItem: pyGHDL dom InterfaceItem. * pyGHDL.dom.Literal: pyGHDL dom Literal. * pyGHDL.dom.Misc: pyGHDL dom Misc. +* pyGHDL.dom.Names: pyGHDL dom Names. * pyGHDL.dom.NonStandard: pyGHDL dom NonStandard. * pyGHDL.dom.Object: pyGHDL dom Object. +* pyGHDL.dom.PSL: pyGHDL dom PSL. * pyGHDL.dom.Range: pyGHDL dom Range. +* pyGHDL.dom.Sequential: pyGHDL dom Sequential. * pyGHDL.dom.Subprogram: pyGHDL dom Subprogram. * pyGHDL.dom.Symbol: pyGHDL dom Symbol. * pyGHDL.dom.Type: pyGHDL dom Type. @@ -373,8 +377,8 @@ pyGHDL.libghdl * pyGHDL.libghdl.libraries: pyGHDL libghdl libraries. * pyGHDL.libghdl.name_table: pyGHDL libghdl name_table. * pyGHDL.libghdl.std_names: pyGHDL libghdl std_names. +* pyGHDL.libghdl.str_table: pyGHDL libghdl str_table. * pyGHDL.libghdl.utils: pyGHDL libghdl utils. -* pyGHDL.libghdl.version: pyGHDL libghdl version. * pyGHDL.libghdl.vhdl: pyGHDL libghdl vhdl. pyGHDL.libghdl.vhdl @@ -393,6 +397,7 @@ pyGHDL.libghdl.vhdl * pyGHDL.libghdl.vhdl.sem_lib: pyGHDL libghdl vhdl sem_lib. * pyGHDL.libghdl.vhdl.std_package: pyGHDL libghdl vhdl std_package. * pyGHDL.libghdl.vhdl.tokens: pyGHDL libghdl vhdl tokens. +* pyGHDL.libghdl.vhdl.utils: pyGHDL libghdl vhdl utils. pyGHDL.lsp @@ -481,7 +486,7 @@ RTI Nodes / RTII Nodes @end menu @node About,Getting | Installing,Top,Top -@anchor{about doc}@anchor{3d}@anchor{about about}@anchor{3e}@anchor{about ghdl}@anchor{3f} +@anchor{about doc}@anchor{42}@anchor{about about}@anchor{43}@anchor{about ghdl}@anchor{44} @chapter About @@ -493,80 +498,118 @@ RTI Nodes / RTII Nodes @end menu @node What is VHDL?,What is GHDL?,,About -@anchor{about intro-vhdl}@anchor{40}@anchor{about what-is-vhdl}@anchor{41} +@anchor{about intro-vhdl}@anchor{45}@anchor{about what-is-vhdl}@anchor{46} @section What is @cite{VHDL}? -VHDL@footnote{https://en.wikipedia.org/wiki/VHDL} is an acronym for Very High Speed Integrated Circuit (VHSIC@footnote{https://en.wikipedia.org/wiki/VHSIC}) Hardware Description -Language (HDL@footnote{https://en.wikipedia.org/wiki/HDL}), which is a programming language used to describe a logic circuit by function, data flow -behavior, or structure. +VHDL@footnote{https://en.wikipedia.org/wiki/VHDL} is an acronym for @emph{Verification and Hardware Description Language} (HDL@footnote{https://en.wikipedia.org/wiki/HDL}), +which is a computer language used to describe a logic circuit by function, data flow behavior, or structure. -Although VHDL was not designed for writing general purpose programs, VHDL @emph{is} a programming language, and you can write any -algorithm with it. If you are able to write programs, you will find in VHDL features similar to those found in procedural -languages such as @cite{C}, @cite{Python}, or @cite{Ada}. Indeed, VHDL derives most of its syntax and semantics from Ada. Knowing @cite{Ada} is -an advantage for learning VHDL (it is an advantage in general as well). - -However, VHDL was not designed as a general purpose language but as an @cite{HDL}. As the name implies, VHDL aims at modeling or -documenting electronics systems. Due to the nature of hardware components which are always running, VHDL is a highly -concurrent language, built upon an event-based timing model. - -Like a program written in any other language, a VHDL program can be executed. Since VHDL is used to model designs, the term -@emph{simulation} is often used instead of @cite{execution}, with the same meaning. At the same time, like a design written in -another @cite{HDL}, a set of VHDL sources can be transformed with a @emph{synthesis tool} into a netlist, that is, a detailed -gate-level implementation. +@cartouche +@quotation Note +Historically the ‘V’ in the language’s acronym came from the Very High Speed Integrated Circuit (VHSIC@footnote{https://en.wikipedia.org/wiki/VHSIC}), +which was the U.S. government program that funded the early work on the standard. +Changing the ‘V’ to mean @emph{verification} reflects the language’s increasing usage for verification as well as design. +See VHDL 202X PAR@footnote{http://www.eda-twiki.org/twiki/pub/P1076/PrivateDocuments/Par1076_202X.pdf} via VHDL-202X@footnote{https://ieee-p1076.gitlab.io/VHDL-202X/index.html#vhdl202x}. +@end quotation +@end cartouche -The development of VHDL started in 1983 and the standard is named IEEE@footnote{https://www.ieee.org/} @cite{1076}. Five revisions -exist: 1987@footnote{http://ieeexplore.ieee.org/document/26487/}, 1993@footnote{http://ieeexplore.ieee.org/document/392561/}, -2002@footnote{http://ieeexplore.ieee.org/document/1003477/}, 2008@footnote{http://ieeexplore.ieee.org/document/4772740/} and -2019@footnote{https://ieeexplore.ieee.org/document/8938196}. The standardization is handled by the VHDL Analysis and -Standardization Group (VASG/P1076@footnote{http://www.eda-twiki.org/vasg/}). +Although VHDL was not designed for writing general purpose programs, VHDL @emph{is} a programming language: any algorithm can +be written with it, it can interact with files, the environment, stdin and stdout, etc. +VHDL has features similar to those found in procedural languages such as +C@footnote{https://en.wikipedia.org/wiki/C_(programming_language)}, +Python@footnote{https://en.wikipedia.org/wiki/Python_(programming_language)}, +or Ada@footnote{https://en.wikipedia.org/wiki/Ada_(programming_language)}. +Indeed, VHDL derives most of its syntax and semantics from Ada. Knowing @cite{Ada} is an advantage for learning VHDL (it is +an advantage in general as well). + +However, VHDL was not designed as a general purpose language but as an @cite{HDL}. +As the name implies, VHDL aims at modeling or documenting electronics systems. +Due to the nature of hardware components –which are always running–, VHDL is a highly concurrent language, built upon +an event-driven execution model. + +Like a program written in any other language, a VHDL program can be executed. +Since VHDL is used to model designs, the term @emph{simulation} is often used instead of @cite{execution}, with the same +meaning. +At the same time, like a design written in another @cite{HDL}, a set of VHDL sources can be transformed with a +@emph{synthesis tool} into a netlist, that is, a detailed gate-level implementation. + +The development of VHDL started in 1983 and the standard is named IEEE@footnote{https://www.ieee.org/} @cite{1076}. +Five revisions exist: +1987@footnote{http://ieeexplore.ieee.org/document/26487/}, +1993@footnote{http://ieeexplore.ieee.org/document/392561/}, +2002@footnote{http://ieeexplore.ieee.org/document/1003477/}, +2008@footnote{http://ieeexplore.ieee.org/document/4772740/} and +2019@footnote{https://ieeexplore.ieee.org/document/8938196}. +The standardization is handled by the IEEE P1076 Working Group: VHDL Analysis and Standardization Group (VASG)@footnote{https://ieee-p1076.gitlab.io/index.html}. +Find on-going work towards @emph{VHDL 202X} in gitlab.com/IEEE-P1076/VHDL-Issues@footnote{https://gitlab.com/IEEE-P1076/VHDL-Issues/-/issues}. @node What is GHDL?,Who uses GHDL?,What is VHDL?,About -@anchor{about intro-ghdl}@anchor{42}@anchor{about what-is-ghdl}@anchor{43} +@anchor{about intro-ghdl}@anchor{47}@anchor{about what-is-ghdl}@anchor{48} @section What is GHDL? -@cite{GHDL} is a shorthand for @cite{G Hardware Design Language} (currently, @cite{G} has no meaning). It is a VHDL analyzer, compiler, -simulator and (experimental) synthesizer that can process (nearly) any VHDL design. + +@float Figure + +@image{GHDL-figures/internals,418.0pt,,,png} + +@caption{Architecture overview of the GHDL toolkit (CLI, libghdl, pyGHDL and ghdl-yosys-plugin).} + +@end float + + +@cite{GHDL} is a shorthand for @cite{G Hardware Design Language} (currently, @cite{G} has no meaning). +It is a VHDL analyzer, compiler, simulator and (experimental) synthesizer that can process (nearly) any VHDL design. @cartouche @quotation Note -For almost 20 years, GHDL was @emph{not} a synthesis tool: you could not create a netlist. Hence, most of the content in this -documentation corresponds to the usage of GHDL as a compiler/simulator. See @ref{44,,Synthesis} for further details -regarding synthesis. +For almost 20 years, GHDL was @emph{not} a synthesis tool: a netlist could not be created. +Hence, most of the content in this documentation corresponds to the usage of GHDL as a compiler/simulator. +See @ref{49,,Synthesis} for further details regarding synthesis. @end quotation @end cartouche Unlike some other simulators, GHDL is a compiler: it directly translates a VHDL file to machine code, without using an -intermediary language such as @cite{C} or @cite{C++}. Therefore, the compiled code should be faster and the analysis time should be -shorter than with a compiler using an intermediary language. +intermediary language such as @cite{C} or @cite{C++}. +Therefore, the compiled code should be faster and the analysis time should be shorter than with a compiler using an +intermediary language. GHDL can use multiple back-ends, i.e. code generators, (GCC@footnote{http://gcc.gnu.org/}, LLVM@footnote{http://llvm.org/} or -x86@footnote{https://en.wikipedia.org/wiki/X86-64}/i386@footnote{https://en.wikipedia.org/wiki/Intel_80386} only, a built-in one named @emph{mcode}) and runs on GNU/Linux@footnote{https://en.wikipedia.org/wiki/Linux_distribution}, -Windows@footnote{https://en.wikipedia.org/wiki/Microsoft_Windows} ™ and macOS@footnote{https://en.wikipedia.org/wiki/MacOS} ™; on x86, x86_64, armv6/armv7/aarch32/aarch64, -ppc64, etc. - -The current version of GHDL does not contain any built-in graphical viewer: you cannot see signal waves. You can still check -the behavior of your design with a test bench. Moreover, GHW@footnote{http://ghdl.readthedocs.io/en/latest/using/Simulation.html?highlight=GHW#cmdoption-wave}, -VCD@footnote{https://en.wikipedia.org/wiki/Value_change_dump} or @cite{FST} files can be produced, which can be viewed with a waveform viewer@footnote{https://en.wikipedia.org/wiki/Waveform_viewer}, -such as GtkWave@footnote{http://gtkwave.sourceforge.net/}. - -GHDL aims at implementing VHDL as defined by IEEE 1076@footnote{http://ieeexplore.ieee.org/document/4772740/}. It supports the -1987@footnote{http://ieeexplore.ieee.org/document/26487/}, 1993@footnote{http://ieeexplore.ieee.org/document/392561/} and -2002@footnote{http://ieeexplore.ieee.org/document/1003477/} revisions and, partially, 2008@footnote{http://ieeexplore.ieee.org/document/4772740/}. +x86@footnote{https://en.wikipedia.org/wiki/X86-64}/i386@footnote{https://en.wikipedia.org/wiki/Intel_80386} only, a built-in one named @emph{mcode}) and runs on +GNU/Linux@footnote{https://en.wikipedia.org/wiki/Linux_distribution}, Windows@footnote{https://en.wikipedia.org/wiki/Microsoft_Windows} ™ and +macOS@footnote{https://en.wikipedia.org/wiki/MacOS} ™; on x86, x86_64, armv6/armv7/aarch32/aarch64, ppc64, etc. + +The current version of GHDL does not contain any built-in graphical viewer: signal waves cannot be seen through GHDL. +However, the behavior of the designs can still be checked through test benches and verification frameworks. +Moreover, @ref{4a,,GHDL Waveform (GHW)}, VCD@footnote{https://en.wikipedia.org/wiki/Value_change_dump} or @cite{FST} files can be produced, which can be viewed with an +external waveform viewer@footnote{https://en.wikipedia.org/wiki/Waveform_viewer}, such as GtkWave@footnote{http://gtkwave.sourceforge.net/}. + +GHDL aims at implementing VHDL as defined by IEEE 1076@footnote{http://ieeexplore.ieee.org/document/4772740/}. +It supports the +1987@footnote{http://ieeexplore.ieee.org/document/26487/}, +1993@footnote{http://ieeexplore.ieee.org/document/392561/} and +2002@footnote{http://ieeexplore.ieee.org/document/1003477/} revisions and, partially, +2008@footnote{http://ieeexplore.ieee.org/document/4772740/}. Property Specification Language (PSL)@footnote{https://en.wikipedia.org/wiki/Property_Specification_Language} is also partially supported. -Several third party projects are supported: Yosys@footnote{https://github.com/YosysHQ/yosys} (through the ghdl-yosys-plugin@footnote{https://github.com/ghdl/ghdl-yosys-plugin}) -cocotb@footnote{https://github.com/potentialventures/cocotb} (through the VPI interface@footnote{https://en.wikipedia.org/wiki/Verilog_Procedural_Interface}), -VUnit@footnote{https://vunit.github.io/}, OSVVM@footnote{http://osvvm.org/}, … +Several third party projects are supported: +Yosys@footnote{https://github.com/YosysHQ/yosys} +(through the ghdl-yosys-plugin@footnote{https://github.com/ghdl/ghdl-yosys-plugin}) +cocotb@footnote{https://github.com/potentialventures/cocotb}, +(through the VPI interface@footnote{https://en.wikipedia.org/wiki/Verilog_Procedural_Interface}), +VUnit@footnote{https://vunit.github.io/}, +OSVVM@footnote{http://osvvm.org/}, +The pyVHDLModel Documentation@footnote{https://vhdl.github.io/pyVHDLModel/index.html}, +… @node Who uses GHDL?,,What is GHDL?,About -@anchor{about intro-who}@anchor{45}@anchor{about who-uses-ghdl}@anchor{46} +@anchor{about intro-who}@anchor{4b}@anchor{about who-uses-ghdl}@anchor{4c} @section Who uses GHDL? -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -587,7 +630,7 @@ VUnit@footnote{https://vunit.github.io/}, OSVVM@footnote{http://osvvm.org/}, … @c # define a hard line break for HTML @node Getting | Installing,Contributing,About,Top -@anchor{getting doc}@anchor{47}@anchor{getting getting-installing}@anchor{48}@anchor{getting packages}@anchor{49} +@anchor{getting doc}@anchor{4d}@anchor{getting getting-installing}@anchor{4e}@anchor{getting packages}@anchor{4f} @chapter Getting | Installing @@ -599,7 +642,7 @@ VUnit@footnote{https://vunit.github.io/}, OSVVM@footnote{http://osvvm.org/}, … @end menu @node Package managers,Nightly packages,,Getting | Installing -@anchor{getting package-managers}@anchor{4a} +@anchor{getting package-managers}@anchor{50} @section Package managers @@ -611,10 +654,10 @@ each package manager. As a rule of thumb, mcode backend is the fastest for analysis and synthesis. It also allows setting the base simulation time for speeding up execution. Therefore, it is the recommended pick if available on your platform (x86/amd64, on Windows x86 only). On other platforms, or for using specific features for co-simulation or code coverage, LLVM or GCC need to be used. -See further differences between backends in @ref{4b,,Building GHDL from Sources}. +See further differences between backends in @ref{51,,Building GHDL from Sources}. @node Nightly packages,Precompile Vendor Primitives,Package managers,Getting | Installing -@anchor{getting nightly-packages}@anchor{4c}@anchor{getting release-packages}@anchor{4d} +@anchor{getting nightly-packages}@anchor{52}@anchor{getting release-packages}@anchor{53} @section Nightly packages @@ -625,7 +668,7 @@ allows to easily setup nightly assets in GitHub Actions workflows. However, users on Windows (MSYS2) or Ubuntu might want to download the tarballs/zipfiles and extract/install them locally. @node Precompile Vendor Primitives,,Nightly packages,Getting | Installing -@anchor{getting getting-precompvendor}@anchor{4e}@anchor{getting precompile-vendor-primitives}@anchor{4f} +@anchor{getting getting-precompvendor}@anchor{54}@anchor{getting precompile-vendor-primitives}@anchor{55} @section Precompile Vendor Primitives @@ -633,17 +676,17 @@ Vendors like Lattice, Intel (Altera) and Xilinx have their own simulation librar especially for FPGA primitives, soft and hard macros. These libraries cannot be shipped with GHDL, but GHDL offers prepared compile scripts to pre-compile these vendor libraries, if the vendor tool is present in the environment. There -are also popular simulation and verification libraries like OSVVM @footnote{@w{(1)} +are also popular simulation and verification libraries like OSVVM @footnote{ OSVVM @indicateurl{http://github.com/OSVVM/OSVVM} } or -UVVM @footnote{@w{(2)} +UVVM @footnote{ UVVM @indicateurl{https://github.com/UVVM/UVVM_All} }, which can be pre-compiled, too. The compilation scripts are writen in the shell languages: @emph{PowerShell} for @emph{Windows™} and @emph{Bash} for @emph{GNU/Linux}, @emph{MacOS} and @emph{MSYS2}/@emph{MinGW}. The compile scripts can colorize the GHDL warning and error lines with the help -of @code{grc/grcat} @footnote{@w{(3)} +of @code{grc/grcat} @footnote{ Generic Colourizer @indicateurl{http://kassiopeia.juls.savba.sk/~garabik/software/grc.html} }. @@ -665,7 +708,7 @@ Vendor precompile scripts for OSVVM and UVVM are tested periodically in ghdl/ext @end menu @node Supported Vendors Libraries,Supported Simulation and Verification Libraries,,Precompile Vendor Primitives -@anchor{getting supported-vendors-libraries}@anchor{50} +@anchor{getting supported-vendors-libraries}@anchor{56} @subsection Supported Vendors Libraries @@ -774,7 +817,7 @@ Xilinx Vivado (2014.1 or later): @end itemize @node Supported Simulation and Verification Libraries,Script Configuration,Supported Vendors Libraries,Precompile Vendor Primitives -@anchor{getting supported-simulation-and-verification-libraries}@anchor{51} +@anchor{getting supported-simulation-and-verification-libraries}@anchor{57} @subsection Supported Simulation and Verification Libraries @@ -782,12 +825,12 @@ Xilinx Vivado (2014.1 or later): @itemize * @item -OSVVM @footnote{@w{(1)} +OSVVM @footnote{ OSVVM @indicateurl{http://github.com/OSVVM/OSVVM} } (for VHDL-2008) @item -UVVM @footnote{@w{(2)} +UVVM @footnote{ UVVM @indicateurl{https://github.com/UVVM/UVVM_All} } (for VHDL-2008) @end itemize @@ -797,7 +840,7 @@ __________________________________________________________________ @node Script Configuration,Compiling in Bash,Supported Simulation and Verification Libraries,Precompile Vendor Primitives -@anchor{getting script-configuration}@anchor{52} +@anchor{getting script-configuration}@anchor{58} @subsection Script Configuration @@ -826,7 +869,7 @@ __________________________________________________________________ @node Compiling in Bash,Compiling in PowerShell,Script Configuration,Precompile Vendor Primitives -@anchor{getting compiling-in-bash}@anchor{53} +@anchor{getting compiling-in-bash}@anchor{59} @subsection Compiling in Bash @@ -908,7 +951,7 @@ __________________________________________________________________ @node Compiling in PowerShell,Configuration Files,Compiling in Bash,Precompile Vendor Primitives -@anchor{getting compiling-in-powershell}@anchor{54} +@anchor{getting compiling-in-powershell}@anchor{5a} @subsection Compiling in PowerShell @@ -985,7 +1028,7 @@ __________________________________________________________________ @node Configuration Files,Additional Script Parameters,Compiling in PowerShell,Precompile Vendor Primitives -@anchor{getting configuration-files}@anchor{55} +@anchor{getting configuration-files}@anchor{5b} @subsection Configuration Files @@ -996,7 +1039,7 @@ __________________________________________________________________ @end menu @node For Bash config sh,For PowerShell config psm1,,Configuration Files -@anchor{getting for-bash-config-sh}@anchor{56} +@anchor{getting for-bash-config-sh}@anchor{5c} @subsubsection For Bash: @cite{config.sh} @@ -1018,7 +1061,7 @@ InstallationDirectory[XilinxVivado]="/opt/Xilinx/Vivado/2020.2" @end example @node For PowerShell config psm1,,For Bash config sh,Configuration Files -@anchor{getting for-powershell-config-psm1}@anchor{57} +@anchor{getting for-powershell-config-psm1}@anchor{5d} @subsubsection For PowerShell: @cite{config.psm1} @@ -1041,7 +1084,7 @@ $InstallationDirectory = @@@{ @end example @node Additional Script Parameters,,Configuration Files,Precompile Vendor Primitives -@anchor{getting additional-script-parameters}@anchor{58} +@anchor{getting additional-script-parameters}@anchor{5e} @subsection Additional Script Parameters @@ -1056,7 +1099,7 @@ controlled. Some scripts may offer vendor specific options. @end menu @node For Bash Scripts,For PowerShell Scripts,,Additional Script Parameters -@anchor{getting for-bash-scripts}@anchor{59} +@anchor{getting for-bash-scripts}@anchor{5f} @subsubsection For Bash Scripts: @@ -1158,7 +1201,7 @@ Selectable libraries: @end itemize @node For PowerShell Scripts,,For Bash Scripts,Additional Script Parameters -@anchor{getting for-powershell-scripts}@anchor{5a} +@anchor{getting for-powershell-scripts}@anchor{60} @subsubsection For PowerShell Scripts: @@ -1263,7 +1306,7 @@ __________________________________________________________________ @quotation @end quotation -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -1285,24 +1328,24 @@ __________________________________________________________________ @node Contributing,Copyrights | Licenses,Getting | Installing,Top -@anchor{contribute doc}@anchor{5b}@anchor{contribute contributing}@anchor{5c}@anchor{contribute intro-contributing}@anchor{5d} +@anchor{contribute doc}@anchor{61}@anchor{contribute contributing}@anchor{62}@anchor{contribute intro-contributing}@anchor{63} @chapter Contributing As in many other free and open source projects, there are many areas requiring different skills where contributions to GHDL are welcome. The first step might be to use GHDL and explore its possibilities in your own project. If you are new to VHDL, -see the @ref{5e,,Simulation} for an introduction. Furthermore, we encourage you to read @ref{5f,,Invoking GHDL}, -where the most commonly used options are explained. You can also check the complete @ref{60,,Additional Command Reference}. +see the @ref{64,,Simulation} for an introduction. Furthermore, we encourage you to read @ref{65,,Invoking GHDL}, +where the most commonly used options are explained. You can also check the complete @ref{66,,Additional Command Reference}. If you are more familiar with GHDL, you might start asking yourself how it works internally. If so, you might find -@ref{61,,Implementation of VHDL} and @ref{62,,Implementation of VITAL} interesting. +@ref{67,,Implementation of VHDL} and @ref{68,,Implementation of VITAL} interesting. While using GHDL, you might find flaws, such as bugs, missing features, typos in the documentation, or topics which still are not covered. In order to improve GHDL, we welcome bug reports, suggestions, and contributions for any aspect of GHDL. Whether it’s a bug or an enhancement, have a look at the -@image{GHDL-figures/D:/data-dev/umarcor/ghdl/ghdl/doc/_build/doctrees/images/75d23ce669cbc7993d4d057361ad0c2a3d5d5271/ghdl,,,Open issues,svg} +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/75d23ce669cbc7993d4d057361ad0c2a3d5d5271/ghdl,,,Open issues,svg} and -@image{GHDL-figures/D:/data-dev/umarcor/ghdl/ghdl/doc/_build/doctrees/images/e1c1423669df5839910ed47f754b67708d362d8b/ghdl,,,Closed issues,svg} +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/e1c1423669df5839910ed47f754b67708d362d8b/ghdl,,,Closed issues,svg} to see if someone already told us about it. You might find a solution there. @@ -1310,9 +1353,9 @@ Ideas for future work, enhancements, documentation, and internship programs are If you found no information on your topic, please, report so that we are aware! You can reach us through various ways: -@image{GHDL-figures/D:/data-dev/umarcor/ghdl/ghdl/doc/_build/doctrees/images/16176de4998e1a71b2f57993443202b2d81671f4/chat-on%20gitter-4db797,,,Talk to us on Gitter,svg} +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/16176de4998e1a71b2f57993443202b2d81671f4/chat-on%20gitter-4db797,,,Talk to us on Gitter,svg} or open a -@image{GHDL-figures/D:/data-dev/umarcor/ghdl/ghdl/doc/_build/doctrees/images/dfb2204df41464917807ba7d4295bf10566f1193/new-issue-yellowgreen,,,Open new issue at GitHub,svg} +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/dfb2204df41464917807ba7d4295bf10566f1193/new-issue-yellowgreen,,,Open new issue at GitHub,svg} . @cartouche @@ -1340,7 +1383,7 @@ How To Ask Questions The Smart Way@footnote{www.catb.org/~esr/faqs/smart-questio @end menu @node Reporting bugs,Requesting enhancements,,Contributing -@anchor{contribute id1}@anchor{63}@anchor{contribute reporting-bugs}@anchor{64} +@anchor{contribute id1}@anchor{69}@anchor{contribute reporting-bugs}@anchor{6a} @section Reporting bugs @@ -1363,11 +1406,11 @@ If a compiler message is not clear enough, please tell us. The error messages ca enough experience with them. @item -It is suggested to test synthesis features with @ref{65,,--synth}, before processing the design with @ref{66,,Yosys plugin}. +It is suggested to test synthesis features with @ref{6b,,--synth}, before processing the design with @ref{6c,,Yosys plugin}. @end itemize Please, report issues through -@image{GHDL-figures/D:/data-dev/umarcor/ghdl/ghdl/doc/_build/doctrees/images/bac95e4b3b8c2d7bfbc31a7ce9892272a524ef30/new-bug--report-yellowgreen,,,Open new bug report at GitHub,svg} +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/bac95e4b3b8c2d7bfbc31a7ce9892272a524ef30/new-bug--report-yellowgreen,,,Open new bug report at GitHub,svg} , as this allows us to categorize issues into groups and to assign developers to them. You can track the state and see how it’s getting solved. @@ -1375,7 +1418,7 @@ to them. You can track the state and see how it’s getting solved. @quotation Important As suggested in the bug report template, please elaborate a @cite{Minimal (non) Working Example} (MWE@footnote{https://en.wikipedia.org/wiki/Minimal_Working_Example}) prior to sending the report, so that the possible bug source is isolated. Should it fulfill the format requirements of -issue-runner@footnote{https://github.com/eine/issue-runner}, you would be able to test your bug with the latest GHDL version. +issue-runner@footnote{https://github.com/umarcor/issue-runner}, you would be able to test your bug with the latest GHDL version. Please do so in order to ensure that the bug is not solved already. Also, please include enough information in the bug report, for the maintainers to reproduce the problem. The template @@ -1422,18 +1465,20 @@ Anything else that you think would be helpful. If you don’t know the LRM, be aware that an issue claimed as a bug report may be rejected because there is no bug according to it. GHDL aims at implementing VHDL as defined in IEEE 1076@footnote{http://ieeexplore.ieee.org/document/4772740/}. However, some other tools allow constructs which do not fully follow the standard revisions. Therefore, comparisons -with other VHDL variants is not a solid argument. Some of them are supported by GHDL (see @ref{67,,IEEE library pitfalls}), +with other VHDL variants is not a solid argument. Some of them are supported by GHDL (see @ref{6d,,IEEE library pitfalls}), but any such enhancement will have very low priority. @end quotation @end cartouche @node Requesting enhancements,Improving the documentation,Reporting bugs,Contributing -@anchor{contribute id2}@anchor{68}@anchor{contribute requesting-enhancements}@anchor{69} +@anchor{contribute id2}@anchor{6e}@anchor{contribute requesting-enhancements}@anchor{6f} @section Requesting enhancements + +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/89dd2439936c60b66feb51ba1c0d6a38facef2d8/1561565e8455e49d1382462c9afb48178cccd06f,,,Open new feature request at GitHub,svg?logo=github&style=flat-square&longCache=true} -@image{GHDL-figures/D:/data-dev/umarcor/ghdl/ghdl/doc/_build/doctrees/images/16176de4998e1a71b2f57993443202b2d81671f4/chat-on%20gitter-4db797,,,Talk to us on Gitter,svg} +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/16176de4998e1a71b2f57993443202b2d81671f4/chat-on%20gitter-4db797,,,Talk to us on Gitter,svg} All enhancements and feature requests are welcome. Please open a new issue@footnote{https://github.com/ghdl/ghdl/issues/new} @@ -1441,7 +1486,7 @@ to report any, so you can track the status and implementation. Depending on the you may want to chat on Gitter@footnote{https://gitter.im/ghdl/ghdl1}, for polishing it before opening an issue. @node Improving the documentation,Fork modify and pull-request,Requesting enhancements,Contributing -@anchor{contribute improving-the-documentation}@anchor{6a} +@anchor{contribute improving-the-documentation}@anchor{70} @section Improving the documentation @@ -1451,10 +1496,10 @@ please tell us. English is not our mother tongue, so this documentation may not Likewise, rewriting part of the documentation or missing content (such as examples) is a good way to improve it. Since it is built automatically from @cite{reStructuredText}, you can fork, modify and push. The documentation will be shown in the GitHub Pages site of your fork: @code{https://USERNAME.github.io/ghdl}. When you are done, request the maintainers -to pull your copy. See @ref{6b,,Fork@comma{} modify and pull-request}. +to pull your copy. See @ref{71,,Fork@comma{} modify and pull-request}. @node Fork modify and pull-request,Related interesting projects,Improving the documentation,Contributing -@anchor{contribute fork-modify-and-pull-request}@anchor{6c}@anchor{contribute pull-request}@anchor{6b} +@anchor{contribute fork-modify-and-pull-request}@anchor{72}@anchor{contribute pull-request}@anchor{71} @section Fork, modify and pull-request @@ -1465,17 +1510,19 @@ to pull your copy. See @ref{6b,,Fork@comma{} modify and pull-request}. @item Before starting any modification, you might want to have a look at -@image{GHDL-figures/D:/data-dev/umarcor/ghdl/ghdl/doc/_build/doctrees/images/c3a4692a25333d57bb8c1ce54f97f15c6846ba63/ghdl,,,Open pull requests,svg} +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/c3a4692a25333d57bb8c1ce54f97f15c6846ba63/ghdl,,,Open pull requests,svg} and -@image{GHDL-figures/D:/data-dev/umarcor/ghdl/ghdl/doc/_build/doctrees/images/6497f995f9ef9e87d1fe97a236cebe38959dc915/ghdl,,,Closed pull requests,svg} +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/6497f995f9ef9e87d1fe97a236cebe38959dc915/ghdl,,,Closed pull requests,svg} , to check which other contributions are being made or have been made. If you observe that the modifications you are about to start might conflict with any other, please -@image{GHDL-figures/D:/data-dev/umarcor/ghdl/ghdl/doc/_build/doctrees/images/16176de4998e1a71b2f57993443202b2d81671f4/chat-on%20gitter-4db797,,,Talk to us on Gitter,svg} - or open a to coordinate. +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/16176de4998e1a71b2f57993443202b2d81671f4/chat-on%20gitter-4db797,,,Talk to us on Gitter,svg} + or open a +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/82b759af84cd517081b3c031dfbe444f16595fb9/f125673efc1475d3e54f355fd17e00e44587099a,,,Open new Pull Request (PR) at GitHub,svg?logo=github&style=flat-square&longCache=true} + to coordinate. @item -See section @ref{6d,,Directory structure} to faster find the location of the sources you need to modify, and/or to know +See section @ref{73,,Directory structure} to faster find the location of the sources you need to modify, and/or to know where to place new ones. @end itemize @end quotation @@ -1523,19 +1570,19 @@ in the commit message can have side effects. If you closed any issue unexpectedl closed) so that maintainers can check it. @item -It is recommended to read @ref{6e,,Coding Style} before contributing modifications to Ada sources. +It is recommended to read @ref{74,,Coding Style} before contributing modifications to Ada sources. @end itemize @end quotation @end cartouche @node Related interesting projects,,Fork modify and pull-request,Contributing -@anchor{contribute related-interesting-projects}@anchor{6f} +@anchor{contribute related-interesting-projects}@anchor{75} @section Related interesting projects -If you have an interesting project, please send us feedback or get listed on our @ref{45,,Who uses GHDL?} page. +If you have an interesting project, please send us feedback or get listed on our @ref{4b,,Who uses GHDL?} page. -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -1556,7 +1603,7 @@ If you have an interesting project, please send us feedback or get listed on our @c # define a hard line break for HTML @node Copyrights | Licenses,Quick Start Guide,Contributing,Top -@anchor{licenses doc}@anchor{70}@anchor{licenses copyrights-licenses}@anchor{71}@anchor{licenses intro-copyrights}@anchor{72} +@anchor{licenses doc}@anchor{76}@anchor{licenses copyrights-licenses}@anchor{77}@anchor{licenses intro-copyrights}@anchor{78} @chapter Copyrights | Licenses @@ -1564,16 +1611,16 @@ If you have an interesting project, please send us feedback or get listed on our @itemize - @item -The GHDL front-end package @code{std.textio}, and the runtime library @code{GRT} are given under @ref{73,,GNU GPLv2}. +The GHDL front-end package @code{std.textio}, and the runtime library @code{GRT} are given under @ref{79,,GNU GPLv2}. @item -The documentation is given under @ref{74,,CC-BY-SA}. +The documentation is given under @ref{7a,,CC-BY-SA}. @end itemize @cartouche @quotation Warning As a consequence of the runtime copyright, you are not allowed to distribute an executable produced by GHDL without allowing -access to the VHDL sources. Please, send a comment (@ref{69,,Requesting enhancements}) if you don’t like this policy. +access to the VHDL sources. Please, send a comment (@ref{6f,,Requesting enhancements}) if you don’t like this policy. @end quotation @end cartouche @@ -1621,18 +1668,18 @@ copyrighted by Synopsys@comma{} Inc.@footnote{https://www.synopsys.com/} @end menu @node GNU GPLv2,CC-BY-SA,,Copyrights | Licenses -@anchor{licenses gnu-gplv2}@anchor{75}@anchor{licenses lic-gplv2}@anchor{73} +@anchor{licenses gnu-gplv2}@anchor{7b}@anchor{licenses lic-gplv2}@anchor{79} @section GNU GPLv2 -GHDL is copyright © 2002 - 2021 Tristan Gingold. +GHDL is copyright © 2002 - 2022 Tristan Gingold. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but @strong{WITHOUT ANY WARRANTY}; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License@footnote{https://www.gnu.org/licenses/old-licenses/gpl-2.0.html} for more details. @node CC-BY-SA,List of Contributors,GNU GPLv2,Copyrights | Licenses -@anchor{licenses cc-by-sa}@anchor{76}@anchor{licenses lic-cc-by-sa}@anchor{74} +@anchor{licenses cc-by-sa}@anchor{7c}@anchor{licenses lic-cc-by-sa}@anchor{7a} @section CC-BY-SA @@ -1654,7 +1701,7 @@ This is a free documentation; you can redistribute it and/or modify it under the See CC-BY-SA-4.0 Legal Code@footnote{https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt} for more details. @node List of Contributors,,CC-BY-SA,Copyrights | Licenses -@anchor{licenses lic-contributors}@anchor{77}@anchor{licenses list-of-contributors}@anchor{78} +@anchor{licenses lic-contributors}@anchor{7d}@anchor{licenses list-of-contributors}@anchor{7e} @section List of Contributors @@ -1662,7 +1709,7 @@ See CC-BY-SA-4.0 Legal Code@footnote{https://creativecommons.org/licenses/by-sa/ @multitable {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} @headitem -Contributor @footnote{@w{(1)} +Contributor @footnote{ In alphabetical order } @@ -1704,7 +1751,7 @@ GCC 4.8.2 update, OSVVM port, some bugfixes @item -Gingold, Tristan @footnote{@w{(2)} +Gingold, Tristan @footnote{ Maintainer } @@ -1754,7 +1801,7 @@ Property Specification Language (PSL): docs, tests, synthesis support @item -Martinez-Corral, Unai @footnote{@w{(2)} +Martinez-Corral, Unai @footnote{ Maintainer } @@ -1775,7 +1822,7 @@ Debian packaging Only those who made substantial contributions are shown in the table above, but many others contributed with minor patches. You can find a list at -@image{GHDL-figures/D:/data-dev/umarcor/ghdl/ghdl/doc/_build/doctrees/images/6f8cd1a5e6840820b92af0cbdd95adc63019ebd5/ghdl,,,Contributors,svg} +@image{GHDL-figures//Users/gingold/devel/ghdl/doc/_build/doctrees/images/6f8cd1a5e6840820b92af0cbdd95adc63019ebd5/ghdl,,,Contributors,svg} With apologies to anyone who ought to be either on this table or in the GitHub contributor list, but isn’t. Thanks also to all those who have reported bugs and support issues, and often patches and testcases to either the late gna! website or sourceforge.net/p/ghdl-updates/tickets@footnote{https://sourceforge.net/p/ghdl-updates/tickets/}. @@ -1784,7 +1831,7 @@ With apologies to anyone who ought to be either on this table or in the GitHub c __________________________________________________________________ -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -1805,7 +1852,7 @@ __________________________________________________________________ @c # define a hard line break for HTML @node Quick Start Guide,Invoking GHDL,Copyrights | Licenses,Top -@anchor{quick_start/index doc}@anchor{79}@anchor{quick_start/index quick-start-guide}@anchor{7a}@anchor{quick_start/index using-quickstart}@anchor{7b} +@anchor{quick_start/index doc}@anchor{7f}@anchor{quick_start/index quick-start-guide}@anchor{80}@anchor{quick_start/index using-quickstart}@anchor{81} @chapter Quick Start Guide @@ -1814,7 +1861,7 @@ should have at least a basic knowledge of @cite{VHDL}. A good knowledge of @cite is a plus. Nevertheless, multiple explained examples are provided, in the hope that they are useful for users to learn about both @cite{GHDL} and @cite{VHDL}. -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -1841,27 +1888,24 @@ about both @cite{GHDL} and @cite{VHDL}. @end menu @node Simulation,Python Interfaces,,Quick Start Guide -@anchor{quick_start/simulation/index doc}@anchor{7c}@anchor{quick_start/simulation/index simulation}@anchor{7d}@anchor{quick_start/simulation/index using-quickstart-simulation}@anchor{5e} +@anchor{quick_start/simulation/index doc}@anchor{82}@anchor{quick_start/simulation/index simulation}@anchor{83}@anchor{quick_start/simulation/index using-quickstart-simulation}@anchor{64} @section Simulation -As explained in @ref{42,,What is GHDL?}, @cite{GHDL} is a compiler which translates @cite{VHDL} -files to machine code. Hence, the regular workflow is composed of three steps: +As explained in @ref{47,,What is GHDL?}, @cite{GHDL} is a compiler which translates @cite{VHDL} files to machine code. +Hence, the regular workflow is composed of three steps: @itemize * @item -@ref{7e,,Analysis [-a]}: convert design units (@cite{VHDL} sources) to an internal -representation. +@ref{84,,Analysis [-a]}: convert design units (@cite{VHDL} sources) to an internal representation. @item -@ref{7f,,Elaboration [-e]}: generate executable machine code for a target module -(top-level entity). +@ref{85,,Elaboration [-e]}: generate executable machine code for a target module (top-level entity). @item -@ref{80,,Run [-r]}: execute the design to test the behaviour, generate -output/waveforms, etc. +@ref{86,,Run [-r]}: execute the design to test the behaviour, generate output/waveforms, etc. @end itemize The following tips might be useful: @@ -1870,42 +1914,41 @@ The following tips might be useful: @itemize * @item -Don’t forget to select the version of the VHDL standard you want to use (see -@ref{81,,VHDL standards}). The default is @ref{82,,--std=93c}. Use -@ref{82,,--std=08} for VHDL-2008 (albeit not fully implemented). +Don’t forget to select the version of the VHDL standard you want to use (see @ref{87,,VHDL standards}). +The default is @ref{88,,--std=93c}. +Use @ref{88,,--std=08} for VHDL-2008 (albeit not fully implemented). @itemize * @item -Use @ref{83,,--ieee=synopsys} if your design depends on a non-standard -implementation of the IEEE library. +Use @ref{89,,--ieee=synopsys} if your design depends on a non-standard implementation of the IEEE library. @item -Use @ref{84,,-fexplicit} and @ref{85,,-frelaxed-rules} if needed. For instance, -if you would like to use VHDL 2008 and also use shared variables with an -ordinary type (deprecated in VHDL 2000), you can use @code{--std=08 -frelaxed-rules}. +Use @ref{8a,,-fexplicit} and @ref{8b,,-frelaxed-rules} if needed. +For instance, if you would like to use VHDL 2008 and also use shared variables with an ordinary type (deprecated in +VHDL 2000), you can use @code{--std=08 -frelaxed-rules}. @end itemize @item -Use @ref{86,,--work=LIB_NAME} to analyze files into the @code{LIB_NAME} library. -To use files analyzed to a different directory, give the path -to the @code{LIB_NAME} library using @ref{87,,-P/path/to/name/directory/}. +Use @ref{8c,,--work=LIB_NAME} to analyze files into the @code{LIB_NAME} library. +To use files analyzed to a different directory, give the path to the @code{LIB_NAME} library using +@ref{8d,,-P/path/to/name/directory/}. @item -Use the same options for analysis and elaboration. E.g., first analyse with -@code{ghdl -a --std=08 --work=mylib myfile.vhdl}; and then elaborate and run with +Use the same options for analysis and elaboration. +E.g., first analyse with @code{ghdl -a --std=08 --work=mylib myfile.vhdl}; and then elaborate and run with @code{ghdl --elab-run --std=08 top}. @end itemize -Due to the fact that @cite{VHDL} is processed as a general purpose language -(instead of an @cite{HDL}), all the language features are to be supported. I.e., @cite{VHDL} -sources do not need to be limited to the synthesisable subset. However, distinction -between synthesisable and non-synthesisable (simulation-only) subsets is often -misleading for users who are new to the language. Different examples are provided, -in the hope of helping understand the different use cases: +Due to the fact that @cite{VHDL} is processed as a general purpose language (instead of an @cite{HDL}), all the language features +are to be supported. +I.e., @cite{VHDL} sources do not need to be limited to the synthesisable subset. +However, distinction between synthesisable and non-synthesisable (simulation-only) subsets is often misleading for users +who are new to the language. +Different examples are provided, in the hope of helping understand the different use cases: -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -1934,7 +1977,7 @@ in the hope of helping understand the different use cases: @end menu @node Hello world program,Heartbeat module,,Simulation -@anchor{quick_start/simulation/hello/index doc}@anchor{88}@anchor{quick_start/simulation/hello/index hello-world-program}@anchor{89}@anchor{quick_start/simulation/hello/index quickstart-hello}@anchor{8a} +@anchor{quick_start/simulation/hello/index doc}@anchor{8e}@anchor{quick_start/simulation/hello/index hello-world-program}@anchor{8f}@anchor{quick_start/simulation/hello/index quickstart-hello}@anchor{90} @subsection @cite{Hello world} program @@ -1975,37 +2018,40 @@ Both @code{.vhdl} and @code{.vhd} extensions are used for @cite{VHDL} source fil @itemize * @item -Since, extension @code{.vhd} is also interpreted as a Virtual Hard Disk@footnote{https://en.wikipedia.org/wiki/VHD_(file_format)} -file format, some users prefer @code{.vhdl}, to avoid ambiguity. This is the case with @cite{GHDL}’s codebase. However, in order -to maintain backward-compatibility@footnote{https://en.wikipedia.org/wiki/8.3_filename} with legacy DOS systems, -other users prefer @code{.vhd}. +Since, extension @code{.vhd} is also interpreted as a Virtual Hard Disk@footnote{https://en.wikipedia.org/wiki/VHD_(file_format)} file +format, some users prefer @code{.vhdl}, to avoid ambiguity. +This is the case with @cite{GHDL}’s codebase. +However, in order to maintain backward-compatibility@footnote{https://en.wikipedia.org/wiki/https://en.wikipedia.org/wiki/8.3_filename} +with legacy DOS systems, other users prefer @code{.vhd}. @end itemize @end quotation @item -Unless you use especial characters, either @cite{UTF-8} or @cite{ISO-8859-1} encodings can be used. However, if you do, the -latter should be used. The standard defines ASCII (7-bit encoding) or ISO Latin-1 (ISO-8859-1) as default. -However, GHDL has a relaxing option, @ref{8b,,--mb-comments} (multi byte), to allow UTF-8 or other encodings in +Unless you use especial characters, either @cite{UTF-8} or @cite{ISO-8859-1} encodings can be used. +However, if you do, the latter should be used. +The standard defines ASCII (7-bit encoding) or ISO Latin-1 (ISO-8859-1) as default. +However, GHDL has a relaxing option, @ref{91,,--mb-comments} (multi byte), to allow UTF-8 or other encodings in comments. @end itemize @end quotation @end cartouche -@itemize - +@itemize * @item -First, you have to compile the file; this is called @ref{7e,,analysis} of a design file in @cite{VHDL} -terms. Run @code{ghdl -a hello.vhdl} in the @cite{shell}. This command creates or updates a file @code{work-obj93.cf}, which -describes the library @code{work}. +First, you have to compile the file; this is called @ref{84,,analysis} of a design file in @cite{VHDL} +terms. Run @code{ghdl -a hello.vhdl} in the @cite{shell}. +This command creates or updates a file @code{work-obj93.cf}, which describes the library @code{work}. @item -Then, run @code{ghdl -e hello_world} in the @cite{shell}. Command @ref{8c,,-e} means @ref{7f,,elaborate}, -which is used to build a design, with the @code{hello_world} entity at the top of the hierarchy. +Then, run @code{ghdl -e hello_world} in the @cite{shell}. +Command @ref{92,,-e} means @ref{85,,elaborate}, which is used to build a design, with the +@code{hello_world} entity at the top of the hierarchy. @item -Last, you can directly launch the simulation @ref{80,,running} @code{ghdl -r hello_world} in the @cite{shell}. The -result of the simulation will be shown on screen: +Last, you can directly launch the simulation @ref{86,,running} @code{ghdl -r hello_world} in the @cite{shell}. +The result of the simulation will be shown on screen: @end itemize @example @@ -2020,29 +2066,31 @@ If a GCC/LLVM variant of @cite{GHDL} is used: @itemize * @item -@ref{7e,,Analysis} generates a file, @code{hello.o}, which is the object file corresponding to -your @cite{VHDL} program. This is not created with @ref{4b,,mcode}. These kind of object files can be -compiled into foreign programs (see Linking GHDL object files to Ada/C@footnote{https://ghdl.github.io/ghdl-cosim/vhpidirect/linking.html#linking-with-ada}). +@ref{84,,Analysis} generates a file, @code{hello.o}, which is the object file corresponding to +your @cite{VHDL} program. This is not created with @ref{51,,mcode}. +These kind of object files can be compiled into foreign programs (see Linking GHDL object files to Ada/C@footnote{https://ghdl.github.io/ghdl-cosim/vhpidirect/linking.html#linking-with-ada}). @item -The @ref{7f,,elaboration} step is mandatory after running the analysis and prior to launching the -simulation. This will generate an executable binary named @code{hello_world}. +The @ref{85,,elaboration} step is mandatory after running the analysis and prior to launching the +simulation. +This will generate an executable binary named @code{hello_world}. @item -As a result, @ref{8d,,-r} is just a passthrough to the binary generated in the @cite{elaboration}. Therefore, the -executable can be run directly: @code{./hello_world}. See @ref{8d,,-r} for more informartion. +As a result, @ref{93,,-r} is just a passthrough to the binary generated in the @cite{elaboration}. +Therefore, the executable can be run directly: @code{./hello_world}. See @ref{93,,-r} for more informartion. @end itemize @end quotation @end cartouche @cartouche @quotation Hint -@ref{8c,,-e} can be bypassed with @ref{4b,,mcode}, since @ref{8d,,-r} actually elaborates the design and saves -it on memory before running the simulation. But you can still use it to check for some elaboration problems. +@ref{92,,-e} can be bypassed with @ref{51,,mcode}, since @ref{93,,-r} actually elaborates the design and saves +it on memory before running the simulation. +But you can still use it to check for some elaboration problems. @end quotation @end cartouche -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -2063,13 +2111,14 @@ it on memory before running the simulation. But you can still use it to check fo @c # define a hard line break for HTML @node Heartbeat module,Full adder module and testbench,Hello world program,Simulation -@anchor{quick_start/simulation/heartbeat/index doc}@anchor{8e}@anchor{quick_start/simulation/heartbeat/index heartbeat-module}@anchor{8f}@anchor{quick_start/simulation/heartbeat/index quickstart-heartbeat}@anchor{90} +@anchor{quick_start/simulation/heartbeat/index doc}@anchor{94}@anchor{quick_start/simulation/heartbeat/index heartbeat-module}@anchor{95}@anchor{quick_start/simulation/heartbeat/index quickstart-heartbeat}@anchor{96} @subsection @cite{Heartbeat} module -Although @ref{8a,,Hello world} illustrates that @cite{VHDL} is supported as a general purpose language, the main use case -of @cite{GHDL} is to simulate hardware descriptions. The following block, which is saved in a file named -@code{heartbeat.vhdl}, is an example of how to generate a 100 MHz clock signal with non-synthesisable VHDL: +Although @ref{90,,Hello world} illustrates that @cite{VHDL} is supported as a general purpose language, the +main use case of @cite{GHDL} is to simulate hardware descriptions. +The following block, which is saved in a file named @code{heartbeat.vhdl}, is an example of how to generate a 100 MHz +clock signal with non-synthesisable VHDL: @example library ieee; @@ -2094,7 +2143,8 @@ begin end behaviour; @end example -It can be @ref{7e,,analysed}, @ref{7f,,elaborated} and @ref{80,,run}, as you already know: +It can be @ref{84,,analysed}, @ref{85,,elaborated} and @ref{86,,run}, as +you already know: @example ghdl -a heartbeat.vhdl @@ -2105,8 +2155,8 @@ ghdl -r heartbeat However, execution of the design does not terminate. At the same time, no output is shown on screen. This is because, traditionally, hardware designs are continuously running devices which do not have a screen where to print. In this context, inspection and verification of the behaviour is done through waveforms@footnote{https://en.wikipedia.org/wiki/Waveform_viewer}, -which is supported by @cite{GHDL} (see @ref{91,,Export waveforms}). You can use either @ref{92,,--wave}, @ref{93,,--vcd}, -@ref{94,,--vcdgz} or @ref{95,,--fst} to save the signals of the simulation to a file. Then, terminate the execution +which is supported by @cite{GHDL} (see @ref{97,,Export waveforms}). You can use either @ref{98,,--wave}, @ref{99,,--vcd}, +@ref{9a,,--vcdgz} or @ref{9b,,--fst} to save the signals of the simulation to a file. Then, terminate the execution (@code{C-c}) and you can inspect the wave with a viewer, such as GtkWave@footnote{http://gtkwave.sourceforge.net/}. As explained in the manual@footnote{http://gtkwave.sourceforge.net/gtkwave.pdf}, GtkWave @emph{‘relies on a post-mortem approach through the use of dumpfiles’}. Therefore, you should first simulate your design and dump a waveform file, say GHW: @@ -2121,10 +2171,11 @@ Then, you can view the dump: gtkwave wave.ghw @end example -Of course, manually terminating the simulation is for illustration purposes only. In @ref{96,,Full adder} and -@ref{97,,Working with non-trivial designs}, you will see how to write a testbench to terminate the simulation programmatically. +Of course, manually terminating the simulation is for illustration purposes only. +In @ref{9c,,Full adder} and @ref{9d,,Working with non-trivial designs}, you will see how to write a testbench to terminate +the simulation programmatically. -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -2145,13 +2196,13 @@ Of course, manually terminating the simulation is for illustration purposes only @c # define a hard line break for HTML @node Full adder module and testbench,Working with non-trivial designs,Heartbeat module,Simulation -@anchor{quick_start/simulation/adder/index doc}@anchor{98}@anchor{quick_start/simulation/adder/index full-adder-module-and-testbench}@anchor{99}@anchor{quick_start/simulation/adder/index quickstart-adder}@anchor{96} +@anchor{quick_start/simulation/adder/index doc}@anchor{9e}@anchor{quick_start/simulation/adder/index full-adder-module-and-testbench}@anchor{9f}@anchor{quick_start/simulation/adder/index quickstart-adder}@anchor{9c} @subsection @cite{Full adder} module and testbench -Unlike @ref{90,,Heartbeat}, the target hardware design in this example is written using the -synthesisable subset of @cite{VHDL}. It is a full adder@footnote{https://en.wikipedia.org/wiki/Adder_(electronics)#Full_adder} -described in a file named @code{adder.vhdl}: +Unlike @ref{96,,Heartbeat}, the target hardware design in this example is written using the +synthesisable subset of @cite{VHDL}. It is a full adder@footnote{https://en.wikipedia.org/wiki/Adder_(electronics)#Full_adder} described in a file +named @code{adder.vhdl}: @example entity adder is @@ -2170,7 +2221,7 @@ begin end rtl; @end example -You can @ref{7e,,analyse} this design file, @code{ghdl -a adder.vhdl}, and try to execute the @cite{adder} +You can @ref{84,,analyse} this design file, @code{ghdl -a adder.vhdl}, and try to execute the @cite{adder} design. But this is useless, since nothing externally visible will happen. In order to check this full adder, a @emph{testbench} has to be run. The @emph{testbench} is a description of how to generate inputs and how to check the outputs of the Unit Under Test (UUT). This one is very simple, since the adder is also simple: it checks exhaustively @@ -2241,22 +2292,22 @@ As usual, you should analyze the file, @code{ghdl -a adder_tb.vhdl}. @cartouche @quotation Hint -Then, if required, @ref{7f,,elaborate} the testbench: @code{ghdl -e adder_tb}. You do not need to +Then, if required, @ref{85,,elaborate} the testbench: @code{ghdl -e adder_tb}. You do not need to specify which object files are required, since @cite{GHDL} knows them and automatically adds them. @end quotation @end cartouche -Now, it is time to @ref{80,,run} the testbench, @code{ghdl -r adder_tb}, and check the result on screen: +Now, it is time to @ref{86,,run} the testbench, @code{ghdl -r adder_tb}, and check the result on screen: @example adder_tb.vhdl:52:7:(assertion note): end of test @end example -If your design is rather complex, you’d like to inspect signals as explained in @ref{90,,Heartbeat}. +If your design is rather complex, you’d like to inspect signals as explained in @ref{96,,Heartbeat}. -See section @ref{9a,,Simulation options}, for more details on other runtime options. +See section @ref{a0,,Simulation options}, for more details on other runtime options. -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -2277,7 +2328,7 @@ See section @ref{9a,,Simulation options}, for more details on other runtime opti @c # define a hard line break for HTML @node Working with non-trivial designs,,Full adder module and testbench,Simulation -@anchor{quick_start/simulation/DLXModelSuite doc}@anchor{9b}@anchor{quick_start/simulation/DLXModelSuite quickstart-dlx}@anchor{97}@anchor{quick_start/simulation/DLXModelSuite working-with-non-trivial-designs}@anchor{9c} +@anchor{quick_start/simulation/DLXModelSuite doc}@anchor{a1}@anchor{quick_start/simulation/DLXModelSuite quickstart-dlx}@anchor{9d}@anchor{quick_start/simulation/DLXModelSuite working-with-non-trivial-designs}@anchor{a2} @subsection Working with non-trivial designs @@ -2297,7 +2348,7 @@ First, untar the sources: @code{tar zxvf dlx.tar.gz}. @quotation In order not to pollute the sources with the artifacts (@cite{WORK} library), it is a good idea to create a -@code{work/} subdirectory. To any GHDL commands, we will add the @ref{9d,,--workdir=work} option, so +@code{work/} subdirectory. To any GHDL commands, we will add the @ref{a3,,--workdir=work} option, so that all files generated by the compiler (except the executable) will be placed in this directory. @end quotation @@ -2313,11 +2364,11 @@ $ mkdir work @item Then, we will run the @code{dlx_test_behaviour} design. We need to analyse all the design units for the design -hierarchy, in the correct order. GHDL provides an easy way to do this, by @ref{9e,,importing} the +hierarchy, in the correct order. GHDL provides an easy way to do this, by @ref{a4,,importing} the sources: @code{ghdl -i --workdir=work *.vhdl}. @item -GHDL knows all the design units of the DLX, but none of them has been analysed. Run the @ref{9f,,make} +GHDL knows all the design units of the DLX, but none of them has been analysed. Run the @ref{a5,,make} command, @code{ghdl -m --workdir=work dlx_test_behaviour}, which analyses and elaborates a design. This creates many files in the @code{work/} directory, and (GCC/LLVM only) the @code{dlx_test_behaviour} executable in the current directory. @@ -2334,7 +2385,7 @@ in the DLX memory. Just take one sample: @code{cp test_loop.out dlx.out}. @itemize * @item -Now, you can @ref{80,,run} the test suite: @code{ghdl -r --workdir=work dlx_test_behaviour}. The test bench +Now, you can @ref{86,,run} the test suite: @code{ghdl -r --workdir=work dlx_test_behaviour}. The test bench monitors the bus and displays each executed instruction. It finishes with an assertion of severity level note: @example @@ -2346,7 +2397,7 @@ dlx-behaviour.vhdl:395:11:(assertion note): TRAP instruction Last, since the clock is still running, you have to manually stop the program with the @code{C-c} key sequence. This behavior prevents you from running the testbench in batch mode. However, you may force the simulator to stop when an assertion above or equal a certain severity level occurs. To do so, call run with this option instead: -@code{ghdl -r --workdir=work dlx_test_behaviour --assert-level=note`}. With @ref{a0,,--assert-level}, the program stops +@code{ghdl -r --workdir=work dlx_test_behaviour --assert-level=note`}. With @ref{a6,,--assert-level}, the program stops just after the previous message: @example @@ -2364,11 +2415,11 @@ If you want to make room on your hard drive, you can either: @itemize * @item -@ref{a1,,Clean} the design library with @code{ghdl --clean --workdir=work}. This removes the executable +@ref{a7,,Clean} the design library with @code{ghdl --clean --workdir=work}. This removes the executable and all the object files. If you want to rebuild the design at this point, just do the make command as shown above. @item -@ref{a2,,Remove} the design library with @code{ghdl --remove --workdir=work}. This removes the +@ref{a8,,Remove} the design library with @code{ghdl --remove --workdir=work}. This removes the executable, all the object files and the library file. If you want to rebuild the design, you have to import the sources again and make the design. @@ -2380,7 +2431,7 @@ Remove the @code{work/} directory: @code{rm -rf work}. Only the executable is ke @cartouche @quotation Warning -Sometimes, a design does not fully follow the VHDL standards. For example it might use the badly engineered @code{std_logic_unsigned} package. GHDL supports this VHDL dialect through some options: @ref{83,,--ieee=synopsys}, @ref{84,,-fexplicit}, etc. See section @ref{67,,IEEE library pitfalls}, for more details. +Sometimes, a design does not fully follow the VHDL standards. For example it might use the badly engineered @code{std_logic_unsigned} package. GHDL supports this VHDL dialect through some options: @ref{89,,--ieee=synopsys}, @ref{8a,,-fexplicit}, etc. See section @ref{6d,,IEEE library pitfalls}, for more details. @end quotation @end cartouche @@ -2390,7 +2441,7 @@ See Learning VHDL with GHDL@footnote{https://github.com/ghdl/ghdl/issues/1291}. @end quotation @end cartouche -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -2411,7 +2462,7 @@ See Learning VHDL with GHDL@footnote{https://github.com/ghdl/ghdl/issues/1291}. @c # define a hard line break for HTML @node Python Interfaces,,Simulation,Quick Start Guide -@anchor{quick_start/python/index doc}@anchor{a3}@anchor{quick_start/python/index python-interfaces}@anchor{a4}@anchor{quick_start/python/index using-quickstart-python}@anchor{a5} +@anchor{quick_start/python/index doc}@anchor{a9}@anchor{quick_start/python/index python-interfaces}@anchor{aa}@anchor{quick_start/python/index using-quickstart-python}@anchor{ab} @section Python Interfaces @@ -2431,7 +2482,7 @@ pip install git+https://github.com/ghdl/ghdl.git@@$(ghdl version hash) @end menu @node Language Server,,,Python Interfaces -@anchor{quick_start/python/index cmdref}@anchor{a6}@anchor{quick_start/python/index language-server}@anchor{a7} +@anchor{quick_start/python/index cmdref}@anchor{ac}@anchor{quick_start/python/index language-server}@anchor{ad} @subsection Language Server @@ -2447,7 +2498,7 @@ When installed through @code{pip}, pyGHDL provides executable entrypoints regist @end menu @node ghdl-ls,,,Language Server -@anchor{quick_start/python/index cmdref-ghdlls}@anchor{a8}@anchor{quick_start/python/index ghdl-ls}@anchor{a9} +@anchor{quick_start/python/index cmdref-ghdlls}@anchor{ae}@anchor{quick_start/python/index ghdl-ls}@anchor{af} @subsubsection ghdl-ls @@ -2464,13 +2515,13 @@ usage: ghdl-ls [-h] [--version] [--verbose] [--log-file LOG_FILE] @end menu @node optional arguments,,,ghdl-ls -@anchor{quick_start/python/index optional-arguments}@anchor{aa} +@anchor{quick_start/python/index optional-arguments}@anchor{b0} @subsubsection optional arguments @geindex ghdl-ls command line option; -h @geindex ghdl-ls command line option; --help -@anchor{quick_start/python/index cmdoption-ghdl-ls-h}@anchor{ab}@anchor{quick_start/python/index cmdoption-ghdl-ls-help}@anchor{ac} +@anchor{quick_start/python/index cmdoption-ghdl-ls-h}@anchor{b1}@anchor{quick_start/python/index cmdoption-ghdl-ls-help}@anchor{b2} @deffn {Option} @w{-}h, @w{-}@w{-}help show this help message and exit @@ -2478,7 +2529,7 @@ show this help message and exit @geindex ghdl-ls command line option; --version @geindex ghdl-ls command line option; -V -@anchor{quick_start/python/index cmdoption-ghdl-ls-version}@anchor{ad}@anchor{quick_start/python/index cmdoption-ghdl-ls-V}@anchor{ae}@anchor{quick_start/python/index cmdoption-ghdl-ls-v}@anchor{af} +@anchor{quick_start/python/index cmdoption-ghdl-ls-version}@anchor{b3}@anchor{quick_start/python/index cmdoption-ghdl-ls-V}@anchor{b4}@anchor{quick_start/python/index cmdoption-ghdl-ls-v}@anchor{b5} @deffn {Option} @w{-}@w{-}version, @w{-}V show program’s version number and exit @@ -2486,21 +2537,21 @@ show program’s version number and exit @geindex ghdl-ls command line option; --verbose @geindex ghdl-ls command line option; -v -@anchor{quick_start/python/index cmdoption-ghdl-ls-verbose}@anchor{b0}@anchor{quick_start/python/index cmdoption-ghdl-ls-0}@anchor{b1} +@anchor{quick_start/python/index cmdoption-ghdl-ls-verbose}@anchor{b6}@anchor{quick_start/python/index cmdoption-ghdl-ls-0}@anchor{b7} @deffn {Option} @w{-}@w{-}verbose, @w{-}v Show debug output @end deffn -@geindex ghdl-ls command line option; --log-file -@anchor{quick_start/python/index cmdoption-ghdl-ls-log-file}@anchor{b2} +@geindex ghdl-ls command line option; --log-file +@anchor{quick_start/python/index cmdoption-ghdl-ls-log-file}@anchor{b8} @deffn {Option} @w{-}@w{-}log@w{-}file Redirect logs to the given file instead of stderr @end deffn -@geindex ghdl-ls command line option; --trace-file -@anchor{quick_start/python/index cmdoption-ghdl-ls-trace-file}@anchor{b3} +@geindex ghdl-ls command line option; --trace-file +@anchor{quick_start/python/index cmdoption-ghdl-ls-trace-file}@anchor{b9} @deffn {Option} @w{-}@w{-}trace@w{-}file Save RPC data to FILE.in and FILE.out (overrides @@ -2509,22 +2560,22 @@ Save RPC data to FILE.in and FILE.out (overrides @code{GHDL_LS_TRACE}) @end deffn -@geindex ghdl-ls command line option; --input -@geindex ghdl-ls command line option; -i -@anchor{quick_start/python/index cmdoption-ghdl-ls-input}@anchor{b4}@anchor{quick_start/python/index cmdoption-ghdl-ls-i}@anchor{b5} +@geindex ghdl-ls command line option; --input +@geindex ghdl-ls command line option; -i +@anchor{quick_start/python/index cmdoption-ghdl-ls-input}@anchor{ba}@anchor{quick_start/python/index cmdoption-ghdl-ls-i}@anchor{bb} @deffn {Option} @w{-}@w{-}input , @w{-}i Read request from file @end deffn @geindex ghdl-ls command line option; --disp-config -@anchor{quick_start/python/index cmdoption-ghdl-ls-disp-config}@anchor{b6} +@anchor{quick_start/python/index cmdoption-ghdl-ls-disp-config}@anchor{bc} @deffn {Option} @w{-}@w{-}disp@w{-}config Display installation configuration and exit @end deffn -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -2545,7 +2596,7 @@ Display installation configuration and exit @c # define a hard line break for HTML @node Invoking GHDL,Simulation runtime,Quick Start Guide,Top -@anchor{using/InvokingGHDL doc}@anchor{b7}@anchor{using/InvokingGHDL invoking-ghdl}@anchor{b8}@anchor{using/InvokingGHDL using-invoking}@anchor{5f} +@anchor{using/InvokingGHDL doc}@anchor{bd}@anchor{using/InvokingGHDL invoking-ghdl}@anchor{be}@anchor{using/InvokingGHDL using-invoking}@anchor{65} @chapter Invoking GHDL @@ -2575,7 +2626,7 @@ An argument that starts with a @code{@@} is considered as a response file; it is @cartouche @quotation Hint Only the most common commands and options are shown here. For the most advanced and experimental features see section -@ref{60,,Additional Command Reference}. +@ref{66,,Additional Command Reference}. @end quotation @end cartouche @@ -2588,20 +2639,20 @@ The location of these files is based on the prefix, which is (in order of priori @itemize * @item -the @ref{b9,,--PREFIX} command line option +the @ref{bf,,--PREFIX} command line option @item the @geindex GHDL_PREFIX @geindex environment variable; GHDL_PREFIX -@ref{ba,,GHDL_PREFIX} environment variable +@ref{c0,,GHDL_PREFIX} environment variable @item a built-in default path. It is a hard-coded path on GNU/Linux, and it corresponds to the value of the @code{HKLM\Software\Ghdl\Install_Dir} registry entry on Windows. @end itemize -You should use the @ref{bb,,--disp-config} command to display and debug installation problems. +You should use the @ref{c1,,--disp-config} command to display and debug installation problems. @end quotation @end cartouche @@ -2618,7 +2669,7 @@ You should use the @ref{bb,,--disp-config} command to display and debug installa @end menu @node Design building commands,Design rebuilding commands,,Invoking GHDL -@anchor{using/InvokingGHDL design-building-commands}@anchor{bc} +@anchor{using/InvokingGHDL design-building-commands}@anchor{c2} @section Design building commands @@ -2637,12 +2688,12 @@ The most commonly used commands of GHDL are those to analyze and elaborate a des @end menu @node Analysis [-a],Elaboration [-e],,Design building commands -@anchor{using/InvokingGHDL analysis-a}@anchor{bd}@anchor{using/InvokingGHDL analysis-command}@anchor{7e} +@anchor{using/InvokingGHDL analysis-a}@anchor{c3}@anchor{using/InvokingGHDL analysis-command}@anchor{84} @subsection Analysis [@code{-a}] -@geindex ghdl command line option; -a <[options...] file...> -@anchor{using/InvokingGHDL cmdoption-ghdl-a}@anchor{be} +@geindex ghdl command line option; -a +@anchor{using/InvokingGHDL cmdoption-ghdl-a}@anchor{c4} @deffn {Option} @w{-}a <[options...] file...> @end deffn @@ -2652,18 +2703,18 @@ No options are allowed after a filename argument. GHDL analyzes each filename in the given order, and stops the analysis in case of error (remaining files are not analyzed). -See @ref{bf,,Options}, for details on the GHDL options. +See @ref{c5,,Options}, for details on the GHDL options. For example, to produce debugging information such as line numbers, use: @code{ghdl -a -g my_design.vhdl}. @geindex cmd elaboration @node Elaboration [-e],Run [-r],Analysis [-a],Design building commands -@anchor{using/InvokingGHDL elaboration-command}@anchor{7f}@anchor{using/InvokingGHDL elaboration-e}@anchor{c0} +@anchor{using/InvokingGHDL elaboration-command}@anchor{85}@anchor{using/InvokingGHDL elaboration-e}@anchor{c6} @subsection Elaboration [@code{-e}] -@geindex ghdl command line option; -e <[options...] [library.]top_unit [arch]> -@anchor{using/InvokingGHDL cmdoption-ghdl-e}@anchor{8c} +@geindex ghdl command line option; -e +@anchor{using/InvokingGHDL cmdoption-ghdl-e}@anchor{92} @deffn {Option} @w{-}e <[options...] [library.]top_unit [arch]> @end deffn @@ -2672,7 +2723,7 @@ configurations and the default binding indications according to the LRM rules. It also generates the list of object files required for the executable. Then, it links all these files with the runtime library (GRT). -The elaboration command, @ref{8c,,-e}, must be followed by a @code{top_unit} name denoting either of: +The elaboration command, @ref{92,,-e}, must be followed by a @code{top_unit} name denoting either of: @quotation @@ -2696,10 +2747,10 @@ an entity unit followed by a secondary unit (the name of an architecture unit) @item Name of the top units can be either a simple name (without dots), or the name of a logical library followed by a dot and a simple name. -The latter is equivalent to using @ref{86,,--work=NAME} described in @ref{bf,,Options}: +The latter is equivalent to using @ref{8c,,--work=NAME} described in @ref{c5,,Options}: @code{-e <[options...] --work=library top_unit [arch]>}. It selects the name of the library to be used as @code{WORK}. -See section @ref{c1,,Top entity}, for the restrictions on the root/top unit of a hierarchy. +See section @ref{c7,,Top entity}, for the restrictions on the root/top unit of a hierarchy. @item Name of the secondary units must be a simple name; they cannot contain any dot. @@ -2728,26 +2779,26 @@ This elaboration command is not a complete elaboration in terms of the VHDL stan The actual elaboration is performed at runtime. Therefore, in order to get a complete VHDL elaboration without running the simulation, @code{ghdl --elab-run --no-run} is required. -See @ref{c2,,--no-run}. +See @ref{c8,,--no-run}. @end quotation @end cartouche @geindex cmd run @node Run [-r],Elaborate and run [--elab-run],Elaboration [-e],Design building commands -@anchor{using/InvokingGHDL run-command}@anchor{80}@anchor{using/InvokingGHDL run-r}@anchor{c3} +@anchor{using/InvokingGHDL run-command}@anchor{86}@anchor{using/InvokingGHDL run-r}@anchor{c9} @subsection Run [@code{-r}] -@geindex ghdl command line option; -r <[options...] [library.]top_unit [arch] [simulation_options...]> -@anchor{using/InvokingGHDL cmdoption-ghdl-r}@anchor{8d} +@geindex ghdl command line option; -r +@anchor{using/InvokingGHDL cmdoption-ghdl-r}@anchor{93} @deffn {Option} @w{-}r <[options...] [library.]top_unit [arch] [simulation_options...]> @end deffn Runs/simulates a design. Two sets of options are accepted, both of them being separated by @code{[library.]top_unit [arch]}. -For the first set, @code{options...}, arguments are the same as for the @ref{7f,,elaboration command}. -For the second set, @code{simulation_options...}, arguments are defined in @ref{c4,,Simulation (runtime)}. +For the first set, @code{options...}, arguments are the same as for the @ref{85,,elaboration command}. +For the second set, @code{simulation_options...}, arguments are defined in @ref{ca,,Simulation (runtime)}. @itemize * @@ -2775,34 +2826,34 @@ It works with mcode implementation, where the executable code is generated in me You are using GCC/LLVM, but you don’t need to create the executable program name. @item -It is coherent with the @ref{be,,-a} and @ref{8c,,-e} commands. +It is coherent with the @ref{c4,,-a} and @ref{92,,-e} commands. @end itemize @geindex cmd elaborate and run @node Elaborate and run [--elab-run],Check syntax [-s],Run [-r],Design building commands -@anchor{using/InvokingGHDL elab-and-run-command}@anchor{c5}@anchor{using/InvokingGHDL elaborate-and-run-elab-run}@anchor{c6} +@anchor{using/InvokingGHDL elab-and-run-command}@anchor{cb}@anchor{using/InvokingGHDL elaborate-and-run-elab-run}@anchor{cc} @subsection Elaborate and run [@code{--elab-run}] -@geindex ghdl command line option; --elab-run <[options...] [library.]top_unit [arch] [simulation_options...]> -@anchor{using/InvokingGHDL cmdoption-ghdl-elab-run}@anchor{c7} +@geindex ghdl command line option; --elab-run +@anchor{using/InvokingGHDL cmdoption-ghdl-elab-run}@anchor{cd} @deffn {Option} @w{-}@w{-}elab@w{-}run <[options...] [library.]top_unit [arch] [simulation_options...]> @end deffn Acts like the elaboration command followed by the run command. Note that this command accepts two sets of options. -See @ref{8c,,-e}, @ref{8d,,-r} and @ref{c4,,Simulation (runtime)}. +See @ref{92,,-e}, @ref{93,,-r} and @ref{ca,,Simulation (runtime)}. @geindex cmd checking syntax @node Check syntax [-s],Analyze and elaborate [-c],Elaborate and run [--elab-run],Design building commands -@anchor{using/InvokingGHDL check-syntax-s}@anchor{c8} +@anchor{using/InvokingGHDL check-syntax-s}@anchor{ce} @subsection Check syntax [@code{-s}] -@geindex ghdl command line option; -s <[options...] file...> -@anchor{using/InvokingGHDL cmdoption-ghdl-s}@anchor{c9} +@geindex ghdl command line option; -s +@anchor{using/InvokingGHDL cmdoption-ghdl-s}@anchor{cf} @deffn {Option} @w{-}s <[options...] file...> @end deffn @@ -2813,23 +2864,23 @@ It does not update the library. @geindex cmd analyze and elaborate @node Analyze and elaborate [-c],,Check syntax [-s],Design building commands -@anchor{using/InvokingGHDL analyze-and-elaborate-c}@anchor{ca} +@anchor{using/InvokingGHDL analyze-and-elaborate-c}@anchor{d0} @subsection Analyze and elaborate [@code{-c}] -@geindex ghdl command line option; -c <[options...] file... - top_unit [arch]> -@anchor{using/InvokingGHDL cmdoption-ghdl-c}@anchor{cb} +@geindex ghdl command line option; -c +@anchor{using/InvokingGHDL cmdoption-ghdl-c}@anchor{d1} @deffn {Option} @w{-}c <[options...] file... @w{-} top_unit [arch]> @end deffn @cartouche @quotation Hint -With GCC/LLVM, @ref{8c,,-e} should be used, and @ref{8d,,-r} with mcode. +With GCC/LLVM, @ref{92,,-e} should be used, and @ref{93,,-r} with mcode. @end quotation @end cartouche The files are first parsed, and then a elaboration is performed, which drives an analysis. -Effectively, analysis and elaboration are combined, but there is no explicit call to @ref{be,,-a}. +Effectively, analysis and elaboration are combined, but there is no explicit call to @ref{c4,,-a}. With GCC/LLVM, code is generated during the elaboration. With mcode, the simulation is launched after the elaboration. @@ -2871,7 +2922,7 @@ This command is still under development. In case of problems, you should go back @end cartouche @node Design rebuilding commands,Options,Design building commands,Invoking GHDL -@anchor{using/InvokingGHDL design-rebuilding-commands}@anchor{cc} +@anchor{using/InvokingGHDL design-rebuilding-commands}@anchor{d2} @section Design rebuilding commands @@ -2890,12 +2941,12 @@ GHDL has a few commands for rebuilding a design. @end menu @node Import [-i],Elab-order [--elab-order],,Design rebuilding commands -@anchor{using/InvokingGHDL import-command}@anchor{9e}@anchor{using/InvokingGHDL import-i}@anchor{cd} +@anchor{using/InvokingGHDL import-command}@anchor{a4}@anchor{using/InvokingGHDL import-i}@anchor{d3} @subsection Import [@code{-i}] -@geindex ghdl command line option; -i <[options...] file...> -@anchor{using/InvokingGHDL cmdoption-ghdl-i}@anchor{ce} +@geindex ghdl command line option; -i +@anchor{using/InvokingGHDL cmdoption-ghdl-i}@anchor{d4} @deffn {Option} @w{-}i <[options...] file...> @end deffn @@ -2920,42 +2971,43 @@ However, since they are not analyzed, many errors are tolerated by this command. @end quotation @end cartouche -See @ref{cf,,-m}, to actually build the design. -See also @ref{d0,,--elab-order}, for retrieving the compilation order guessed recursively. +See @ref{d5,,-m}, to actually build the design. +See also @ref{d6,,--elab-order}, for retrieving the compilation order guessed recursively. @geindex cmd elaboration order @node Elab-order [--elab-order],Make [-m],Import [-i],Design rebuilding commands -@anchor{using/InvokingGHDL elab-order-elab-order}@anchor{d1} +@anchor{using/InvokingGHDL elab-order-elab-order}@anchor{d7} @subsection Elab-order [@code{--elab-order}] -@geindex ghdl command line option; --elab-order <[options...] [libray.]top_unit [arch]> -@anchor{using/InvokingGHDL cmdoption-ghdl-elab-order}@anchor{d0} +@geindex ghdl command line option; --elab-order +@anchor{using/InvokingGHDL cmdoption-ghdl-elab-order}@anchor{d6} @deffn {Option} @w{-}@w{-}elab@w{-}order <[options...] [libray.]top_unit [arch]> @end deffn -Print the list of sources required for elaborating a unit, in order for them to be analyzed without dependency issues. -This is expected to be used after @ref{ce,,-i}, or for retrieving the order for some unit analyzed through third-party -scripts. +Print the list of sources required for elaborating a unit, in order +for them to be analyzed without dependency issues. This is expected +to be used after @ref{d4,,-i}, or for retrieving the order for some +unit analyzed through third-party scripts. -@cartouche -@quotation Attention -Currently, the list does not include information about the logical library names where each source needs to be -analyzed. -Hence, it is mostly useful when all sources belong to the same @code{WORK} library. -@end quotation -@end cartouche +With the @code{--libraries} option, each line contains first the +library name followed by the file name. + +Without the @code{--libraries} option, the list does not include +information about the logical library names where each source needs +to be analyzed. Hence, it is useful when all sources belong +to the same @code{WORK} library. @geindex cmd make @node Make [-m],Generate Makefile [--gen-makefile],Elab-order [--elab-order],Design rebuilding commands -@anchor{using/InvokingGHDL make-command}@anchor{9f}@anchor{using/InvokingGHDL make-m}@anchor{d2} +@anchor{using/InvokingGHDL make-command}@anchor{a5}@anchor{using/InvokingGHDL make-m}@anchor{d8} @subsection Make [@code{-m}] -@geindex ghdl command line option; -m <[options...] [library.]top_unit [arch]> -@anchor{using/InvokingGHDL cmdoption-ghdl-m}@anchor{cf} +@geindex ghdl command line option; -m +@anchor{using/InvokingGHDL cmdoption-ghdl-m}@anchor{d5} @deffn {Option} @w{-}m <[options...] [library.]top_unit [arch]> @end deffn @@ -3012,37 +3064,37 @@ In such a case, re-run the make command of GHDL. @geindex cmd generate makefile @node Generate Makefile [--gen-makefile],Generate dependency file command [--gen-depends],Make [-m],Design rebuilding commands -@anchor{using/InvokingGHDL generate-makefile-gen-makefile}@anchor{d3} +@anchor{using/InvokingGHDL generate-makefile-gen-makefile}@anchor{d9} @subsection Generate Makefile [@code{--gen-makefile}] -@geindex ghdl command line option; --gen-makefile <[options...] [library.]top_unit [arch]> -@anchor{using/InvokingGHDL cmdoption-ghdl-gen-makefile}@anchor{d4} +@geindex ghdl command line option; --gen-makefile +@anchor{using/InvokingGHDL cmdoption-ghdl-gen-makefile}@anchor{da} @deffn {Option} @w{-}@w{-}gen@w{-}makefile <[options...] [library.]top_unit [arch]> @end deffn -This command works like the make command (see @ref{cf,,-m}), but only a makefile is generated on the standard output. +This command works like the make command (see @ref{d5,,-m}), but only a makefile is generated on the standard output. @geindex --gen-depends command @node Generate dependency file command [--gen-depends],,Generate Makefile [--gen-makefile],Design rebuilding commands -@anchor{using/InvokingGHDL generate-dependency-file-command-gen-depends}@anchor{d5} +@anchor{using/InvokingGHDL generate-dependency-file-command-gen-depends}@anchor{db} @subsection Generate dependency file command [@code{--gen-depends}] -@geindex ghdl command line option; --gen-depends <[options...] [library.]top_unit [arch]> -@anchor{using/InvokingGHDL cmdoption-ghdl-gen-depends}@anchor{d6} +@geindex ghdl command line option; --gen-depends +@anchor{using/InvokingGHDL cmdoption-ghdl-gen-depends}@anchor{dc} @deffn {Option} @w{-}@w{-}gen@w{-}depends <[options...] [library.]top_unit [arch]> @end deffn Generate a Makefile containing only dependencies to build a design unit. -This command works like the make and gen-makefile commands (see @ref{cf,,-m}), but instead of a full makefile only +This command works like the make and gen-makefile commands (see @ref{d5,,-m}), but instead of a full makefile only dependencies without rules are generated on the standard output. Theses rules can then be integrated in another Makefile. @node Options,Warnings,Design rebuilding commands,Invoking GHDL -@anchor{using/InvokingGHDL ghdl-options}@anchor{bf}@anchor{using/InvokingGHDL options}@anchor{d7} +@anchor{using/InvokingGHDL ghdl-options}@anchor{c5}@anchor{using/InvokingGHDL options}@anchor{dd} @section Options @@ -3056,8 +3108,8 @@ Theses rules can then be integrated in another Makefile. @geindex WORK library -@geindex ghdl command line option; --work= -@anchor{using/InvokingGHDL cmdoption-ghdl-work}@anchor{86} +@geindex ghdl command line option; --work +@anchor{using/InvokingGHDL cmdoption-ghdl-work}@anchor{8c} @deffn {Option} @w{-}@w{-}work= Specify the name of the @code{WORK} library. Analyzed units are always placed in the library logically named @code{WORK}. @@ -3079,38 +3131,38 @@ Furthermore, you should not put units in the @code{ieee} library. @quotation Hint Since 849a25e0@footnote{https://github.com/ghdl/ghdl/commit/849a25e02cfb359e3d9313060156b0643495548b}, this option can be alternatively provided to several commands by prepending the library name to the top unit name. -See, for instance, @ref{8c,,-e}. +See, for instance, @ref{92,,-e}. @end quotation @end cartouche @end deffn -@geindex ghdl command line option; --workdir= -@anchor{using/InvokingGHDL cmdoption-ghdl-workdir}@anchor{9d} +@geindex ghdl command line option; --workdir +@anchor{using/InvokingGHDL cmdoption-ghdl-workdir}@anchor{a3} @deffn {Option} @w{-}@w{-}workdir= Specify the directory where the @code{WORK} library is located. When this option is not present, the @code{WORK} library is in the current directory. The object files created by the compiler are always placed in the same directory as the @code{WORK} library. -Use option @ref{87,,-P} to specify where libraries other than @code{WORK} are placed. +Use option @ref{8d,,-P} to specify where libraries other than @code{WORK} are placed. @end deffn -@geindex ghdl command line option; --std= -@anchor{using/InvokingGHDL cmdoption-ghdl-std}@anchor{82} +@geindex ghdl command line option; --std +@anchor{using/InvokingGHDL cmdoption-ghdl-std}@anchor{88} @deffn {Option} @w{-}@w{-}std= Specify the standard to use. By default, the standard is @code{93c}, which means VHDL-93 with relaxed rules. -For details on @code{STANDARD} values see section @ref{81,,VHDL standards}. +For details on @code{STANDARD} values see section @ref{87,,VHDL standards}. @cartouche @quotation Important -This option resets the effect of @ref{d8,,-frelaxed}, so it should be the first option. +This option resets the effect of @ref{de,,-frelaxed}, so it should be the first option. @end quotation @end cartouche @end deffn @geindex ghdl command line option; -fsynopsys -@anchor{using/InvokingGHDL cmdoption-ghdl-fsynopsys}@anchor{d9} +@anchor{using/InvokingGHDL cmdoption-ghdl-fsynopsys}@anchor{df} @deffn {Option} @w{-}fsynopsys Allow the use of synopsys non-standard packages (@code{std_logic_arith}, @code{std_logic_signed}, @code{std_logic_unsigned}, @@ -3122,8 +3174,8 @@ However they are not standard packages, and have been placed in the @cite{IEEE} @code{ieee}. @end deffn -@geindex ghdl command line option; --ieee= -@anchor{using/InvokingGHDL cmdoption-ghdl-ieee}@anchor{83} +@geindex ghdl command line option; --ieee +@anchor{using/InvokingGHDL cmdoption-ghdl-ieee}@anchor{89} @deffn {Option} @w{-}@w{-}ieee= @geindex ieee library @@ -3147,7 +3199,7 @@ Currently, there are the multivalue logic system package @code{std_logic_1164} d packages @code{numeric_bit} and @code{numeric_std} defined by IEEE 1076.3, and the @code{vital} packages @code{vital_timing} and @code{vital_primitives}, defined by IEEE 1076.4. The version of these packages is defined by the VHDL standard used. -See section @ref{da,,VITAL packages}, for more details. +See section @ref{e0,,VITAL packages}, for more details. @item synopsys @@ -3158,25 +3210,25 @@ It is equivalent to @code{--ieee=standard} and @code{-fsynopsys}. To avoid errors, you must use the same @cite{IEEE} library for all units of your design, and during elaboration. @end deffn -@geindex ghdl command line option; -P -@anchor{using/InvokingGHDL cmdoption-ghdl-P}@anchor{87}@anchor{using/InvokingGHDL cmdoption-ghdl-p}@anchor{db} +@geindex ghdl command line option; -P +@anchor{using/InvokingGHDL cmdoption-ghdl-P}@anchor{8d}@anchor{using/InvokingGHDL cmdoption-ghdl-p}@anchor{e1} @deffn {Option} @w{-}P Add @cite{DIRECTORY} to the end of the list of directories to be searched for library files. A library is searched in @cite{DIRECTORY} and also in @cite{DIRECTORY/LIB/vVV} (where @cite{LIB} is the name of the library and @cite{VV} the vhdl standard). -The @cite{WORK} library is always searched in the path specified by the @ref{9d,,--workdir} option, or in the current +The @cite{WORK} library is always searched in the path specified by the @ref{a3,,--workdir} option, or in the current directory if the latter option is not specified. @end deffn @geindex ghdl command line option; -fexplicit -@anchor{using/InvokingGHDL cmdoption-ghdl-fexplicit}@anchor{84} +@anchor{using/InvokingGHDL cmdoption-ghdl-fexplicit}@anchor{8a} @deffn {Option} @w{-}fexplicit When two operators are overloaded, give preference to the explicit declaration. This may be used to avoid the most common pitfall of the @code{std_logic_arith} package. -See section @ref{67,,IEEE library pitfalls}, for an example. +See section @ref{6d,,IEEE library pitfalls}, for an example. @end deffn @cartouche @@ -3189,17 +3241,17 @@ You’d do better to fix your design and use the @code{numeric_std} package. @end cartouche @geindex ghdl command line option; -frelaxed -@anchor{using/InvokingGHDL cmdoption-ghdl-frelaxed}@anchor{d8} +@anchor{using/InvokingGHDL cmdoption-ghdl-frelaxed}@anchor{de} @deffn {Option} @w{-}frelaxed @end deffn @geindex ghdl command line option; -frelaxed-rules -@anchor{using/InvokingGHDL cmdoption-ghdl-frelaxed-rules}@anchor{85} +@anchor{using/InvokingGHDL cmdoption-ghdl-frelaxed-rules}@anchor{8b} @deffn {Option} @w{-}frelaxed@w{-}rules @cartouche @quotation Important -The effects of this option are reset by @ref{82,,--std}, so it should be placed @emph{after} that option. +The effects of this option are reset by @ref{88,,--std}, so it should be placed @emph{after} that option. @end quotation @end cartouche @@ -3242,16 +3294,16 @@ Violations result in warnings instead of errors. @end deffn @geindex ghdl command line option; -fpsl -@anchor{using/InvokingGHDL cmdoption-ghdl-fpsl}@anchor{dc} +@anchor{using/InvokingGHDL cmdoption-ghdl-fpsl}@anchor{e2} @deffn {Option} @w{-}fpsl Enable parsing of PSL assertions within comments. -See section @ref{dd,,PSL support} for more details. +See section @ref{e3,,PSL support} for more details. @end deffn @geindex ghdl command line option; --mb-comments @geindex ghdl command line option; -C -@anchor{using/InvokingGHDL cmdoption-ghdl-mb-comments}@anchor{8b}@anchor{using/InvokingGHDL cmdoption-ghdl-C}@anchor{de} +@anchor{using/InvokingGHDL cmdoption-ghdl-mb-comments}@anchor{91}@anchor{using/InvokingGHDL cmdoption-ghdl-C}@anchor{e4} @deffn {Option} @w{-}@w{-}mb@w{-}comments, @w{-}C Allow UTF8 or multi-bytes chars in a comment. @@ -3263,7 +3315,7 @@ This option lift this restriction. @end deffn @geindex ghdl command line option; --syn-binding -@anchor{using/InvokingGHDL cmdoption-ghdl-syn-binding}@anchor{df} +@anchor{using/InvokingGHDL cmdoption-ghdl-syn-binding}@anchor{e5} @deffn {Option} @w{-}@w{-}syn@w{-}binding Use synthesizer rules for component binding. @@ -3278,22 +3330,22 @@ A known library is a library which has been named in your design. This option is only useful during elaboration. @end deffn -@geindex ghdl command line option; --format= -@anchor{using/InvokingGHDL cmdoption-ghdl-format}@anchor{e0} +@geindex ghdl command line option; --format +@anchor{using/InvokingGHDL cmdoption-ghdl-format}@anchor{e6} @deffn {Option} @w{-}@w{-}format= -Define the output format of some options, such as @ref{e1,,--pp-html} or @ref{e2,,--xref-html}. +Define the output format of some options, such as @ref{e7,,--pp-html} or @ref{e8,,--xref-html}. @itemize * @item -By default or when @ref{e0,,--format=html2} is specified, generated files follow the HTML 2.0 standard, +By default or when @ref{e6,,--format=html2} is specified, generated files follow the HTML 2.0 standard, and colours are specified with @cite{} tags. However, colours are hard-coded. @item -If @ref{e0,,--format=css} is specified, generated files follow the HTML 4.0 standard, and use the CSS-1 +If @ref{e6,,--format=css} is specified, generated files follow the HTML 4.0 standard, and use the CSS-1 file @code{ghdl.css} to specify colours. This file is generated only if it does not already exist (it is never overwritten) and can be customized by the user to change colours or appearance. @@ -3302,12 +3354,12 @@ Refer to a generated file and its comments for more information. @end deffn @geindex ghdl command line option; --no-vital-checks -@anchor{using/InvokingGHDL cmdoption-ghdl-no-vital-checks}@anchor{e3} +@anchor{using/InvokingGHDL cmdoption-ghdl-no-vital-checks}@anchor{e9} @deffn {Option} @w{-}@w{-}no@w{-}vital@w{-}checks @end deffn @geindex ghdl command line option; --vital-checks -@anchor{using/InvokingGHDL cmdoption-ghdl-vital-checks}@anchor{e4} +@anchor{using/InvokingGHDL cmdoption-ghdl-vital-checks}@anchor{ea} @deffn {Option} @w{-}@w{-}vital@w{-}checks Disable or enable checks of restriction on VITAL units. Checks are enabled by default. @@ -3316,33 +3368,33 @@ Checks are performed only when a design unit is decorated by a VITAL attribute. The VITAL attributes are @code{VITAL_Level0} and @code{VITAL_Level1}, both declared in the @code{ieee.VITAL_Timing} package. Currently, VITAL checks are only partially implemented. -See section @ref{e5,,VHDL restrictions for VITAL} for more details. +See section @ref{eb,,VHDL restrictions for VITAL} for more details. @end deffn -@geindex ghdl command line option; --PREFIX= -@anchor{using/InvokingGHDL cmdoption-ghdl-PREFIX}@anchor{b9}@anchor{using/InvokingGHDL cmdoption-ghdl-prefix}@anchor{e6} +@geindex ghdl command line option; --PREFIX +@anchor{using/InvokingGHDL cmdoption-ghdl-PREFIX}@anchor{bf}@anchor{using/InvokingGHDL cmdoption-ghdl-prefix}@anchor{ec} @deffn {Option} @w{-}@w{-}PREFIX= Use @code{PATH} as the prefix path to find commands and pre-installed (@code{std} and @code{ieee}) libraries. @end deffn @geindex ghdl command line option; -v -@anchor{using/InvokingGHDL cmdoption-ghdl-v}@anchor{e7} +@anchor{using/InvokingGHDL cmdoption-ghdl-v}@anchor{ed} @deffn {Option} @w{-}v Be verbose. For example, for analysis, elaboration and make commands, GHDL displays the commands executed. @end deffn -@geindex ghdl command line option; -o= -@anchor{using/InvokingGHDL cmdoption-ghdl-o}@anchor{e8} +@geindex ghdl command line option; -o +@anchor{using/InvokingGHDL cmdoption-ghdl-o}@anchor{ee} @deffn {Option} @w{-}o= -All the commands that perform a link (@ref{8c,,-e}, @ref{c7,,--elab-run}, @ref{e9,,--link}, @ref{cb,,-c}, -@ref{cf,,-m}, etc.) support overriding the location and name of the generated artifact. +All the commands that perform a link (@ref{92,,-e}, @ref{cd,,--elab-run}, @ref{ef,,--link}, @ref{d1,,-c}, +@ref{d5,,-m}, etc.) support overriding the location and name of the generated artifact. @end deffn -@geindex ghdl command line option; --time-resolution= -@anchor{using/InvokingGHDL cmdoption-ghdl-time-resolution}@anchor{ea} +@geindex ghdl command line option; --time-resolution +@anchor{using/InvokingGHDL cmdoption-ghdl-time-resolution}@anchor{f0} @deffn {Option} @w{-}@w{-}time@w{-}resolution= @cartouche @@ -3353,7 +3405,7 @@ It is not possible to support it with either LLVM or GCC backends, because it ne @end cartouche Set the base time resolution of the simulation. -This option is supported in commands @ref{be,,-a} and @ref{8d,,-r} only. +This option is supported in commands @ref{c4,,-a} and @ref{93,,-r} only. Allowed values are @code{auto} (default), @code{fs}, @code{ps}, @code{ns}, @code{us}, @code{ms} or @code{sec}. With LLVM/GCC, the value is fixed to @code{fs}. @@ -3366,7 +3418,7 @@ Using units below the resolution will produce a failure. @end deffn @node Warnings,Diagnostics Control,Options,Invoking GHDL -@anchor{using/InvokingGHDL warnings}@anchor{eb} +@anchor{using/InvokingGHDL warnings}@anchor{f1} @section Warnings @@ -3388,23 +3440,23 @@ by default. @end cartouche @geindex ghdl command line option; --warn-library -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-library}@anchor{ec} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-library}@anchor{f2} @deffn {Option} @w{-}@w{-}warn@w{-}library Warns if a design unit replaces another design unit with the same name. @end deffn @geindex ghdl command line option; --warn-default-binding -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-default-binding}@anchor{ed} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-default-binding}@anchor{f3} @deffn {Option} @w{-}@w{-}warn@w{-}default@w{-}binding During analyze, warns if a component instantiation has neither configuration specification nor default binding. This may be useful if you want to detect during analyze possibly unbound components if you don’t use configuration. -See section @ref{81,,VHDL standards} for more details about default binding rules. +See section @ref{87,,VHDL standards} for more details about default binding rules. @end deffn @geindex ghdl command line option; --warn-binding -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-binding}@anchor{ee} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-binding}@anchor{f4} @deffn {Option} @w{-}@w{-}warn@w{-}binding During elaboration, warns if a component instantiation is not bound (and not explicitly left unbound). @@ -3418,28 +3470,28 @@ you will certainly get warnings. @end deffn @geindex ghdl command line option; --warn-reserved -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-reserved}@anchor{ef} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-reserved}@anchor{f5} @deffn {Option} @w{-}@w{-}warn@w{-}reserved Emit a warning if an identifier is a reserved word in a later VHDL standard. @end deffn @geindex ghdl command line option; --warn-nested-comment -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-nested-comment}@anchor{f0} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-nested-comment}@anchor{f6} @deffn {Option} @w{-}@w{-}warn@w{-}nested@w{-}comment Emit a warning if a @code{/*} appears within a block comment (vhdl 2008). @end deffn @geindex ghdl command line option; --warn-parenthesis -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-parenthesis}@anchor{f1} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-parenthesis}@anchor{f7} @deffn {Option} @w{-}@w{-}warn@w{-}parenthesis Emit a warning in case of weird use of parentheses. @end deffn @geindex ghdl command line option; --warn-vital-generic -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-vital-generic}@anchor{f2} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-vital-generic}@anchor{f8} @deffn {Option} @w{-}@w{-}warn@w{-}vital@w{-}generic Warns if a generic name of a vital entity is not a vital generic name. This @@ -3447,7 +3499,7 @@ is set by default. @end deffn @geindex ghdl command line option; --warn-delayed-checks -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-delayed-checks}@anchor{f3} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-delayed-checks}@anchor{f9} @deffn {Option} @w{-}@w{-}warn@w{-}delayed@w{-}checks Warns for checks that cannot be done during analysis time and are postponed to elaboration time. @@ -3459,7 +3511,7 @@ function. @end deffn @geindex ghdl command line option; --warn-body -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-body}@anchor{f4} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-body}@anchor{fa} @deffn {Option} @w{-}@w{-}warn@w{-}body Emit a warning if a package body which is not required is analyzed. If a package does not declare a subprogram or a @@ -3467,92 +3519,92 @@ deferred constant, the package does not require a body. @end deffn @geindex ghdl command line option; --warn-specs -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-specs}@anchor{f5} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-specs}@anchor{fb} @deffn {Option} @w{-}@w{-}warn@w{-}specs Emit a warning if an all or others specification does not apply. @end deffn @geindex ghdl command line option; --warn-runtime-error -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-runtime-error}@anchor{f6} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-runtime-error}@anchor{fc} @deffn {Option} @w{-}@w{-}warn@w{-}runtime@w{-}error Emit a warning in case of runtime error that is detected during analysis. @end deffn @geindex ghdl command line option; --warn-shared -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-shared}@anchor{f7} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-shared}@anchor{fd} @deffn {Option} @w{-}@w{-}warn@w{-}shared Emit a warning when a shared variable is declared and its type it not a protected type. @end deffn @geindex ghdl command line option; --warn-hide -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-hide}@anchor{f8} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-hide}@anchor{fe} @deffn {Option} @w{-}@w{-}warn@w{-}hide Emit a warning when a declaration hides a previous hide. @end deffn @geindex ghdl command line option; --warn-unused -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-unused}@anchor{f9} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-unused}@anchor{ff} @deffn {Option} @w{-}@w{-}warn@w{-}unused Emit a warning when a subprogram is never used. @end deffn @geindex ghdl command line option; --warn-others -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-others}@anchor{fa} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-others}@anchor{100} @deffn {Option} @w{-}@w{-}warn@w{-}others Emit a warning is an @cite{others} choice is not required because all the choices have been explicitly covered. @end deffn @geindex ghdl command line option; --warn-pure -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-pure}@anchor{fb} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-pure}@anchor{101} @deffn {Option} @w{-}@w{-}warn@w{-}pure Emit a warning when a pure rules is violated (like declaring a pure function with access parameters). @end deffn @geindex ghdl command line option; --warn-static -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-static}@anchor{fc} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-static}@anchor{102} @deffn {Option} @w{-}@w{-}warn@w{-}static Emit a warning when a non-static expression is used at a place where the standard requires a static expression. @end deffn @geindex ghdl command line option; --warn-error -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-error}@anchor{fd} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-error}@anchor{103} @deffn {Option} @w{-}@w{-}warn@w{-}error When this option is set, warnings are considered as errors. @end deffn @node Diagnostics Control,Library commands,Warnings,Invoking GHDL -@anchor{using/InvokingGHDL diagnostics-control}@anchor{fe} +@anchor{using/InvokingGHDL diagnostics-control}@anchor{104} @section Diagnostics Control @geindex ghdl command line option; -fcolor-diagnostics -@anchor{using/InvokingGHDL cmdoption-ghdl-fcolor-diagnostics}@anchor{ff} +@anchor{using/InvokingGHDL cmdoption-ghdl-fcolor-diagnostics}@anchor{105} @deffn {Option} @w{-}fcolor@w{-}diagnostics @end deffn @geindex ghdl command line option; -fno-color-diagnostics -@anchor{using/InvokingGHDL cmdoption-ghdl-fno-color-diagnostics}@anchor{100} +@anchor{using/InvokingGHDL cmdoption-ghdl-fno-color-diagnostics}@anchor{106} @deffn {Option} @w{-}fno@w{-}color@w{-}diagnostics Control whether diagnostic messages are displayed in color. The default is on when the standard output is a terminal. @end deffn @geindex ghdl command line option; -fdiagnostics-show-option -@anchor{using/InvokingGHDL cmdoption-ghdl-fdiagnostics-show-option}@anchor{101} +@anchor{using/InvokingGHDL cmdoption-ghdl-fdiagnostics-show-option}@anchor{107} @deffn {Option} @w{-}fdiagnostics@w{-}show@w{-}option @end deffn @geindex ghdl command line option; -fno-diagnostics-show-option -@anchor{using/InvokingGHDL cmdoption-ghdl-fno-diagnostics-show-option}@anchor{102} +@anchor{using/InvokingGHDL cmdoption-ghdl-fno-diagnostics-show-option}@anchor{108} @deffn {Option} @w{-}fno@w{-}diagnostics@w{-}show@w{-}option Control whether the warning option is displayed at the end of warning messages, so that the user can easily know how @@ -3560,48 +3612,48 @@ to disable it. @end deffn @geindex ghdl command line option; -fcaret-diagnostics -@anchor{using/InvokingGHDL cmdoption-ghdl-fcaret-diagnostics}@anchor{103} +@anchor{using/InvokingGHDL cmdoption-ghdl-fcaret-diagnostics}@anchor{109} @deffn {Option} @w{-}fcaret@w{-}diagnostics @end deffn @geindex ghdl command line option; -fno-caret-diagnostics -@anchor{using/InvokingGHDL cmdoption-ghdl-fno-caret-diagnostics}@anchor{104} +@anchor{using/InvokingGHDL cmdoption-ghdl-fno-caret-diagnostics}@anchor{10a} @deffn {Option} @w{-}fno@w{-}caret@w{-}diagnostics Control whether the source line of the error is displayed with a caret indicating the column of the error. @end deffn @node Library commands,VPI/VHPI build commands,Diagnostics Control,Invoking GHDL -@anchor{using/InvokingGHDL library-commands}@anchor{105} +@anchor{using/InvokingGHDL library-commands}@anchor{10b} @section Library commands -@anchor{using/InvokingGHDL create-a-library}@anchor{106} +@anchor{using/InvokingGHDL create-a-library}@anchor{10c} @geindex create your own library A new library is created implicitly, by compiling entities (packages etc.) into it: @code{ghdl -a --work=my_custom_lib my_file.vhdl}. A library’s source code is usually stored and compiled into its own directory, that you specify with the -@ref{9d,,--workdir} option: +@ref{a3,,--workdir} option: @code{ghdl -a --work=my_custom_lib --workdir=my_custom_libdir my_custom_lib_srcdir/my_file.vhdl}. -See also the @ref{87,,-P} command line option. +See also the @ref{8d,,-P} command line option. Furthermore, GHDL provides a few commands which act on a library: @geindex cmd library directory -@geindex ghdl command line option; --dir <[options...] [libs]> -@anchor{using/InvokingGHDL cmdoption-ghdl-dir}@anchor{107} +@geindex ghdl command line option; --dir +@anchor{using/InvokingGHDL cmdoption-ghdl-dir}@anchor{10d} @deffn {Option} @w{-}@w{-}dir <[options...] [libs]> @end deffn Displays the content of the design libraries (by default the @code{work} library). -All options are allowed, but only a few are meaningful: @ref{86,,--work}, @ref{9d,,--workdir} and @ref{82,,--std}. +All options are allowed, but only a few are meaningful: @ref{8c,,--work}, @ref{a3,,--workdir} and @ref{88,,--std}. @geindex cmd library clean -@anchor{using/InvokingGHDL clean-command}@anchor{a1} -@geindex ghdl command line option; --clean <[options...]> -@anchor{using/InvokingGHDL cmdoption-ghdl-clean}@anchor{108} +@anchor{using/InvokingGHDL clean-command}@anchor{a7} +@geindex ghdl command line option; --clean +@anchor{using/InvokingGHDL cmdoption-ghdl-clean}@anchor{10e} @deffn {Option} @w{-}@w{-}clean <[options...]> @end deffn @@ -3610,9 +3662,9 @@ Source files are not removed. The library is kept. @geindex cmd library remove -@anchor{using/InvokingGHDL remove-command}@anchor{a2} -@geindex ghdl command line option; --remove <[options...]> -@anchor{using/InvokingGHDL cmdoption-ghdl-remove}@anchor{109} +@anchor{using/InvokingGHDL remove-command}@anchor{a8} +@geindex ghdl command line option; --remove +@anchor{using/InvokingGHDL cmdoption-ghdl-remove}@anchor{10f} @deffn {Option} @w{-}@w{-}remove <[options...]> @end deffn @@ -3621,8 +3673,8 @@ Note that after removing a design library, the files are not known anymore by GH @geindex cmd library copy -@geindex ghdl command line option; --copy <--work=name [options...]> -@anchor{using/InvokingGHDL cmdoption-ghdl-copy}@anchor{10a} +@geindex ghdl command line option; --copy +@anchor{using/InvokingGHDL cmdoption-ghdl-copy}@anchor{110} @deffn {Option} @w{-}@w{-}copy <@w{-}@w{-}work=name [options...]> @end deffn @@ -3635,7 +3687,7 @@ ghdl -a --work=ieee numeric_unsigned.vhd @end example @node VPI/VHPI build commands,IEEE library pitfalls,Library commands,Invoking GHDL -@anchor{using/InvokingGHDL vpi-build-commands}@anchor{10b}@anchor{using/InvokingGHDL vpi-vhpi-build-commands}@anchor{10c} +@anchor{using/InvokingGHDL vpi-build-commands}@anchor{111}@anchor{using/InvokingGHDL vpi-vhpi-build-commands}@anchor{112} @section VPI/VHPI build commands @@ -3646,8 +3698,8 @@ The only option is @cite{-v} which displays the command before its execution. @geindex cmd VPI compile -@geindex ghdl command line option; --vpi-compile -@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-compile}@anchor{10d} +@geindex ghdl command line option; --vpi-compile +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-compile}@anchor{113} @deffn {Option} @w{-}@w{-}vpi@w{-}compile @end deffn @@ -3664,11 +3716,11 @@ command -Ixxx/include @end example For example, @code{ghdl --vpi-compile gcc -c vpi1.c} executes @code{gcc -c vpi1.c -fPIC -Ixxx/include}. -@anchor{using/InvokingGHDL vpi-link-command}@anchor{10e} +@anchor{using/InvokingGHDL vpi-link-command}@anchor{114} @geindex cmd VPI link -@geindex ghdl command line option; --vpi-link -@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-link}@anchor{10f} +@geindex ghdl command line option; --vpi-link +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-link}@anchor{115} @deffn {Option} @w{-}@w{-}vpi@w{-}link @end deffn @@ -3685,29 +3737,29 @@ command -Lxxx/lib -lghdlvpi @end example For example, @code{ghdl --vpi-link gcc -o vpi1.vpi vpi1.o} executes @code{gcc -o vpi1.vpi vpi1.o --shared -Lxxx/lib -lghdlvpi}. -@anchor{using/InvokingGHDL vpi-cflags-command}@anchor{110} +@anchor{using/InvokingGHDL vpi-cflags-command}@anchor{116} @geindex cmd VPI cflags @geindex ghdl command line option; --vpi-cflags -@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-cflags}@anchor{111} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-cflags}@anchor{117} @deffn {Option} @w{-}@w{-}vpi@w{-}cflags @end deffn -Display flags added by @ref{10d,,--vpi-compile}. +Display flags added by @ref{113,,--vpi-compile}. @geindex cmd VPI ldflags @geindex ghdl command line option; --vpi-ldflags -@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-ldflags}@anchor{112} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-ldflags}@anchor{118} @deffn {Option} @w{-}@w{-}vpi@w{-}ldflags @end deffn -Display flags added by @ref{10f,,--vpi-link}. +Display flags added by @ref{115,,--vpi-link}. @geindex cmd VPI include dir @geindex ghdl command line option; --vpi-include-dir -@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-include-dir}@anchor{113} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-include-dir}@anchor{119} @deffn {Option} @w{-}@w{-}vpi@w{-}include@w{-}dir @end deffn @@ -3716,25 +3768,25 @@ Display the include directory added by the compile flags. @geindex cmd VPI library dir @geindex ghdl command line option; --vpi-library-dir -@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-library-dir}@anchor{114} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-library-dir}@anchor{11a} @deffn {Option} @w{-}@w{-}vpi@w{-}library@w{-}dir @end deffn Display the library directory added by the link flags. @geindex ghdl command line option; --vpi-library-dir-unix -@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-library-dir-unix}@anchor{115} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-library-dir-unix}@anchor{11b} @deffn {Option} @w{-}@w{-}vpi@w{-}library@w{-}dir@w{-}unix @end deffn Display the library directory added by the link flags, forcing UNIX syntax. @node IEEE library pitfalls,,VPI/VHPI build commands,Invoking GHDL -@anchor{using/InvokingGHDL id1}@anchor{116}@anchor{using/InvokingGHDL ieee-library-pitfalls}@anchor{67} +@anchor{using/InvokingGHDL id1}@anchor{11c}@anchor{using/InvokingGHDL ieee-library-pitfalls}@anchor{6d} @section IEEE library pitfalls -When you use options @ref{83,,--ieee=synopsys}, the @code{ieee} library contains non standard packages such as +When you use options @ref{89,,--ieee=synopsys}, the @code{ieee} library contains non standard packages such as @code{std_logic_arith}. These packages are not standard because there are not described by an IEEE standard, even if they have been put in the @cite{IEEE} library. @@ -3800,7 +3852,7 @@ With some analysers, the explicit declaration has priority over the implicit dec analyzed without error. However, this is not the rule given by the VHDL LRM, and since GHDL follows these rules, it emits an error. -You can force GHDL to use this rule with the @emph{-fexplicit} option (see @ref{bf,,Options} for further details). +You can force GHDL to use this rule with the @emph{-fexplicit} option (see @ref{c5,,Options} for further details). However it is easy to fix this error, by using a selected name: @example @@ -3866,7 +3918,7 @@ The @code{ieee} math packages (@code{math_real} and @code{math_complex}) provide @end quotation @end cartouche -@c # Load pre-defined aliases and graphical characters like © from docutils +@c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @c # \Lib\site-packages\docutils\parsers\rst\include @@ -3887,7 +3939,7 @@ The @code{ieee} math packages (@code{math_real} and @code{math_complex}) provide @c # define a hard line break for HTML @node Simulation runtime,Synthesis,Invoking GHDL,Top -@anchor{using/Simulation doc}@anchor{117}@anchor{using/Simulation simulation-runtime}@anchor{118}@anchor{using/Simulation using-simulation}@anchor{c4} +@anchor{using/Simulation doc}@anchor{11d}@anchor{using/Simulation simulation-runtime}@anchor{11e}@anchor{using/Simulation using-simulation}@anchor{ca} @chapter Simulation (runtime) @@ -3899,7 +3951,7 @@ The @code{ieee} math packages (@code{math_real} and @code{math_complex}) provide @end menu @node Simulation options,Export waveforms,,Simulation runtime -@anchor{using/Simulation id1}@anchor{119}@anchor{using/Simulation simulation-options}@anchor{9a} +@anchor{using/Simulation id1}@anchor{11f}@anchor{using/Simulation simulation-options}@anchor{a0} @section Simulation options @@ -3923,17 +3975,17 @@ completes, or @code{EXIT_FAILURE} (@code{1}) in case of error (assertion failure, overflow or any constraint error). @end itemize -Here is the list of the most useful options. For further info, see @ref{11a,,Debugging}. +Here is the list of the most useful options. For further info, see @ref{120,,Debugging}. @cartouche @quotation Hint Note that these arguments are represented as @code{simulation_options...} in this documentation. -For analysis/elaboration options, see @ref{5f,,Invoking GHDL}. +For analysis/elaboration options, see @ref{65,,Invoking GHDL}. @end quotation @end cartouche -@geindex ghdl command line option; -gGENERIC=VALUE -@anchor{using/Simulation cmdoption-ghdl-gGENERIC}@anchor{11b}@anchor{using/Simulation cmdoption-ghdl-ggeneric}@anchor{11c} +@geindex ghdl command line option; -gGENERIC +@anchor{using/Simulation cmdoption-ghdl-gGENERIC}@anchor{121}@anchor{using/Simulation cmdoption-ghdl-ggeneric}@anchor{122} @deffn {Option} @w{-}gGENERIC=VALUE Set value @cite{VALUE} to generic with name @cite{GENERIC}. @@ -3950,7 +4002,7 @@ This is currently a run option; but in the (not near) future it might be depreca become an elaboration option only. As a result, now you can generate a single binary and execute it multiple times with different arguments. That might not be possible in the future. -As explained in @ref{8c,,-e}, performing a complete elaboration in terms of the LRM requires +As explained in @ref{92,,-e}, performing a complete elaboration in terms of the LRM requires to get rid of the compile and link model. This is mostly because delaying certain elaboration steps to the runtime prevents elaboration-time optimisions. @end quotation @@ -3963,8 +4015,8 @@ Currently, GHDL has limited support for generic types in the CLI. It is suggeste @end cartouche @end deffn -@geindex ghdl command line option; --assert-level= -@anchor{using/Simulation cmdoption-ghdl-assert-level}@anchor{a0} +@geindex ghdl command line option; --assert-level +@anchor{using/Simulation cmdoption-ghdl-assert-level}@anchor{a6} @deffn {Option} @w{-}@w{-}assert@w{-}level= Select the assertion level at which an assertion violation stops the @@ -3980,12 +4032,12 @@ with severity level @code{warning}, @code{error} or @code{failure} would stop simulation, but the assertion violation at the @code{note} severity level would only display a message. -Option @ref{a0,,--assert-level=none} prevents any +Option @ref{a6,,--assert-level=none} prevents any assertion violation from stopping simulation. @end deffn -@geindex ghdl command line option; --backtrace-severity= -@anchor{using/Simulation cmdoption-ghdl-backtrace-severity}@anchor{11d} +@geindex ghdl command line option; --backtrace-severity +@anchor{using/Simulation cmdoption-ghdl-backtrace-severity}@anchor{123} @deffn {Option} @w{-}@w{-}backtrace@w{-}severity= Select the assertion level at which an assertion violation display a @@ -3996,13 +4048,13 @@ assertions in @code{ieee.numeric_std}) whose location is not very useful. @end deffn -@geindex ghdl command line option; --ieee-asserts= -@anchor{using/Simulation cmdoption-ghdl-ieee-asserts}@anchor{11e} +@geindex ghdl command line option; --ieee-asserts +@anchor{using/Simulation cmdoption-ghdl-ieee-asserts}@anchor{124} @deffn {Option} @w{-}@w{-}ieee@w{-}asserts= @end deffn -@geindex ghdl command line option; --asserts= -@anchor{using/Simulation cmdoption-ghdl-asserts}@anchor{11f} +@geindex ghdl command line option; --asserts +@anchor{using/Simulation cmdoption-ghdl-asserts}@anchor{125} @deffn {Option} @w{-}@w{-}asserts= Select how assertions are handled. @cite{POLICY} can be @code{enable} (the @@ -4019,8 +4071,8 @@ overridden by using the @code{--ieee-asserts} option after the @code{--asserts} option. @end deffn -@geindex ghdl command line option; --stop-time=