Waveform MCP Server
MCP (Model Context Protocol) server for RTL waveform analysis using WAL (Waveform Analysis Language).
Tools
get_signal_list
Get hierarchical list of signals from waveform file with optional regex filtering.
waveform_file(required): Path to waveform filepattern(optional): Regex pattern to filter signals
Example:
{"tool": "get_signal_list", "arguments": {"waveform_file": "sim.vcd", "pattern": "cpu.*"}}
get_signal_transitions
Extract signal transitions within specified time ranges.
waveform_file(required): Path to waveform filesignal_name(required): Full signal namestart_time(optional): Start time, default 0end_time(optional): End time, default end of simulation
Example:
{"tool": "get_signal_transitions", "arguments": {"waveform_file": "sim.vcd", "signal_name": "clk", "start_time": 0, "end_time": 100}}
get_waveform_length
Get the total simulation length/duration.
waveform_file(required): Path to waveform file
Example:
{"tool": "get_waveform_length", "arguments": {"waveform_file": "sim.vcd"}}
execute_wal_expression
Execute WAL expressions for advanced waveform analysis.
waveform_file(required): Path to waveform fileexpression(required): WAL expression to execute
Example:
{"tool": "execute_wal_expression", "arguments": {"waveform_file": "sim.vcd", "expression": "(find (= clk 1))"}}
get_wal_help
Get comprehensive WAL documentation and syntax reference.
topic(optional): Help topic ('overview', 'functions', 'examples', 'debugging', 'syntax')
Example:
{"tool": "get_wal_help", "arguments": {"topic": "examples"}}
get_wal_examples
Generate signal-specific WAL examples for your waveform.
waveform_file(required): Path to waveform file
Example:
{"tool": "get_wal_examples", "arguments": {"waveform_file": "sim.vcd"}}
Supported Formats
- VCD (Value Change Dump)
- FST (Fast Signal Trace)
- Other formats supported by WAL
Credits
Built on WAL (Waveform Analysis Language), a domain-specific language for hardware waveform analysis. See the WAL website for more information.
Installation
pip install -e .
Development
To set up a development environment, install the dev dependencies:
pip install -e .[dev]
Testing
To run the test suite:
pytest
Usage
Add to your MCP client configuration:
{
"mcpServers": {
"waveform": {
"type": "stdio",
"command": "waveform-mcp",
"args": []
}
}
}
For WAL expression syntax and advanced examples, see the WAL documentation.
Requirements
- Python 3.10+
cmake(for FST support)- WAL (Waveform Analysis Language) >= 0.8.0
- MCP Python SDK >= 1.0.0
License
BSD 3-Clause License. See LICENSE for details.