NAME
gtkwave - Visualization tool for VCD, LXT, and VZT files
SYNTAX
gtkwave [option]... [DUMPFILE] [SAVEFILE]
[RCFILE]
DESCRIPTION
Visualization tool for VCD, LXT, LXT2, VZT, and GHW. VCD is an
industry standard simulation dump format. LXT, LXT2, and VZT have
been designed specifically for use with gtkwave. GHW is the native
VHDL format generated by GHDL. Native dumpers exist in Icarus
Verilog and the open source version of VeriWell for the LXT formats
so conversion with vcd2lxt(1)
or vcd2lxt2(1)
is not necessary to take direct advantage of LXT with those
simulators. AET2 files can also be processed provided that libae2rw
is available but this is only of interest to people who use IBM EDA
toolsets.
OPTIONS
-
-n,--nocli <directory name> Use file
requester for dumpfile name.
- -f,--dump <filename>
- Specify dumpfile name.
- -o,--optimize
- optimize VCD to LXT2. This will automatically call vcd2lxt2(1)
to perform the file conversion. This option is highly recommended
with large VCD files in order to cut down on the memory usage
required for file viewing. Can be used in conjunction with
-v,--vcd.
- -r,--rcfile <filename>
- Specify override .gtkwaverc filename.
- -i,--indirect <filename>
- Specify indirect facs file name. The file contains a series of
regular expressions used to limit what signals can be browsed.
Signal names which match any of the regular expressions will be
viewable. Typically, indirect files are used to reduce memory
requirements for extremely large models containing millions of
facilities or to strip out top-level hierarchy clutter from
BugSpray models. This feature is only available with the AET2
loader.
- -l,--logfile <filename>
- Specify simulation logfile name. Multiple logfiles may be
specified by preceeding each with the command flag. By selecting
the numbers in the text widget, the marker will immediately zoom to
the specific time value.
- -d,--defaultskip
- If there is not a .gtkwaverc file in the home directory
or current directory and it is not explicitly specified on the
command line, when this option is enabled, do not use an implicit
configuration file and instead default to the old "whitescreen"
behavior.
- -D,--dualid <which>
- Specify multisession identifier information. The format of
"which" is m+nnnnnnnn where m is the session number 0 or 1 and
nnnnnnnn is a hexadecimal value indicating the shared memory ID of
an array of two gtkwave_dual_ipc_t data structures. The intended
use of this flag is for front ends such as twinwave(1).
- -s,--start <time>
- Specify start time for LXT2/VZT block skip.
- -e,--end <time>
- Specify end time for LXT2/VZT block skip.
- -t,--stems <filename>
- Specify stems file for source code annotation. This will
automatically launch the rtlbrowse(1)
helper process. See vertex(1)
for information on stems file generation.
- -c,--cpu <numcpus>
- Specify number of CPUs available for parallelizable ops (e.g.,
block prefetching on VZT reads).
- -N,--nowm
- Disable window manager for most windows. The intended use of
this is to be used in conjunction with the --script option,
however this also can be used to reparent into an alternate window
manager.
- -M,--nomenus
- Do not render menubar. This is mainly used for making a
restricted applet that cannot initiate file I/O on its own, however
it also can be used as a workaround in earlier versions of GTK+
that do not handle GTKSocket/GTKPlug focus interactions properly.
- -S,--script <filename>
- Specify GUI command script file for execution. Comments are
indicated by the '#' character. Lines in the script are the full
menu pathname including the first forward slash. Arguments for an
option (such as a filename) will follow with one argument each on
its own separate line. Menu options that bring up complex
requesters (e.g., search) will hang in the GUI waiting for user
intervention. The intended use of this option is to allow automated
subset extraction to VCD as well as automated Postscript file
generation.
- -X,--xid <XID>
- Specify XID of window for a GtkPlug to connect to. GTKWave does
not directly render to a window but instead renders into a GtkPlug
expecting a GtkSocket at the other end. Note that there are issues
with accelerators working properly so menus are disabled in the
componentized version of GTKWave when it functions as a plug-in.
- -I,--interactive
- Specifies that "interactive" VCD mode is to be used which
allows a viewer to navigate a VCD trace while GTKWave is processing
the VCD file. When this option is used, the filename is overloaded
such that it is the hexadecimal value for the shared memory ID of a
writer. Note that the shared memory ID can be passed straight from
stdin by using the --vcd option; see the manpage for
shmidcat(1)
for more details.
- -L,--legacy
- Specifies that the viewer should use legacy VCD mode rather
than the VCD recoder. Note that using legacy mode will require
considerably more memory than the recoder and its use is
discouraged for very large traces.
- -v,--vcd
- Use stdin as a VCD dumpfile.
- -V,--version
- Display version banner then exit.
- -h,--help
- Display help then exit.
- -x,--exit
- Exit after loading trace (for loader
benchmarking).
FILES
~/.gtkwaverc (see manpage (5))
EXAMPLES
- To run this program the standard way type:
- gtkwave dumpfile.vcd
- Alternatively you can run it with a save file as:
- gtkwave dumpfile.vcd dumpfile.sav
- To run interactively using shared memory handle 0x00050003:
- gtkwave -I 00050003 dumpfile.sav
Command line options are not necessary for representing the
dumpfile, savefile, and rcfile names. They are merely provided to
allow specifying them out of order.
BUGS
- AIX requires -bmaxdata:0x80000000 (-bmaxdata:0xd0000000/dsa for
AIX 5.3) to be added to your list of compiler flags for xlc if you
want GTKWave to be able to access more than 256MB of virtual
memory. The value shown allows the VMM to use up to 2GB (3.25GB
AIX5.3). This may be necessary for very large traces.
- Shift and Page operations using the wave window hscrollbar may
be nonfunctional as you move away from the dump start for very
large traces. A trace that goes out to 45 billion ticks has been
known to exhibit this problem. This stems from using the gfloat
element of the horizontal slider to encode the time value for the
left margin. The result is a loss of precision for very large
values. Use the hotkeys or buttons at the top of the screen if this
is a problem.
- When running under Cygwin, it is required to enable Cygserver
if shared memory IPC is being used. Specifically, this occurs when
rtlbrowse(1)
is launched as a helper process. See the Cygwin documentation for
more information on how to enable Cygserver.
AUTHORS
Anthony Bybell <bybell@nc.rr.com>
SEE ALSO
(5)
lxt2vcd(1)
vcd2lxt(1)
vcd2lxt2(1)
vzt2vcd(1)
vcd2vzt(1)
vertex(1)
rtlbrowse(1)
twinwave(1)
shmidcat(1)