How to use DVT IDE Waveform Viewer in VS Code
Overview
This video walks you through the basic functionality of the DVT Waveform Viewer and showcases its seamless integration within the IDE, such as adding signals and their drivers directly from the editor or Design Hierarchy view and inspecting signal values instantly via editor tooltips and the Inspect View.
The video was made using DVT IDE version 25.3.21.
Details
To visualize and analyze waveforms using the Waveform Viewer in DVT IDE simply open a VCD file.
User interface overview
The UI features a vertical toolbar with various control knobs such as zoom and edge navigation. The button at the bottom toggles the visibility of the design panel, which presents the hierarchy as read from the VCD file. From here you can add to the signals panel which shows all the signals currently selected for display. The waveform canvas presents the actual waveforms.
DVT IDE integration
However in most cases you won’t actually need to use the design panel, thanks to the deep integration of the waveform viewer with DVT IDE. For example, double-clicking a signal jumps to the source code. Conversely, you can add any signal to the waveform right from the editor's context menu. Furthermore you can add a signal along with its drivers, a very common operation when tracing the source of an unexpected value in the waveform.
At any time you can check in the status bar which VCD file is currently associated with the project. Simply click the button to reveal the waveform viewer. By the way, when we opened the VCD file earlier, it was automatically set as the current waveform for our project, but you can also manually control this using the toolbar button.
Now let's take a closer look at the signal we've just added - it is a structured type. Instead of showing nameless bits, we leverage the compilation database to show its actual members. Another convenient way to add signals is from the Design Hierarchy View.
Group management and display customization
Note that so far all signals were added under a “default” group, but you can easily create custom ones. Simply use drag and drop to rearrange signals or groups.
By the way, you can tune the waveform presentation even further from the context menu: add separators, change the display radix and color.
Hovering a signal name allows you to see its full hierarchical path which you can also copy to clipboard.
To remove a signal, simply press the delete key.
Working with the waveform canvas
Now let's take a closer look at the canvas.
Click & Drag anywhere in the canvas to move the time window.
Hold Ctrl + scroll to zoom, or Ctrl + Click & Drag to zoom in to a selected time region.
Plain scroll moves the selected signals up and down, in sync with the Signals Panel.
In the canvas, you can add two cursors and any number or markers.
Left-Click to place the primary cursor, right click for the secondary one and middle click for markers.
Note that they snap to signal transitions, and their timestamp is shown in a label on the timeline.
Click & drag the label to move a cursor.
Use the arrow buttons to navigate the changes of the selected signal using the primary cursor.
Values at primary cursor time are shown not only in the signals panel, but even more conveniently in editor tooltips and even in the Inspect view.
Save/restore viewer state
When you close and reopen a waveform, the entire viewer state is automatically restored, including signals, canvas position, zoom level, cursors and markers. You can also export a configuration file, either for later use, to share it with your colleagues, or perhaps to perform a comparative analysis of multiple waveforms.