Who it is forAn RTL reviewer or designer who wants to understand a block's logic before the testbench or a simulation run exists.
The problemReading a large RTL block by hand to find every assignment to a signal and the conditions guarding it is slow and error prone.
The outcomeFor a chosen signal, each driver with its type, source file and line, statement snippet, source of the right-hand value, and the gating conditions that control it.
What you need first
- Linux x86_64, where the Python dependencies ship as prebuilt wheels (other platforms need pylibfst built from source)
- Python 3.10 to 3.13
- A simulation waveform (.fst or .vcd) and the same filelist used to run the simulation
- An MCP-capable agent such as Claude Code, Codex, Cursor or Gemini CLI, or a terminal for the CLI
Steps
pip install wave-mcppython examples/static_analysis/run_demo.pyto see the static analysis on the bundled UART design- Call the
open_static_sessiontool with your top module and filelist_path, with no waveform - Call the
signal_driverstool on the signal you want to review - Call
signal_faninon the same signal to see what feeds it
Prompt for your agent
Using the wave-mcp MCP server, call open_static_session with top <top_module> and filelist_path <filelist>, then call signal_drivers and signal_fanin on <signal_path>. Return every driver with its file, line and gating conditions, and list the signals that feed it. Verify that the line numbers match the source file.
Caveat. Value and trace tools return a needs-waveform message in static mode, so this use case covers structure only and not runtime behavior.
Use this in your AI agent
Ask your agent
Using the Deduped MCP, get the setup steps for Tencent/wave-mcp and "Review signal drivers and gating conditions before simulating"
Add Deduped to Claude Code once
claude mcp add --transport http deduped https://dedupedai.com/mcp
Every Monday: the 5 hottest repos and exactly how to use them. Free, one email a week, unsubscribe anytime.
Get them freeShare: X LinkedIn Hacker News Email Copy link
Third-party repos we don't own. AI-written use cases can be wrong. Disclaimer