Skip to main content
Glama
L-YvY-L

quartus-Lmcp-server

by L-YvY-L

Quartus L MCP Server

将本机 Intel/Altera Quartus 命令行工具暴露为 MCP 工具,供 AI 助手直接调用。

An MCP server that exposes local Intel/Altera Quartus CLI tools — project management, compilation, timing analysis, SignalTap II, IP cores, Qsys, Nios II, JTAG programming, and more.


概述 / Overview

quartus-Lmcp-server 是一个 Model Context Protocol (MCP) 服务器,共 89 个 MCP 工具,覆盖 FPGA 开发的完整流程。

核心特性:

  • 自动版本适配 — 不再需要为每个 Quartus 版本配置独立的 MCP 实例。服务器启动时自动发现所有已安装的 Quartus 版本(13.x ~ 24.x),并可在运行时动态切换。

  • IP 核版本自适应 — Qsys/Platform Designer 中 add_instance 的 IP 版本号自动匹配当前 Quartus 版本,告别硬编码 18.1 导致的兼容问题。

  • 多安装发现 — 自动扫描 C:/D:/E:/F: 盘及 WSL 挂载点,发现所有 intelFPGA_liteintelFPGAaltera 目录下的 Quartus 安装。

不依赖特定 AI 客户端 — 只要支持 MCP 协议即可使用(WorkBuddy、Claude Code、Codex、Cursor、Continue 等)。


Related MCP server: quartus91-mcp

功能概览 / Features

分类

工具数

说明

安装与版本管理

3

查看安装信息、列出所有版本、运行时切换 Quartus 版本

项目管理

6

创建/打开/查看/枚举/关闭/归档 Quartus 工程

文件管理

4

添加/移除 HDL 文件、列出工程文件、读写 QSF

编译流程

6

Analysis & Synthesis / Fitter / Assembler / 完整编译,状态与消息

增量编译

4

增量编译开关、设计分区创建/查看、增量执行

RTL 分析

2

模块层次/端口/FSM 解析、代码风格检查

时序分析

6

STA 执行、时序摘要、时钟摘要、路径查询、最差路径、时钟域交叉

SDC 约束

3

自动生成 SDC 模板、时钟约束、伪路径约束

管脚分配

5

管脚设置/移除、全局分配读写

器件信息

2

器件家族列表、器件型号列表

JTAG 下载

6

JTAG 检测、线缆列表、SOF 下载、JAM 编程、CvP 配置

SignalTap II

3

逻辑分析仪文件创建、状态检查、含 SignalTap 下载

IP 核

9

PLL/RAM/FIFO/DSP IP、MegaWizard、IP 目录、文件转换、IP 升级

Qsys / Platform Designer

5

Qsys 系统创建、组件添加、互联、生成、组件枚举

Nios II

2

BSP 编译、elf2hex/elf2flash/sof2flash 文件转换

仿真集成

5

Testbench 创建、仿真文件注册、ModelSim 批处理仿真、日志读取、产物列表

报告与检查

5

Flow Summary、资源利用率、指定报告读取、功耗分析、DRC

设计数据库

4

分区导入/导出、数据库导出、Back-annotate

Tcl 脚本

2

Tcl 文件执行、内联 Tcl 命令

设计空间探索

2

DSE 探索、Seed Sweep

门级仿真

2

门级仿真生成、上下文获取

工程维护

3

清理工程、IP 升级、Flow 模板生成


安装 / Installation

git clone https://github.com/L-YvY-L/quartus-Lmcp-server.git
cd quartus-Lmcp-server
pip install -r requirements.txt

环境要求:

  • Windows 10/11

  • Python 3.10+

  • mcp>=1.0.0

  • 本机安装 Intel/Altera Quartus(支持 Quartus II 13.1 ~ Prime Lite 24.x 各版本)

  • 可同时安装多个 Quartus 版本 — 服务器会自动发现并支持运行时切换

  • ModelSim/QuestaSim(可选,仿真工具用)


MCP 配置 / Configuration

基础配置(单版本)

{
  "mcpServers": {
    "quartus": {
      "command": "python",
      "args": ["path/to/quartus_Lmcp_server.py"],
      "env": {
        "QUARTUS_ROOTDIR": "D:/intelFPGA_lite/24.1std/quartus",
        "QUARTUS_MCP_MODELSIM_BIN": "D:/intelFPGA_lite/24.1std/questa_fse/win64",
        "QUARTUS_MCP_PROJECT_DIR": "C:/Users/yourname/Documents/QuartusProjects"
      }
    }
  }
}

多版本配置(推荐)

为每个版本注册独立的 MCP 服务名,或在同一个实例中用 switch_quartus_installation 动态切换:

{
  "mcpServers": {
    "quartus24": {
      "command": "python",
      "args": ["path/to/quartus_Lmcp_server.py"],
      "env": {
        "QUARTUS_ROOTDIR": "D:/intelFPGA_lite/24.1std/quartus",
        "QUARTUS_MCP_MODELSIM_BIN": "D:/intelFPGA_lite/24.1std/questa_fse/win64"
      }
    },
    "quartus18": {
      "command": "python",
      "args": ["path/to/quartus_Lmcp_server.py"],
      "env": {
        "QUARTUS_ROOTDIR": "E:/intelFPGA_lite/18.1/quartus",
        "QUARTUS_MCP_MODELSIM_BIN": "E:/intelFPGA_lite/18.1/modelsim_ase/win32aloem"
      }
    }
  }
}

