用于DE10纳米FPGA开发的MCP服务器
两个模型上下文协议(MCP)服务器,用于自动化Intel Quartus FPGA构建和DE10 Nano板管理。
服务器
夸图斯mcp
Intel Quartus项目的FPGA构建自动化。
重要提示:构建时始终使用异步模式 Quartus FPGA构建需要20-45分钟。 始终使用quartus_build_async以避免堵塞。 同步quartus_build将在整个构建期间阻止Claude-不要使用它。 异步工作流: 1.quartus_build_async()-开始构建,获取task_id,继续工作 1.quartus_task_status()-检查是否完成(定期轮询) 1.quartus_task_wait()-阻塞直到完成(当你需要结果时) 1.quartus_task_cancel()-必要时中止
| 工具 | 说明 |
|---|---|
quartus_build_async(project_path, clean_first?) | 使用此 -在后台开始构建,立即返回。 |
quartus_task_status(task_id?) | 无阻塞地检查构建进度。 |
quartus_task_wait(timeout?) | 等待当前构建完成,返回结果。 |
quartus_task_cancel() | 取消当前正在运行的生成。 |
quartus_task_list() | 列出当前+最近完成的构建。 |
quartus_status(project_path) | 检查是否存在构建工件。 |
quartus_clean(project_path) | 清理构建工件。 |
quartus_build(project_path, clean_first?) | 同步构建- 避免 (20-45分钟)。 |
特征:
- 自动配置
PATH和QSYS_ROOTDIR第24.1季度 - 1小时构建超时
- 分析构建日志以查找错误
- 返回具有RBF路径和大小的结构化结果
- 异步构建:在后台运行构建而不阻塞Claude
- 单一构建执行:每台机器一次只能构建一个版本(通过
~/.quartus-mcp/state.json) - 构建历史记录:保留最后10个已完成的构建及其结果
de10纳米mcp
DE10 Nano(Cyclone V SoC)的板管理和部署。
| 工具 | 说明 |
|---|---|
board_status() | 快速健康检查-SSH连接、串行端口、正常运行时间。 |
ssh_cmd(command, timeout?, sudo?) | 通过SSH执行命令。 |
serial_cmd(command, timeout?) | 通过串行控制台(pyserial)执行命令。 |
sw_sync(local_dir, remote_dir?) | 将整个文件夹同步到板上(默认值:~/sw)。 |
fpga_verify() | 读取寄存器以验证比特流是否已加载。 |
fpga_deploy(rbf_path) | 完全部署:备份、复制、重新启动、等待、验证。 |
fpga_recover() | 当主板无法启动时,通过串行进行U-Boot恢复。 |
特征:
- 用途
paramikoSSH(适当的超时处理) - 用途
pyserial用于串行(永远不会像shell命令那样挂起) fpga_deploy重启后在线投票(90秒超时)fpga_recover自动计算U-Boot的十六进制文件大小fatwrite
配置
默认电路板设置(硬编码 de10nano_mcp/server.py):
| 设置 | 值 |
|---|---|
| SSH主机 | analog.local |
| SSH用户 | analog |
| SSH端口 | 22 |
| 串行端口 | /dev/ttyUSB0 |
| 串行波特率 | 115200 |
| 启动RBF | /boot/soc_system.rbf |
默认四分位数设置(in quartus_mcp/server.py):
| 设置 | 值 |
|---|---|
| Quartus小径 | /opt/altera_lite/24.1std/quartus/bin |
| QSYS根 | /opt/altera_lite/24.1std/quartus/sopc_builder/bin |
| 构建超时 | 3600 秒(1小时) |
安装
cd ~/Documents/dvp/mcp-servers
# Create virtual environment
python3 -m venv .venv
# Install both servers (editable mode)
.venv/bin/pip install -e quartus-mcp -e de10nano-mcpClaude代码配置
添加到您的项目 .mcp.json:
{
"mcpServers": {
"quartus": {
"command": "/home/abb/Documents/dvp/mcp-servers/.venv/bin/quartus-mcp"
},
"de10nano": {
"command": "/home/abb/Documents/dvp/mcp-servers/.venv/bin/de10nano-mcp"
}
}
}重新启动Claude Code以加载服务器。
用法示例
构建FPGA(异步-推荐)
# Start build in background (returns immediately)
quartus_build_async(project_path="/home/abb/de10-nanon/hdl-phase/projects/cn0579/de10nano")
# Do other work while build runs...
# Check status periodically
quartus_task_status()
# Or wait for completion when you need the result
quartus_task_wait()部署到董事会
Use fpga_deploy with rbf_path="/home/abb/de10-nanon/hdl-phase/projects/cn0579/de10nano/cn0579_de10nano.rbf"将软件同步到板上
Use sw_sync with local_dir="/home/abb/de10-nanon/hdl-phase/sw"这将同步整个 sw/ 文件夹到 ~/sw/ 在董事会上。然后按以下方式运行脚本:
sudo python3 ~/sw/pll_tuner.py monitor检查板状态
Use board_status (no arguments)从坏比特流中恢复
如果电路板在出现错误比特流后卡在U-Boot提示符处:
Use fpga_recover (no arguments)这将:
- 通过串行连接
- 从SD卡加载备份RBF
- 计算文件大小并写入主RBF
- 重新启动并验证
异步构建工作流
FPGA构建需要20-45分钟。始终使用异步模式以避免阻塞Claude。
1. START BUILD (returns immediately):
quartus_build_async(project_path="/path/to/project")
-> Returns: task_id (e.g., "build-20240122-153000")
-> Claude can now do other work!
2. CHECK PROGRESS (non-blocking):
quartus_task_status()
-> Returns: RUNNING + elapsed time, or SUCCESS/FAILED + results
3. WAIT FOR COMPLETION (when you need the result):
quartus_task_wait(timeout=3600)
-> Blocks until build finishes, returns full result
-> Use this when you're ready to deploy
4. CANCEL IF NEEDED:
quartus_task_cancel()
-> Kills the running build process
5. VIEW HISTORY:
quartus_task_list()
-> Shows current task + last 10 completed builds为什么async很重要: 同步构建块Claude 20-45分钟,浪费上下文 Async允许Claude启动构建,执行其他任务(编辑代码, 运行测试,回答问题),然后在构建完成时返回查看。
测试
使用模拟模式运行测试(不需要真正的Quartus):
cd ~/Documents/dvp/mcp-servers-async
QUARTUS_MCP_MOCK=3 .venv/bin/python quartus-mcp/tests/test_quartus_mcp.py模拟模式环境变量:
QUARTUS_MCP_MOCK=1-启用10秒构建的模拟QUARTUS_MCP_MOCK=-使用N秒构建启用模拟
依赖项
- Python>=3.10
mcp>=1.0.0(MCP Python SDK)paramiko>=3.4.0(SSH)pyserial>=3.5(串行)
许可证
麻省理工学院
