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
These options/flags go before the path to the vvp-executable program. They effect behavior of the vvp runtime engine, including preparation for simulation.
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>.
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.
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.
Show verbose progress while setting up or cleaning up the runtime engine. This also displays some performance information.
Extended Arguments Edit
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/LXT arguments Edit
Generate LXT or LXT2format instead of VCD format waveform dumps. The LXT2 format is more advanced.
SDF Support Edit
The Icarus Verilog support for SDF back-annotation can take some extended arguments to control aspects of SDF support.
Print warnings during load of/annotation from an SDF file.
Print interesting information about an SDF file while parsing it.
Print warnings and info messages.