mmv-dspic:为 DeepSeek Harness 接入 MATLAB / ModelSim / Vivado 的本地 EDA 工具链

前言

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:超时被杀时为 null
  • timedOut
  • durationMs
  • stdout
  • stderr
  • truncated

非零退出码是正常领域结果,不是工具错误。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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