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: null when killed due to timeout
  • timedOut
  • durationMs
  • stdout
  • stderr
  • truncated

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:

  1. Call mmv_check_env to confirm that MATLAB / ModelSim / Vivado is available.
  2. Call mmv_project_init to initialize the workspace and prepare directories like matlab/, rtl/, sim/, scripts/, and reports/.
  3. Call mmv_matlab_run to complete algorithm modeling or reference simulation in MATLAB.
  4. Call mmv_modelsim_compile to compile Verilog / SystemVerilog / VHDL source code.
  5. Call mmv_modelsim_simulate to run batch simulation using do-files or inline commands, with the option to record waveforms.
  6. After the simulation passes, call mmv_vivado_flow to execute synthesis, implementation, and bitstream generation.
  7. 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.jobs background task mechanism; MATLAB / Vivado long tasks run in the foreground, with timeoutMs serving as the fallback.
  • The Tcl generated by mmv_vivado_flow assumes read_verilog / read_vhdl / read_xdc read file lists directly; it does not include IP cores or strategy options beyond synth_design. For complex projects, it is recommended to use mmv_vivado_run with 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