NAME
vvp - Icarus Verilog vvp runtime engine
SYNOPSIS
vvp [-sv] [-Mpath] [-mmodule] [-llogfile] inputfile [extended-args...]
DESCRIPTION
vvp is the run time engine that executes the default compiled form
generated by Icarus Verilog. The output from the iverilog command is
not by itself executable on any platform. Instead, the vvp program is
invoked to execute the generated output file.
OPTIONS
vvp accepts the following options:
-llogfile
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>.
-Mpath This flag adds a directory to the path list used to locate VPI
modules. The default path includes only the install directory
for the system.vpi module, but this flag can add other
directories. Multiple paths are allowed, and modules will be
searched in order.
-mmodule
Tell the vvp run time to load the named module before executing
the simulation. The system.vpi module is loaded by default, but
additional modules, including modules that you compiled
locally, can be specified with this flag. Any number of modules
can be loaded, and they will be linked in the order they are
listed on the command line.
Normally, you only need to specify the name of the module,
without any directory path or .vpi suffix and the search path
is scanned to find the module. However, if the name includes at
least one directory character, then the search path is not
scanned and the name is assumed to be a complete file name.
-n This flag makes $stop or a <Control-C> a synonym for $finish.
It can be used to give the program a more meaningful interface
when running in a non-interactive environment.
-N This flag does the same thing as -n, but results in an exit
code of 1 if the stimulation calls $stop. It can be used to
indicate a simulation failure when running a testbench.
-s Stop. This will cause the simulation to stop in the beginning,
before any events are scheduled. This allows the interactive
user to get hold of the simulation just before it starts.
-v Turn on verbose messages. This will cause information about run
time progress to be printed to standard out.
-V Print the version of the runtime, and exit.
EXTENDED ARGUMENTS
The vvp options described above must come before the design file name.
After the design file name, however, there may be any number of
unspecified arguments. These arguments are not interpreted by vvp but
are instead passed on to the executed design, and are available via the
$test$plusargs and $value$plusargs system functions.
Arguments that do not start with the plus(+) character are not
available to the $plusargs system tasks, but can still be accessed via
PLI code via the vpi_get_vlog_info function. This means that vpi
modules may use arguments that do not start with + and be assured that
they do not interfere with user defined plus-args.
There are a few extended arguments that are interpreted by the standard
system.vpi module, which implements the standard system tasks and so is
always included. These arguments are described here.
-vcd This extended argument sets the wave dump format to VCD. This
is the default in the absence of any IVERILOG_DUMPER
environment variable. The VCD dump files are large and
ponderous, but are also maximally compatible with third party
tools that read waveform dumps.
-lxt|-lxt-speed|-lxt-space
These extended arguments set the wave dump format to lxt,
possibly with format optimizations. The -lxt-space flag sets
the output format to lxt with full compression enabled. The
resulting files are quite small. The -lxt-speed chooses the lxt
compression mode that leads to the best execution time and the
fastest read time, at the expense of some file size.
-lxt2|-lx2
The LXT2 format is slower then LXT (faster then VCD) but takes
less space, and is written out incrementally. Thus, you can
view lxt2 files while a simulation is still running (or paused)
or if your simulation crashes or is killed, you still have a
useful dump.
-none This flag can be used by itself or appended to the end of the
above dumpers (vcd/lxt/lxt2/lx2) to suppress all waveform
output. This can make long simulations run faster.
-sdf-warn
When loading an SDF annotation file, this option causes the
annotator to print warnings for questionable but non-fatal
issues.
-sdf-info
When loading an SDF annotation file, this option causes the
annotator to print information about the annotation.
-sdf-verbose
This is shorthand for -sdf-info -sdf-warn.
ENVIRONMENT
The vvp command also accepts some environment variables that control
its behavior. These can be used to make semi-permanent changes.
IVERILOG_DUMPER=lxt|lxt2|lx2|vcd|none
This selects the output format for the waveform output.
Normally, waveforms are dumped in vcd format, but this variable
can be used to select lxt format, which is far more compact,
though limited to gtkwave or compatible viewers. It can also be
used to suppress VCD output, a time-saver for regression tests.
INTERACTIVE MODE
The simulation engine supports an interactive mode. The user may
interrupt the simulation (typically by typing <Control-C>) to get to
the interactive prompt. From that prompt, the help command prints a
brief summary of the available commands.
The interactive mode may also be entered by a call to the $stop system
task from within the simulation, or by a call to the vpi_control VPI
function with the vpiStop control argument. These means of entering
interactive mode are equivalent.
AUTHOR
Steve Williams (steve@icarus.com)
SEE ALSO
iverilog(1), iverilog-vpi(1), <http://www.icarus.com/eda/verilog/>
COPYRIGHT
Copyright © 2001-2009 Stephen Williams
This document can be freely redistributed according to the terms of the
GNU General Public License version 2.0
April 17th, 2009 vvp(1)