Introduction¶
The plugin mechanism of DeepSeek Harness (DSH) allows registering local tools for Agent calls. In digital communication IC design, a common workflow involves performing MATLAB algorithm modeling or reference simulation first, then compiling and simulating RTL in ModelSim, and finally completing synthesis, implementation, and bitstream generation in Vivado. If these tools are all installed locally, manually chaining commands can be tedious, and it is difficult for the Agent to stably perceive the exit code, duration, and output of each step.
Below is an introduction to sjscy05/matlab-modelsim-vivado-plugin, package name mmv-dspic, version 0.1.0. It encapsulates MATLAB, ModelSim, and Vivado into a set of mmv_* tools for Agent calls within DSH.
What is it¶
mmv-dspic is a DeepSeek Harness plugin that provides the following digital communication IC design toolchain for the Agent:
- MATLAB: Algorithm modeling / Reference simulation
- ModelSim: RTL compilation / Simulation
- Vivado: Synthesis / Implementation / Bitstream
This plugin executes entirely through locally installed EDA tools, runs within the DeepSeek Harness ecosystem, and relies on the DSH workspace package.
Package metadata is as follows:
- Name:
mmv-dspic - Version:
0.1.0 - Entry:
lib/index.js - Repo name:
matlab-modelsim-vivado-plugin - Maintainer:
sjscy05 dsh bundle patch:./cordis.patch.yml
Declared dependency versions are:
@deepseek-ai/cordis ^4.0.1@deepseek-ai/dsh-tools ^0.1.0-rc.6@deepseek-ai/schemastery ^3.18.1
Core Tools¶
The plugin provides 7 mmv_* tools.
mmv_check_env¶
Detects if MATLAB / ModelSim / Vivado is available and reads version information.
mmv_project_init¶
Initializes the design workspace, including the following directories and templates:
matlab/rtl/sim/scripts/reports/
mmv_matlab_run¶
Runs .m scripts or inline expressions using matlab -batch and captures output and exit codes.
mmv_modelsim_compile¶
Compiles Verilog / SystemVerilog / VHDL source code into the work library using vlog / vcom. vlib will automatically create the library.
mmv_modelsim_simulate¶
Runs batch simulation using do-files or inline commands with vsim -c, capable of recording waveforms.
mmv_vivado_run¶
Runs arbitrary Tcl scripts using vivado -mode batch -notrace.
mmv_vivado_flow¶
One-click generates and runs the standard Tcl flow for “Synthesis -> Implementation -> Bitstream”.
Runtime tools return a unified result, including the following fields:
exitCode:nullwhen killed due to timeouttimedOutdurationMsstdoutstderrtruncated
A non-zero exit code is a normal domain result, not a tool error. The Agent needs to check exitCode to determine success or failure.
Installation and Enablement¶
Prerequisites¶
It is recommended to use the plugin as a folder that can be placed in checkouts, keeping the folder name:
matlab-modelsim-vivado-plugin
dsh plugin add will link the current directory using the link: protocol, but will not automatically install npm dependencies. Therefore, it must be built and used within the deepseek-harness checkout. Independent installation via pure npm / git or usage outside of a checkout is not currently supported.
Method 1: Web Overlay¶
Run from the root of the deepseek-harness checkout:
pnpm dsh web --patch ./matlab-modelsim-vivado-plugin/cordis.yml
Then open:
http://127.0.0.1:3080
After the above steps, the plugin will load as a Web Overlay.
Method 2: Bundle Installation¶
First build lib/:
node node_modules/typescript/bin/tsc -b matlab-modelsim-vivado-plugin/tsconfig.build.json
Install into the web profile:
pnpm dsh plugin --profile web add ./matlab-modelsim-vivado-plugin
Start:
pnpm dsh web
You can also use:
dsh --profile web
Verify if the layer is active:
pnpm dsh --profile web --dump-config
It should appear in the output:
# == mmv-dspic
Method 3: Temporary Profile Verification¶
Install using a temporary profile:
pnpm dsh plugin --profile mmv-test add ./matlab-modelsim-vivado-plugin
Check the configuration layer:
pnpm dsh --profile mmv-test --dump-config
It should appear in the output:
# == mmv-dspic
Typical Usage¶
The recommended workflow for digital communication IC design is as follows:
- Call
mmv_check_envto confirm that MATLAB / ModelSim / Vivado is available. - Call
mmv_project_initto initialize the workspace and prepare directories likematlab/,rtl/,sim/,scripts/, andreports/. - Call
mmv_matlab_runto complete algorithm modeling or reference simulation in MATLAB. - Call
mmv_modelsim_compileto compile Verilog / SystemVerilog / VHDL source code. - Call
mmv_modelsim_simulateto run batch simulation using do-files or inline commands, with the option to record waveforms. - After the simulation passes, call
mmv_vivado_flowto execute synthesis, implementation, and bitstream generation. - When custom Tcl scripts are needed, call
mmv_vivado_run.
Development and Verification¶
You can perform type checking and unit tests within the deepseek-harness checkout.
Type checking:
node node_modules/typescript/bin/tsc -b matlab-modelsim-vivado-plugin/tsconfig.json
Unit tests:
node node_modules/vitest/vitest.mjs run --config matlab-modelsim-vivado-plugin/vitest.config.ts
Use Cases and Notes¶
This plugin is suitable for developers who have MATLAB, ModelSim, and Vivado installed locally and wish to directly call EDA commands within a DSH Agent. It is positioned as a local development plugin.
Please note:
- The process is spawned directly by the plugin, bypassing DSH’s shell approval / sandbox policies.
- The plugin runs with the permissions of the current DSH process; source code and licenses should be checked before installation.
- Current documentation does not provide license information.
lib/is build output and is not committed to the repository; you need to build it first before using Method 2.- Runtime tools are not integrated into the
ctx.jobsbackground task mechanism; MATLAB / Vivado long tasks run in the foreground, withtimeoutMsserving as the fallback. - The Tcl generated by
mmv_vivado_flowassumesread_verilog/read_vhdl/read_xdcread file lists directly; it does not include IP cores or strategy options beyondsynth_design. For complex projects, it is recommended to usemmv_vivado_runwith handwritten Tcl. - The plugin does not provide post-processing tools such as waveform viewers or report parsing; the Agent reads logs and report text directly from the tool output.
Conclusion¶
The value of mmv-dspic lies in organizing the local command-line workflows of MATLAB, ModelSim, and Vivado into standard tools callable by the DSH Agent: first probing the environment, then initializing the workspace, and then proceeding in the order of algorithm simulation, RTL simulation, and FPGA implementation, ensuring a unified result structure is obtained at every step.
GitHub:
https://github.com/sjscy05/matlab-modelsim-vivado-plugin
Directory page clues (from plugin clues, not found in the body of scraped materials, please verify yourself before use):
https://www.skillhub.cn/plugins/sjscy05/matlab-modelsim-vivado-plugin