前言¶
DeepSeek Harness(DSH)的插件机制允许把本地工具注册给 Agent 调用。数字通信 IC 设计中,常见链路是先做 MATLAB 算法建模或参考仿真,再在 ModelSim 中编译和仿真 RTL,最后在 Vivado 中完成综合、实现和比特流生成。若这些工具都装在本地,手工串联命令会比较繁琐,Agent 也难以稳定感知每一步的退出码、耗时和输出。
下面介绍 sjscy05/matlab-modelsim-vivado-plugin,包名为 mmv-dspic,版本为 0.1.0。它把 MATLAB、ModelSim 和 Vivado 封装成一组 mmv_* 工具,供 DSH 中的 Agent 调用。
这是什么¶
mmv-dspic 是一个 DeepSeek Harness 插件,为 Agent 提供如下数字通信 IC 设计工具链:
- MATLAB:算法建模 / 参考仿真
- ModelSim:RTL 编译 / 仿真
- Vivado:综合 / 实现 / 比特流
该插件全部通过本地已安装的 EDA 工具执行,运行在 DeepSeek Harness 生态内,并依赖 DSH workspace 包。
包元信息如下:
- 名称:
mmv-dspic - 版本:
0.1.0 - 入口:
lib/index.js - 仓库名:
matlab-modelsim-vivado-plugin - 维护者:
sjscy05 dsh bundle patch:./cordis.patch.yml
声明的依赖版本为:
@deepseek-ai/cordis ^4.0.1@deepseek-ai/dsh-tools ^0.1.0-rc.6@deepseek-ai/schemastery ^3.18.1
核心工具¶
插件提供 7 个 mmv_* 工具。
mmv_check_env¶
探测 MATLAB / ModelSim / Vivado 是否可用,并读取版本信息。
mmv_project_init¶
初始化设计工作区,包含以下目录与模板:
matlab/rtl/sim/scripts/reports/
mmv_matlab_run¶
以 matlab -batch 运行 .m 脚本或内联表达式,并捕获输出与退出码。
mmv_modelsim_compile¶
用 vlog / vcom 把 Verilog / SystemVerilog / VHDL 源码编译进 work 库。vlib 会自动建库。
mmv_modelsim_simulate¶
用 vsim -c 以 do-file 或内联命令运行批处理仿真,可录制波形。
mmv_vivado_run¶
以 vivado -mode batch -notrace 运行任意 Tcl 脚本。
mmv_vivado_flow¶
一键生成并运行“综合 → 实现 → 比特流”的标准 Tcl 流程。
运行类工具返回统一结果,字段包括:
exitCode:超时被杀时为nulltimedOutdurationMsstdoutstderrtruncated
非零退出码是正常领域结果,不是工具错误。Agent 需要检查 exitCode 判断成败。
安装与启用¶
前提¶
推荐把插件作为可放入 checkouts 的文件夹使用,保留文件夹名:
matlab-modelsim-vivado-plugin
dsh plugin add 会用 link: 协议链接本目录,但不会自动安装 npm 依赖。因此必须在 deepseek-harness checkout 内构建并使用。从纯 npm / git 独立安装、脱离 checkout 使用暂不支持。
方式一:Web 覆盖层¶
从 deepseek-harness checkout 根目录运行:
pnpm dsh web --patch ./matlab-modelsim-vivado-plugin/cordis.yml
然后打开:
http://127.0.0.1:3080
经过上面的步骤,插件会以 Web 覆盖层方式加载。
方式二:组合包安装¶
先构建 lib/:
node node_modules/typescript/bin/tsc -b matlab-modelsim-vivado-plugin/tsconfig.build.json
安装进 web profile:
pnpm dsh plugin --profile web add ./matlab-modelsim-vivado-plugin
启动:
pnpm dsh web
也可以用:
dsh --profile web
验证层是否生效:
pnpm dsh --profile web --dump-config
输出中应出现:
# == mmv-dspic
方式三:临时 profile 验证¶
使用临时 profile 安装:
pnpm dsh plugin --profile mmv-test add ./matlab-modelsim-vivado-plugin
检查配置层:
pnpm dsh --profile mmv-test --dump-config
输出中应出现:
# == mmv-dspic
典型用法¶
数字通信 IC 设计推荐流程如下:
1、调用 mmv_check_env,确认 MATLAB / ModelSim / Vivado 可用。
2、调用 mmv_project_init,初始化工作区,准备 matlab/、rtl/、sim/、scripts/、reports/ 等目录。
3、调用 mmv_matlab_run,在 MATLAB 中完成算法建模或参考仿真。
4、调用 mmv_modelsim_compile,编译 Verilog / SystemVerilog / VHDL 源码。
5、调用 mmv_modelsim_simulate,以 do-file 或内联命令运行批处理仿真,并可录制波形。
6、仿真通过后,调用 mmv_vivado_flow,执行综合、实现和比特流生成。
7、需要自定义 Tcl 时,调用 mmv_vivado_run。
开发与验证¶
在 deepseek-harness checkout 内可以做类型检查和单元测试。
类型检查:
node node_modules/typescript/bin/tsc -b matlab-modelsim-vivado-plugin/tsconfig.json
单元测试:
node node_modules/vitest/vitest.mjs run --config matlab-modelsim-vivado-plugin/vitest.config.ts
适用场景与注意¶
这个插件适合本地已经安装 MATLAB、ModelSim、Vivado,并希望在 DSH Agent 中直接调用 EDA 命令的开发者。它定位是本地开发插件。
需要注意:
- 进程由插件直接
spawn,不经过 DSH 的 shell 审批 / 沙箱策略。 - 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
- 当前资料未提供许可证信息。
lib/是构建产物,不入库;使用方式二安装前需要先构建。- 运行类工具未接入
ctx.jobs后台任务机制;MATLAB / Vivado 长任务在前台执行,由timeoutMs兜底。 mmv_vivado_flow生成的 Tcl 假定read_verilog/read_vhdl/read_xdc直接读文件列表;不含 IP 核、synth_design之外的策略选项。复杂工程建议用mmv_vivado_run跑手写 Tcl。- 插件未提供波形查看、报告解析等后处理工具;Agent 直接阅读工具返回的日志与报告文本。
结尾¶
mmv-dspic 的价值在于把 MATLAB、ModelSim、Vivado 的本地命令行流程整理成 DSH Agent 可调用的标准工具:先探测环境,再初始化工作区,然后按算法仿真、RTL 仿真、FPGA 实现的顺序推进,每一步都能拿到统一结构的结果。
GitHub:
https://github.com/sjscy05/matlab-modelsim-vivado-plugin
目录页线索(来自插件线索,未见于已抓取资料正文,使用前请自行核实):
https://www.skillhub.cn/plugins/sjscy05/matlab-modelsim-vivado-plugin