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)
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 |
schema |
Print canonical JSON schema used by --json output |
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 contractwavepeek skillfor packaged agent skill Markdown
Development
See CONTRIBUTING.md.
License
Apache-2.0