不同 MCP 客户端配置位置

客户端

配置文件

WorkBuddy

~\.workbuddy\mcp.json

Claude Code

.mcp.json(项目目录)或 ~/.mcp.json

Cursor

.cursor/mcp.json

Continue

~/.continue/config.json

可选环境变量

变量

说明

默认值

QUARTUS_ROOTDIR

Quartus 安装的 quartus 子目录

自动发现

QUARTUS_ROOTDIR_OVERRIDE

覆盖 QUARTUS_ROOTDIR

QUARTUS_MCP_ROOT

安装根目录(最高优先级)

QUARTUS_BIN

直接指定 bin 目录

QUARTUS_MCP_MODELSIM_BIN

ModelSim bin 目录

自动发现

QUARTUS_MCP_PROJECT_DIR

默认工程目录

~/Documents/quartus_mcp_projects


多版本管理 / Multi-Version Management

服务器启动时自动扫描并发现所有已安装的 Quartus 版本。

列出所有安装

调用 list_quartus_installations 查看:

{
  "count": 2,
  "current_index": 0,
  "installations": [
    { "index": 0, "active": true,  "path_version": "24.1", "bin_dir": "D:/intelFPGA_lite/24.1std/quartus/bin64" },
    { "index": 1, "active": false, "path_version": "18.1", "bin_dir": "E:/intelFPGA_lite/18.1/quartus/bin64" }
  ]
}

切换到指定版本

// 调用 switch_quartus_installation(1) 切换到 18.1
{
  "success": true,
  "switched_to": 1,
  "bin_dir": "E:/intelFPGA_lite/18.1/quartus/bin64",
  "version": "Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition"
}

切换是全局生效的 — 之后所有编译、分析、下载命令都使用新选择的版本。


使用示例 / Usage Examples

工程创建与编译

create_projectadd_file_to_projectset_pin_assignmentcompile_project

时序分析

run_timing_analysisget_timing_summaryget_worst_timing_paths

调试流程

create_signaltap_filecompile_projectprogram_with_signaltap

IP 核生成

create_pll_ip(输入 50MHz → 输出 100/50/25MHz)→ 自动生成 .qip 并注册到工程

Qsys 系统集成

create_qsys_systemadd_qsys_componentconnect_qsys_componentsgenerate_qsys

Nios II 软件部署

compile_nios2_bspconvert_nios2_files(type="hex")program_device


完整工具目录 / Complete Tool Catalog

安装与版本管理

工具

说明

get_quartus_installation

查看当前 Quartus 安装路径、版本、工具可用性

list_quartus_installations

列出所有发现的 Quartus 版本及索引

switch_quartus_installation

运行时切换到指定 Quartus 版本

项目管理

工具

说明

create_project

创建新 Quartus 工程(指定器件家族与型号)

open_project

打开已有工程

get_project_info

获取工程信息(名称、器件、文件数等)

list_projects

枚举指定目录下的所有工程

close_project

关闭已打开工程

archive_project

归档工程(.qar)

文件管理

工具

说明

list_project_files

列出工程中所有文件(HDL/SDC/IP/其他)

add_file_to_project

向工程添加 HDL/SDC/IP 文件

remove_file_from_project

从工程移除文件

read_qsf

读取 QSF 文件内容

编译流程

工具

说明

compile_project

完整编译流程(Analysis → Fitter → Assembler → STA)

run_analysis_synthesis

仅执行 Analysis & Synthesis

run_fitter

仅执行 Fitter(Place & Route)

run_assembler

仅执行 Assembler(生成 .sof/.pof)

get_compilation_status

获取编译状态与产物路径

get_compilation_messages

提取错误/警告/关键警告(去重,各限 100 条)

增量编译

工具

说明

enable_incremental_compilation

开关增量编译

create_design_partition

创建设计分区

get_design_partitions

查看当前分区设置

run_incremental_compile

执行增量编译

RTL 分析

工具

说明

analyze_rtl_structure

解析 RTL 层次结构、端口列表、FSM 信息

check_coding_style

代码风格检查(组合环、锁存器等)

时序分析

工具

说明

run_timing_analysis

执行完整 STA

get_timing_summary

获取 STA 摘要(Fmax、setup/hold 违例数)

get_clock_summary

获取时钟报告(频率、周期、类型)

get_timing_paths

查询指定节点间的时序路径

get_worst_timing_paths

获取最差时序路径(setup/hold/recovery/removal)

get_clock_domain_crossings

获取时钟域交叉 (CDC) 信息

SDC 约束

工具

说明

generate_sdc_constraints

自动生成基础 SDC 文件

set_clock_constraint

设置时钟周期约束

set_false_path_constraint

设置伪路径约束

管脚分配

工具

说明

get_pin_assignments

