|
"http://www.w3.org/TR/REC-html40/loose.dtd">
Welcome to GTKWave
Please note that this documentation is currently out of
synch with this GTKWave release
GTKWave is a fully featured GTK+
v1.2 based wave viewer for Unix and Win32 which reads
LXT files
as well as standard Verilog VCD/EVCD files and allows
their viewing.
A sample trace with the Thin Ice theme and user-defined colors.
Online Help
Online help is available for every menu function in GTKWave. In order to access
online help, select Help-Wave Help from the menu and then select any menu
option in order to see the menu option's description. Click the Close Help
button in the help requester to revert to normal GTKWave menu operation.
What follows below is the listing of every menu item description.
File Menu
Open New Viewer will open a file requester that will ask for the name of a VCD or AET file to view. This will fork off a new
viewer process. (Unix only.)
Print To File will open up a requester that will allow you to select print options (PS or MIF; Letter, A4, or Legal; Full or Minimal).
After selecting the options you want, a file requester will ask for the name of the output file to generate that reflects the current main window
display's contents.
[A sample ps file generated by this option may be grabbed by clicking on the picture below..]
Read Save File will open a file requester that will ask for the name
of a GTKWave save file. The contents of the save file will determine which
traces and vectors as well as their format (binary, decimal, hex, reverse,
etc.) are to be appended to the display. Note that the marker positional
data and zoom factor present in the save file will replace any current
settings.
Write Save File will open a file requester that will ask for the name
of a GTKWave save file. The contents of the save file generated will be the
traces as well as their format (binary, decimal, hex, reverse, etc.) which
are currently a part of the display. Marker positional data and the zoom
factor are also a part of the save file.
Quit exits GTKWave after an additional confirmation requester is given the OK to quit.
|
|
Edit Menu
Set Trace Max Hier sets the maximum hierarchy depth (counting from the
right with bit numbers or ranges ignored) that is displayable for trace
names. Zero indicates that no truncation will be performed (default). Note
that any aliased signals (prefix of a "+") will not have truncated names.
Insert Blank inserts a blank trace after the last highlighted trace. If no
traces are highlighted, the blank is inserted after the last trace. Note
that this function is disabled when Pattern Search is active.
Insert Comment inserts a comment trace after the last highlighted trace. If no
traces are highlighted, the comment is inserted after
the last trace. Note that this function is disabled when Pattern Search is active.
Alias Highlighted Trace only works when at least one trace has been
highlighted. With this function, you will be prompted for an alias name
for the first highlighted trace. After successfully aliasing a trace, the
aliased trace will be unhighlighted. Single bits will be marked with a
leading "+" and vectors will have no such designation. The purpose of
this is to provide a fast method of determining which trace names are real
and which ones are aliases. Note that this function is disabled when
Pattern Search is active.
Remove Highlighted Aliases only works when at least one trace has been
highlighted. Any aliased traces will have their names restored to their
original names. As vectors get their names from aliases, vector aliases
will not be removed. Note that this function is disabled when Pattern
Search is active.
Cut removes highlighted signals from the display and places them in an
offscreen cut buffer for later Paste operations. Cut implicitly destroys
the previous contents of the cut buffer. Note that this function is
disabled when Pattern Search is active.
Paste pastes signals from an offscreen cut buffer and places them in a
group after the last highlighted signal, or at the end of the display if
no signal is highlighted. Paste implicitly destroys the previous contents
of the cut buffer. Note that this function is disabled when Pattern
Search is active.
Expand decomposes the highlighted signals into their individual bits. The resulting bits are converted to
traces and inserted after the last highlighted trace. The original unexpanded traces will be placed in the cut buffer.
It will function seemingly randomly when used upon atomic_vector or real valued single-bit traces. When used upon
multi-bit vectors that contain atomic_vector traces or real valued traces, those traces will expand to their normal
"correct" values, not individual bits. Note that this function is disabled when Pattern Search is active.
Combine Down coalesces the highlighted signals into a single vector named "(Vector)" in a top to bottom
fashion placed after the last highlighted trace. The original traces will be placed in the cut buffer. It will
function seemingly randomly when used upon atomic_vector or real valued single-bit traces. Note that this function is
disabled when Pattern Search is active.
Combine Up coalesces the highlighted signals into a single vector named "(Vector)" in a bottom to top
fashion placed after the last highlighted trace. The original traces will be placed in the cut buffer. It will
function seemingly randomly when used upon atomic_vector or real valued single-bit traces. Note that this function is
disabled when Pattern Search is active.
Reduce Single Bit Vectors decomposes the highlighted traces into their individual bits only if the
highlighted traces are one bit wide vectors. In effect, this function allows single-bit vectors to be viewed as
signals. The resulting bits are converted to traces and inserted after the last converted trace with the pre-conversion
traces being placed in the cut buffer. Note that this function is disabled when Pattern Search is active.
Data Format Submenu
Hex will step through all highlighted traces and ensure that
vectors with this qualifier will be displayed with hexadecimal values.
Decimal will step through all highlighted traces and ensure
that vectors with this qualifier will be displayed with decimal values.
Signed Decimal will step through all highlighted traces and ensure that
vectors with this qualifier will be displayed as sign extended decimal
values.
Binary will step through all highlighted traces and ensure
that vectors with this qualifier will be displayed with binary values.
Octal will step through all highlighted traces and ensure that
vectors with this qualifier will be displayed with octal values.
Right Justify-On will step through all highlighted traces and
ensure that vectors with this qualifier will be displayed right justified.
Right Justify-Off will step through all highlighted traces and
ensure that vectors with this qualifier will not be displayed right
justified.
Invert-On will step through all highlighted traces and ensure
that bits and vectors with this qualifier will be displayed with 1's and
0's inverted.
Invert-Off will step through all highlighted traces and ensure
that bits and vectors with this qualifier will not be displayed with 1's
and 0's inverted.
Reverse Bits-On will step through all highlighted traces and
ensure that vectors with this qualifier will be displayed in reversed bit
order.
Reverse Bits-Off will step through all highlighted traces and
ensure that vectors with this qualifier will not be displayed in reversed
bit order.
|
|
Show-Change All Highlighted provides an easy means of changing trace
attributes en masse. Various functions are provided in a Show-Change
requester.
Show-Change First Highlighted provides a means of changing trace
attributes for the first highlighted trace. Various functions are
provided in a Show-Change requester. When a function is applied, the
trace will be unhighlighted.
Exclude causes the waveform data for all currently highlighted traces to
be blanked out.
Show causes the waveform data for all currently highlighted traces to be
displayed as normal if the exclude attribute is currently set on the
highlighted traces.
Highlight Regexp brings up a text requester that will ask for a regular
expression that may contain POSIX regular expressions. All traces
meeting this criteria will be highlighted.
UnHighlight Regexp brings up a text requester that will ask for a regular
expression that may contain text with POSIX regular expressions. All traces
meeting this criteria will be unhighlighted if they are currently
highlighted.
Highlight All simply highlights all displayed traces.
UnHighlight All simply unhighlights all displayed traces.
|
|
Search Menu
Pattern Search only works when at least one trace is highlighted. A
requester will appear that lists all the selected traces (maximum of 500)
and allows various criteria to be specified for each trace. Searches can
go forward or backward from the primary (unnamed) marker. If the primary
marker has not been set, the search starts at the beginning of the
displayed data ("From") for a forwards search and starts at the end of the
displayed data ("To") for a backwards search.
Signal Search Regexp provides an easy means of adding traces to the display.
Various functions are provided in the Signal Search requester which allow
searching using POSIX regular expressions and bundling (coalescing individual bits
into a single vector). Note that this function is disabled when Pattern
Search is active.
Signal Search Hierarchy
provides an easy means of adding traces to the display in a text based
treelike fashion. Note that this function is disabled when Pattern Search is
active.
Signal Search Tree provides an easy means of adding traces to the display.
Various functions are provided in the Signal Search Tree requester which
allow searching a treelike hierarchy and bundling (coalescing individual
bits into a single vector). Note that this function is disabled when
Pattern Search is active.
Autocoalesce when enabled allows the wave viewer to reconstruct split vectors. Split vectors will be indicated by a "[]"
prefix in the search requesters.
Autocoalesce Reversal causes split vectors to be reconstructed in reverse order (only if autocoalesce is also active). This is necessary with some
simulators. Split vectors will be indicated by a "[]" prefix in the search requesters.
Autoname Bundles On modifies the bundle up/down operations in the
hierarchy and tree searches such that a NULL bundle name is implicitly
created which informs GTKWave to create bundle and signal names based on
the position in the hierarchy.
Autoname Bundles Off modifies the bundle up/down operations in the
hierarchy and tree searches such that a NULL bundle name is not implicitly
created. This informs GTKWave to create bundle and signal names based on
the position in the hierarchy only if the user enters a zero-length bundle
name. This behavior is the default.
Search Hierarchy Grouping when enabled ensures that new members added to the ``Tree Search'' and ``Hierarchy Search'' widgets are added
alphanumerically: first hierarchy names as a group followed by signal names as a group. This is the default and is recommended. When
disabled, hierarchy names and signal names are interleaved together in strict alphanumerical ordering. Note that due to the caching mechanism
in ``Tree Search'', dynamically changing this flag when the widget is active may not produce immediately obvious results. Closing the widget
then opening it up again will ensure that it follows the behavior of this flag.
|
|
Time Menu
Move To Time scrolls the waveform display such that the left border is the
time entered in the requester.
Zoom Submenu
Zoom Amount allows entry of zero or a negative value for the display
zoom. Zero is no magnification.
Zoom Base
allows entry of a zoom base for the zoom (magnification per integer step) Allowable values are 1.5 to 10.0.
Default is 2.0.
Zoom In is used to increase the zoom factor.
Zoom Out is used to decrease the zoom factor.
Zoom Best Fit attempts a "best fit" to get the whole trace onscreen. Note
that the trace may be more or less than a whole screen since this isn't a
"perfect fit." This works much better than it did in previous versions of GTKWave since the zoom amounts
are floating point now. NOTE: You can also use the 3rd mouse button to do a "drag zoom" that allows an extremely fine
granularity for zooming. This is similar to the zooming allowed on HP storage scopes.
Zoom To Start is used to jump scroll to the trace's beginning.
Zoom To End is used to jump scroll to the trace's end.
Undo Zoom is used to revert to the previous zoom value used. Undo only
works one level deep.
|
|
Fetch Size brings up a requester which allows input of the number of ticks
used for fetch/discard operations. Default is 100.
Fetch Right increases the "To" time, which allows more of the AET to be
displayed if the "From" and "To" times do not match the actual bounds of
the AET.
Fetch Left decreases the "From" time, which allows more of the AET to be
displayed if the "From" and "To" times do not match the actual bounds of
the AET.
Discard Right decreases the "To" time, which allows less of the AET to be
displayed.
Discard Left increases the "From" time, which allows less of the AET to be
displayed.
Shift Right scrolls the display window right one tick worth of data. The
net action is that the data scrolls left a tick.
Shift Left scrolls the display window left one tick worth of data. The
net action is that the data scrolls right a tick.
Page Right scrolls the display window right one page worth of data. The
net action is that the data scrolls left a page.
Page Left scrolls the display window left one page worth of data. The net
action is that the data scrolls right a page.
|
|
Markers Menu
Show-Change Marker Data displays and allows the modification of the times
for all 26 named markers. The time for each marker must be unique.
Drop Named Marker drops a named marker where the current primary (unnamed)
marker is placed. A maximum of 26 named markers are allowed and the times
for all must be different.
Collect Named Marker collects a named marker where the current primary
(unnamed) marker is placed if there is a named marker at its position.
Collect All Named Markers simply collects any and all named markers which
have been dropped.
Delete Primary Marker removes the primary marker from the display if
present.
Wave Scrolling On allows movement of the primary marker beyond screen boundaries which causes the wave window to scroll.
Wave Scrolling Off disallows movement of the primary marker beyond screen boundaries.
|
|
View Menu
Show Grid enables the drawing of gridlines in the waveform display if they
are turned off.
Hide Grid disables the drawing of gridlines in the waveform display if
they are turned on.
Show Base Symbols enables the display of leading base symbols ('$' for hex, '%' for binary,
'#' for octal if they are turned off. Base symbols are displayed by default.
Hide Base Symbols disables the drawing of leading base symbols if they are turned on.
Enable Dynamic Resize allows GTKWave to dynamically resize the signal window for you.
This can be helpful during numerous signal additions and/or deletions. This is the default
behavior.
Disable Dynamic Resize disallows GTKWave to dynamically resize the signal window for
you.
Center Zooms configures zoom in/out operations such that all zooms use the center
of the display as the fixed zoom origin if the primary (unnamed) marker is not present,
otherwise, the primary marker is used as the center origin. (Center Zooms the default zoom behavior.)
Left Justified Zooms configures zoom in/out operations such that all zooms
use the left margin of the display as the fixed zoom origin.
Toggle Max-Marker allows you to switch between the maximum time and
marker time for display in the upper right corner of the main window.
Default behavior is that the maximum time is displayed.
Enable Constant Marker Update- allows GTKWave to dynamically show the
changing values of the traces under the primary marker while it is being
dragged across the screen. This works best with dynamic resizing
disabled.
Disable Constant Marker Update- restricts GTKWave to only update the trace
values when the left mouse button is initially pressed then again when it
is released. This is the default behavior.
Draw Flatcapped Vectors- draws vector transitions that have sharp edges. This is
the default.
Draw Roundcapped Vectors- draws vector transitions that have sloping edges.
Left Justify Signals- draws signal names flushed to the left border of the signal window.
Right Justify Signals- draws signal names flushed to the right ("equals") side of the signal window.
Zoom Pow10 Snap- snaps time values to a power of ten boundary when active. Fractional zooms are
internally stored, but what is actually displayed will be rounded up/down to the nearest power of 10.
This only works when the ticks per frame is greater than 100 units.
Full Precision- does not round time values when the number of ticks per pixel onscreen is greater than 10 when active. The
default is that this feature is disabled.
|
|
Help Menu
Wave Help is already active. It's this window. (To exit, simply hit the
"Close Help" button at the bottom of the window.)
Wave Version merely brings up a requester which indicates the current
version of this program.
|
|
|
|
Environment Customization
Customizing your environment in gtkwave is quite easy with the .gtkwaverc file. The search
path for the file is first the current working directory then the effective user's home directory.
It is simply a series of variable definitions, one per line, which modify the behavior of specific
features in GTKWave. A sample .gtkwaverc file that works well with modelsim may be found
in the examples/vcd_mti directory. Note that you will probably want to edit the file so that
the max_hier is 0 (infinite).
The format for each line is:
variable value
...where at least one space separates the case insensitive variable name from its value. (NOTE: multiple word variable names will have an
underscore between words and you may substitute the case insensitive strings of ON and any Y prefixed word for the value of
1 [enable feature], and OFF and any N prefixed word for the value of 0 [disable feature].)
Lines that start with # are considered comment lines and are ignored.
Currently supported variables are listed in the table below...
Environment Variables
anna_compatibility- A nonzero value indicates that the time value in an .aet
format trace should be divided by ten in order to present the same display as anna (default). A zero value indicates that the time value should be taken literally.
append_vcd_hier- Allows the specification of a prefix hierarchy for VCD files. This can be done in "pieces," so
that multiple layers of hierarchy are prepended to symbol names with the most significant addition occurring first (see .gtkwaverc in the examples/vcd directory). The intended use of this is to have the ability to add "project"
prefixes which allow easier selection of everything from the tree hierarchy.
atomic_vectors- Speeds up vcd loading and takes up less memory. The downside is that atomic vectors are
treated internally as a single bit and can't be coalesced into larger vectors or split up. Because of this single bit nature,
the bundle down and bundle up operations when used in
Signal Search Regexp, Signal Search Hierarchy, and Signal Search Tree will perfom seemingly
unpredictably.
Note that savefiles are
largely incompatible between atomic and non-atomic modes (i.e., signal information is stored differently). This variable
normally defaults to "on" and it is suggested that it remain there unless vector splitting is a necessity.
autocoalesce- A nonzero value enables autocoalescing of VCD vectors when applicable. This may be
toggled dynamically during wave viewer usage.
autocoalesce_reversal causes split vectors to be reconstructed in reverse order (only if autocoalesce is also active).
autoname_bundles- A nonzero value indicates that
GTKWave will create its own bundle names rather than prompting the user for them.
Environment Variables for Color
The colors available to the wave window graphics contexts are
also adjustable by listing one of the following color variables trailed by at least one space then a six digit hex RGB number
(e.g., color_back ffffff). Additionally, standard X11 color value strings can be used (e.g.,
color_back steel blue), but don't put them in quotation marks as spaces are handled properly:
color_back- background color
color_grid- grid color (use Alt-G/Shift-Alt-G to show/hide grid)
color_trans- trace color when transitioning
color_high- trace color when high
color_low- trace color when low
color_mid- trace color when floating ("Z")
color_x- trace color when undefined ("X")
color_xfill- trace color (inside of box) when undefined ("X")
color_vbox- vector color (horizontal)
color_vtrans- vector color (verticals/transitions)
color_value- text color for vector values
color_time- text color for timebar
color_timeb- text color for timebar's background
color_umark- color of the unnamed (primary) marker
color_mark- color of the named markers
...if the above variables are unspecified, the defaults (standard GTK color shadings) are used on a per-unspecified variable basis.
|
|
constant_marker_update- A nonzero value indicates that the values
for traces listed in the signal window are to be updated constantly when the left mouse button is being held down rather than
only when it is first pressed then when released (which is the default).
convert_to_reals- Converts all integer and parameter VCD declarations to real-valued ones when set to a nonzero/yes value.
The positive aspect of this is that integers and parameters will take up less space in memory and will automatically display in decimal
format. The negative aspect of this is that integers and parameters will only be displayable as decimals and can't be bit reversed, inverted, etc.
disable_tooltips- A nonzero value indicates that tooltip pop up bubbles should be
disabled. A zero value indicates that tooltips should be active (default).
do_initial_zoom_fit- A nonzero value indicates that the trace should
initially be crunched to fit the screen. A zero value indicates that the initial zoom should be zero
(default).
dynamic_resizing- A nonzero value indicates that dynamic resizing should be initially enabled (default). A zero value indicates
that dynamic resizing should be initially disabled.
enable_ghost_marker- lets the user turn on/off the ghost marker during primary marker dragging.
Default is enabled.
enable_horiz_grid- A nonzero value indicates that when grid drawing is enabled,
horizontal lines are to be drawn. This is the default.
enable_vcd_autosave- causes the vcd loader to automatically generate a .sav file (vcd_autosave.sav) in the cwd
if a save file is not specified on the command line. Note that this mirrors the VCD $var defs and no attempt is made to coalesce split
bitvectors back together.
enable_vert_grid- A nonzero value indicates that when grid drawing is enabled,
vertical lines are to be drawn. This is the default. Note that all possible combinations of
enable_horiz_grid and enable_vert_grid values are acceptable.
force_toolbars- When enabled, this forces everything above the signal and wave windows to be rendered as toolbars. This allows
for them to be detached which allows for more usable wave viewer space. By default this is off.
hier_delimeter- This allows characters other than '/'
to be used to delimit levels in the hierarchy. Only the first character in the
value is significant.
hier_max_level- Sets the maximum hierarchy depth
(from the right side) to display for trace names. Note that a value of zero
displays the full hierarchy name.
hpane_pack- A nonzero value indicates that the horizontal pane should be constructed using the gtk_paned_pack functions
(default and recommended). A zero value indicates that gtk_paned_add will be used instead.
initial_window_x- Sets the size of the initial width of the wave viewer window. Values less than or equal to zero will set
the initial width equal to -1 which will let GTK determine the minimum size.
initial_window_y- Sets the size of the initial height of the wave viewer window. Values less than or equal to zero will set
the initial width equal to -1 which will let GTK determine the minimum size.
left_justify_sigs- When nonzero, indicates that the signal window signal name justification should default to
left, else the justification is to the right (default).
page_divisor- Sets the scroll amount for page left
and right operations. (The buttons, not the hscrollbar.) Values over 1.0
are taken as 1/x and values equal to and less than 1.0 are taken
literally. (i.e., 2 gives a half-page scroll and .67 gives 2/3). The
default is 1.0.
ps_maxveclen- sets the maximum number of characters that can
be printed for a value in the signal window portion of a postscript file (not including
the net name itself). Legal values are 4 through 66 (default).
show_base_symbols- A nonzero value (default) indicates that the numeric
base symbols for hexadecimal ('$'), binary ('%'), and octal ('#') should be rendered. Otherwise
they will be omitted.
show_grid- A nonzero value (default) indicates that a grid should be drawn behind the traces.
A zero indicates that no grid should be drawn.
use_aet- A nonzero value indicates that if a suffix match on .aet, .vcd, .dmp, and their gzipped counterparts is not
encountered, default to using the aet loader.
use_big_fonts- A nonzero value indicates that any text rendered
into the wave window will use fonts that are four points larger in size than normal. This
can enhance readability. A zero value indicates that normal font sizes should be used.
use_full_precision- does not round time values when the number of ticks per pixel onscreen is greater than 10 when active. The
default is that this feature is disabled.
use_larger_scale- A nonzero value indicates that the hashmarks
used for the timescales should be based around 50 pixels rather than 40/48 pixels.
use_maxtime_display- A nonzero value indicates that the
maximum time will be displayed in the upper right corner of the screen.
Otherwise, the current primary (unnamed) marker time will be displayed. This
can be toggled at any time with the Toggle Max-Marker menu option.
use_nonprop_fonts- Allows accelerated redraws of the
signalwindow that can be done because the font width is constant. Default is
off.
use_roundcaps- A nonzero value indicates that
vector traces should be drawn with rounded caps rather than perpendicular
ones. The default for this is zero.
use_scrollbar_only- A nonzero value indicates that
the page, shift, fetch, and discard buttons should not be drawn (i.e.,
time manipulations should be through the scrollbar only rather than
front panel buttons).
The default for this is zero.
use_vcd- A nonzero value indicates that if a suffix match on .aet, .vcd, .dmp, and their gzipped counterparts is not
encountered, default to using the VCD loader if use_aet is not selected. Note that if both use_aet and use_vcd
are both set to zero, VCD is used by default.
vcd_explicit_zero_subscripts- indicates that signal names should be stored internally as name.bitnumber when enabled.
When disabled, a more "normal" ordering of name[bitnumber] is used. Note that when disabled, the Bundle Up and Bundle Down
options are disabled in the Signal Search Regexp, Signal Search Hierarchy, and Signal Search Tree options. This is necessary
as the internal data structures for signals are represented with one "less" level of hierarchy than when enabled and those functions would not work
properly. This should not be an issue if atomic_vectors are enabled.
Default for vcd_explicit_zero_subscripts is disabled.
vector_padding- indicates the number of pixels of extra whitespace that should be
added to any strings for the purpose of calculating text in vectors. Permissible values are 0 to
16 with the default being 4.
wave_scrolling- a nonzero value enables scrolling by dragging the marker off the left or right sides of the wave window.
A zero value disables it.
zoom_base- allows setting of the zoom base with a value between 1.5 and 10.0. Default
is 2.0.
zoom_center- a nonzero value enables center zooming, a zero value disables it.
zoom_pow10_snap- corresponds to the Zoom Pow10 Snap menu option listed above. Default for this is disabled (zero).
|
|
Even more customization is planned on being added incrementally and new features will be available in the future.
|
|
Known Bugs
AIX requires -bmaxdata:0x80000000 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. 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.
I have a trace that goes out to 45 billion ticks that causes problems.
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.
Caveat Architecture: GTKWave works fine under the x86 version of Linux using glibc, however it is not guaranteed that it will work
properly with all microprocessor architectures, libc variants, or operating systems as it is only regularly tested on RedHat Intel and AIX for the
PowerPC. Every attempt has been made to write portable bug-free code, but compatibility issues occasionally manifest themselves on one architecture but not
another due to issues such as varying machine word lengths, virtual memory page sizes, and memory allocation algorithms. Crashes that occur on a
specific operating system but not another given the same sequence of operations should be considered reportable bugs.
|
|
20jul00
bybell@daggit.pagecreator.com /
bybell@xxedgexx.com
|