ROHD MCP服务器
一个全面的模型上下文协议(MCP)服务器,为AI应用程序提供对ROHD(快速开放硬件开发)框架功能的完全访问。该服务器通过43个专用MCP工具实现专业硬件设计、仿真和验证工作流程。
🎯 概述
ROHD MCP服务器通过将AI功能与专业ROHD工具连接起来,改变了硬件开发。它提供 43个专用MCP工具 涵盖7个类别,支持从基本模块创建到具有高级端口类型的复杂片上系统集成的所有内容。
关键能力
- 完整的硬件设计工作流程:模块创建→ 模拟→ 验证→ 代码生成
- 高级端口类型:用于复杂设计的逻辑、逻辑结构、逻辑阵列
- 界面管理:具有条件逻辑支持的可重用接口
- 实时仿真:信号监测交互式调试
- 专业代码生成:经过全面测试的完整ROHD模块
- 多LLM支持:针对Claude、GPT-4/5、Gemini等进行了优化配置
专业功能
- 43 MCP工具 按7个功能类别组织
- 逻辑结构和逻辑阵列支持 用于高级硬件结构
- 基于界面的设计 具有复杂的条件逻辑
- 覆盖率驱动验证 综合分析
- 系统集成 SoC级设计能力
- 多平台LLM集成 性能优化
安装
快速入门(推荐)
为了实现最快的设置,请使用我们的自动化脚本:
# 1. Install prerequisites (Node.js, npm, build tools)
./install-prerequisites.sh
# 2. Setup the project (install dependencies, build)
./setup-server.sh
# 3. Start the server
./start-server.sh --inspector # For testing with web interface
# OR
./start-server.sh # For production use📚 完整的文件
📖 主要指南
- 完整的LLM集成指南:Claude、GPT-4/5、Gemini和所有支持的LLM的全面设置,包括配置示例和验证程序
- 完整的技术指南:所有43个MCP工具、高级示例、专业工作流程和复杂的设计模式
🚀 快速开始
🔧 高级主题
- 项目状态:完整的功能概述和功能摘要
⚡ 快速安装
先决条件
- Node.js 18.0.0或更高版本
- npm或yarn包管理器
安装和构建
npm install
npm run build用法
验证您的设置
在配置LLM之前,请验证您的MCP服务器安装:
./validate-mcp-setup.sh此脚本将:
- ✅ 检查服务器安装和构建
- ✅ 测试MCP协议响应
- ✅ 验证所有43+工具是否可用
- ✅ 生成LLM特定的配置代码段
- ✅ 提供测试提示以验证MCP集成
运行服务器
服务器使用stdio传输与MCP客户端通信:
npm start
# or
node build/index.js对于自动重新加载的开发:
npm run dev与MCP客户端集成
克劳德桌面
将此服务器添加到您的Claude Desktop配置中(claude_desktop_config.json):
{
"mcpServers": {
"rohd-simulator": {
"command": "node",
"args": ["/path/to/rohd-mcp-server/build/index.js"]
}
}
}VS代码与MCP
使用VS Code的MCP扩展并在您的 mcp.json:
{
"servers": {
"rohd-simulator": {
"type": "stdio",
"command": "node",
"args": ["/path/to/rohd-mcp-server/build/index.js"]
}
}
}GPT-4和GPT-5(OpenAI)
对于支持MCP的OpenAI GPT模型,请将服务器添加到MCP配置中:
{
"mcp_servers": {
"rohd-simulator": {
"command": "node",
"args": ["/path/to/rohd-mcp-server/build/index.js"],
"description": "ROHD Hardware Design and Simulation Server"
}
}
}GPT-5-mini(OpenAI)
对于GPT-5-mini,请使用轻量级MCP客户端格式进行配置:
{
"servers": [
{
"name": "rohd-simulator",
"command": "node",
"args": ["/path/to/rohd-mcp-server/build/index.js"],
"env": {
"NODE_ENV": "production"
},
"capabilities": [
"tools",
"resources"
],
"metadata": {
"category": "hardware-design",
"description": "ROHD hardware simulation and code generation",
"version": "1.0.0"
}
}
]
}其他MCP兼容LLM
对于支持模型上下文协议的任何LLM,请使用以下通用配置模板:
{
"mcp_servers": {
"rohd-simulator": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/rohd-mcp-server/build/index.js"],
"timeout": 30000,
"retry_attempts": 3,
"capabilities": {
"tools": true,
"resources": false,
"prompts": false
}
}
}
}配置说明:
- 替换
/path/to/rohd-mcp-server/安装的实际绝对路径 - 确保服务器已构建(
npm run build)配置之前 - 某些LLM可能需要在配置更改后重新启动
- 对于生产使用,考虑设置
NODE_ENV=production在环境中
MCP检验员测试
使用MCP检查器测试服务器功能:
npx @modelcontextprotocol/inspector node build/index.js可用工具
ROHD MCP服务器提供 39个综合工具 分为七类:
模块管理工具
create_module
创建具有指定输入和输出的新硬件模块。
参数:
name:模块名称inputs:将输入名称映射到位宽的对象outputs:将输出名称映射到位宽的对象parameters:可选模块参数
例子:
{
"name": "and_gate",
"inputs": { "a": 1, "b": 1 },
"outputs": { "y": 1 }
}list_modules
列出所有创建的硬件模块。
get_module_details
获取特定硬件模块的详细信息。
信号管理工具
create_signal
创建具有指定位宽和可选初始值的信号。
update_signal
更新现有信号的值。
list_signals
列出所有信号及其当前值。
watch_signal
将信号添加到观察列表中,以便在模拟期间进行监测。
get_watched_signals
获取所有监视信号的当前值。
force_signal
强制信号为特定值(覆盖正常逻辑)。
仿真控制工具
start_simulation
开始模拟具有可配置时钟周期的硬件模块。
参数:
moduleName:要模拟的模块名称clockPeriod:以时间单位表示的时钟周期(可选,默认值:10)
stop_simulation
停止当前正在运行的模拟。
step_clock
将模拟提前一个或多个时钟周期。
参数:
steps:要前进的时钟步数(可选,默认值:1)
退货:
- 当前模拟时间
- 步骤中更改的信号列表
wait_cycles (ROHD-VF灵感)
等待指定数量的完整时钟周期,类似于ROHD-VF waitCycles() 方法。
参数:
clockName:时钟信号名称(可选,默认:“clk”)cycles:等待的完整周期数(可选,默认值:1)
退货:
- 最终模拟时间
- 已完成的循环次数
- 检测到的带有时间戳的时钟边沿数组
next_posedge (ROHD-VF灵感)
等待时钟信号的下一个正沿(上升沿),类似于ROHD-VF nextPosedge() 方法。
参数:
clockName:时钟信号名称(可选,默认:“clk”)
退货:
- 出现正边缘的时间
- 边缘后的时钟值
- 边缘类型确认
next_negedge (ROHD-VF灵感)
等待时钟信号的下一个负沿(下降沿),类似于ROHD-VF nextNegedge() 方法。
参数:
clockName:时钟信号名称(可选,默认:“clk”)
退货:
- 出现负边缘的时间
- 边缘后的时钟值
- 边缘类型确认
wait_signal_change
等待特定信号改变值或达到预期值。
参数:
signalName:要监视的信号名称expectedValue:等待的预期值(可选)maxWaitTime:最长等待时间(可选,默认值:1000)
退货:
- 变更发生的时间
- 新信号值
- 总等待时间
get_simulation_status
获取全面的模拟状态,包括:
- 运行状态
- 当前被测模块
- 模拟时间
- 活动时钟信号
- 监视的信号计数
- 活动断点
- 总信号计数
set_breakpoint
在具有可选条件的特定模拟时间设置断点。
get_simulation_history
使用可配置的历史深度获取最近的模拟事件和信号变化。
测试台工具
create_test_bench
使用测试向量创建用于模块验证的测试台。
run_simulation
执行测试台模拟并获得详细的通过/失败结果。
代码生成工具
generate_verilog
根据硬件模块定义生成Verilog HDL代码。
generate_rohd_code
根据硬件模块定义生成完整的ROHD Dart模块代码。创建一个具有输入、输出、构造函数和占位符逻辑实现的正确ROHD模块类。
示例用法:
// First create a module
create_module({
name: "counter",
inputs: { clk: 1, reset: 1, enable: 1 },
outputs: { count: 8, overflow: 1 }
})
// Generate ROHD Dart code
generate_rohd_code({ moduleName: "counter" })生成的ROHD代码:
import 'package:rohd/rohd.dart';
/// counter module generated by ROHD MCP Server
class Counter extends Module {
Logic get clk => input('clk');
Logic get reset => input('reset');
Logic get enable => input('enable');
Logic get count => output('count');
Logic get overflow => output('overflow');
Counter({
required Logic clk,
required Logic reset,
required Logic enable,
super.name = 'counter',
}) {
clk = addInput('clk', clk);
reset = addInput('reset', reset);
enable = addInput('enable', enable);
addOutput('count', width: 8);
addOutput('overflow');
_buildLogic();
}
void _buildLogic() {
// TODO: Implement module logic here
// Example: output
cd rohd-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Validate setup
./validate-mcp-setup.sh测试
# Run validation tests
./validate-mcp-setup.sh
# Test MCP connectivity
node test-mcp-connectivity.cjs
# Test with MCP Inspector
npx @modelcontextprotocol/inspector node build/index.js贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加新功能的测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
