1vvp(1) Version 0.9.4 vvp(1)
2
3
4
6 vvp - Icarus Verilog vvp runtime engine
7
8
10 vvp [-sv] [-Mpath] [-mmodule] [-llogfile] inputfile [extended-args...]
11
12
14 vvp is the run time engine that executes the default compiled form gen‐
15 erated by Icarus Verilog. The output from the iverilog command is not
16 by itself executable on any platform. Instead, the vvp program is
17 invoked to execute the generated output file.
18
19
21 vvp accepts the following options:
22
23 -llogfile
24 This flag specifies a logfile where all MCI <stdlog> output
25 goes. Specify logfile as '-' to send log output to <stderr>.
26 $display and friends send their output both to <stdout> and
27 <stdlog>.
28
29 -Mpath This flag adds a directory to the path list used to locate VPI
30 modules. The default path includes only the install directory
31 for the system.vpi module, but this flag can add other directo‐
32 ries. Multiple paths are allowed, and modules will be searched
33 in order.
34
35 -mmodule
36 Tell the vvp run time to load the named module before executing
37 the simulation. The system.vpi module is loaded by default, but
38 additional modules, including modules that you compiled
39 locally, can be specified with this flag. Any number of modules
40 can be loaded, and they will be linked in the order they are
41 listed on the command line.
42
43 Normally, you only need to specify the name of the module,
44 without any directory path or .vpi suffix and the search path
45 is scanned to find the module. However, if the name includes at
46 least one directory character, then the search path is not
47 scanned and the name is assumed to be a complete file name.
48
49 -n This flag makes $stop or a <Control-C> a synonym for $finish.
50 It can be used to give the program a more meaningful interface
51 when running in a non-interactive environment.
52
53 -N This flag does the same thing as -n, but results in an exit
54 code of 1 if the stimulation calls $stop. It can be used to
55 indicate a simulation failure when running a testbench.
56
57 -s Stop. This will cause the simulation to stop in the beginning,
58 before any events are scheduled. This allows the interactive
59 user to get hold of the simulation just before it starts.
60
61 -v Turn on verbose messages. This will cause information about run
62 time progress to be printed to standard out.
63
64 -V Print the version of the runtime, and exit.
65
66
68 The vvp options described above must come before the design file name.
69 After the design file name, however, there may be any number of unspec‐
70 ified arguments. These arguments are not interpreted by vvp but are
71 instead passed on to the executed design, and are available via the
72 $test$plusargs and $value$plusargs system functions.
73
74 Arguments that do not start with the plus(+) character are not avail‐
75 able to the $plusargs system tasks, but can still be accessed via PLI
76 code via the vpi_get_vlog_info function. This means that vpi modules
77 may use arguments that do not start with + and be assured that they do
78 not interfere with user defined plus-args.
79
80 There are a few extended arguments that are interpreted by the standard
81 system.vpi module, which implements the standard system tasks and so is
82 always included. These arguments are described here.
83
84 -vcd This extended argument sets the wave dump format to VCD. This
85 is the default in the absence of any IVERILOG_DUMPER environ‐
86 ment variable. The VCD dump files are large and ponderous, but
87 are also maximally compatible with third party tools that read
88 waveform dumps.
89
90
91 -lxt|-lxt-speed|-lxt-space
92 These extended arguments set the wave dump format to lxt, pos‐
93 sibly with format optimizations. The -lxt-space flag sets the
94 output format to lxt with full compression enabled. The result‐
95 ing files are quite small. The -lxt-speed chooses the lxt com‐
96 pression mode that leads to the best execution time and the
97 fastest read time, at the expense of some file size.
98
99
100 -lxt2|-lx2
101 The LXT2 format is slower then LXT (faster then VCD) but takes
102 less space, and is written out incrementally. Thus, you can
103 view lxt2 files while a simulation is still running (or paused)
104 or if your simulation crashes or is killed, you still have a
105 useful dump.
106
107
108 -none This flag can be used by itself or appended to the end of the
109 above dumpers (vcd/lxt/lxt2/lx2) to suppress all waveform out‐
110 put. This can make long simulations run faster.
111
112
113 -sdf-warn
114 When loading an SDF annotation file, this option causes the
115 annotator to print warnings for questionable but non-fatal
116 issues.
117
118
119 -sdf-info
120 When loading an SDF annotation file, this option causes the
121 annotator to print information about the annotation.
122
123
124 -sdf-verbose
125 This is shorthand for -sdf-info -sdf-warn.
126
127
129 The vvp command also accepts some environment variables that control
130 its behavior. These can be used to make semi-permanent changes.
131
132
133 IVERILOG_DUMPER=lxt|lxt2|lx2|vcd|none
134 This selects the output format for the waveform output. Nor‐
135 mally, waveforms are dumped in vcd format, but this variable
136 can be used to select lxt format, which is far more compact,
137 though limited to gtkwave or compatible viewers. It can also be
138 used to suppress VCD output, a time-saver for regression tests.
139
140
142 The simulation engine supports an interactive mode. The user may inter‐
143 rupt the simulation (typically by typing <Control-C>) to get to the
144 interactive prompt. From that prompt, the help command prints a brief
145 summary of the available commands.
146
147 The interactive mode may also be entered by a call to the $stop system
148 task from within the simulation, or by a call to the vpi_control VPI
149 function with the vpiStop control argument. These means of entering
150 interactive mode are equivalent.
151
152
154 Steve Williams (steve@icarus.com)
155
156
158 iverilog(1), iverilog-vpi(1), <http://www.icarus.com/eda/verilog/>
159
160
162 Copyright © 2001-2009 Stephen Williams
163
164 This document can be freely redistributed according to the terms of the
165 GNU General Public License version 2.0
166
167
168
169 April 17th, 2009 vvp(1)