mcpField
V
Verilog MCP Server

Verilog MCP Server

本地服务
github.com/kaiwenyu147369开发工具124 周前更新

关于 Verilog MCP Server

Verilog MCP Server 为使用 Claude Code 的硬件设计人员提供 Verilog 和 SystemVerilog 开发工具。它可生成测试平台和 UVM 框架,并通过启发式检查 RTL。

主要功能

  1. 01生成测试平台骨架
  2. 02执行启发式 RTL 检查
  3. 03搭建 UVM 验证环境
  4. 04识别时钟和复位端口
  5. 05提示常见锁存与位宽风险

适用场景

  1. 01根据模块声明创建测试平台
  2. 02在仿真前检查 RTL 常见问题
  3. 03搭建 UVM 验证环境

MCP 相关

该 MCP 服务向 Claude Code 提供三个工具:生成测试平台、检查 RTL 以及生成 UVM 环境。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Verilog MCP Server

演示

面向 Claude Code 的 AI 驱动 Verilog / SystemVerilog 开发工具。生成测试平台、检查 RTL 代码,并搭建 UVM 验证环境——全部可在编辑器中完成。

状态: v0.3.0 — 3 个工具,已在 Claude Code 中完成端到端验证。

为什么

芯片设计 EDA 工具已有数十年历史。AI 辅助硬件开发是一片蓝海。此 MCP 服务将 Verilog / SystemVerilog 代码生成和检查功能直接带入 Claude Code,让你可以:

  • 在几秒钟内根据模块声明生成测试平台样板代码
  • 在仿真前发现常见 RTL 错误(缺少复位、推断出锁存器、case 缺少 default)
  • 搭建完整的 UVM 验证环境,包含规范的时钟块、sequencer 和 scoreboard

工具

工具描述
generate_testbench根据模块定义生成 Verilog 测试平台框架
check_lint静态检查:缺少复位、case-default、锁存器风险、位宽不匹配
generate_uvm_env生成包含 10 个组件的 UVM 验证环境
generate_testbench

输入:一个 Verilog 模块。输出:完整的测试平台,包含时钟生成、复位序列、DUT 实例化、$dumpfile / $dumpvars,以及用于自定义测试激励的 TODO 占位符。

  • 自动检测时钟和复位端口
  • 支持低电平有效复位(rst_n 后缀)
  • 支持新式(input clk, input rst_n)和旧式(input clk, rst_n)端口声明
  • 默认时钟频率为 100MHz(周期为 10ns)
check_lint

四类检查:

  1. 没有复位的时序 always 块 — 警告
  2. 没有 default 的 case/casez/casex — 问题(锁存器 / X 状态)
  3. 组合 always 块中的 if 赋值不完整 — 警告(存在推断锁存器的风险)
  4. 位宽不匹配启发式检查 — 信息
generate_uvm_env

生成 10 个 UVM 组件文件,并以 // ===== FILE: filename.sv ===== 标记分隔:

interface → transaction → sequence → driver → monitor → agent → scoreboard → environment → test → top

  • 采用规范的 drv_cb(仅输出时钟块)和 mon_cb(仅输入时钟块)设计
  • 使用 uvm_analysis_port 在 monitor → scoreboard 之间进行通信
  • 支持主动 / 被动 Agent 模式
  • 在 scoreboard 和约束中提供 TODO 占位符

安装

# 1. Clone
git clone https://github.com/kaiwenyu147369/verilog-mcp-server.git
cd verilog-mcp-server

# 2. Create virtual environment
python -m venv venv

# 3. Activate & install
# Windows:
venv\Scripts\activate
# macOS / Linux:
source venv/bin/activate

pip install mcp

在 Claude Code 中使用

将以下内容添加到工作区的 .mcp.json 中:

{
  "mcpServers": {
    "verilog-mcp-server": {
      "command": "C:\\path\\to\\venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\verilog-mcp-server\\server.py"]
    }
  }
}

然后在 Claude Code 设置中(~/.claude/settings.json):

{
  "enableAllProjectMcpServers": true,
  "enabledMcpjsonServers": ["verilog-mcp-server"]
}

重启 VSCode 后,这些工具就会显示在 Claude Code 中。

快速测试

# Activate venv first, then:
python test_uvm.py
python test_v2.py

技术栈

  • Python MCP SDK 1.27.1 — @server.list_tools() + @server.call_tool()(双装饰器 API)
  • stdio JSON-RPC — Claude Code 通过 stdin/stdout 通信
  • 基于正则表达式的解析 — 无需依赖 SystemVerilog 编译器

已知限制

  • 端口解析器使用正则表达式,而非完整的 SystemVerilog 分词器——复杂参数化端口中深度嵌套的括号可能无法正确解析
  • UVM Scoreboard 的比较逻辑目前是 TODO 占位符
  • 检查规则基于启发式方法;不支持完整展开或类型系统
  • 端口解析不支持 interface / struct / modport

路线图

  • v0.4.0 — 第 4 个工具(generate_assertions 或 analyze_waveform)
  • 将端口解析器升级为简单分词器
  • 增加更多检查规则(阻塞 / 非阻塞赋值检查、有符号 / 无符号警告)
  • 实现 UVM Scoreboard 自动比较逻辑
  • 支持多文件项目

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。