3. 开发环境搭建与 Quartus Prime Pro 工程创建
Agilex 5 属于 Intel 新一代中端 FPGA 产品线,其器件架构、收发器与硬核 IP 都要求使用 Quartus Prime Pro 版本进行开发,Standard 版本并不支持 Agilex 5 器件。因此本章的第一件事不是写代码,而是把工具链装对、装全,并把工程骨架搭起来。整个环境可以理解为三层:底层是 Quartus Prime Pro 主程序,中间是 Agilex 5 器件支持包(Device Support),上层是工程与约束文件。三者缺一,编译都会在早期阶段失败。
一、安装 Quartus Prime Pro 与器件支持包
Quartus Prime Pro 采用“主程序 + 独立器件包”的安装方式。主程序安装包体积相对可控,但默认不包含所有器件族,需要在安装器中勾选 Agilex 5 对应的器件支持。以 Quartus Prime Pro 24.x 为例,安装流程如下:
- 从 Intel/Altera 官方下载页面获取 Quartus Prime Pro Edition 安装器(Linux 为
.run,Windows 为.exe)。 - 运行安装器,选择安装目录,例如 Linux 下
/opt/altera/24.1,Windows 下D:\altera\24.1。路径中避免空格与中文,否则后续脚本调用容易出错。 - 在器件选择页面勾选 Agilex 5 器件族。若只做逻辑验证,可只装对应密度档;若涉及收发器或硬核处理器,建议整族安装,避免后期补装。
- 同时勾选 Agilex 5 Device Support 与 Quartus Prime Pro Programmer,前者提供器件模型与布线资源,后者用于下载配置。
- 安装完成后,运行
quartus_sh --version确认版本,并在quartus图形界面中通过 Tools → Install Devices 检查 Agilex 5 是否已注册。
安装完成后建议做一次最小验证:新建一个空工程,器件选 Agilex 5 的一个具体型号(如 A5ED065BB32AE4S),不写任何逻辑直接编译。若能在 Analysis & Synthesis 阶段通过,说明器件模型与工具链已就绪。这一步能提前暴露许可证、器件包、路径等环境问题,比在复杂工程里排查要省事得多。
二、创建 Agilex 5 工程
Quartus Prime Pro 提供图形化 New Project Wizard,也支持用 Tcl 脚本批量建工程。对于教学与团队协作,推荐先用图形界面走一遍,理解各字段含义,再用脚本固化。创建时的关键选项包括:
- 工程目录与名称:目录名与工程名保持一致,例如
agilex5_led_blink,便于脚本引用。 - 顶层实体名:与顶层模块名一致,例如
top,Quartus 默认以顶层实体名匹配文件。 - 器件选择:Family 选 Agilex 5,再选具体器件型号与速度等级。型号中的封装、引脚数、速度等级会直接影响引脚约束与时序结果。
- EDA 工具:仿真可选 ModelSim/Questa,综合与实现由 Quartus 自身完成,一般无需第三方综合器。
工程建立后,目录中会出现 .qpf(工程文件)与 .qsf(设置与约束文件)。.qsf 是工程的核心配置载体,器件型号、引脚分配、时序约束引用、编译选项都记录在其中。理解 .qsf 的结构,比记住图形界面按钮更重要。
# 典型 .qsf 片段(示例)
set_global_assignment -name FAMILY "Agilex 5"
set_global_assignment -name DEVICE A5ED065BB32AE4S
set_global_assignment -name TOP_LEVEL_ENTITY top
set_global_assignment -name VERILOG_FILE top.v
set_location_assignment PIN_A12 -to clk_50m
set_location_assignment PIN_B7 -to led[0]
set_instance_assignment -name IO_STANDARD "1.8 V" -to clk_50m
三、引脚约束与编译流程
引脚约束把设计中的端口映射到器件物理引脚,并指定 I/O 标准。Agilex 5 的 I/O Bank 电压、差分对、专用时钟引脚都有明确规则,约束写错会导致编译报错或上板无输出。常用做法是在 Pin Planner 中分配,再让工具写回 .qsf。约束时需注意三点:时钟输入应尽量使用专用时钟引脚;同一 Bank 的 I/O 标准电压要一致;差分信号要成对分配。
编译流程分为 Analysis & Synthesis、Fitter、Assembler、TimeQuest 时序分析四个阶段。综合把 RTL 转为门级网表,Fitter 完成布局布线,Assembler 生成 .sof 配置文件,时序分析给出建立/保持余量。判断编译是否成功,不能只看 “Compilation successful”,还要看时序报告中的 Slack 是否为正值。
上板验证时,用 Programmer 加载 .sof 到 Agilex 5 器件。若使用 JTAG,需确认下载电缆驱动已安装、器件链被正确识别。对于需要掉电保持的场景,还要把 .sof 转换为 .pof 并写入配置 Flash。至此,从工具安装到工程编译、下载的完整链路才算闭合。
为便于快速复查,下面给出一份环境与工程检查清单,可在每次新建工程时逐项确认:
| 检查项 | 期望状态 | 确认方式 |
|---|---|---|
| Quartus 版本 | Pro 版,支持 Agilex 5 | quartus_sh --version |
| 器件支持包 | 与主程序同版本 | Tools → Install Devices |
| 工程器件型号 | 与实际芯片一致 | 查看 .qsf 中 DEVICE |
| 顶层实体 | 与顶层模块名一致 | TOP_LEVEL_ENTITY |
| 引脚约束 | 无重复、Bank 电压一致 | Pin Planner 报告 |
| 时序结果 | Slack ≥ 0 | TimeQuest 报告 |
| 配置文件 | 生成 .sof | output_files 目录 |
把上述流程走通一次后,后续工程可以直接复制 .qsf 模板并替换器件型号与引脚,大幅减少重复劳动。环境搭建看似琐碎,但它决定了后面所有实验能否顺利编译与上板,值得在开始阶段就做扎实。