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
羽毛球分组比赛记分
小程序二维码

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

小夜