The signal viewer
Live, GPU-drawn waveforms of the running simulation: navigation, cursors, radixes, analog traces and deposits.
The viewer opens with each debug session, or with HDL Studio: Open Signal Viewer. It shows every signal of the elaborated design, streamed while the simulation runs, and is drawn with WebGL 2.
counter_tb: F fits, a click places the cursor, → jumps between edges, + zooms, a scope expands, A toggles an analog trace.Navigating#
| Input | Does |
|---|---|
| expand a scope in the left pane | adds its signals |
| Ctrl+wheel | zooms around the pointer |
| Shift+wheel, or drag | pans |
| double-click the waves | zooms in |
| click | places the cursor; the values in the left pane are those at the cursor |
| ← / → | jump between edges of the selected signal |
| Esc | removes the cursor |
| F | fits the whole run |
| L | toggles Live: follow the simulation |
While debugging, the debugger’s time is drawn as a marker distinct from the cursor, and the setting hdl.viewer.followCursor keeps it in view while you step.
Values and analog traces#
- The radix select (and
hdl.viewer.radix) shows vectors in hex, binary, unsigned or signed. - A, or the ∿ next to a name, turns the selected signal into an analog trace: off, steps, lines. Vectors are read as unsigned, or as two’s complement with the signed radix.
- Double-click a signal name to deposit a value into the running simulation.
Recording and export#
- VCD in the toolbar (or HDL Studio: Export Recorded Signals as VCD…) writes the recording for GTKWave or another tool.
- HDL Studio: Simulate Current File with Live Signals runs a testbench with the viewer and without the debugger.
hdl.viewer.maxTransitions(default 2,000,000) caps the value changes kept in memory; the oldest are dropped first.
What the live viewer can see#
Live signals are read through GHDL’s VPI, which exposes bits, std_logic, booleans and vectors of them. Integers, reals, enumerations and records do not appear live; GHDL’s VCD writer has the same view of the design. For those, record a GHW file: see Waveform files.