Token导航 LogoToken导航TokenDH.com
Arcas OnlineEDA MCP Server logo
设计创作未说明官方级别未说明来源级核验

Arcas OnlineEDA MCP Server

MCP Server

Arcas OnlineEDA MCP服务器是一个基于网络的电子设计自动化工具套件,提供形式验证、等价检查、功耗分析和安全验证等功能,适用于AI助手和自动化工作流程。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
TypeScript设计图像生成

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ssql2014

提供方

ssql2014

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Arcas在线EDA MCP服务器

MCP(模型上下文协议)服务器,用于与Arcas OnlineEDA平台交互,这是一个全面的基于网络的电子设计自动化工具套件,用于形式验证、等效性检查、功耗分析、安全验证和FPGA设计。

概述

此MCP服务器通过web自动化提供对Arcas OnlineEDA平台的编程访问,使AI助手和自动化工作流程能够:

  • 通过智能项目类型检测创建和管理EDA项目
  • 上传具有自动格式识别功能的设计文件
  • 使用可定制的参数执行各种验证类型
  • 无缝导航平台
  • 使用大量示例匹配处理自然语言查询
  • 通过定义良好的URI访问平台资源

特性

核心能力

  • 形式验证:验证设计属性、断言和安全要求
  • 等价性检验:比较RTL和门级设计之间的功能等效性
  • 功率分析:分析和优化动态和静态功耗
  • 安全验证:检测漏洞、侧通道和信息泄漏
  • FPGA验证:Xilinx、Intel/Altera设计的平台特定验证

可用工具

  1. arcas_onlineed_navigation -导航平台部分

- 行动: home, projects, new-project, documentation, settings - 具有会话状态保存功能的智能导航

  1. arcas_onlineed_project -全面的项目管理

- 行动: create, open, list, delete - 项目类型: formal, equivalence, power, security, fpga - 从上下文自动检测项目类型

  1. arcas_onlineed_upload_file -智能文件上传

- 支持的格式:Verilog(.v)、SystemVerilog(.sv)、VHDL(.vhd/.VHDL) - 约束文件:用于定时和放置的SDC、XDC - 自动文件类型检测

  1. arcas_onlineed_run_验证 -高级验证执行

- 类型: formal, equivalence, power, security, fpga - 可配置参数:超时、深度、特定属性 - 实时进度监控

  1. arcas_onlineed_natural_语言 -人工智能驱动的自然语言界面

- 用于高置信度匹配的广泛示例数据库 - 工作流程建议和多步骤指导 - 情境感知建议

可用资源

通过以下URI访问平台数据:

  • arcas://projects -以JSON格式列出所有项目
  • arcas://verification-results -最新验证结果
  • arcas://platform-status -当前平台和连接状态
  • arcas://documentation -Markdown中的平台文档

安装

# Clone the repository
git clone 
cd arcas-onlineeda-mcp

# Install dependencies
npm install

# Build the server
npm run build

# Optional: Run setup script for browser dependencies
npm run setup

配置

环境变量

创建一个 .env 项目根目录中的文件:

# Arcas OnlineEDA credentials (optional - will prompt if not set)
ONLINEEDA_USERNAME=your_username
ONLINEEDA_PASSWORD=your_password

# Browser settings
ONLINEEDA_HEADLESS=true      # Set to false to see browser actions
ONLINEEDA_TIMEOUT=30000      # Page load timeout in ms

# Logging
LOG_LEVEL=info               # Options: error, warn, info, debug
LOG_FILE=arcas-onlineeda.log # Log file location

MCP配置

添加到您的MCP设置文件(例如。, ~/.mcp/settings.json):

{
  "mcpServers": {
    "arcas-onlineeda": {
      "command": "node",
      "args": ["/path/to/arcas-onlineeda-mcp/dist/index.js"],
      "env": {
        "ONLINEEDA_USERNAME": "your_username",
        "ONLINEEDA_PASSWORD": "your_password"
      }
    }
  }
}

使用示例

基本工具使用

创建正式验证项目

{
  "tool": "arcas_onlineeda_project",
  "arguments": {
    "action": "create",
    "projectName": "risc_v_core_verification",
    "projectType": "formal"
  }
}

上传多个设计文件

{
  "tool": "arcas_onlineeda_upload_file",
  "arguments": {
    "projectId": "proj_123",
    "filePath": "./rtl/cpu_core.v",
    "fileType": "verilog"
  }
}

运行安全验证

{
  "tool": "arcas_onlineeda_run_verification",
  "arguments": {
    "projectId": "proj_123",
    "verificationType": "security",
    "options": {
      "timeout": 600,
      "properties": ["information_leakage", "timing_attacks", "power_analysis"]
    }
  }
}

自然语言示例

自然语言界面可以理解各种各样的查询:

项目创建查询

  • “我想为我的CPU设计创建一个新的正式验证项目”
  • “让我们开始GPU控制器的功耗分析项目”
  • “在RTL和门级网表之间设置等效性检查”
  • “为我的AES加密模块创建安全验证项目”

验证查询

  • “检查我的RISC-V内核是否符合所有安全特性”
  • “验证优化设计在功能上与原始设计等效”
  • “分析不同操作模式下的功耗”
  • “查找我的加密模块中的安全漏洞”
  • “运行20个循环深度的正式验证”