查看管脚分配

set_pin_assignment

设置信号到指定管脚

remove_pin_assignment

移除管脚分配

get_global_assignments

查看全局分配

set_global_assignment

设置全局分配

器件信息

工具

说明

get_device_families

列举支持的器件家族

get_devices

列举指定家族下的器件型号

JTAG 编程

工具

说明

detect_jtag_devices

检测 JTAG 链上的器件

get_programmer_cables

列举可用的下载线缆

program_device

下载 .sof 到 FPGA

batch_program_jam

批量 JAM 编程

create_jam_file

从 .sof 创建 .jam 文件

program_cvp

Configuration via Protocol (CvP) 编程

SignalTap II 逻辑分析仪

工具

说明

create_signaltap_file

创建 SignalTap II 文件 (.stp)

get_signaltap_context

获取 SignalTap 上下文信息

program_with_signaltap

含 SignalTap 编译并下载

IP 核

工具

说明

list_available_ip

列举可用的 IP 核

list_ip_catalog

列出 IP 目录详细内容

create_ip_core

通用 IP 核创建(MegaWizard)

create_pll_ip

创建 PLL IP(自动配置输入/输出频率)

create_ram_ip

创建片上 RAM IP

create_fifo_ip

创建 FIFO IP

create_dsp_ip

创建 DSP 运算 IP(乘法器/累加器等)

convert_programming_file

转换编程文件格式 (.sof → .pof/.rbf 等)

upgrade_ip

升级工程中所有 IP 核到当前 Quartus 版本

Qsys / Platform Designer

工具

说明

create_qsys_system

创建 Qsys 系统(含默认时钟源)

add_qsys_component

向 Qsys 系统添加组件

connect_qsys_components

连接 Qsys 组件间 Avalon 接口

generate_qsys

生成 Qsys 系统的 HDL 文件

list_qsys_components

枚举可用的 Qsys 组件库

Nios II

工具

说明

compile_nios2_bsp

编译 Nios II BSP 库

convert_nios2_files

elf→hex/flash, sof→flash 格式转换

仿真集成

工具

说明

create_testbench

创建 ModelSim Testbench 模板

add_simulation_file

注册仿真文件到工程

run_simulation

运行 ModelSim 批处理仿真

read_simulation_log

读取仿真日志

list_simulation_artifacts

列举仿真产物

报告

工具

说明

get_flow_summary

获取编译 Flow Summary

get_resource_usage

获取资源利用率报告

read_report_file

读取指定报告文件内容

get_power_report

获取功耗分析报告

run_design_rule_check

执行设计规则检查 (DRC)

设计数据库

工具

说明

export_design_partition

导出设计分区

import_design_partition

导入设计分区

export_design_database

导出设计数据库

back_annotate

Back-annotate 管脚/时序/布线信息

Tcl 脚本

工具

说明

run_tcl_script

执行 .tcl 脚本文件

execute_tcl_command

执行内联 Tcl 命令(⚠️ 直接执行,注意安全性)

设计空间探索

工具

说明

run_design_space_explorer

运行 Design Space Explorer

run_seed_sweep

多 Seed 编译探索

门级仿真

工具

说明

generate_gate_level_simulation

生成门级仿真网表

get_gate_sim_context

获取门级仿真上下文

工程维护

工具

说明

run_power_analysis

执行功耗分析

clean_project

清理工程(删除编译中间文件)

generate_flow_template

生成编译流程 Tcl 模板


工具自动发现 / Auto-Discovery

服务器启动时自动搜索以下路径:

搜索范围

路径模式

C:/ D:/ E:/ F: 盘

intelFPGA_lite/*intelFPGA/*altera/*

WSL 挂载

/mnt/c/intelFPGA_lite/mnt/d/intelFPGA

环境变量

QUARTUS_MCP_ROOTQUARTUS_ROOTDIRQUARTUS_ROOTDIR_OVERRIDEQUARTUS_BIN

调用 list_quartus_installations 查看所有发现的版本,get_quartus_installation 查看当前激活的安装详情。


已验证环境 / Verified Environments

环境

版本

状态

Quartus Prime Lite

24.1std.0 Build 991

Quartus Prime Lite

18.1.0 Build 625

Quartus II Subscription

13.1.0 Build 162

ModelSim-Altera

10.5b (Quartus 18.1 随附)

QuestaSim Intel FPGA

24.1 (Quartus 24.1 随附)


注意事项 / Notes

  • JTAG 下载需要连接开发板和下载线

  • ModelSim/Questa 仿真需要有效许可证

  • 本项目只调用本机命令行工具,不包含 Quartus/ModelSim/IP 库文件

  • execute_tcl_command 会在本机执行任意 Tcl,请只运行可信命令

  • 多版本切换后,已缓存的版本号会重新检测,随后的 IP 核创建会使用新版本号


CQUPT


许可证 / License

MIT — 详见 LICENSE

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    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.
    16
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to drive Xilinx Vivado, Intel Quartus, and Anlogic TangDynasty for FPGA development, including project creation, synthesis, implementation, timing closure, and hardware programming through natural language.
    MIT