article
README
🚀 Waveform MCP 服务器
Waveform MCP 服务器是一个使用 WAL(波形分析语言)进行 RTL 波形分析的 MCP(模型上下文协议)服务器,能够帮助用户高效地对 RTL 波形进行各种分析操作。
🚀 快速开始
要使用 Waveform MCP 服务器,你可以按照以下步骤进行操作:
- 安装服务器(具体安装步骤见下方“📦 安装指南”)。
- 配置 MCP 客户端(具体配置方法见下方“💻 使用示例”)。
- 利用提供的工具进行波形分析。
✨ 主要特性
- 丰富的工具集:提供了多种工具,如获取信号列表、提取信号转换、获取波形长度、执行 WAL 表达式等,满足不同的波形分析需求。
- 多格式支持:支持 VCD(值变更转储)、FST(快速信号跟踪)等多种波形文件格式,以及 WAL 支持的其他格式。
- 与 WAL 集成:基于 WAL(波形分析语言)构建,可借助 WAL 的强大功能进行高级波形分析。
📦 安装指南
常规安装
pip install -e .
开发环境安装
若要搭建开发环境,需安装 dev 依赖项:
pip install -e .[dev]
💻 使用示例
基础用法
配置 MCP 客户端
将以下内容添加到你的 MCP 客户端配置中:
{
"mcpServers": {
"waveform": {
"type": "stdio",
"command": "waveform-mcp",
"args": []
}
}
}
高级用法
使用各种工具进行波形分析
以下是各个工具的使用示例:
get_signal_list
获取波形文件中信号的分层列表,并可选择使用正则表达式进行过滤。
waveform_file(必需):波形文件的路径pattern(可选):用于过滤信号的正则表达式模式
示例:
{"tool": "get_signal_list", "arguments": {"waveform_file": "sim.vcd", "pattern": "cpu.*"}}
get_signal_transitions
提取指定时间范围内的信号转换。
waveform_file(必需):波形文件的路径signal_name(必需):完整的信号名称start_time(可选):开始时间,默认为 0end_time(可选):结束时间,默认为仿真结束时间
示例:
{"tool": "get_signal_transitions", "arguments": {"waveform_file": "sim.vcd", "signal_name": "clk", "start_time": 0, "end_time": 100}}
get_waveform_length
获取总仿真长度/持续时间。
waveform_file(必需):波形文件的路径
示例:
{"tool": "get_waveform_length", "arguments": {"waveform_file": "sim.vcd"}}
execute_wal_expression
执行 WAL 表达式以进行高级波形分析。
waveform_file(必需):波形文件的路径expression(必需):要执行的 WAL 表达式
示例:
{"tool": "execute_wal_expression", "arguments": {"waveform_file": "sim.vcd", "expression": "(find (= clk 1))"}}
get_wal_help
获取全面的 WAL 文档和语法参考。
topic(可选):帮助主题('overview'、'functions'、'examples'、'debugging'、'syntax')
示例:
{"tool": "get_wal_help", "arguments": {"topic": "examples"}}
get_wal_examples
为你的波形生成特定信号的 WAL 示例。
waveform_file(必需):波形文件的路径
示例:
{"tool": "get_wal_examples", "arguments": {"waveform_file": "sim.vcd"}}
📚 详细文档
支持的格式
- VCD(值变更转储)
- FST(快速信号跟踪)
- 其他 WAL 支持的格式
依赖要求
| 属性 | 详情 |
|------|------|
| 编程语言 | Python 3.10+ |
| 编译工具 | cmake(用于 FST 支持) |
| 依赖库 | WAL(波形分析语言) >= 0.8.0;MCP Python SDK >= 1.0.0 |
开发与测试
- 开发环境:若要搭建开发环境,需安装
dev依赖项:
pip install -e .[dev]
- 测试:若要运行测试套件,可使用以下命令:
pytest
参考资料
- 对于 WAL 表达式语法和高级示例,请参阅 WAL 文档。
- 本项目基于 WAL(波形分析语言) 构建,这是一种用于硬件波形分析的领域特定语言。更多信息请访问 WAL 官网。
📄 许可证
本项目采用 BSD 3 - 条款许可证。详情请参阅 LICENSE。
微信扫一扫