From 0572314d91201f1988643808409f33d2f15c23a6 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Mon, 6 Mar 2023 07:45:56 +0100 Subject: Bump to 3.0.0-rc.4, regenerate doc --- doc/ghdl.texi | 58285 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 29425 insertions(+), 28860 deletions(-) (limited to 'doc') diff --git a/doc/ghdl.texi b/doc/ghdl.texi index 39d2fad6d..3400c98be 100644 --- a/doc/ghdl.texi +++ b/doc/ghdl.texi @@ -3,7 +3,7 @@ @setfilename GHDL.info @documentencoding UTF-8 @ifinfo -@*Generated by Sphinx 4.4.0.@* +@*Generated by Sphinx 6.1.3.@* @end ifinfo @settitle GHDL Documentation @defindex ge @@ -15,17 +15,15 @@ * GHDL: (GHDL.info). VHDL simulator. @end direntry -@definfoenclose strong,`,' -@definfoenclose emph,`,' @c %**end of header @copying @quotation -GHDL 2.0.0, Feb 28, 2022 +GHDL 3.0.0-rc.4, Mar 06, 2023 Tristan Gingold and contributors -Copyright @copyright{} 2002-2021, Tristan Gingold and contributors +Copyright @copyright{} 2002-2023, Tristan Gingold and contributors @end quotation @end copying @@ -47,7 +45,7 @@ Copyright @copyright{} 2002-2021, Tristan Gingold and contributors @end ifnottex @c %**start of body -@anchor{index doc}@anchor{41} +@anchor{index doc}@anchor{45} @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 @@ -57,14 +55,14 @@ Copyright @copyright{} 2002-2021, Tristan Gingold and contributors @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c # define a hard line break for HTML @@ -79,14 +77,14 @@ Copyright @copyright{} 2002-2021, Tristan Gingold and contributors @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c # define a hard line break for HTML @@ -298,8 +296,8 @@ PSL support PSL usage * PSL annotations embedded in comments:: -* PSL annotations (VHDL-2008 only): PSL annotations VHDL-2008 only. -* PSL vunit files (VHDL-2008 / Synthesis only): PSL vunit files VHDL-2008 / Synthesis only. +* PSL annotations (VHDL-2008 and later): PSL annotations VHDL-2008 and later. +* PSL vunit files (VHDL-2008 and later@comma{} synthesis only): PSL vunit files VHDL-2008 and later synthesis only. Implementation of VITAL @@ -362,6 +360,7 @@ pyGHDL.dom pyGHDL.dom.formatting +* pyGHDL.dom.formatting.GraphML: pyGHDL dom formatting GraphML. * pyGHDL.dom.formatting.prettyprint: pyGHDL dom formatting prettyprint. pyGHDL.libghdl @@ -371,6 +370,7 @@ pyGHDL.libghdl * pyGHDL.libghdl.errorout: pyGHDL libghdl errorout. * pyGHDL.libghdl.errorout_console: pyGHDL libghdl errorout_console. * pyGHDL.libghdl.errorout_memory: pyGHDL libghdl errorout_memory. +* pyGHDL.libghdl.file_comments: pyGHDL libghdl file_comments. * pyGHDL.libghdl.files_map: pyGHDL libghdl files_map. * pyGHDL.libghdl.files_map_editor: pyGHDL libghdl files_map_editor. * pyGHDL.libghdl.flags: pyGHDL libghdl flags. @@ -393,6 +393,8 @@ pyGHDL.libghdl.vhdl * pyGHDL.libghdl.vhdl.nodes_meta: pyGHDL libghdl vhdl nodes_meta. * pyGHDL.libghdl.vhdl.nodes_utils: pyGHDL libghdl vhdl nodes_utils. * pyGHDL.libghdl.vhdl.parse: pyGHDL libghdl vhdl parse. +* pyGHDL.libghdl.vhdl.prints: pyGHDL libghdl vhdl prints. +* pyGHDL.libghdl.vhdl.scanner: pyGHDL libghdl vhdl scanner. * pyGHDL.libghdl.vhdl.sem: pyGHDL libghdl vhdl sem. * pyGHDL.libghdl.vhdl.sem_lib: pyGHDL libghdl vhdl sem_lib. * pyGHDL.libghdl.vhdl.std_package: pyGHDL libghdl vhdl std_package. @@ -486,7 +488,7 @@ RTI Nodes / RTII Nodes @end menu @node About,Getting | Installing,Top,Top -@anchor{about doc}@anchor{42}@anchor{about about}@anchor{43}@anchor{about ghdl}@anchor{44} +@anchor{about doc}@anchor{46}@anchor{about about}@anchor{47}@anchor{about ghdl}@anchor{48} @chapter About @@ -498,23 +500,23 @@ RTI Nodes / RTII Nodes @end menu @node What is VHDL?,What is GHDL?,,About -@anchor{about intro-vhdl}@anchor{45}@anchor{about what-is-vhdl}@anchor{46} +@anchor{about intro-vhdl}@anchor{49}@anchor{about what-is-vhdl}@anchor{4a} @section What is @cite{VHDL}? -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}), +VHDL@footnote{https://en.wikipedia.org/wiki/VHDL} is an acronym for `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. @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. +Changing the ‘V’ to mean `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 -Although VHDL was not designed for writing general purpose programs, VHDL @emph{is} a programming language: any algorithm can +Although VHDL was not designed for writing general purpose programs, VHDL `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)}, @@ -529,10 +531,10 @@ Due to the nature of hardware components –which are always running–, VHDL is 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 +Since VHDL is used to model designs, the term `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. +`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: @@ -542,10 +544,10 @@ Five revisions exist: 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}. +Find on-going work towards `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{47}@anchor{about what-is-ghdl}@anchor{48} +@anchor{about intro-ghdl}@anchor{4b}@anchor{about what-is-ghdl}@anchor{4c} @section What is GHDL? @@ -564,9 +566,9 @@ It is a VHDL analyzer, compiler, simulator and (experimental) synthesizer that c @cartouche @quotation Note -For almost 20 years, GHDL was @emph{not} a synthesis tool: a netlist could not be created. +For almost 20 years, GHDL was `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. +See @ref{4d,,Synthesis} for further details regarding synthesis. @end quotation @end cartouche @@ -576,13 +578,13 @@ Therefore, the compiled code should be faster and the analysis time should be sh 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 +x86@footnote{https://en.wikipedia.org/wiki/X86-64}/i386@footnote{https://en.wikipedia.org/wiki/Intel_80386} only, a built-in one named `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 +Moreover, @ref{4e,,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/}. @@ -590,7 +592,8 @@ 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/}. +2008@footnote{http://ieeexplore.ieee.org/document/4772740/} and +2019@footnote{https://ieeexplore.ieee.org/document/8938196/}. Property Specification Language (PSL)@footnote{https://en.wikipedia.org/wiki/Property_Specification_Language} is also partially supported. Several third party projects are supported: @@ -604,7 +607,7 @@ The pyVHDLModel Documentation@footnote{https://vhdl.github.io/pyVHDLModel/index. … @node Who uses GHDL?,,What is GHDL?,About -@anchor{about intro-who}@anchor{4b}@anchor{about who-uses-ghdl}@anchor{4c} +@anchor{about intro-who}@anchor{4f}@anchor{about who-uses-ghdl}@anchor{50} @section Who uses GHDL? @@ -618,19 +621,19 @@ The pyVHDLModel Documentation@footnote{https://vhdl.github.io/pyVHDLModel/index. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c # define a hard line break for HTML @node Getting | Installing,Contributing,About,Top -@anchor{getting doc}@anchor{4d}@anchor{getting getting-installing}@anchor{4e}@anchor{getting packages}@anchor{4f} +@anchor{getting doc}@anchor{51}@anchor{getting getting-installing}@anchor{52}@anchor{getting packages}@anchor{53} @chapter Getting | Installing @@ -642,22 +645,22 @@ The pyVHDLModel Documentation@footnote{https://vhdl.github.io/pyVHDLModel/index. @end menu @node Package managers,Nightly packages,,Getting | Installing -@anchor{getting package-managers}@anchor{50} +@anchor{getting package-managers}@anchor{54} @section Package managers Package managers of many popular distributions provide pre-built packages of GHDL. This is the case for @cite{apt} (Debian/Ubuntu), @cite{dnf} (Fedora), @cite{pacman} (Arch Linux, MSYS2) or @cite{brew} (macOS). Since GHDL supports three different backends -and two library sets (@emph{regular} or @emph{GPL-compatible}), at least six packages with different features might be available in +and two library sets (`regular' or `GPL-compatible'), at least six packages with different features might be available in 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{51,,Building GHDL from Sources}. +See further differences between backends in @ref{55,,Building GHDL from Sources}. @node Nightly packages,Precompile Vendor Primitives,Package managers,Getting | Installing -@anchor{getting nightly-packages}@anchor{52}@anchor{getting release-packages}@anchor{53} +@anchor{getting nightly-packages}@anchor{56}@anchor{getting release-packages}@anchor{57} @section Nightly packages @@ -668,7 +671,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{54}@anchor{getting precompile-vendor-primitives}@anchor{55} +@anchor{getting getting-precompvendor}@anchor{58}@anchor{getting precompile-vendor-primitives}@anchor{59} @section Precompile Vendor Primitives @@ -683,8 +686,8 @@ 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 +The compilation scripts are writen in the shell languages: `PowerShell' for +`Windows™' and `Bash' for `GNU/Linux', `MacOS' and `MSYS2'/`MinGW'. The compile scripts can colorize the GHDL warning and error lines with the help of @code{grc/grcat} @footnote{ Generic Colourizer @indicateurl{http://kassiopeia.juls.savba.sk/~garabik/software/grc.html} @@ -708,7 +711,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{56} +@anchor{getting supported-vendors-libraries}@anchor{5a} @subsection Supported Vendors Libraries @@ -817,7 +820,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{57} +@anchor{getting supported-simulation-and-verification-libraries}@anchor{5b} @subsection Supported Simulation and Verification Libraries @@ -840,7 +843,7 @@ __________________________________________________________________ @node Script Configuration,Compiling in Bash,Supported Simulation and Verification Libraries,Precompile Vendor Primitives -@anchor{getting script-configuration}@anchor{58} +@anchor{getting script-configuration}@anchor{5c} @subsection Script Configuration @@ -869,7 +872,7 @@ __________________________________________________________________ @node Compiling in Bash,Compiling in PowerShell,Script Configuration,Precompile Vendor Primitives -@anchor{getting compiling-in-bash}@anchor{59} +@anchor{getting compiling-in-bash}@anchor{5d} @subsection Compiling in Bash @@ -897,19 +900,19 @@ Follow these steps: @itemize * @item -@strong{Step 0 - Configure the scripts (optional)} +`Step 0 - Configure the scripts (optional)' See the next section for how to configure @code{config.sh}. @item -@strong{Step 1 - Browse to your simulation working directory} +`Step 1 - Browse to your simulation working directory' @example $ cd @end example @item -@strong{Step 2 - Start the compilation script(s)} +`Step 2 - Start the compilation script(s)' Choose one or multiple of the following scripts to run the pre-compilation process. @@ -928,7 +931,7 @@ In most cases GHDL is installed into @code{/usr/local/}. The scripts are installed into the @code{lib\ghdl\vendors} directory. @item -@strong{Step 3 - Viewing the result} +`Step 3 - Viewing the result' This creates vendor directories in your current working directory and compiles the vendor files into them. @@ -951,7 +954,7 @@ __________________________________________________________________ @node Compiling in PowerShell,Configuration Files,Compiling in Bash,Precompile Vendor Primitives -@anchor{getting compiling-in-powershell}@anchor{5a} +@anchor{getting compiling-in-powershell}@anchor{5e} @subsection Compiling in PowerShell @@ -970,19 +973,19 @@ Follow these steps: @itemize * @item -@strong{Step 0 - Configure the scripts (optional)} +`Step 0 - Configure the scripts (optional)' See the next section for how to configure @code{config.psm1}. @item -@strong{Step 1 - Browse to your simulation working directory} +`Step 1 - Browse to your simulation working directory' @example PS> cd @end example @item -@strong{Step 2 - Start the compilation script(s)} +`Step 2 - Start the compilation script(s)' Choose one or multiple of the following scripts to run the pre-compilation process. @@ -1002,7 +1005,7 @@ PS> \lib\ghdl\vendors\compile-xilinx-vivado.ps1 -All The scripts are installed into the @code{lib\ghdl\vendors} directory. @item -@strong{Step 3 - Viewing the result} +`Step 3 - Viewing the result' This creates vendor directories in your current working directory and compiles the vendor files into them. @@ -1028,7 +1031,7 @@ __________________________________________________________________ @node Configuration Files,Additional Script Parameters,Compiling in PowerShell,Precompile Vendor Primitives -@anchor{getting configuration-files}@anchor{5b} +@anchor{getting configuration-files}@anchor{5f} @subsection Configuration Files @@ -1039,7 +1042,7 @@ __________________________________________________________________ @end menu @node For Bash config sh,For PowerShell config psm1,,Configuration Files -@anchor{getting for-bash-config-sh}@anchor{5c} +@anchor{getting for-bash-config-sh}@anchor{60} @subsubsection For Bash: @cite{config.sh} @@ -1061,7 +1064,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{5d} +@anchor{getting for-powershell-config-psm1}@anchor{61} @subsubsection For PowerShell: @cite{config.psm1} @@ -1084,7 +1087,7 @@ $InstallationDirectory = @@@{ @end example @node Additional Script Parameters,,Configuration Files,Precompile Vendor Primitives -@anchor{getting additional-script-parameters}@anchor{5e} +@anchor{getting additional-script-parameters}@anchor{62} @subsection Additional Script Parameters @@ -1099,7 +1102,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{5f} +@anchor{getting for-bash-scripts}@anchor{63} @subsubsection For Bash Scripts: @@ -1201,7 +1204,7 @@ Selectable libraries: @end itemize @node For PowerShell Scripts,,For Bash Scripts,Additional Script Parameters -@anchor{getting for-powershell-scripts}@anchor{60} +@anchor{getting for-powershell-scripts}@anchor{64} @subsubsection For PowerShell Scripts: @@ -1315,30 +1318,30 @@ __________________________________________________________________ @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c # define a hard line break for HTML @node Contributing,Copyrights | Licenses,Getting | Installing,Top -@anchor{contribute doc}@anchor{61}@anchor{contribute contributing}@anchor{62}@anchor{contribute intro-contributing}@anchor{63} +@anchor{contribute doc}@anchor{65}@anchor{contribute contributing}@anchor{66}@anchor{contribute intro-contributing}@anchor{67} @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{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}. +see the @ref{68,,Simulation} for an introduction. Furthermore, we encourage you to read @ref{69,,Invoking GHDL}, +where the most commonly used options are explained. You can also check the complete @ref{6a,,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{67,,Implementation of VHDL} and @ref{68,,Implementation of VITAL} interesting. +@ref{6b,,Implementation of VHDL} and @ref{6c,,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 @@ -1383,7 +1386,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{69}@anchor{contribute reporting-bugs}@anchor{6a} +@anchor{contribute id1}@anchor{6d}@anchor{contribute reporting-bugs}@anchor{6e} @section Reporting bugs @@ -1406,7 +1409,7 @@ 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{6b,,--synth}, before processing the design with @ref{6c,,Yosys plugin}. +It is suggested to test synthesis features with @ref{6f,,--synth}, before processing the design with @ref{70,,Yosys plugin}. @end itemize Please, report issues through @@ -1465,13 +1468,13 @@ 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{6d,,IEEE library pitfalls}), +with other VHDL variants is not a solid argument. Some of them are supported by GHDL (see @ref{71,,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{6e}@anchor{contribute requesting-enhancements}@anchor{6f} +@anchor{contribute id2}@anchor{72}@anchor{contribute requesting-enhancements}@anchor{73} @section Requesting enhancements @@ -1486,7 +1489,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{70} +@anchor{contribute improving-the-documentation}@anchor{74} @section Improving the documentation @@ -1496,10 +1499,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{71,,Fork@comma{} modify and pull-request}. +to pull your copy. See @ref{75,,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{72}@anchor{contribute pull-request}@anchor{71} +@anchor{contribute fork-modify-and-pull-request}@anchor{76}@anchor{contribute pull-request}@anchor{75} @section Fork, modify and pull-request @@ -1522,7 +1525,7 @@ about to start might conflict with any other, please to coordinate. @item -See section @ref{73,,Directory structure} to faster find the location of the sources you need to modify, and/or to know +See section @ref{77,,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 @@ -1570,17 +1573,17 @@ 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{74,,Coding Style} before contributing modifications to Ada sources. +It is recommended to read @ref{78,,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{75} +@anchor{contribute related-interesting-projects}@anchor{79} @section Related interesting projects -If you have an interesting project, please send us feedback or get listed on our @ref{4b,,Who uses GHDL?} page. +If you have an interesting project, please send us feedback or get listed on our @ref{4f,,Who uses GHDL?} page. @c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @@ -1591,19 +1594,19 @@ If you have an interesting project, please send us feedback or get listed on our @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c # define a hard line break for HTML @node Copyrights | Licenses,Quick Start Guide,Contributing,Top -@anchor{licenses doc}@anchor{76}@anchor{licenses copyrights-licenses}@anchor{77}@anchor{licenses intro-copyrights}@anchor{78} +@anchor{licenses doc}@anchor{7a}@anchor{licenses copyrights-licenses}@anchor{7b}@anchor{licenses intro-copyrights}@anchor{7c} @chapter Copyrights | Licenses @@ -1611,16 +1614,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{79,,GNU GPLv2}. +The GHDL front-end package @code{std.textio}, and the runtime library @code{GRT} are given under @ref{7d,,GNU GPLv2}. @item -The documentation is given under @ref{7a,,CC-BY-SA}. +The documentation is given under @ref{7e,,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{6f,,Requesting enhancements}) if you don’t like this policy. +access to the VHDL sources. Please, send a comment (@ref{73,,Requesting enhancements}) if you don’t like this policy. @end quotation @end cartouche @@ -1668,40 +1671,40 @@ 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{7b}@anchor{licenses lic-gplv2}@anchor{79} +@anchor{licenses gnu-gplv2}@anchor{7f}@anchor{licenses lic-gplv2}@anchor{7d} @section GNU GPLv2 -GHDL is copyright © 2002 - 2022 Tristan Gingold. +GHDL is copyright © 2002 - 2023 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. +This program is distributed in the hope that it will be useful, but `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{7c}@anchor{licenses lic-cc-by-sa}@anchor{7a} +@anchor{licenses cc-by-sa}@anchor{80}@anchor{licenses lic-cc-by-sa}@anchor{7e} @section CC-BY-SA -This is a free documentation; you can redistribute it and/or modify it under the terms of the Creative Commons Attribution-ShareAlike 4.0@footnote{https://creativecommons.org/licenses/by-sa/4.0/} license. You are free to @strong{share} (copy and redistribute the material in any medium or format) and/or @strong{adapt} (remix, transform, and build upon the material for any purpose, even commercially). We cannot revoke these freedoms as long as you follow the these terms: +This is a free documentation; you can redistribute it and/or modify it under the terms of the Creative Commons Attribution-ShareAlike 4.0@footnote{https://creativecommons.org/licenses/by-sa/4.0/} license. You are free to `share' (copy and redistribute the material in any medium or format) and/or `adapt' (remix, transform, and build upon the material for any purpose, even commercially). We cannot revoke these freedoms as long as you follow the these terms: @itemize - @item -@strong{Attribution}: you must provide the name of the creator and attribution parties (more info@footnote{https://wiki.creativecommons.org/wiki/License_Versions#Detailed_attribution_comparison_chart}), a copyright notice, a license notice, a disclaimer notice, a link to the material, a link to the license and indicate if changes were made (see marking guide@footnote{https://wiki.creativecommons.org/wiki/Best_practices_for_attribution#This_is_a_good_attribution_for_material_you_modified_slightly} and more info@footnote{https://wiki.creativecommons.org/wiki/License_Versions#Modifications_and_adaptations_must_be_marked_as_such}). You may do so in any reasonable manner, but not in any way that suggests we endorse you or your use. +`Attribution': you must provide the name of the creator and attribution parties (more info@footnote{https://wiki.creativecommons.org/wiki/License_Versions#Detailed_attribution_comparison_chart}), a copyright notice, a license notice, a disclaimer notice, a link to the material, a link to the license and indicate if changes were made (see marking guide@footnote{https://wiki.creativecommons.org/wiki/Best_practices_for_attribution#This_is_a_good_attribution_for_material_you_modified_slightly} and more info@footnote{https://wiki.creativecommons.org/wiki/License_Versions#Modifications_and_adaptations_must_be_marked_as_such}). You may do so in any reasonable manner, but not in any way that suggests we endorse you or your use. @item -@strong{ShareAlike}: if you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. +`ShareAlike': if you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. @item -@strong{No additional restrictions}: you may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. +`No additional restrictions': you may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. @end itemize 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{7d}@anchor{licenses list-of-contributors}@anchor{7e} +@anchor{licenses lic-contributors}@anchor{81}@anchor{licenses list-of-contributors}@anchor{82} @section List of Contributors @@ -1757,7 +1760,7 @@ Maintainer @tab -@strong{Sole author of GHDL as a whole} +`Sole author of GHDL as a whole' @item @@ -1840,19 +1843,19 @@ __________________________________________________________________ @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c # define a hard line break for HTML @node Quick Start Guide,Invoking GHDL,Copyrights | Licenses,Top -@anchor{quick_start/index doc}@anchor{7f}@anchor{quick_start/index quick-start-guide}@anchor{80}@anchor{quick_start/index using-quickstart}@anchor{81} +@anchor{quick_start/index doc}@anchor{83}@anchor{quick_start/index quick-start-guide}@anchor{84}@anchor{quick_start/index using-quickstart}@anchor{85} @chapter Quick Start Guide @@ -1870,14 +1873,14 @@ about both @cite{GHDL} and @cite{VHDL}. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c # define a hard line break for HTML @@ -1888,24 +1891,24 @@ about both @cite{GHDL} and @cite{VHDL}. @end menu @node Simulation,Python Interfaces,,Quick Start Guide -@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} +@anchor{quick_start/simulation/index doc}@anchor{86}@anchor{quick_start/simulation/index simulation}@anchor{87}@anchor{quick_start/simulation/index using-quickstart-simulation}@anchor{68} @section Simulation -As explained in @ref{47,,What is GHDL?}, @cite{GHDL} is a compiler which translates @cite{VHDL} files to machine code. +As explained in @ref{4b,,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{84,,Analysis [-a]}: convert design units (@cite{VHDL} sources) to an internal representation. +@ref{88,,Analysis [-a]}: convert design units (@cite{VHDL} sources) to an internal representation. @item -@ref{85,,Elaboration [-e]}: generate executable machine code for a target module (top-level entity). +@ref{89,,Elaboration [-e]}: generate executable machine code for a target module (top-level entity). @item -@ref{86,,Run [-r]}: execute the design to test the behaviour, generate output/waveforms, etc. +@ref{8a,,Run [-r]}: execute the design to test the behaviour, generate output/waveforms, etc. @end itemize The following tips might be useful: @@ -1914,26 +1917,26 @@ 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{87,,VHDL standards}). -The default is @ref{88,,--std=93c}. -Use @ref{88,,--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{8b,,VHDL standards}). +The default is @ref{8c,,--std=93c}. +Use @ref{8c,,--std=08} for VHDL-2008 (albeit not fully implemented). @itemize * @item -Use @ref{89,,--ieee=synopsys} if your design depends on a non-standard implementation of the IEEE library. +Use @ref{8d,,--ieee=synopsys} if your design depends on a non-standard implementation of the IEEE library. @item -Use @ref{8a,,-fexplicit} and @ref{8b,,-frelaxed-rules} if needed. +Use @ref{8e,,-fexplicit} and @ref{8f,,-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{8c,,--work=LIB_NAME} to analyze files into the @code{LIB_NAME} library. +Use @ref{90,,--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/}. +@ref{91,,-P/path/to/name/directory/}. @item Use the same options for analysis and elaboration. @@ -1957,14 +1960,14 @@ Different examples are provided, in the hope of helping understand the different @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c # define a hard line break for HTML @@ -1977,7 +1980,7 @@ Different examples are provided, in the hope of helping understand the different @end menu @node Hello world program,Heartbeat module,,Simulation -@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} +@anchor{quick_start/simulation/hello/index doc}@anchor{92}@anchor{quick_start/simulation/hello/index hello-world-program}@anchor{93}@anchor{quick_start/simulation/hello/index quickstart-hello}@anchor{94} @subsection @cite{Hello world} program @@ -2030,7 +2033,7 @@ with legacy DOS systems, other users prefer @code{.vhd}. 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 +However, GHDL has a relaxing option, @ref{95,,--mb-comments} (multi byte), to allow UTF-8 or other encodings in comments. @end itemize @end quotation @@ -2040,17 +2043,17 @@ comments. @itemize * @item -First, you have to compile the file; this is called @ref{84,,analysis} of a design file in @cite{VHDL} +First, you have to compile the file; this is called @ref{88,,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{92,,-e} means @ref{85,,elaborate}, which is used to build a design, with the +Command @ref{96,,-e} means @ref{89,,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{86,,running} @code{ghdl -r hello_world} in the @cite{shell}. +Last, you can directly launch the simulation @ref{8a,,running} @code{ghdl -r hello_world} in the @cite{shell}. The result of the simulation will be shown on screen: @end itemize @@ -2066,25 +2069,25 @@ If a GCC/LLVM variant of @cite{GHDL} is used: @itemize * @item -@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}. +@ref{88,,Analysis} generates a file, @code{hello.o}, which is the object file corresponding to +your @cite{VHDL} program. This is not created with @ref{55,,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{85,,elaboration} step is mandatory after running the analysis and prior to launching the +The @ref{89,,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{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. +As a result, @ref{97,,-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{97,,-r} for more informartion. @end itemize @end quotation @end cartouche @cartouche @quotation Hint -@ref{92,,-e} can be bypassed with @ref{51,,mcode}, since @ref{93,,-r} actually elaborates the design and saves +@ref{96,,-e} can be bypassed with @ref{55,,mcode}, since @ref{97,,-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 @@ -2099,23 +2102,23 @@ But you can still use it to check for some elaboration problems. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @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{94}@anchor{quick_start/simulation/heartbeat/index heartbeat-module}@anchor{95}@anchor{quick_start/simulation/heartbeat/index quickstart-heartbeat}@anchor{96} +@anchor{quick_start/simulation/heartbeat/index doc}@anchor{98}@anchor{quick_start/simulation/heartbeat/index heartbeat-module}@anchor{99}@anchor{quick_start/simulation/heartbeat/index quickstart-heartbeat}@anchor{9a} @subsection @cite{Heartbeat} module -Although @ref{90,,Hello world} illustrates that @cite{VHDL} is supported as a general purpose language, the +Although @ref{94,,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: @@ -2143,7 +2146,7 @@ begin end behaviour; @end example -It can be @ref{84,,analysed}, @ref{85,,elaborated} and @ref{86,,run}, as +It can be @ref{88,,analysed}, @ref{89,,elaborated} and @ref{8a,,run}, as you already know: @example @@ -2155,11 +2158,11 @@ 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{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 +which is supported by @cite{GHDL} (see @ref{9b,,Export waveforms}). You can use either @ref{9c,,--wave}, @ref{9d,,--vcd}, +@ref{9e,,--vcdgz} or @ref{9f,,--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: +explained in the manual@footnote{http://gtkwave.sourceforge.net/gtkwave.pdf}, GtkWave `‘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: @example ghdl -r heartbeat --wave=wave.ghw @@ -2172,7 +2175,7 @@ gtkwave wave.ghw @end example 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 +In @ref{a0,,Full adder} and @ref{a1,,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 @@ -2184,23 +2187,23 @@ the simulation programmatically. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @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{9e}@anchor{quick_start/simulation/adder/index full-adder-module-and-testbench}@anchor{9f}@anchor{quick_start/simulation/adder/index quickstart-adder}@anchor{9c} +@anchor{quick_start/simulation/adder/index doc}@anchor{a2}@anchor{quick_start/simulation/adder/index full-adder-module-and-testbench}@anchor{a3}@anchor{quick_start/simulation/adder/index quickstart-adder}@anchor{a0} @subsection @cite{Full adder} module and testbench -Unlike @ref{96,,Heartbeat}, the target hardware design in this example is written using the +Unlike @ref{9a,,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}: @@ -2221,9 +2224,9 @@ begin end rtl; @end example -You can @ref{84,,analyse} this design file, @code{ghdl -a adder.vhdl}, and try to execute the @cite{adder} +You can @ref{88,,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 +`testbench' has to be run. The `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 all inputs. Note that only the behaviour is tested, timing constraints are not checked. A file named @code{adder_tb.vhdl} contains the testbench for the adder: @@ -2292,20 +2295,20 @@ As usual, you should analyze the file, @code{ghdl -a adder_tb.vhdl}. @cartouche @quotation Hint -Then, if required, @ref{85,,elaborate} the testbench: @code{ghdl -e adder_tb}. You do not need to +Then, if required, @ref{89,,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{86,,run} the testbench, @code{ghdl -r adder_tb}, and check the result on screen: +Now, it is time to @ref{8a,,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{96,,Heartbeat}. +If your design is rather complex, you’d like to inspect signals as explained in @ref{9a,,Heartbeat}. -See section @ref{a0,,Simulation options}, for more details on other runtime options. +See section @ref{a4,,Simulation options}, for more details on other runtime options. @c # Load pre-defined aliases and graphical characters like © from docutils @c # is used to denote the special path @@ -2316,19 +2319,19 @@ See section @ref{a0,,Simulation options}, for more details on other runtime opti @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @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{a1}@anchor{quick_start/simulation/DLXModelSuite quickstart-dlx}@anchor{9d}@anchor{quick_start/simulation/DLXModelSuite working-with-non-trivial-designs}@anchor{a2} +@anchor{quick_start/simulation/DLXModelSuite doc}@anchor{a5}@anchor{quick_start/simulation/DLXModelSuite quickstart-dlx}@anchor{a1}@anchor{quick_start/simulation/DLXModelSuite working-with-non-trivial-designs}@anchor{a6} @subsection Working with non-trivial designs @@ -2348,7 +2351,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{a3,,--workdir=work} option, so +@code{work/} subdirectory. To any GHDL commands, we will add the @ref{a7,,--workdir=work} option, so that all files generated by the compiler (except the executable) will be placed in this directory. @end quotation @@ -2364,11 +2367,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{a4,,importing} the +hierarchy, in the correct order. GHDL provides an easy way to do this, by @ref{a8,,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{a5,,make} +GHDL knows all the design units of the DLX, but none of them has been analysed. Run the @ref{a9,,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. @@ -2385,7 +2388,7 @@ in the DLX memory. Just take one sample: @code{cp test_loop.out dlx.out}. @itemize * @item -Now, you can @ref{86,,run} the test suite: @code{ghdl -r --workdir=work dlx_test_behaviour}. The test bench +Now, you can @ref{8a,,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 @@ -2397,7 +2400,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{a6,,--assert-level}, the program stops +@code{ghdl -r --workdir=work dlx_test_behaviour --assert-level=note`}. With @ref{aa,,--assert-level}, the program stops just after the previous message: @example @@ -2415,11 +2418,11 @@ If you want to make room on your hard drive, you can either: @itemize * @item -@ref{a7,,Clean} the design library with @code{ghdl --clean --workdir=work}. This removes the executable +@ref{ab,,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{a8,,Remove} the design library with @code{ghdl --remove --workdir=work}. This removes the +@ref{ac,,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. @@ -2431,7 +2434,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{89,,--ieee=synopsys}, @ref{8a,,-fexplicit}, etc. See section @ref{6d,,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{8d,,--ieee=synopsys}, @ref{8e,,-fexplicit}, etc. See section @ref{71,,IEEE library pitfalls}, for more details. @end quotation @end cartouche @@ -2450,19 +2453,19 @@ See Learning VHDL with GHDL@footnote{https://github.com/ghdl/ghdl/issues/1291}. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c # define a hard line break for HTML @node Python Interfaces,,Simulation,Quick Start Guide -@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} +@anchor{quick_start/python/index doc}@anchor{ad}@anchor{quick_start/python/index python-interfaces}@anchor{ae}@anchor{quick_start/python/index using-quickstart-python}@anchor{af} @section Python Interfaces @@ -2482,7 +2485,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{ac}@anchor{quick_start/python/index language-server}@anchor{ad} +@anchor{quick_start/python/index cmdref}@anchor{b0}@anchor{quick_start/python/index language-server}@anchor{b1} @subsection Language Server @@ -2498,7 +2501,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{ae}@anchor{quick_start/python/index ghdl-ls}@anchor{af} +@anchor{quick_start/python/index cmdref-ghdlls}@anchor{b2}@anchor{quick_start/python/index ghdl-ls}@anchor{b3} @subsubsection ghdl-ls @@ -2515,13 +2518,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{b0} +@anchor{quick_start/python/index optional-arguments}@anchor{b4} @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{b1}@anchor{quick_start/python/index cmdoption-ghdl-ls-help}@anchor{b2} +@anchor{quick_start/python/index cmdoption-ghdl-ls-h}@anchor{b5}@anchor{quick_start/python/index cmdoption-ghdl-ls-help}@anchor{b6} @deffn {Option} @w{-}h, @w{-}@w{-}help show this help message and exit @@ -2529,7 +2532,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{b3}@anchor{quick_start/python/index cmdoption-ghdl-ls-V}@anchor{b4}@anchor{quick_start/python/index cmdoption-ghdl-ls-v}@anchor{b5} +@anchor{quick_start/python/index cmdoption-ghdl-ls-version}@anchor{b7}@anchor{quick_start/python/index cmdoption-ghdl-ls-V}@anchor{b8}@anchor{quick_start/python/index cmdoption-ghdl-ls-v}@anchor{b9} @deffn {Option} @w{-}@w{-}version, @w{-}V show program’s version number and exit @@ -2537,21 +2540,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{b6}@anchor{quick_start/python/index cmdoption-ghdl-ls-0}@anchor{b7} +@anchor{quick_start/python/index cmdoption-ghdl-ls-verbose}@anchor{ba}@anchor{quick_start/python/index cmdoption-ghdl-ls-0}@anchor{bb} @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{b8} +@anchor{quick_start/python/index cmdoption-ghdl-ls-log-file}@anchor{bc} @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{b9} +@anchor{quick_start/python/index cmdoption-ghdl-ls-trace-file}@anchor{bd} @deffn {Option} @w{-}@w{-}trace@w{-}file Save RPC data to FILE.in and FILE.out (overrides @@ -2562,14 +2565,14 @@ Save RPC data to FILE.in and FILE.out (overrides @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} +@anchor{quick_start/python/index cmdoption-ghdl-ls-input}@anchor{be}@anchor{quick_start/python/index cmdoption-ghdl-ls-i}@anchor{bf} @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{bc} +@anchor{quick_start/python/index cmdoption-ghdl-ls-disp-config}@anchor{c0} @deffn {Option} @w{-}@w{-}disp@w{-}config Display installation configuration and exit @@ -2584,19 +2587,19 @@ Display installation configuration and exit @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c # define a hard line break for HTML @node Invoking GHDL,Simulation runtime,Quick Start Guide,Top -@anchor{using/InvokingGHDL doc}@anchor{bd}@anchor{using/InvokingGHDL invoking-ghdl}@anchor{be}@anchor{using/InvokingGHDL using-invoking}@anchor{65} +@anchor{using/InvokingGHDL doc}@anchor{c1}@anchor{using/InvokingGHDL invoking-ghdl}@anchor{c2}@anchor{using/InvokingGHDL using-invoking}@anchor{69} @chapter Invoking GHDL @@ -2626,7 +2629,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{66,,Additional Command Reference}. +@ref{6a,,Additional Command Reference}. @end quotation @end cartouche @@ -2639,20 +2642,20 @@ The location of these files is based on the prefix, which is (in order of priori @itemize * @item -the @ref{bf,,--PREFIX} command line option +the @ref{c3,,--PREFIX} command line option @item the @geindex GHDL_PREFIX @geindex environment variable; GHDL_PREFIX -@ref{c0,,GHDL_PREFIX} environment variable +@ref{c4,,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{c1,,--disp-config} command to display and debug installation problems. +You should use the @ref{c5,,--disp-config} command to display and debug installation problems. @end quotation @end cartouche @@ -2669,7 +2672,7 @@ You should use the @ref{c1,,--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{c2} +@anchor{using/InvokingGHDL design-building-commands}@anchor{c6} @section Design building commands @@ -2688,12 +2691,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{c3}@anchor{using/InvokingGHDL analysis-command}@anchor{84} +@anchor{using/InvokingGHDL analysis-a}@anchor{c7}@anchor{using/InvokingGHDL analysis-command}@anchor{88} @subsection Analysis [@code{-a}] @geindex ghdl command line option; -a -@anchor{using/InvokingGHDL cmdoption-ghdl-a}@anchor{c4} +@anchor{using/InvokingGHDL cmdoption-ghdl-a}@anchor{c8} @deffn {Option} @w{-}a <[options...] file...> @end deffn @@ -2703,18 +2706,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{c5,,Options}, for details on the GHDL options. +See @ref{c9,,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{85}@anchor{using/InvokingGHDL elaboration-e}@anchor{c6} +@anchor{using/InvokingGHDL elaboration-command}@anchor{89}@anchor{using/InvokingGHDL elaboration-e}@anchor{ca} @subsection Elaboration [@code{-e}] @geindex ghdl command line option; -e -@anchor{using/InvokingGHDL cmdoption-ghdl-e}@anchor{92} +@anchor{using/InvokingGHDL cmdoption-ghdl-e}@anchor{96} @deffn {Option} @w{-}e <[options...] [library.]top_unit [arch]> @end deffn @@ -2723,7 +2726,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{92,,-e}, must be followed by a @code{top_unit} name denoting either of: +The elaboration command, @ref{96,,-e}, must be followed by a @code{top_unit} name denoting either of: @quotation @@ -2747,10 +2750,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{8c,,--work=NAME} described in @ref{c5,,Options}: +The latter is equivalent to using @ref{90,,--work=NAME} described in @ref{c9,,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{c7,,Top entity}, for the restrictions on the root/top unit of a hierarchy. +See section @ref{cb,,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. @@ -2779,26 +2782,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{c8,,--no-run}. +See @ref{cc,,--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{86}@anchor{using/InvokingGHDL run-r}@anchor{c9} +@anchor{using/InvokingGHDL run-command}@anchor{8a}@anchor{using/InvokingGHDL run-r}@anchor{cd} @subsection Run [@code{-r}] @geindex ghdl command line option; -r -@anchor{using/InvokingGHDL cmdoption-ghdl-r}@anchor{93} +@anchor{using/InvokingGHDL cmdoption-ghdl-r}@anchor{97} @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{85,,elaboration command}. -For the second set, @code{simulation_options...}, arguments are defined in @ref{ca,,Simulation (runtime)}. +For the first set, @code{options...}, arguments are the same as for the @ref{89,,elaboration command}. +For the second set, @code{simulation_options...}, arguments are defined in @ref{ce,,Simulation (runtime)}. @itemize * @@ -2826,34 +2829,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{c4,,-a} and @ref{92,,-e} commands. +It is coherent with the @ref{c8,,-a} and @ref{96,,-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{cb}@anchor{using/InvokingGHDL elaborate-and-run-elab-run}@anchor{cc} +@anchor{using/InvokingGHDL elab-and-run-command}@anchor{cf}@anchor{using/InvokingGHDL elaborate-and-run-elab-run}@anchor{d0} @subsection Elaborate and run [@code{--elab-run}] @geindex ghdl command line option; --elab-run -@anchor{using/InvokingGHDL cmdoption-ghdl-elab-run}@anchor{cd} +@anchor{using/InvokingGHDL cmdoption-ghdl-elab-run}@anchor{d1} @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{92,,-e}, @ref{93,,-r} and @ref{ca,,Simulation (runtime)}. +See @ref{96,,-e}, @ref{97,,-r} and @ref{ce,,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{ce} +@anchor{using/InvokingGHDL check-syntax-s}@anchor{d2} @subsection Check syntax [@code{-s}] @geindex ghdl command line option; -s -@anchor{using/InvokingGHDL cmdoption-ghdl-s}@anchor{cf} +@anchor{using/InvokingGHDL cmdoption-ghdl-s}@anchor{d3} @deffn {Option} @w{-}s <[options...] file...> @end deffn @@ -2864,23 +2867,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{d0} +@anchor{using/InvokingGHDL analyze-and-elaborate-c}@anchor{d4} @subsection Analyze and elaborate [@code{-c}] @geindex ghdl command line option; -c -@anchor{using/InvokingGHDL cmdoption-ghdl-c}@anchor{d1} +@anchor{using/InvokingGHDL cmdoption-ghdl-c}@anchor{d5} @deffn {Option} @w{-}c <[options...] file... @w{-} top_unit [arch]> @end deffn @cartouche @quotation Hint -With GCC/LLVM, @ref{92,,-e} should be used, and @ref{93,,-r} with mcode. +With GCC/LLVM, @ref{96,,-e} should be used, and @ref{97,,-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{c4,,-a}. +Effectively, analysis and elaboration are combined, but there is no explicit call to @ref{c8,,-a}. With GCC/LLVM, code is generated during the elaboration. With mcode, the simulation is launched after the elaboration. @@ -2922,7 +2925,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{d2} +@anchor{using/InvokingGHDL design-rebuilding-commands}@anchor{d6} @section Design rebuilding commands @@ -2941,12 +2944,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{a4}@anchor{using/InvokingGHDL import-i}@anchor{d3} +@anchor{using/InvokingGHDL import-command}@anchor{a8}@anchor{using/InvokingGHDL import-i}@anchor{d7} @subsection Import [@code{-i}] @geindex ghdl command line option; -i -@anchor{using/InvokingGHDL cmdoption-ghdl-i}@anchor{d4} +@anchor{using/InvokingGHDL cmdoption-ghdl-i}@anchor{d8} @deffn {Option} @w{-}i <[options...] file...> @end deffn @@ -2971,24 +2974,24 @@ However, since they are not analyzed, many errors are tolerated by this command. @end quotation @end cartouche -See @ref{d5,,-m}, to actually build the design. -See also @ref{d6,,--elab-order}, for retrieving the compilation order guessed recursively. +See @ref{d9,,-m}, to actually build the design. +See also @ref{da,,--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{d7} +@anchor{using/InvokingGHDL elab-order-elab-order}@anchor{db} @subsection Elab-order [@code{--elab-order}] @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]> +@anchor{using/InvokingGHDL cmdoption-ghdl-elab-order}@anchor{da} +@deffn {Option} @w{-}@w{-}elab@w{-}order <[options...] [library.]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{d4,,-i}, or for retrieving the order for some +to be used after @ref{d8,,-i}, or for retrieving the order for some unit analyzed through third-party scripts. With the @code{--libraries} option, each line contains first the @@ -3002,12 +3005,12 @@ 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{a5}@anchor{using/InvokingGHDL make-m}@anchor{d8} +@anchor{using/InvokingGHDL make-command}@anchor{a9}@anchor{using/InvokingGHDL make-m}@anchor{dc} @subsection Make [@code{-m}] @geindex ghdl command line option; -m -@anchor{using/InvokingGHDL cmdoption-ghdl-m}@anchor{d5} +@anchor{using/InvokingGHDL cmdoption-ghdl-m}@anchor{d9} @deffn {Option} @w{-}m <[options...] [library.]top_unit [arch]> @end deffn @@ -3064,37 +3067,40 @@ 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{d9} +@anchor{using/InvokingGHDL generate-makefile-gen-makefile}@anchor{dd} @subsection Generate Makefile [@code{--gen-makefile}] @geindex ghdl command line option; --gen-makefile -@anchor{using/InvokingGHDL cmdoption-ghdl-gen-makefile}@anchor{da} +@anchor{using/InvokingGHDL cmdoption-ghdl-gen-makefile}@anchor{de} @deffn {Option} @w{-}@w{-}gen@w{-}makefile <[options...] [library.]top_unit [arch]> @end deffn -This command works like the make command (see @ref{d5,,-m}), but only a makefile is generated on the standard output. +This command works like the make command (see @ref{d9,,-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{db} +@anchor{using/InvokingGHDL generate-dependency-file-command-gen-depends}@anchor{df} @subsection Generate dependency file command [@code{--gen-depends}] @geindex ghdl command line option; --gen-depends -@anchor{using/InvokingGHDL cmdoption-ghdl-gen-depends}@anchor{dc} +@anchor{using/InvokingGHDL cmdoption-ghdl-gen-depends}@anchor{e0} @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{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. +This command works like the make and gen-makefile commands (see +@ref{d9,,-m}), but instead of a full makefile only dependencies +without rules are generated on the standard output. These rules can +then be integrated in another Makefile. + +This command is not available with the mcode backend. @node Options,Warnings,Design rebuilding commands,Invoking GHDL -@anchor{using/InvokingGHDL ghdl-options}@anchor{c5}@anchor{using/InvokingGHDL options}@anchor{dd} +@anchor{using/InvokingGHDL ghdl-options}@anchor{c9}@anchor{using/InvokingGHDL options}@anchor{e1} @section Options @@ -3109,7 +3115,7 @@ 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{8c} +@anchor{using/InvokingGHDL cmdoption-ghdl-work}@anchor{90} @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}. @@ -3131,38 +3137,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{92,,-e}. +See, for instance, @ref{96,,-e}. @end quotation @end cartouche @end deffn @geindex ghdl command line option; --workdir -@anchor{using/InvokingGHDL cmdoption-ghdl-workdir}@anchor{a3} +@anchor{using/InvokingGHDL cmdoption-ghdl-workdir}@anchor{a7} @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{8d,,-P} to specify where libraries other than @code{WORK} are placed. +Use option @ref{91,,-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{88} +@anchor{using/InvokingGHDL cmdoption-ghdl-std}@anchor{8c} @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{87,,VHDL standards}. +For details on @code{STANDARD} values see section @ref{8b,,VHDL standards}. @cartouche @quotation Important -This option resets the effect of @ref{de,,-frelaxed}, so it should be the first option. +This option resets the effect of @ref{e2,,-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{df} +@anchor{using/InvokingGHDL cmdoption-ghdl-fsynopsys}@anchor{e3} @deffn {Option} @w{-}fsynopsys Allow the use of synopsys non-standard packages (@code{std_logic_arith}, @code{std_logic_signed}, @code{std_logic_unsigned}, @@ -3175,7 +3181,7 @@ However they are not standard packages, and have been placed in the @cite{IEEE} @end deffn @geindex ghdl command line option; --ieee -@anchor{using/InvokingGHDL cmdoption-ghdl-ieee}@anchor{89} +@anchor{using/InvokingGHDL cmdoption-ghdl-ieee}@anchor{8d} @deffn {Option} @w{-}@w{-}ieee= @geindex ieee library @@ -3199,7 +3205,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{e0,,VITAL packages}, for more details. +See section @ref{e4,,VITAL packages}, for more details. @item synopsys @@ -3211,24 +3217,24 @@ To avoid errors, you must use the same @cite{IEEE} library for all units of your @end deffn @geindex ghdl command line option; -P -@anchor{using/InvokingGHDL cmdoption-ghdl-P}@anchor{8d}@anchor{using/InvokingGHDL cmdoption-ghdl-p}@anchor{e1} +@anchor{using/InvokingGHDL cmdoption-ghdl-P}@anchor{91}@anchor{using/InvokingGHDL cmdoption-ghdl-p}@anchor{e5} @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{a3,,--workdir} option, or in the current +The @cite{WORK} library is always searched in the path specified by the @ref{a7,,--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{8a} +@anchor{using/InvokingGHDL cmdoption-ghdl-fexplicit}@anchor{8e} @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{6d,,IEEE library pitfalls}, for an example. +See section @ref{71,,IEEE library pitfalls}, for an example. @end deffn @cartouche @@ -3241,17 +3247,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{de} +@anchor{using/InvokingGHDL cmdoption-ghdl-frelaxed}@anchor{e2} @deffn {Option} @w{-}frelaxed @end deffn @geindex ghdl command line option; -frelaxed-rules -@anchor{using/InvokingGHDL cmdoption-ghdl-frelaxed-rules}@anchor{8b} +@anchor{using/InvokingGHDL cmdoption-ghdl-frelaxed-rules}@anchor{8f} @deffn {Option} @w{-}frelaxed@w{-}rules @cartouche @quotation Important -The effects of this option are reset by @ref{88,,--std}, so it should be placed @emph{after} that option. +The effects of this option are reset by @ref{8c,,--std}, so it should be placed `after' that option. @end quotation @end cartouche @@ -3267,6 +3273,11 @@ VHDL-87 file declarations are accepted; Default binding indication rules of VHDL-02 are used. Default binding rules are often used, but they are particularly obscure before VHDL-02. +@item +Allow a subprogram body to match its declaration when the argument lists are semantically identical but +do not satisfy formal rules (e.g when a function declaration uses the keyword @code{in} for an +argument but its body does not). + @item Within an object declaration, allow references to the name (which references the hidden declaration). This ignores the error in the following code: @@ -3294,16 +3305,16 @@ Violations result in warnings instead of errors. @end deffn @geindex ghdl command line option; -fpsl -@anchor{using/InvokingGHDL cmdoption-ghdl-fpsl}@anchor{e2} +@anchor{using/InvokingGHDL cmdoption-ghdl-fpsl}@anchor{e6} @deffn {Option} @w{-}fpsl Enable parsing of PSL assertions within comments. -See section @ref{e3,,PSL support} for more details. +See section @ref{e7,,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{91}@anchor{using/InvokingGHDL cmdoption-ghdl-C}@anchor{e4} +@anchor{using/InvokingGHDL cmdoption-ghdl-mb-comments}@anchor{95}@anchor{using/InvokingGHDL cmdoption-ghdl-C}@anchor{e8} @deffn {Option} @w{-}@w{-}mb@w{-}comments, @w{-}C Allow UTF8 or multi-bytes chars in a comment. @@ -3315,7 +3326,7 @@ This option lift this restriction. @end deffn @geindex ghdl command line option; --syn-binding -@anchor{using/InvokingGHDL cmdoption-ghdl-syn-binding}@anchor{e5} +@anchor{using/InvokingGHDL cmdoption-ghdl-syn-binding}@anchor{e9} @deffn {Option} @w{-}@w{-}syn@w{-}binding Use synthesizer rules for component binding. @@ -3331,21 +3342,21 @@ This option is only useful during elaboration. @end deffn @geindex ghdl command line option; --format -@anchor{using/InvokingGHDL cmdoption-ghdl-format}@anchor{e6} +@anchor{using/InvokingGHDL cmdoption-ghdl-format}@anchor{ea} @deffn {Option} @w{-}@w{-}format= -Define the output format of some options, such as @ref{e7,,--pp-html} or @ref{e8,,--xref-html}. +Define the output format of some options, such as @ref{eb,,--pp-html} or @ref{ec,,--xref-html}. @itemize * @item -By default or when @ref{e6,,--format=html2} is specified, generated files follow the HTML 2.0 standard, +By default or when @ref{ea,,--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{e6,,--format=css} is specified, generated files follow the HTML 4.0 standard, and use the CSS-1 +If @ref{ea,,--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. @@ -3354,12 +3365,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{e9} +@anchor{using/InvokingGHDL cmdoption-ghdl-no-vital-checks}@anchor{ed} @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{ea} +@anchor{using/InvokingGHDL cmdoption-ghdl-vital-checks}@anchor{ee} @deffn {Option} @w{-}@w{-}vital@w{-}checks Disable or enable checks of restriction on VITAL units. Checks are enabled by default. @@ -3368,44 +3379,44 @@ 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{eb,,VHDL restrictions for VITAL} for more details. +See section @ref{ef,,VHDL restrictions for VITAL} for more details. @end deffn @geindex ghdl command line option; --PREFIX -@anchor{using/InvokingGHDL cmdoption-ghdl-PREFIX}@anchor{bf}@anchor{using/InvokingGHDL cmdoption-ghdl-prefix}@anchor{ec} +@anchor{using/InvokingGHDL cmdoption-ghdl-PREFIX}@anchor{c3}@anchor{using/InvokingGHDL cmdoption-ghdl-prefix}@anchor{f0} @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{ed} +@anchor{using/InvokingGHDL cmdoption-ghdl-v}@anchor{f1} @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{ee} +@anchor{using/InvokingGHDL cmdoption-ghdl-o}@anchor{f2} @deffn {Option} @w{-}o= -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. +All the commands that perform a link (@ref{96,,-e}, @ref{d1,,--elab-run}, @ref{f3,,--link}, @ref{d5,,-c}, +@ref{d9,,-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{f0} +@anchor{using/InvokingGHDL cmdoption-ghdl-time-resolution}@anchor{f4} @deffn {Option} @w{-}@w{-}time@w{-}resolution= @cartouche @quotation Attention -This feature is supported with @emph{mcode} backend only. +This feature is supported with `mcode' backend only. It is not possible to support it with either LLVM or GCC backends, because it needs to apply globally. @end quotation @end cartouche Set the base time resolution of the simulation. -This option is supported in commands @ref{c4,,-a} and @ref{93,,-r} only. +This option is supported in commands @ref{c8,,-a} and @ref{97,,-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}. @@ -3418,7 +3429,7 @@ Using units below the resolution will produce a failure. @end deffn @node Warnings,Diagnostics Control,Options,Invoking GHDL -@anchor{using/InvokingGHDL warnings}@anchor{f1} +@anchor{using/InvokingGHDL warnings}@anchor{f5} @section Warnings @@ -3440,171 +3451,441 @@ by default. @end cartouche @geindex ghdl command line option; --warn-library -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-library}@anchor{f2} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-library}@anchor{f6} @deffn {Option} @w{-}@w{-}warn@w{-}library +@end deffn + +@geindex ghdl command line option; -Wlibrary +@anchor{using/InvokingGHDL cmdoption-ghdl-Wlibrary}@anchor{f7}@anchor{using/InvokingGHDL cmdoption-ghdl-wlibrary}@anchor{f8} +@deffn {Option} @w{-}Wlibrary 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{f3} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-default-binding}@anchor{f9} @deffn {Option} @w{-}@w{-}warn@w{-}default@w{-}binding +@end deffn + +@geindex ghdl command line option; -Wdefault-binding +@anchor{using/InvokingGHDL cmdoption-ghdl-Wdefault-binding}@anchor{fa}@anchor{using/InvokingGHDL cmdoption-ghdl-wdefault-binding}@anchor{fb} +@deffn {Option} @w{-}Wdefault@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{87,,VHDL standards} for more details about default binding rules. +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{8b,,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{f4} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-binding}@anchor{fc} @deffn {Option} @w{-}@w{-}warn@w{-}binding +@end deffn + +@geindex ghdl command line option; -Wbinding +@anchor{using/InvokingGHDL cmdoption-ghdl-Wbinding}@anchor{fd}@anchor{using/InvokingGHDL cmdoption-ghdl-wbinding}@anchor{fe} +@deffn {Option} @w{-}Wbinding + +During elaboration, warns if a component instantiation is not bound +(and not explicitly left unbound). Also warns if a port of an +entity is not bound in a configuration specification or in a +component configuration. This warning is enabled by default, since +default binding rules are somewhat complex and an unbound component +is most often unexpected. + +However, warnings are still emitted if a component instantiation is +inside a generate statement. As a consequence, if you use the +conditional generate statement to select a component according to +the implementation, you will certainly get warnings. +@end deffn + +@geindex ghdl command line option; --warn-port +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-port}@anchor{ff} +@deffn {Option} @w{-}@w{-}warn@w{-}port +@end deffn -During elaboration, warns if a component instantiation is not bound (and not explicitly left unbound). -Also warns if a port of an entity is not bound in a configuration specification or in a component configuration. -This warning is enabled by default, since default binding rules are somewhat complex and an unbound component is most -often unexpected. +@geindex ghdl command line option; -Wport +@anchor{using/InvokingGHDL cmdoption-ghdl-Wport}@anchor{100}@anchor{using/InvokingGHDL cmdoption-ghdl-wport}@anchor{101} +@deffn {Option} @w{-}Wport -However, warnings are still emitted if a component instantiation is inside a generate statement. -As a consequence, if you use the conditional generate statement to select a component according to the implementation, -you will certainly get warnings. +Emit a warning on unconnected input port without defaults (in +relaxed mode). @end deffn @geindex ghdl command line option; --warn-reserved -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-reserved}@anchor{f5} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-reserved}@anchor{102} @deffn {Option} @w{-}@w{-}warn@w{-}reserved +@end deffn + +@geindex ghdl command line option; -Wreserved +@anchor{using/InvokingGHDL cmdoption-ghdl-Wreserved}@anchor{103}@anchor{using/InvokingGHDL cmdoption-ghdl-wreserved}@anchor{104} +@deffn {Option} @w{-}Wreserved Emit a warning if an identifier is a reserved word in a later VHDL standard. @end deffn +@geindex ghdl command line option; --warn-pragma +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-pragma}@anchor{105} +@deffn {Option} @w{-}@w{-}warn@w{-}pragma +@end deffn + +@geindex ghdl command line option; -Wpragma +@anchor{using/InvokingGHDL cmdoption-ghdl-Wpragma}@anchor{106}@anchor{using/InvokingGHDL cmdoption-ghdl-wpragma}@anchor{107} +@deffn {Option} @w{-}Wpragma + +Emit a warning for unknown pragma +@end deffn + @geindex ghdl command line option; --warn-nested-comment -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-nested-comment}@anchor{f6} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-nested-comment}@anchor{108} @deffn {Option} @w{-}@w{-}warn@w{-}nested@w{-}comment +@end deffn + +@geindex ghdl command line option; -Wnested-comment +@anchor{using/InvokingGHDL cmdoption-ghdl-Wnested-comment}@anchor{109}@anchor{using/InvokingGHDL cmdoption-ghdl-wnested-comment}@anchor{10a} +@deffn {Option} @w{-}Wnested@w{-}comment Emit a warning if a @code{/*} appears within a block comment (vhdl 2008). @end deffn +@geindex ghdl command line option; --warn-directive +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-directive}@anchor{10b} +@deffn {Option} @w{-}@w{-}warn@w{-}directive +@end deffn + +@geindex ghdl command line option; -Wdirective +@anchor{using/InvokingGHDL cmdoption-ghdl-Wdirective}@anchor{10c}@anchor{using/InvokingGHDL cmdoption-ghdl-wdirective}@anchor{10d} +@deffn {Option} @w{-}Wdirective + +Emit an option on tool directive +@end deffn + @geindex ghdl command line option; --warn-parenthesis -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-parenthesis}@anchor{f7} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-parenthesis}@anchor{10e} @deffn {Option} @w{-}@w{-}warn@w{-}parenthesis +@end deffn + +@geindex ghdl command line option; -Wparenthesis +@anchor{using/InvokingGHDL cmdoption-ghdl-Wparenthesis}@anchor{10f}@anchor{using/InvokingGHDL cmdoption-ghdl-wparenthesis}@anchor{110} +@deffn {Option} @w{-}Wparenthesis 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{f8} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-vital-generic}@anchor{111} @deffn {Option} @w{-}@w{-}warn@w{-}vital@w{-}generic +@end deffn + +@geindex ghdl command line option; -Wvital-generic +@anchor{using/InvokingGHDL cmdoption-ghdl-Wvital-generic}@anchor{112}@anchor{using/InvokingGHDL cmdoption-ghdl-wvital-generic}@anchor{113} +@deffn {Option} @w{-}Wvital@w{-}generic Warns if a generic name of a vital entity is not a vital generic name. This is set by default. @end deffn @geindex ghdl command line option; --warn-delayed-checks -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-delayed-checks}@anchor{f9} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-delayed-checks}@anchor{114} @deffn {Option} @w{-}@w{-}warn@w{-}delayed@w{-}checks +@end deffn -Warns for checks that cannot be done during analysis time and are postponed to elaboration time. -This is because not all procedure bodies are available during analysis (either because a package body has not yet been -analysed or because @cite{GHDL} doesn’t read not required package bodies). +@geindex ghdl command line option; -Wdelayed-checks +@anchor{using/InvokingGHDL cmdoption-ghdl-Wdelayed-checks}@anchor{115}@anchor{using/InvokingGHDL cmdoption-ghdl-wdelayed-checks}@anchor{116} +@deffn {Option} @w{-}Wdelayed@w{-}checks -These are checks for no wait statements in a procedure called in a sensitized process and checks for pure rules of a -function. +Warns for checks that cannot be done during analysis time and are +postponed to elaboration time. This is because not all procedure +bodies are available during analysis (either because a package body +has not yet been analysed or because @cite{GHDL} doesn’t read not +required package bodies). + +These are checks for no wait statements in a procedure called in a +sensitized process and checks for pure rules of a function. @end deffn @geindex ghdl command line option; --warn-body -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-body}@anchor{fa} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-body}@anchor{117} @deffn {Option} @w{-}@w{-}warn@w{-}body +@end deffn -Emit a warning if a package body which is not required is analyzed. If a package does not declare a subprogram or a -deferred constant, the package does not require a body. +@geindex ghdl command line option; -Wbody +@anchor{using/InvokingGHDL cmdoption-ghdl-Wbody}@anchor{118}@anchor{using/InvokingGHDL cmdoption-ghdl-wbody}@anchor{119} +@deffn {Option} @w{-}Wbody + +Emit a warning if a package body which is not required is +analyzed. If a package does not declare a subprogram or a 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{fb} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-specs}@anchor{11a} @deffn {Option} @w{-}@w{-}warn@w{-}specs +@end deffn + +@geindex ghdl command line option; -Wspecs +@anchor{using/InvokingGHDL cmdoption-ghdl-Wspecs}@anchor{11b}@anchor{using/InvokingGHDL cmdoption-ghdl-wspecs}@anchor{11c} +@deffn {Option} @w{-}Wspecs Emit a warning if an all or others specification does not apply. @end deffn +@geindex ghdl command line option; --warn-universal +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-universal}@anchor{11d} +@deffn {Option} @w{-}@w{-}warn@w{-}universal +@end deffn + +@geindex ghdl command line option; -Wuniversal +@anchor{using/InvokingGHDL cmdoption-ghdl-Wuniversal}@anchor{11e}@anchor{using/InvokingGHDL cmdoption-ghdl-wuniversal}@anchor{11f} +@deffn {Option} @w{-}Wuniversal + +Emit a warning on incorrect use of universal values. +@end deffn + +@geindex ghdl command line option; --warn-port-bounds +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-port-bounds}@anchor{120} +@deffn {Option} @w{-}@w{-}warn@w{-}port@w{-}bounds +@end deffn + +@geindex ghdl command line option; -Wport-bounds +@anchor{using/InvokingGHDL cmdoption-ghdl-Wport-bounds}@anchor{121}@anchor{using/InvokingGHDL cmdoption-ghdl-wport-bounds}@anchor{122} +@deffn {Option} @w{-}Wport@w{-}bounds + +Emit a warning on bounds mismatch between the actual and formal in a +scalar port association +@end deffn + @geindex ghdl command line option; --warn-runtime-error -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-runtime-error}@anchor{fc} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-runtime-error}@anchor{123} @deffn {Option} @w{-}@w{-}warn@w{-}runtime@w{-}error +@end deffn + +@geindex ghdl command line option; -Wruntime-error +@anchor{using/InvokingGHDL cmdoption-ghdl-Wruntime-error}@anchor{124}@anchor{using/InvokingGHDL cmdoption-ghdl-wruntime-error}@anchor{125} +@deffn {Option} @w{-}Wruntime@w{-}error Emit a warning in case of runtime error that is detected during analysis. @end deffn +@geindex ghdl command line option; --warn-delta-cycle +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-delta-cycle}@anchor{126} +@deffn {Option} @w{-}@w{-}warn@w{-}delta@w{-}cycle +@end deffn + +@geindex ghdl command line option; -Wdelta-cycle +@anchor{using/InvokingGHDL cmdoption-ghdl-Wdelta-cycle}@anchor{127}@anchor{using/InvokingGHDL cmdoption-ghdl-wdelta-cycle}@anchor{128} +@deffn {Option} @w{-}Wdelta@w{-}cycle + +Emit a warning if a signal assignemnt creates a delta cycle in a +postponed process. +@end deffn + +@geindex ghdl command line option; --warn-no-wait +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-no-wait}@anchor{129} +@deffn {Option} @w{-}@w{-}warn@w{-}no@w{-}wait +@end deffn + +@geindex ghdl command line option; -Wno-wait +@anchor{using/InvokingGHDL cmdoption-ghdl-Wno-wait}@anchor{12a}@anchor{using/InvokingGHDL cmdoption-ghdl-wno-wait}@anchor{12b} +@deffn {Option} @w{-}Wno@w{-}wait + +Emit a warning if there is no wait statement in a non-sensitized +process +@end deffn + @geindex ghdl command line option; --warn-shared -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-shared}@anchor{fd} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-shared}@anchor{12c} @deffn {Option} @w{-}@w{-}warn@w{-}shared +@end deffn -Emit a warning when a shared variable is declared and its type it not a protected type. +@geindex ghdl command line option; -Wshared +@anchor{using/InvokingGHDL cmdoption-ghdl-Wshared}@anchor{12d}@anchor{using/InvokingGHDL cmdoption-ghdl-wshared}@anchor{12e} +@deffn {Option} @w{-}Wshared + +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{fe} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-hide}@anchor{12f} @deffn {Option} @w{-}@w{-}warn@w{-}hide +@end deffn + +@geindex ghdl command line option; -Whide +@anchor{using/InvokingGHDL cmdoption-ghdl-Whide}@anchor{130}@anchor{using/InvokingGHDL cmdoption-ghdl-whide}@anchor{131} +@deffn {Option} @w{-}Whide 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{ff} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-unused}@anchor{132} @deffn {Option} @w{-}@w{-}warn@w{-}unused +@end deffn + +@geindex ghdl command line option; -Wunused +@anchor{using/InvokingGHDL cmdoption-ghdl-Wunused}@anchor{133}@anchor{using/InvokingGHDL cmdoption-ghdl-wunused}@anchor{134} +@deffn {Option} @w{-}Wunused Emit a warning when a subprogram is never used. @end deffn +@geindex ghdl command line option; --warn-nowrite +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-nowrite}@anchor{135} +@deffn {Option} @w{-}@w{-}warn@w{-}nowrite +@end deffn + +@geindex ghdl command line option; -Wnowrite +@anchor{using/InvokingGHDL cmdoption-ghdl-Wnowrite}@anchor{136}@anchor{using/InvokingGHDL cmdoption-ghdl-wnowrite}@anchor{137} +@deffn {Option} @w{-}Wnowrite + +Emit a warning if a variable or a signal is never assigned (only for synthesis). +@end deffn + @geindex ghdl command line option; --warn-others -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-others}@anchor{100} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-others}@anchor{138} @deffn {Option} @w{-}@w{-}warn@w{-}others +@end deffn + +@geindex ghdl command line option; -Wothers +@anchor{using/InvokingGHDL cmdoption-ghdl-Wothers}@anchor{139}@anchor{using/InvokingGHDL cmdoption-ghdl-wothers}@anchor{13a} +@deffn {Option} @w{-}Wothers 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{101} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-pure}@anchor{13b} @deffn {Option} @w{-}@w{-}warn@w{-}pure +@end deffn + +@geindex ghdl command line option; -Wpure +@anchor{using/InvokingGHDL cmdoption-ghdl-Wpure}@anchor{13c}@anchor{using/InvokingGHDL cmdoption-ghdl-wpure}@anchor{13d} +@deffn {Option} @w{-}Wpure 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-analyze-assert +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-analyze-assert}@anchor{13e} +@deffn {Option} @w{-}@w{-}warn@w{-}analyze@w{-}assert +@end deffn + +@geindex ghdl command line option; -Wanalyze-assert +@anchor{using/InvokingGHDL cmdoption-ghdl-Wanalyze-assert}@anchor{13f}@anchor{using/InvokingGHDL cmdoption-ghdl-wanalyze-assert}@anchor{140} +@deffn {Option} @w{-}Wanalyze@w{-}assert + +Emit a warning for assertions that are statically evaluated during +analysis. +@end deffn + +@geindex ghdl command line option; --warn-attribute +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-attribute}@anchor{141} +@deffn {Option} @w{-}@w{-}warn@w{-}attribute +@end deffn + +@geindex ghdl command line option; -Wattribute +@anchor{using/InvokingGHDL cmdoption-ghdl-Wattribute}@anchor{142}@anchor{using/InvokingGHDL cmdoption-ghdl-wattribute}@anchor{143} +@deffn {Option} @w{-}Wattribute + +Emit a warning on incorrect use of attributes. +@end deffn + +@geindex ghdl command line option; --warn-useless +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-useless}@anchor{144} +@deffn {Option} @w{-}@w{-}warn@w{-}useless +@end deffn + +@geindex ghdl command line option; -Wuseless +@anchor{using/InvokingGHDL cmdoption-ghdl-Wuseless}@anchor{145}@anchor{using/InvokingGHDL cmdoption-ghdl-wuseless}@anchor{146} +@deffn {Option} @w{-}Wuseless + +Emit a warning on useless code (like conditions that are always +false or true, assertions that cannot be triggered). +@end deffn + +@geindex ghdl command line option; --warn-no-assoc +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-no-assoc}@anchor{147} +@deffn {Option} @w{-}@w{-}warn@w{-}no@w{-}assoc +@end deffn + +@geindex ghdl command line option; -Wno-assoc +@anchor{using/InvokingGHDL cmdoption-ghdl-Wno-assoc}@anchor{148}@anchor{using/InvokingGHDL cmdoption-ghdl-wno-assoc}@anchor{149} +@deffn {Option} @w{-}Wno@w{-}assoc + +Emit a warning on missing association for a port association. Open +associations are required. +@end deffn + @geindex ghdl command line option; --warn-static -@anchor{using/InvokingGHDL cmdoption-ghdl-warn-static}@anchor{102} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-static}@anchor{14a} @deffn {Option} @w{-}@w{-}warn@w{-}static +@end deffn + +@geindex ghdl command line option; -Wstatic +@anchor{using/InvokingGHDL cmdoption-ghdl-Wstatic}@anchor{14b}@anchor{using/InvokingGHDL cmdoption-ghdl-wstatic}@anchor{14c} +@deffn {Option} @w{-}Wstatic 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{103} +@anchor{using/InvokingGHDL cmdoption-ghdl-warn-error}@anchor{14d} @deffn {Option} @w{-}@w{-}warn@w{-}error +@end deffn + +@geindex ghdl command line option; --warn-error +@anchor{using/InvokingGHDL cmdoption-ghdl-0}@anchor{14e} +@deffn {Option} @w{-}@w{-}warn@w{-}error= +@end deffn + +@geindex ghdl command line option; -Werror +@anchor{using/InvokingGHDL cmdoption-ghdl-Werror}@anchor{14f}@anchor{using/InvokingGHDL cmdoption-ghdl-werror}@anchor{150} +@deffn {Option} @w{-}Werror +@end deffn -When this option is set, warnings are considered as errors. +@geindex ghdl command line option; -Werror +@anchor{using/InvokingGHDL cmdoption-ghdl-1}@anchor{151} +@deffn {Option} @w{-}Werror= +@end deffn + +@geindex ghdl command line option; -Wno-error +@anchor{using/InvokingGHDL cmdoption-ghdl-Wno-error}@anchor{152}@anchor{using/InvokingGHDL cmdoption-ghdl-wno-error}@anchor{153} +@deffn {Option} @w{-}Wno@w{-}error= + +When this option is set, warnings are considered as errors. With +the parameter, only the specific warning is turned into an error. @end deffn @node Diagnostics Control,Library commands,Warnings,Invoking GHDL -@anchor{using/InvokingGHDL diagnostics-control}@anchor{104} +@anchor{using/InvokingGHDL diagnostics-control}@anchor{154} @section Diagnostics Control @geindex ghdl command line option; -fcolor-diagnostics -@anchor{using/InvokingGHDL cmdoption-ghdl-fcolor-diagnostics}@anchor{105} +@anchor{using/InvokingGHDL cmdoption-ghdl-fcolor-diagnostics}@anchor{155} @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{106} +@anchor{using/InvokingGHDL cmdoption-ghdl-fno-color-diagnostics}@anchor{156} @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. +Control whether diagnostic messages are displayed in color. The +default is on when the standard output is a terminal. For +compatibility with other tools, when colors are enabled the +diagnostic level is always displayed. When colors are not enabled, +level @code{error} is not displayed. @end deffn @geindex ghdl command line option; -fdiagnostics-show-option -@anchor{using/InvokingGHDL cmdoption-ghdl-fdiagnostics-show-option}@anchor{107} +@anchor{using/InvokingGHDL cmdoption-ghdl-fdiagnostics-show-option}@anchor{157} @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{108} +@anchor{using/InvokingGHDL cmdoption-ghdl-fno-diagnostics-show-option}@anchor{158} @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 @@ -3612,48 +3893,49 @@ to disable it. @end deffn @geindex ghdl command line option; -fcaret-diagnostics -@anchor{using/InvokingGHDL cmdoption-ghdl-fcaret-diagnostics}@anchor{109} +@anchor{using/InvokingGHDL cmdoption-ghdl-fcaret-diagnostics}@anchor{159} @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{10a} +@anchor{using/InvokingGHDL cmdoption-ghdl-fno-caret-diagnostics}@anchor{15a} @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{10b} +@anchor{using/InvokingGHDL library-commands}@anchor{15b} @section Library commands -@anchor{using/InvokingGHDL create-a-library}@anchor{10c} +@anchor{using/InvokingGHDL create-a-library}@anchor{15c} @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{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{8d,,-P} command line option. +A library’s source code is usually stored and compiled into its own +directory, that you specify with the @ref{a7,,--workdir} option: +@code{ghdl -a --work=my_custom_lib --workdir=my_custom_libdir +my_custom_lib_srcdir/my_file.vhdl}. See also the @ref{91,,-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 -@anchor{using/InvokingGHDL cmdoption-ghdl-dir}@anchor{10d} +@anchor{using/InvokingGHDL cmdoption-ghdl-dir}@anchor{15d} @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{8c,,--work}, @ref{a3,,--workdir} and @ref{88,,--std}. +All options are allowed, but only a few are meaningful: @ref{90,,--work}, @ref{a7,,--workdir} and @ref{8c,,--std}. @geindex cmd library clean -@anchor{using/InvokingGHDL clean-command}@anchor{a7} +@anchor{using/InvokingGHDL clean-command}@anchor{ab} @geindex ghdl command line option; --clean -@anchor{using/InvokingGHDL cmdoption-ghdl-clean}@anchor{10e} +@anchor{using/InvokingGHDL cmdoption-ghdl-clean}@anchor{15e} @deffn {Option} @w{-}@w{-}clean <[options...]> @end deffn @@ -3662,9 +3944,9 @@ Source files are not removed. The library is kept. @geindex cmd library remove -@anchor{using/InvokingGHDL remove-command}@anchor{a8} +@anchor{using/InvokingGHDL remove-command}@anchor{ac} @geindex ghdl command line option; --remove -@anchor{using/InvokingGHDL cmdoption-ghdl-remove}@anchor{10f} +@anchor{using/InvokingGHDL cmdoption-ghdl-remove}@anchor{15f} @deffn {Option} @w{-}@w{-}remove <[options...]> @end deffn @@ -3674,7 +3956,7 @@ 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 -@anchor{using/InvokingGHDL cmdoption-ghdl-copy}@anchor{110} +@anchor{using/InvokingGHDL cmdoption-ghdl-copy}@anchor{160} @deffn {Option} @w{-}@w{-}copy <@w{-}@w{-}work=name [options...]> @end deffn @@ -3687,7 +3969,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{111}@anchor{using/InvokingGHDL vpi-vhpi-build-commands}@anchor{112} +@anchor{using/InvokingGHDL vpi-build-commands}@anchor{161}@anchor{using/InvokingGHDL vpi-vhpi-build-commands}@anchor{162} @section VPI/VHPI build commands @@ -3699,7 +3981,7 @@ 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{113} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-compile}@anchor{163} @deffn {Option} @w{-}@w{-}vpi@w{-}compile @end deffn @@ -3716,11 +3998,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{114} +@anchor{using/InvokingGHDL vpi-link-command}@anchor{164} @geindex cmd VPI link @geindex ghdl command line option; --vpi-link -@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-link}@anchor{115} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-link}@anchor{165} @deffn {Option} @w{-}@w{-}vpi@w{-}link @end deffn @@ -3737,29 +4019,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{116} +@anchor{using/InvokingGHDL vpi-cflags-command}@anchor{166} @geindex cmd VPI cflags @geindex ghdl command line option; --vpi-cflags -@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-cflags}@anchor{117} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-cflags}@anchor{167} @deffn {Option} @w{-}@w{-}vpi@w{-}cflags @end deffn -Display flags added by @ref{113,,--vpi-compile}. +Display flags added by @ref{163,,--vpi-compile}. @geindex cmd VPI ldflags @geindex ghdl command line option; --vpi-ldflags -@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-ldflags}@anchor{118} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-ldflags}@anchor{168} @deffn {Option} @w{-}@w{-}vpi@w{-}ldflags @end deffn -Display flags added by @ref{115,,--vpi-link}. +Display flags added by @ref{165,,--vpi-link}. @geindex cmd VPI include dir @geindex ghdl command line option; --vpi-include-dir -@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-include-dir}@anchor{119} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-include-dir}@anchor{169} @deffn {Option} @w{-}@w{-}vpi@w{-}include@w{-}dir @end deffn @@ -3768,25 +4050,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{11a} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-library-dir}@anchor{16a} @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{11b} +@anchor{using/InvokingGHDL cmdoption-ghdl-vpi-library-dir-unix}@anchor{16b} @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{11c}@anchor{using/InvokingGHDL ieee-library-pitfalls}@anchor{6d} +@anchor{using/InvokingGHDL id1}@anchor{16c}@anchor{using/InvokingGHDL ieee-library-pitfalls}@anchor{71} @section IEEE library pitfalls -When you use options @ref{89,,--ieee=synopsys}, the @code{ieee} library contains non standard packages such as +When you use options @ref{8d,,--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. @@ -3852,7 +4134,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{c5,,Options} for further details). +You can force GHDL to use this rule with the `-fexplicit' option (see @ref{c9,,Options} for further details). However it is easy to fix this error, by using a selected name: @example @@ -3927,19 +4209,19 @@ The @code{ieee} math packages (@code{math_real} and @code{math_complex}) provide @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c This data file has been placed in the public domain. @c Derived from the Unicode character mappings available from @c . @c Processed by unicode2rstsubs.py, part of Docutils: -@c . +@c . @c # define a hard line break for HTML @node Simulation runtime,Synthesis,Invoking GHDL,Top -@anchor{using/Simulation doc}@anchor{11d}@anchor{using/Simulation simulation-runtime}@anchor{11e}@anchor{using/Simulation using-simulation}@anchor{ca} +@anchor{using/Simulation doc}@anchor{16d}@anchor{using/Simulation simulation-runtime}@anchor{16e}@anchor{using/Simulation using-simulation}@anchor{ce} @chapter Simulation (runtime) @@ -3951,7 +4233,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{11f}@anchor{using/Simulation simulation-options}@anchor{a0} +@anchor{using/Simulation id1}@anchor{16f}@anchor{using/Simulation simulation-options}@anchor{a4} @section Simulation options @@ -3975,17 +4257,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{120,,Debugging}. +Here is the list of the most useful options. For further info, see @ref{170,,Debugging}. @cartouche @quotation Hint Note that these arguments are represented as @code{simulation_options...} in this documentation. -For analysis/elaboration options, see @ref{65,,Invoking GHDL}. +For analysis/elaboration options, see @ref{69,,Invoking GHDL}. @end quotation @end cartouche @geindex ghdl command line option; -gGENERIC -@anchor{using/Simulation cmdoption-ghdl-gGENERIC}@anchor{121}@anchor{using/Simulation cmdoption-ghdl-ggeneric}@anchor{122} +@anchor{using/Simulation cmdoption-ghdl-gGENERIC}@anchor{171}@anchor{using/Simulation cmdoption-ghdl-ggeneric}@anchor{172} @deffn {Option} @w{-}gGENERIC=VALUE Set value @cite{VALUE} to generic with name @cite{GENERIC}. @@ -4002,7 +4284,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{92,,-e}, performing a complete elaboration in terms of the LRM requires +As explained in @ref{96,,-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 @@ -4016,7 +4298,7 @@ Currently, GHDL has limited support for generic types in the CLI. It is suggeste @end deffn @geindex ghdl command line option; --assert-level -@anchor{using/Simulation cmdoption-ghdl-assert-level}@anchor{a6} +@anchor{using/Simulation cmdoption-ghdl-assert-level}@anchor{aa} @deffn {Option} @w{-}@w{-}assert@w{-}level= Select the assertion level at which an assertion violation stops the @@ -4032,12 +4314,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{a6,,--assert-level=none} prevents any +Option @ref{aa,,--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{123} +@anchor{using/Simulation cmdoption-ghdl-backtrace-severity}@anchor{173} @deffn {Option} @w{-}@w{-}backtrace@w{-}severity= Select the assertion level at which an assertion violation display a @@ -4049,12 +4331,12 @@ useful. @end deffn @geindex ghdl command line option; --ieee-asserts -@anchor{using/Simulation cmdoption-ghdl-ieee-asserts}@anchor{124} +@anchor{using/Simulation cmdoption-ghdl-ieee-asserts}@anchor{174} @deffn {Option} @w{-}@w{-}ieee@w{-}asserts= @end deffn @geindex ghdl command line option; --asserts -@anchor{using/Simulation cmdoption-ghdl-asserts}@anchor{125} +@anchor{using/Simulation cmdoption-ghdl-asserts}@anchor{175} @deffn {Option} @w{-}@w{-}asserts= Select how assertions are handled. @cite{POLICY} can be @code{enable} (the @@ -4072,11 +4354,11 @@ overridden by using the @code{--ieee-asserts} option after the @end deffn @geindex ghdl command line option; --stop-time -@anchor{using/Simulation cmdoption-ghdl-stop-time}@anchor{126} +@anchor{using/Simulation cmdoption-ghdl-stop-time}@anchor{176} @deffn {Option} @w{-}@w{-}stop@w{-}time=