使用说明
MCP 服务器
用于Xilinx Vivado FPGA开发自动化的MCP(模型上下文协议)服务器。该服务器允许Claude Code和其他兼容MCP的AI工具与Vivado交互,以构建、合成和管理FPGA项目。
特性
- 自动Vivado检测 -查找Windows和Linux上的Vivado安装
- 完整构建流程 -运行合成、实现和比特流生成
- 个性化构建步骤 -分别运行合成、实现或比特流
- 持续的TCL会话 -保持Vivado运行以实现快速迭代命令
- 构建状态检查 -查询以前版本的状态
- 清洁建筑 -删除构建工件以进行新的重建
先决条件
- Python 3.10或更高版本
- 已安装Xilinx Vivado(已在2023.x和2024.x上测试)
- 紫外线 (推荐)或pip
安装
选项1:使用紫外线从源头安装(建议用于开发)
# Clone the repository
git clone https://github.com/yourusername/vivado-mcp.git
cd vivado-mcp
# Install with uv
uv sync
选项2:使用pip安装
pip install vivado-mcp
选项3:使用pip从源代码安装
git clone https://github.com/yourusername/vivado-mcp.git
cd vivado-mcp
pip install -e .
使用Claude代码
Claude Code可以使用MCP服务器来扩展其功能。要将此服务器添加到Claude Code中,请执行以下操作:
步骤1:添加MCP服务器配置
运行此命令将服务器添加到Claude Code配置中:
claude mcp add vivado-mcp
出现提示时,输入启动服务器的命令:
如果安装了紫外线(来源):
uv run --directory /path/to/vivado-mcp vivado-mcp
如果与pip一起安装:
vivado-mcp
步骤2:替代方案-手动配置
您还可以手动编辑Claude Code MCP设置。设置文件位于:
- macOS:
~/.claude/claude_desktop_config.json - Linux:
~/.config/claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
将以下内容添加到 mcpServers 章节:
如果安装了紫外线:
{
"mcpServers": {
"vivado-mcp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/vivado-mcp", "vivado-mcp"]
}
}
}
如果与pip一起安装:
{
"mcpServers": {
"vivado-mcp": {
"command": "vivado-mcp"
}
}
}
使用Vivado配置的环境变量:
{
"mcpServers": {
"vivado-mcp": {
"command": "vivado-mcp",
"env": {
"VIVADO_PATH": "/opt/Xilinx/Vivado/2023.2",
"VIVADO_VERSION": "2023.2"
}
}
}
}
步骤3:重新启动Claude代码
添加配置后,重新启动Claude Code以使更改生效。您可以通过要求Claude列出可用工具或检测Vivado安装来验证服务器是否正在运行。
手动运行服务器
您也可以直接运行服务器进行测试:
# With uv
uv run vivado-mcp
# With pip install
vivado-mcp
# Or directly with Python
python -m vivado_mcp.server
配置
服务器可以通过环境变量或配置文件进行配置。
环境变量
| 变量 | 描述 | 示例 |
|---|---|---|
VIVADO_PATH |
Vivado安装的显式路径 | /opt/Xilinx/Vivado/2023.2 |
VIVADO_VERSION |
要使用的特定版本 | 2023.2 |
VIVADO_SEARCH_PATHS |
其他搜索路径(冒号/分号分隔) | /custom/path1:/custom/path2 |
配置文件
创建 vivado-mcp.json 项目目录或主目录中的文件:
{
"vivado_path": "/path/to/vivado/2023.2",
"vivado_version": "2023.2",
"additional_search_paths": ["/custom/search/path"]
}
Vivado自动检测
服务器会自动在标准位置搜索Vivado:
- 视窗:
C:\Xilinx\Vivado\* - Linux:
/opt/Xilinx/Vivado/*,/tools/Xilinx/Vivado/*,~/Xilinx/Vivado/* - macOS:
/Applications/Xilinx/Vivado/*,~/Xilinx/Vivado/*
可用工具
检测活的
检测系统上的Vivado安装。
参数:
version(可选):要查找的特定版本(例如“2023.2”)include_all(可选):返回所有安装,而不仅仅是默认安装
Claude中的示例用法:
“检测我的系统上安装了哪些Vivado版本”
run_build
运行完整的Vivado构建流(合成->实现->比特流)。
参数:
project_path(必需):.xpr项目文件或.tcl构建脚本的路径vivado_version(可选):要使用的特定Vivado版本timeout(可选):超时时间(秒)
Claude中的示例用法:
“在/home/user/projects/fpga/myproject.xpr上构建我的Vivado项目”
run_synthesis
仅运行Vivado合成(无实现或比特流)。
参数:
project_path(必需):.xpr项目文件或.tcl构建脚本的路径vivado_version(可选):要使用的特定Vivado版本timeout(可选):超时时间(秒)
Claude中的示例用法:
“在我的项目上运行合成以检查错误”
运行实施
仅运行Vivado实现(需要完成合成)。
参数:
project_path(必需):.xpr项目文件或.tcl构建脚本的路径vivado_version(可选):要使用的特定Vivado版本timeout(可选):超时时间(秒)
生成比特流
仅生成比特流(需要完成实现)。
参数:
project_path(必需):.xpr项目文件或.tcl构建脚本的路径vivado_version(可选):要使用的特定Vivado版本timeout(可选):超时时间(秒)
get_build_status
检查以前的Vivado构建是否成功完成。
参数:
project_path(必需):.xpr项目文件或项目目录的路径
Claude中的示例用法:
“我上次构建的状态是什么?”
清洁建筑
清理Vivado生成输出目录(.runs/、.cache/、.gen/、.hw/、.ip_user_files/)。
参数:
project_path(必需):.xpr项目文件或项目目录的路径
Claude中的示例用法:
“清理构建输出,以便我可以进行新的构建”
start_tcl_session
启动一个持久的Vivado TCL shell会话,以获得更快的迭代命令。
参数:
vivado_version(可选):要使用的特定Vivado版本working_directory(可选):会话的工作目录
run_tcl_command
在Vivado会话中执行TCL命令(如果可用,则使用持久会话,否则使用批处理模式)。
参数:
command(必填):要执行的TCL命令session_id(可选):要使用的特定会话IDtimeout(可选):超时秒数(默认值:300)
Claude中的示例用法:
“运行TCL命令:get_property STATUS[get_runs synth_1]”
close_tcl_session
关闭持续的Vivado TCL shell会话。
参数:
session_id(可选):要关闭的会话ID(如果未指定,则默认关闭)
list_tcl_sessions
列出所有活动的Vivado TCL shell会话。
故障排除
服务器未启动
- 检查是否安装了Python 3.10+:
python --version - 验证软件包是否已安装:
pip show vivado-mcp - 尝试手动运行服务器以查看错误:
vivado-mcp
未检测到Vivado
- 确保Vivado安装在标准位置
- 设置
VIVADO_PATHVivado安装的环境变量 - 使用
detect_vivado工具与include_all: true看看发现了什么
Claude Code看不到服务器
- 确保配置文件位于正确的位置
- 更改配置后重新启动Claude Code
- 检查命令路径是否正确(如果需要,请使用绝对路径)
发展
运行测试
uv run pytest
类型检查
uv run mypy src/
代码检查
uv run ruff check src/
许可证
麻省理工学院