返回 MCP 目录
public公开dns本地运行

waveform-mcp

基于WAL语言的RTL波形分析MCP服务器,提供波形文件信号提取、时序分析和高级表达式查询功能

article

README

🚀 Waveform MCP 服务器

Waveform MCP 服务器是一个使用 WAL(波形分析语言)进行 RTL 波形分析的 MCP(模型上下文协议)服务器,能够帮助用户高效地对 RTL 波形进行各种分析操作。

🚀 快速开始

要使用 Waveform MCP 服务器,你可以按照以下步骤进行操作:

  1. 安装服务器(具体安装步骤见下方“📦 安装指南”)。
  2. 配置 MCP 客户端(具体配置方法见下方“💻 使用示例”)。
  3. 利用提供的工具进行波形分析。

✨ 主要特性

  • 丰富的工具集:提供了多种工具,如获取信号列表、提取信号转换、获取波形长度、执行 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(可选):开始时间,默认为 0
  • end_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

参考资料

📄 许可证

本项目采用 BSD 3 - 条款许可证。详情请参阅 LICENSE

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端