This section starts from where verification engineers actually lose time, not from API names. Each example identifies the failure scene, shows which step the plugin removes, and states what it cannot do.
Plugin
When it is used
Maturity today
Why a plugin
Protocol checker
Interface timeout, scoreboard mismatch, or first-silicon trace replay
Project-ready channel checker
Strong: project protocols, signal roles, and rules change independently of the waveform engine.
X / Z detective
An X/Z appears briefly after reset, recovery, or power transition
Project-ready bounded triage
Moderate: teams can tailor the triage view, but the generic interval index may eventually belong in the core.
Regression failure triage
A regression report and its waveform live in separate systems
Project-ready JUnit workflow
Strong: simulator, farm, and project report formats should not be hard-coded into the waveform core.
1
Protocol checker
Project-ready channel checker
After an interface timeout or scoreboard mismatch, see which rule failed, at what cycle, and on which signal while retaining successful transfers; select a result to jump back to the fault in the waveform. Supplied profiles cover ready/valid, request/acknowledge, AXI4/AXI4-Lite AW/W/B/AR/R and ACE AC/CR/CD channels, AXI4-Stream, APB, AHB-Lite, Avalon-ST/MM, Wishbone B4, and a TileLink decoupled channel.
Production pain
A scoreboard mismatch or timeout says that a transfer failed, but manually reading valid, ready, and every payload sideband rarely tells you which cycle first broke the contract.
Concrete recorded case
The recorded ready/valid fixture changes payload while stalled, accepts one transfer, then drops valid before a later handshake. The plugin reports payload-changed and valid-dropped with exact times, plus the accepted transfer.
Input
A waveform plus an interface scope whose signal leaves match a profile; exact role paths can be overridden.
Select an issue and press Enter/g to reveal its signal and time in the native waveform; o publishes the evidence as a native report.
Scope boundary: This is a channel-level handshake and stability checker, not a complete AXI/ACE/TileLink compliance product. Ordering, bursts, cache, and coherence still need dedicated verification IP or project rules.
Play the real workflow — Protocol checkerPlay the shared headless action — Protocol checker
2
X / Z detective
Project-ready bounded triage
Find every X, Z, or mixed-unknown interval of the selected signal inside the visible range, including its duration and exact value. The scan is paged and stops visibly at its transition budget.
Production pain
After reset or error recovery, a bus can become X for only a short interval. Scrolling a long dump by eye is slow and often starts root-cause analysis at the wrong transition.
Concrete recorded case
The recording selects top.instruction_bus, finds its X interval starting at tick 35 and the following Z interval, then reveals the selected evidence back in the native waveform.
Input
Any selected digital signal in the native signal panel; zoom first to bound the interval of interest.
The panel lists unknown intervals; Enter/g jumps the native signal and waveform cursor to the selected interval.
Scope boundary: It locates unknown intervals; it does not by itself prove which driver introduced the X. After the jump, use svw's native Trace-X/driver evidence for root cause. The scan is limited to the visible range and 2,048 transitions.
Play the real workflow — X / Z detectivePlay the shared headless action — X / Z detective
3
Regression failure triage
Project-ready JUnit workflow
Load a bounded regression-failure report beside the waveform, review assertion, protocol, and unknown-value failures, and jump from the selected test failure to its exact waveform time.
Production pain
A nightly regression may leave hundreds of failures in one tool and waveforms in another. Engineers repeatedly copy test names and timestamps before they can inspect the failing cycle.
Concrete recorded case
The bundled report contains reset, protocol, and unknown-value failures at ticks 120, 245, and 390. The recording selects error_injection and moves the native waveform directly to 390.
Input
JUnit XML whose failing testcases carry an integer svw.time property; an optional JUnit baseline enables new/common/fixed classification.
Scope boundary: JUnit input must carry an explicit integer waveform tick for every failing testcase; wall-clock testcase duration is never guessed as simulation time. Free-form UVM and simulator logs still require an exporter. Files above 4 MiB, 4,096 records, or malformed fields are rejected.
Play the real workflow — Regression failure triagePlay the shared headless action — Regression failure triage
Plugins load only when the user explicitly supplies a manifest; waveform and session files never activate Tcl code. Set SVW_TCLSH when tclsh is not on PATH.