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.
-PDIRECTORYThe 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.
-fexplicitThis 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-checksChecks 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-bindingThis 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