Next: Passing options to other programs, Previous: Building commands, Up: Invoking GHDL
Besides the options described below, GHDL
passes any debugging options
(those that begin with -g) and optimizations options (those that
begin with -O or -f) to GCC
. Refer to the GCC
manual for details.
--work=
NAMEGHDL
checks whether ‘WORK’ is a valid identifier. Although being
more or less supported, the ‘WORK’ identifier should not be an
extended identifier, since the filesystem may prevent it from correctly
working (due to case sensitivity or forbidden characters in filenames).
VHDL
rules forbid you to add units to the ‘std’ library.
Furthermore, you should not put units in the ‘ieee’ library.
--workdir=
DIRUse option -P to specify where libraries other than ‘WORK’
are placed.
--std=
STD--ieee=
VERIEEE
library to use. VER must be one of:
IEEE
library. Any library clause with the ‘IEEE’
identifier will fail, unless you have created by your own a library with
the IEEE
name.
IEEE
library containing only packages defined by
ieee standards. Currently, there are the multivalue logic system
packages ‘std_logic_1164’ defined by IEEE 1164, the synthesis
packages , ‘numeric_bit’ and ‘numeric_std’ defined by IEEE
1076.3, and the vital packages ‘vital_timing’ and
‘vital_primitives’, defined by IEEE 1076.4. The version of these
packages is defined by the VHDL standard used. See VITAL packages,
for more details.
IEEE
library without the permission from the ieee.
To avoid errors, you must use the same IEEE
library for all units of
your design, and during elaboration.
-P
DIRECTORYThe WORK
library is always searched in the path specified by the
--workdir= option, or in the current directory if the latter
option is not specified.
-fexplicit
This option is not set by default. I don't think this option is a
good feature, because it breaks the encapsulation rule. When set, an
operator can be silently overridden in another package. You'd better to fix
your design and use the ‘numeric_std’ package.
-fpsl
--no-vital-checks
--vital-checks
Checks are performed only when a design unit is decorated by a VITAL attribute. The VITAL attributes are ‘VITAL_Level0’ and ‘VITAL_Level1’, both declared in the ‘ieee.VITAL_Timing’ package.
Currently, VITAL checks are only partially implemented. See VHDL restrictions for VITAL, for more details.
--syn-binding
This rule is known as synthesizer rule.
There are two key points: normal VHDL LRM rules are tried first and entities are searched only in known library. A known library is a library which has been named in your design.
This option is only useful during elaboration.
--PREFIX=
PATH--GHDL1=
COMMAND-v