文件操作查询

  • “上传我的Verilog文件到内存控制器”
  • “将SystemVerilog测试台添加到项目中”
  • “导入SDC时间限制”
  • “从设计目录加载所有RTL文件”

导航和状态查询

  • “显示我的所有验证项目”
  • “转到文档”
  • “我当前的验证状态如何?”
  • “导航到项目设置”

复杂的工作流查询

  • “我需要验证我的AES加密模块是否符合FIPS标准”
  • “比较优化前后的功耗”
  • “为我的SoC设计建立完整的验证流程”
  • “帮助我调试形式验证中失败的断言”

访问资源

// List all projects
{
  "action": "read_resource",
  "uri": "arcas://projects"
}

// Check platform status
{
  "action": "read_resource", 
  "uri": "arcas://platform-status"
}

// Get documentation
{
  "action": "read_resource",
  "uri": "arcas://documentation"
}

高级用法

工作流程自动化

通过链接工具创建复杂的工作流程:

// Complete verification workflow
const workflow = [
  {
    tool: "arcas_onlineeda_project",
    args: { action: "create", projectType: "formal", projectName: "soc_verification" }
  },
  {
    tool: "arcas_onlineeda_upload_file",
    args: { filePath: "./rtl/soc_top.v", fileType: "verilog" }
  },
  {
    tool: "arcas_onlineeda_upload_file",
    args: { filePath: "./constraints/timing.sdc", fileType: "constraints" }
  },
  {
    tool: "arcas_onlineeda_run_verification",
    args: { verificationType: "formal", options: { depth: 30, timeout: 1200 } }
  }
];

自定义验证属性

定义目标验证的特定属性:

{
  "tool": "arcas_onlineeda_run_verification",
  "arguments": {
    "projectId": "proj_456",
    "verificationType": "formal",
    "options": {
      "properties": [
        "assert property (@(posedge clk) req |-> ##[1:3] ack);",
        "assert property (@(posedge clk) !overflow);"
      ],
      "depth": 50
    }
  }
}

建筑

服务器采用模块化架构:

arcas-onlineeda-mcp/
├── src/
│   ├── index.ts           # Main server entry point
│   ├── tools/             # Tool implementations
│   │   ├── base.ts        # Abstract tool class
│   │   ├── navigate.ts    # Navigation tool
│   │   ├── project.ts     # Project management
│   │   ├── upload-file.ts # File upload handling
│   │   ├── run-verification.ts # Verification execution
│   │   └── natural-language.ts # NLP interface
│   ├── utils/             # Utility modules
│   │   ├── browser.ts     # Puppeteer browser management
│   │   └── logger.ts      # Winston logging
│   └── types/             # TypeScript type definitions
├── package.json
├── tsconfig.json
└── README.md

关键组件

  • 浏览器管理器:处理Puppeter生命周期、身份验证和页面导航
  • 工具基类:提供一致的验证和错误处理
  • 语言处理器:广泛的示例匹配和意图检测
  • 资源提供程序:通过MCP资源提供平台数据
  • 会话管理器:维护登录状态和项目上下文

发展

# Run in development mode with hot reload
npm run dev

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Lint code
npm run lint

# Format code
npm run format

# Type check
npm run typecheck

# Build for production
npm run build

添加新工具

  1. 创建一个新的工具类来扩展 AbstractTool
  2. 实施所需方法: getName(), getDescription(), execute()
  3. 将工具添加到服务器的工具映射中
  4. 更新自然语言示例

故障排除

常见问题

浏览器连接

Error: Failed to launch browser

解决方案:安装Chrome/Chromium或运行 npm run setup

身份验证失败

Error: Login failed

解决方案:

  • 验证环境变量中的凭据
  • 检查帐户是否在OnlineEDA上处于活动状态
  • 尝试手动登录 ONLINEEDA_HEADLESS=false

未找到元素

Error: Waiting for selector failed

解决方案:

  • 平台UI可能已更改
  • 检查互联网连接
  • 增加超时值

调试模式

启用详细日志记录:

LOG_LEVEL=debug npm run dev

查看浏览器操作:

ONLINEEDA_HEADLESS=false npm run dev

性能提示

  1. 尽可能重用项目会话
  2. 批量文件上传以获得更好的性能
  3. 对长时间运行的验证使用适当的超时
  4. 为频繁访问的资源启用缓存

安全考虑

  • 凭证:安全地存储在环境变量中
  • 浏览器隔离:在沙盒Chromium实例中运行
  • 审计日志:所有记录有时间戳的操作
  • 会话管理:关机时自动注销
  • 数据隐私:除日志外,没有本地存储的数据

贡献

我们欢迎捐款!请按照以下步骤操作:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

开发指南

  • 为新功能编写测试
  • 更新文档
  • 遵循TypeScript的最佳实践
  • 为新功能添加自然语言示例
  • 确保向后兼容性

支持

  • 问题:通过GitHub Issues报告bug
  • 文档:通过访问 arcas://documentation
  • 例子:有关详细示例,请参阅自然语言工具
  • 社区:加入我们的Discord服务器

许可证

MIT许可证-有关详细信息,请参阅许可证文件

致谢

  • Arcas Microelectronics用于在线EDA平台
  • MCP框架的模型上下文协议团队
  • 浏览器自动化工具的Puppeteer团队

目录标签

目录标签

TypeScript设计图像生成电子设计自动化本地部署形式验证功耗分析安全验证FPGA设计

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明sessionremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP