The vvp command is the simulation run-time engine. The command line for vvp execution is first the options and flags, then the vvp input file, and finally extended arguments.

% vvp flags foo.vvp extended arguments


Options/Flags[edit | edit source]

These options/flags go before the path to the vvp-executable program. They effect behavior of the vvp runtime engine, including preparation for simulation.

-l<logfile>[edit | edit source]

This flag specifies a logfile where all MCI <stdlog> output goes. Specify logfile as '-' to send log output to <stderr>. $display and friends send their output both to <stdout> and <stdlog>.

-M<path>[edit | edit source]

Add the directory path to the (VPI) module search path. Multiple "-M" flags are allowed, and the directories are added in the order that they are given on the command line.

The string "-M-" is special, in that it doesn't add a directory to the path. It removes the compiled directory. This is generally used only for development of the vvp engine.

-m<module>[edit | edit source]

Name a VPI module that should be loaded. The vvp engine looks for the named module in the module search path, which includes the compiled in default directory and directories given by "-M" flags.

NOTE: Starting with v11.0, the VPI modules to be loaded can be specified when you compile your design. This allows the compiler to automatically determine the return types of user-defined system functions. If specified at compile-time, there is no need to specify them again here.

-v[edit | edit source]

Show verbose progress while setting up or cleaning up the runtime engine. This also displays some performance information.

Extended Arguments[edit | edit source]

The extended arguments are available to the simulation runtime, especially system tasks, system functions and any VPI/PLI code. Extended arguments that start with a "+" character are left for use by the user via the $plus$flag and $plus$value functions.

VCD/FST/LXT arguments[edit | edit source]

If not otherwise specified, the vvp engine will by default use VCD formats to support the $dumpvars system task. The flags described here can alter that behavior.

-none/-vcd-none/-vcd-off/-fst-none[edit | edit source]

Disable trace output. The trace output will be stubbed so that no trace file is created and the cost of dumping is avoided. All off these options are synonyms for turning of dumping.

-fst[edit | edit source]

Generate FST format outputs instead of VCD format waveform dumps. This is the preferred output format if using GTKWave for viewing waveforms.

-lxt/-lxt2[edit | edit source]

Generate LXT or LXT2format instead of VCD format waveform dumps. The LXT2 format is more advanced.

SDF Support[edit | edit source]

The Icarus Verilog support for SDF back-annotation can take some extended arguments to control aspects of SDF support.

-sdf-warn[edit | edit source]

Print warnings during load of/annotation from an SDF file.

-sdf-info[edit | edit source]

Print interesting information about an SDF file while parsing it.

-sdf-verbose[edit | edit source]

Print warnings and info messages.

Environment[edit | edit source]

IVERILOG_DUMPER[edit | edit source]

Community content is available under CC-BY-SA unless otherwise noted.