Reading waveforms

How the RTL++ waveform dock draws single bits, buses, state names, unknown X and floating Z values, and how to change how a bus reads.

The dock opens after a run with every signal under the testbench, one lane each, named on the left. ⌘J hides and shows it, and dragging its top edge resizes it.

One bit
A line between low and high.
A bus
Its value written in each segment, with a short slant at each change.
Unknown, x
A red hatched band, on a bit or on any part of a bus.
Floating, z
A dashed line at mid level.
Too many changes to draw
One mark per pixel, so a fast clock reads as solid activity, not noise.

Every lane carries its name, so no signal is told apart by colour alone. With the cursor placed, the value at the cursor sits beside each name.

How a bus reads

Click the value beside a bus, or right click its name, to choose: Hex, Decimal, Signed, Binary, ASCII, Names. A bus of an enumerated type reads by its state names, taken from your code, and Names is its first choice. The choice carries over to the next run.

Finding a signal

Click a name to select its lane; the bracket keys then follow that signal's edges. Choosing a signal in the command bar, or Add to waveforms on a signal in the Hierarchy, selects its lane and scrolls to it.