前言¶
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