quartus91-mcp

quartus91-mcp

Wraps Quartus II 9.1 command-line tools into MCP tools, enabling AI agents to create projects, assign pins, generate simulation waveforms, run simulations, compile, read reports, and program devices.

Category
访问服务器

README

Quartus II 9.1 MCP Server

用 agent 直接控制 Quartus II 9.1 的本地 MCP server。它把 Quartus 9.1 自带的命令行工具封装成 MCP tools,让 Codex 或其他 MCP client 可以创建工程、解析工程、锁引脚、生成 .vwf 仿真波形、运行仿真、编译、读取报告和烧录器件。

这个仓库只包含 MCP server、安装脚本、示例配置和 Codex skill。它不包含 Quartus II 9.1 软件本体,也不包含许可证。使用前需要你已经在自己的电脑上安装了合法可用的 Quartus II 9.1。

功能

  • 检测 Quartus II 9.1 安装、版本、命令行工具和许可证环境变量。
  • 查找并解析 .qpf/.qsf 工程。
  • 用 Quartus Tcl 创建或更新工程。
  • 从已有工程提取可复用模板。
  • 通过直接 pin assignment 或 board preset 批量锁引脚。
  • 内置 MAX II EPM1270T144C5 数字实验板 preset,覆盖 LCM12864 液晶版常用模块。
  • 根据结构化或自然语言仿真需求生成 .vwf 文件。
  • 运行功能仿真、时序仿真、全流程编译或单 stage 编译。
  • 读取 report/summary 文件并提取错误、警告、资源和时序摘要。
  • 查询 JTAG 硬件并通过 quartus_pgm 烧录 .sof/.pof
  • 附带 quartus91-vhdl-flow Codex skill,让 agent 更稳定地完成“写 VHDL -> 建工程 -> 生成 VWF -> 仿真 -> 编译 -> 锁引脚”的完整流程。

前置条件

  • Windows,推荐与 Quartus II 9.1 同机运行。
  • Node.js 18 或更新版本。
  • Quartus II 9.1 已安装,例如:
C:\altera\91\quartus
D:\altera\91\quartus
  • 如果你的 Quartus 功能需要 license,先在系统或 MCP client 环境里配置 LM_LICENSE_FILEALTERAD_LICENSE_FILE
  • Codex 或其他支持 stdio MCP server 的 MCP client。

快速安装

Clone 仓库并安装 Node 依赖:

git clone https://github.com/<your-github-user>/quartus91-mcp.git
cd quartus91-mcp
npm install

检查 server 能否找到 Quartus:

$env:QUARTUS91_ROOT = "C:\altera\91\quartus"
npm run smoke

如果你是 Codex 用户,可以直接写入 ~\.codex\config.toml

