feat: 实现 Vivado 综合功能并修正文档

- 实现 runVivadoSynthesis 工具,支持工程模式和无工程模式
   - 新增 generateSynthesisTcl 生成综合 TCL 脚本
   - 修正文档:明确约束文件依赖(实现阶段必需,综合阶段可选)
   - 补充生成比特流的核心依赖说明
This commit is contained in:
Roe-xin
2026-03-17 09:34:39 +08:00
parent fa5c2cdafd
commit 5adde3d40a
4 changed files with 173 additions and 14 deletions

View File

@ -63,20 +63,24 @@ IC Coder Plugin 目前支持:
#### 3.1.2 runVivadoSynthesis - 综合
- **输入**:工程路径或源文件、芯片型号、顶层模块
- **输入**:工程路径或源文件、芯片型号、顶层模块、约束文件(可选)
- **输出**.dcp 文件、综合报告
- **说明**:执行综合,前端不检查工程是否存在
- **说明**:执行综合,前端不检查工程是否存在。约束文件在此阶段可选,主要用于时序约束
#### 3.1.3 runVivadoImplementation - 实现
- **输入**:综合后的 .dcp 文件路径
- **输入**:综合后的 .dcp 文件路径、约束文件(必需,包含管脚约束)
- **输出**:实现后的 .dcp 文件、时序报告
- **说明**:执行实现,前端不检查 .dcp 是否存在
- **说明**:执行实现,前端不检查 .dcp 是否存在。**管脚约束是必需的**,否则无法完成布局布线
#### 3.1.4 runVivadoBitstream - 生成比特流
- **输入**:实现后的 .dcp 文件路径
- **输出**.bit 文件
- **输出**.bit 文件(可下载到 FPGA 的配置文件)
- **核心依赖**
1. 实现已完成
2. 工程指定目标芯片型号
3. 已完成管脚约束(无管脚约束无法生成)
- **说明**:生成比特流,前端不检查 .dcp 是否存在
### 3.2 配置管理
@ -160,6 +164,7 @@ interface VivadoToolResponse {
```typescript
{
dcpFile: string; // 综合后的 .dcp 文件路径
constraints: string; // 约束文件(必需,包含管脚约束)
mode: 'gui' | 'batch'; // 执行模式
}
```
@ -186,7 +191,7 @@ interface VivadoToolResponse {
后端必须询问:
- **芯片型号**(必需):"请提供 FPGA 芯片型号例如xc7a35tcpg236-1"
- **执行模式**(必需):"选择执行模式1) 图形化 2) 后端执行"
- **约束文件**可选"是否有约束文件(.xdc"
- **约束文件**必需"请提供约束文件(.xdc,包含管脚约束和时序约束"
#### 3.4.2 理解依赖关系
@ -270,9 +275,10 @@ interface VivadoToolResponse {
},
{
"name": "runVivadoImplementation",
"description": "执行 Vivado 实现。前端不检查依赖,后端需确保综合已完成。",
"description": "执行 Vivado 实现。前端不检查依赖,后端需确保综合已完成且提供约束文件。",
"parameters": {
"dcpFile": "综合后的 .dcp 文件路径",
"constraints": "约束文件(必需,包含管脚约束)",
"mode": "执行模式gui/batch"
}
},
@ -303,7 +309,7 @@ AI 执行:
2. [调用] runVivadoSynthesis({ projectPath: "counter.xpr", ... })
[结果] { success: true, outputFiles: ["counter_synth.dcp"], reports: {...} }
3. [调用] runVivadoImplementation({ dcpFile: "counter_synth.dcp", ... })
3. [调用] runVivadoImplementation({ dcpFile: "counter_synth.dcp", constraints: "counter.xdc", ... })
[结果] { success: true, outputFiles: ["counter_impl.dcp"], reports: {...} }
4. [调用] runVivadoBitstream({ dcpFile: "counter_impl.dcp", ... })
@ -330,9 +336,9 @@ AI: 好的,我将使用 Vivado 执行完整的 FPGA 开发流程。请提供
3. 执行模式:
- 图形化模式:打开 Vivado GUI
- 后端执行:自动在后台执行
4. 是否有约束文件(.xdc
4. 约束文件路径.xdc,必需
用户: xc7a35tcpg236-1全部步骤后端执行没有约束文件
用户: xc7a35tcpg236-1全部步骤后端执行约束文件是 counter.xdc
AI: 收到!执行计划:
1. 创建工程
@ -479,6 +485,9 @@ AI: 综合失败,发现以下问题:
- 用户需要配置正确的 Vivado 路径
- 需要设置环境变量 `XILINX_VIVADO`
- 需要有效的 Vivado 许可证
- **需要提供 .xdc 约束文件**
- **管脚约束**必需定义信号与 FPGA 引脚的映射关系实现阶段必须提供
- **时序约束**强烈推荐定义时钟频率和时序要求确保设计满足性能指标
## 8. 后续扩展