Apache License 2.0

项目介绍

kleverhq/wavepeek 是一个托管在 GitHub 上的开源项目,主要使用 Rust 编写,采用 Apache License 2.0 许可证,目前获得 73 个 Star、4 次 Fork。

仓库全名
kleverhq/wavepeek
开源许可证
Apache License 2.0
Star 数
73
Fork 数
4
未关闭 Issue
7

README 摘要

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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

wavepeek 用什么语言开发?

主要使用 Rust 编写,采用 Apache License 2.0 许可证,目前有 73 个 Star。

wavepeek 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 wavepeek 的源码?

可以直接克隆仓库:git clone https://github.com/kleverhq/wavepeek.git,默认分支为 main;安装与运行步骤见仓库 README。

wavepeek 最近还在维护吗?

仓库最近一次更新为 2 周前,当前有 7 个未关闭 Issue;Star 数为 73,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

🌊 Tool for RTL waveform (VCD/FST) inspection via CLI

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
82
价值分
44
活跃状态
活跃

语言占比

C
C++
Dockerfile
Just
Python
Rust
Shell

Release

贡献者

README

wavepeek

wavepeek banner CI crates.io

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.
  • wavepeek closes this gap with deterministic, bounded, machine-friendly waveform queries.

Quick Start

Install a prebuilt VCD/FST binary.

macOS and Linux:

curl --proto '=https' --tlsv1.2 -LsSf https://kleverhq.github.io/wavepeek/install.sh | sh

Windows PowerShell:

powershell -ExecutionPolicy Bypass -c "irm https://kleverhq.github.io/wavepeek/install.ps1 | iex"

Cargo remains available as a fallback:

cargo install wavepeek
# or from source
cargo install --path .
# or with FSDB support (requires valid $VERDI_HOME)
cargo install wavepeek --features fsdb

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
wavepeek info --waves "$WAVES"

# 2) Discover hierarchy
wavepeek scope --waves "$WAVES" --tree

# 3) Find relevant signals in a scope (--filter is a regex)
wavepeek signal --waves "$WAVES" --scope top.cpu --filter '.*(clk|rst|state).*'

# 4) Sample values at one or more explicit timestamps
wavepeek value --waves "$WAVES" --at 100ns,200ns --scope top.cpu --signals reset_n,state

# 5) Inspect transitions over a time window (--on is a SystemVerilog-like clocking event expression)
wavepeek change --waves "$WAVES" --from 0ns --to 500ns --scope top.cpu --signals state --on 'posedge clk'

# 6) Check a property on selected events (--eval is a SystemVerilog-like logical expression)
wavepeek property --waves "$WAVES" --from 0ns --to 500ns --scope top.cpu --on 'posedge clk' --eval 'ready && !stall' --capture assert

# 7) Extract transfer-like event rows with payload values
wavepeek extract generic --waves "$WAVES" --from 0ns --to 500ns --scope top.pipe --on 'posedge clk' --when 'valid_i && ready_i' --payload data0_i,data1_i

By default, commands print human-readable output. Add --json for strict machine output:

wavepeek info --waves "$WAVES" --json

Chain commands in scripts with jq:

scope="$(wavepeek scope --waves "$WAVES" --json | jq -r '.data[0].path')"
wavepeek signal --waves "$WAVES" --scope "$scope" --json | jq '.data[:5]'

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 -h for compact lookup help
  • wavepeek --help or wavepeek help <command-path...> for detailed top-level reference help
  • wavepeek docs for embedded command guidance, workflows, troubleshooting, reference topics, and export
  • wavepeek schema for packaged JSON output, input and stream contracts
  • wavepeek skill for packaged agent skill Markdown

Development

See CONTRIBUTING.md.

License

Apache-2.0

评论

暂无评论