Efabless Logo

GTKWave...

GTKWave VCD/Waveform Viewer

GTKWave VCD/Waveform Viewer

Overview

GTKWave is a free, open-source, fully-featured GUI application for viewing and analyzing a number of signal/data capture formats -- both digital and analog -- as often used in Electronic Design Automation (EDA), including digital and analog circuit simulation dumps and captures from logic analyzers and oscilloscopes.

It is an essential tool for inspecting and tracing what your digital design or analog/mixed-signal circuit is doing, and is available for Linux/Unix systems, Windows, and macOS.

Screenshot of GTKWave showing signal traces

Features

  • Provides a signal browser tree/search with the option to select and scan through your signals/events of interest.
  • Support for many data types, visualizations, and decoders/filters, working at the bit level, nibble/byte/word level, bus level, and more.
  • Supports VCD/EVCD files (IEEE-1364 industry-standard format generated by most Verilog simulators).
  • Supports FST files to handle extremely large designs efficiently.
  • Includes vcd2fst for converting very large VCD files to efficient FST files, as well as many other converters and utilities.
  • Supports GHW, LXT, LXT2, VZT, and other formats.
  • Multiple markers and measures.
  • Saved presets for reusable views and display configuration.
  • Support for digital (binary) values but also 'Z' (high impedance), 'X' (unknown), and 9-value (VHDL) systems.
  • "TwinWave" for viewing two files together.
  • Scripting support.

Details

GTKWave is intended for performing debug tasks on large systems-on-chips and has been used in this capacity as an offline replacement for third-party debug tools. It is 64-bit clean and is ready for the largest of designs given sufficient physical memory.

For Verilog, GTKWave allows users to debug simulation results at both: the net level by providing a bird's eye view of multiple signal values over varying periods of time; and also at the RTL level through annotation of signal values back into the RTL for a given timestep.

GTKWave, as a collection of binaries, comprises two interlocking tools:

  • gtkwave is the waveform analyzer and is the primary tool used for visualization. It provides a method for viewing simulation results for both analog and digital data, allows for various search operations and temporal manipulations, can save partial results (i.e., “signals of interest”) extracted from a full simulation dump, and finally can generate PostScript and FrameMaker output for hard copy.
  • rtlbrowse is used to view and navigate through RTL source code that has been parsed and processed into a stems file by the helper application xml2stems. It allows for viewing of RTL at both the file and module level and when invoked by gtkwave, allows for source code annotation.

In addition, a collection of helper applications are used to facilitate such tasks as file conversions, simulation data mining, RTL parsing, and other data manipulation operations considered outside of the scope of what a visualization tool needs to perform.

Documentation

GTKWave offers comprehensive documentation in PDF format.

Downloading / Installing GTKWave

Ubuntu Linux

To install the gtkwave command and all other utilities:

sudo apt install gtkwave

Windows

The most recent native Windows build of GTKWave (at the time of writing) is 3.3.100:

To obtain and run more recent versions of GTKWave under Windows, either:

  • Install it as a package (or build from source) in WSL
  • Or install it with MSYS2: pacman -S mingw-w64-x86_64-gtkwave
  • Or build and run under Cygwin.

macOS

Install using Homebrew (using GTKWave's own recipe):

brew install gtkwave

Obtaining and building source

Clone the gtkwave repository on GitHub or download source code for GTKWave LTS 3.3.119 directly.

Install dependencies...

  • ...for Ubuntu/Debian:

    sudo apt install \
        build-essential meson gperf flex desktop-file-utils libgtk-3-dev \
        libbz2-dev libjudy-dev libgirepository1.0-dev
    
  • ...for Fedora:

    dnf install \
        meson gperf flex glib2-devel gcc gcc-c++ gtk3-devel \
        gobject-introspection-devel desktop-file-utils tcl
    
  • ...for macOS:

    brew install \
        desktop-file-utils shared-mime-info \
        gobject-introspection gtk-mac-integration \
        meson ninja pkg-config gtk+3
    

Build GTKWave:

meson setup build
meson compile -C build

Summary

Catalog ID

GTKWAVE VCD/WAVEFORM VIEWER

Provider

Community

Vendor

GTKWave

Category

Digital EDA

Price & Licensing

Pricing

Free

Attachments

Cover Image

GTKwave.jpg