Skip to content

v0.2.0

Choose a tag to compare

@xxin0816 xxin0816 released this 02 Sep 11:32
· 29 commits to main since this release

wave-mcp v0.2.0

浏览器波形查看器、pass/fail 波形对比、FSDB 输入。工具数 27 到 34。

安装

pip install "wave-mcp[viewer]"        # 含波形查看器
pip install wave-mcp                  # 仅分析工具

查看器资产是独立包(wave-mcp-viewer-assets,EUPL-1.2),因此主包保持 MIT。
不用 PyPI 也可以:下载本 Release 的 wave_mcp_viewer_assets-0.25.6-*.whl 装上,
或解开后用 WAVE_MCP_VIEWER_ASSETS 指向资产目录。

主要变化

浏览器波形查看器。 open_wave_view 把 session 渲染成真正的波形 GUI(Surfer 编到
WASM,由 surver 流式喂数据),agent 可以把发现的问题直接摆给你看,而不是用文字描述。
update_wave_view 原地改视图(信号、分组、颜色、进制、游标、marker、视口、分析说明),
get_view_state 读回用户手动改过什么,双向闭环。39GB FST 实测打开 114 到 339ms。

视图生命周期。 list_wave_views / close_wave_view 管理已开视图,流式后端按波形文件
集共享并引用计数,关掉一个视图不会切断另一个还在读同一份波形的视图。默认上限 8 个并发视图
WAVE_MCP_MAX_VIEWS),长批量跑不会堆积进程。端口可用 WAVE_MCP_VIEWER_PORT_BASE
钉在 64 端口窗口内,一条 ssh -L 规则就能一直用。

pass/fail 对比。 diff_waveforms 定位同一设计两次运行的首个分歧点,给出逐信号首次
差异时刻与比较覆盖率。

FSDB 输入。 prepare_session 直接吃 .fsdb,自动调自带的 fsdb2fst 转换(无 VCD
中间文件),大文件可用 fsdb_scopes / fsdb_signals_file 切片。转换只需本机有 Verdi 的
FsdbReader 运行库,运行时不占 license。在 MCP 配置里给出 VERDI_HOME 即可,转换器
首次使用时自动构建并缓存到用户目录。

Xcelium 直出 FST。 通过 fstdumper VPI 插件让 xrun 在仿真时直接写 FST,零转换、免商用
波形 license,含针对 Xcelium 的五项修复补丁。适用范围与硬限制(generate/task 子 scope
不可遍历)在指南里写明。

转换缓存。 VCD 与 FSDB 转换产物落在源波形旁并跨 session 复用,缓存键含源文件身份与
切片参数,换了范围不会误用旧产物。

离线部署。 一条命令产出加密网 bundle 矩阵(glibc 2.17 / 2.28),自带独立 Python 3.11,
目标机不需要 docker,也不需要升级系统 Python。CentOS 7 实测通过。

修复

查看器的 /index.html 抢占了 Surfer WASM 入口导致波形区空白;update_wave_view
marker 参数顺序颠倒导致落在错误时刻;HTTP server 关闭时泄漏监听 socket;service worker
在 range 请求失败时返回 undefined 卡住流式传输;多词信号分组名被波形后端静默丢弃导致
分组标题不显示。

校验和

见本 Release 附件 SHA256SUMS.txt

完整变更记录见 CHANGELOG.md