wavepeek
wavepeek is a deterministic CLI for inspecting RTL waveforms (.vcd, .fst, .fsdb) in scripts, CI, and LLM-driven workflows.
Why
- In RTL debugging, waveforms are the primary artifact, but most existing tooling is GUI-first.
- LLM agents and CI jobs need short, composable commands instead of interactive navigation.
- Raw dumps (especially large waveform files) are too heavy for direct, repeated analysis in context-limited systems.
wavepeekcloses this gap with deterministic, bounded, machine-friendly waveform queries.
Quick Start
Install a prebuilt VCD/FST binary.
macOS and Linux:
|
Windows PowerShell:
Cargo remains available as a fallback:
# or from source
# or with FSDB support (requires valid $VERDI_HOME)
Prebuilt binaries support VCD/FST.
FSDB support is source-only, Linux x86_64 only, and requires installing with the Cargo feature fsdb and the Synopsys Verdi FSDB Reader SDK.
Run a complete inspection flow:
# 0) Get a dump
# Note: example `.fst` dumps can be downloaded from `rtl-artifacts` releases: https://github.com/kleverhq/rtl-artifacts
WAVES=./dump.fst
# 1) Check dump bounds and time unit
# 2) Discover hierarchy
# 3) Find relevant signals in a scope (--filter is a regex)
# 4) Sample values at one or more explicit timestamps
# 5) Inspect transitions over a time window (--on is a SystemVerilog-like clocking event expression)
# 6) Check a property on selected events (--eval is a SystemVerilog-like logical expression)
# 7) Extract transfer-like event rows with payload values
By default, commands print human-readable output. Add --json for strict machine output:
Chain commands in scripts with jq:
scope=""
|
Agentic Flows
Copy/paste this to your agent:
Check whether `wavepeek` is installed:
wavepeek version
If that succeeds, run:
wavepeek skill
`wavepeek skill` prints the full packaged skill Markdown to stdout. Use that output as the source of truth and install/adapt the skill according to your own skill format and rules.
Commands
| Command | Purpose |
|---|---|
info |
Print dump metadata |
scope |
List hierarchy scopes |
signal |
List signals in a scope with metadata |
value |
Signal values at explicit time point(s) |
change |
Delta snapshots over a time range with event triggers |
property |
Property checks over event triggers with capture modes |
extract |
Get events, handshakes, transfers from synchronous signals |
schema |
Print canonical JSON schemas used by JSON output, JSONL streams, and structured input |
docs |
Browse embedded narrative docs, search topics, and export Markdown |
skill |
Print packaged agent skill Markdown |
help |
Print detailed long help for top-level or nested command paths |
Use progressive disclosure via built-in help and docs:
wavepeek -hfor compact lookup helpwavepeek --helporwavepeek help <command-path...>for detailed top-level reference helpwavepeek docsfor embedded command guidance, workflows, troubleshooting, reference topics, and exportwavepeek schemafor packaged JSON output, input and stream contractswavepeek skillfor packaged agent skill Markdown
Development
See CONTRIBUTING.md.
License
Apache-2.0