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