powershell -ExecutionPolicy Bypass -File .\scripts\install-codex-mcp.ps1 `
  -QuartusRoot "C:\altera\91\quartus"

安装配套 Codex skill:

powershell -ExecutionPolicy Bypass -File .\scripts\install-codex-skill.ps1

然后重启 Codex,让 MCP server 和 skill 生效。

如果已经有旧的 quartus91 配置或旧 skill,可以加 -Force 覆盖:

powershell -ExecutionPolicy Bypass -File .\scripts\install-codex-mcp.ps1 `
  -QuartusRoot "C:\altera\91\quartus" `
  -Force

powershell -ExecutionPolicy Bypass -File .\scripts\install-codex-skill.ps1 -Force

手动 MCP 配置

Codex config.toml 示例:

[mcp_servers.quartus91]
command = 'node'
args = ['C:\path\to\quartus91-mcp\src\server.js']
startup_timeout_sec = 30
tool_timeout_sec = 1800

[mcp_servers.quartus91.env]
QUARTUS91_ROOT = 'C:\altera\91\quartus'

通用 MCP JSON 示例:

{
  "mcpServers": {
    "quartus91": {
      "command": "node",
      "args": [
        "C:\\path\\to\\quartus91-mcp\\src\\server.js"
      ],
      "env": {
        "QUARTUS91_ROOT": "C:\\altera\\91\\quartus"
      }
    }
  }
}

如果 node 不在 PATH 里,把 command 改成 node.exe 的绝对路径,例如:

command = 'C:\Program Files\nodejs\node.exe'

MCP Tools

Tool 用途
quartus_info 检测 Quartus 安装路径、版本、bin/bin64 路径、命令行工具和 license 环境。
quartus_list_projects 递归查找 .qpf 工程并读取 revisions。
quartus_inspect_project 解析 .qpf/.qsf,返回器件、top entity、source files、SDC、pin assignments 等。
quartus_extract_project_template 从已有工程提取可复用的基础设置、source、VWF 和 pins。
quartus_create_project 通过 Quartus Tcl 创建或更新工程/revision。
quartus_list_board_presets 列出内置板级 preset 和可绑定资源。
quartus_set_pins 对已有工程设置直接引脚或 board preset 资源引脚。
quartus_generate_vwf 从信号、时钟、脉冲、事件、bus sequence 生成 .vwf
quartus_simulate_vwf .vwf/.cvwf/.vec/.tbl/.scf/.vcd 运行功能或时序仿真。
quartus_run_flow 运行 quartus_sh --flow,例如 compile
quartus_run_stage 运行单个 stage,例如 map、fit、asm、sta、tan、sim。
quartus_run_tcl 执行 Quartus Tcl 命令、inline script 或脚本文件。
quartus_read_report 读取并摘要 Quartus report/summary。
quartus_list_hardware 调用 quartus_pgm -ljtagconfig --enum 列出下载器/JTAG 链。
quartus_program_device 调用 quartus_pgm 通过 CDF 或 operation 烧录。
quartus_open_gui 打开 Quartus GUI,可选打开指定工程。

MAX II 实验板 Preset

内置 preset:

maxii_epm1270t144c5_lab

默认器件设置:

Family: MAX II
Device: EPM1270T144C5
I/O standard: 3.3-V LVTTL

常用资源包括:

  • clock
  • reset
  • button
  • leds
  • switches
  • buttons
  • logic_input_8
  • logic_output_5
  • seven_segment_segments
  • seven_segment_decimal_point
  • seven_segment_pdf_segments
  • seven_segment_digits
  • dot_matrix_rows
  • dot_matrix_red_cols
  • dot_matrix_green_cols
  • buzzer
  • keypad_rows
  • keypad_cols
  • ps2
  • uart1
  • uart2
  • vga
  • fram
  • adc_ads7816
  • dac_tlv5638
  • i2c_shared
  • temperature_sensor
  • eeprom_24lc02
  • lcd12864_control
  • lcd12864_data
  • lcd12864

完整引脚表在 skills/quartus91-vhdl-flow/references/maxii-board-preset.md

创建工程示例

{
  "name": "quartus_create_project",
  "arguments": {
    "projectDir": "projects/counter_demo",
    "projectName": "counter_demo",
    "revision": "counter_demo",
    "boardPreset": "maxii_epm1270t144c5_lab",
    "topLevelEntity": "counter_demo",
    "sourceFiles": ["counter_demo.vhd"],
    "resourceBindings": [
      { "resource": "clock", "signal": "clk" },
      { "resource": "reset", "signal": "reset" },
      { "resource": "switches", "signal": "sw", "count": 2 },
      { "resource": "leds", "signal": "led", "count": 8 }
    ]
  }
}

生成 VWF 示例

{
  "name": "quartus_generate_vwf",
  "arguments": {
    "projectPath": "projects/counter_demo/counter_demo.qpf",
    "outputFile": "counter_demo_stimulus.vwf",
    "attachToProject": true,
    "simulationTime": 500,
    "timeUnit": "ns",
    "requirementsText": "clk 20 ns period; rst_n low for 40 ns then high; din changes every 20 ns starting at 60 ns.",
    "signals": [
      { "name": "clk", "direction": "INPUT" },
      { "name": "rst_n", "direction": "INPUT", "defaultValue": 0 },
      { "name": "din", "width": 8, "direction": "INPUT", "defaultValue": "0x00", "radix": "Hexadecimal" },
      { "name": "done", "direction": "OUTPUT" }
    ],
    "clocks": [
      { "signal": "clk", "period": 20, "dutyCycle": 50 }
    ],
    "events": [
      { "signal": "rst_n", "time": 0, "value": 0 },
      { "signal": "rst_n", "time": 40, "value": 1 }
    ],
    "sequences": [
      { "signal": "din", "width": 8, "start": 60, "step": 20, "values": ["0x01", "0x02", "0x04", "0x08"] }
    ]
  }
}

运行功能仿真:

{
  "name": "quartus_simulate_vwf",
  "arguments": {
    "projectPath": "projects/counter_demo/counter_demo.qpf",
    "mode": "functional",
    "timeoutSeconds": 1800
  }
}

Codex Skill

仓库内置 skill:

skills/quartus91-vhdl-flow

安装后,Codex 可以在相关请求中自动触发,也可以显式输入:

Use $quartus91-vhdl-flow to create a VHDL project for the MAX II board, generate a .vwf stimulus file, lock pins, and run a functional simulation.

这个 skill 会指导 agent:

  • 用 Quartus II 9.1 兼容的 VHDL 写法。
  • 根据用户的自然语言仿真需求生成 .vwf
  • 优先使用 maxii_epm1270t144c5_lab preset 锁引脚。
  • 避免 VGA/LED、I2C、数码管小数点等共享引脚冲突。
  • 先 dry-run 不确定的仿真/编译命令,再实际运行。

测试

npm run smoke

smoke test 会真实启动 MCP server,并检查:

  • MCP tools 能否列出。
  • quartus_info 是否能找到 Quartus。
  • 示例工程解析是否可用。
  • 临时工程创建是否可用。
  • .vwf 生成和 QSF 挂载是否可用。
  • board preset 引脚展开是否可用。
  • 仿真和编译命令 dry-run 是否可用。

注意事项

  • Quartus II 9.1 很老,现代 SystemVerilog、VHDL-2008、Tcl 或 SDC 特性不一定兼容。
  • 编译、仿真和烧录都会启动真实 Quartus 子进程;不确定参数时先使用支持 dryRun 的工具。
  • 烧录前先调用 quartus_list_hardware,确认 cable 和 JTAG 链。
  • QUARTUS91_ROOT 应指向 Quartus 的 quartus 目录,或传给安装脚本一个包含 quartus 子目录的安装根目录。
  • 这个仓库的 MAX II 引脚 preset 来自历史 Quartus 工程和 MAXII 数字实验板 LCM12864 版资料整理。请以你手头板卡原理图为最终依据。

License

MIT. See LICENSE.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选