3. 开发环境与工具链搭建

Agilex 系列(含 Agilex 7、Agilex 5)只能使用 Quartus Prime Pro 版本进行编译,Standard 版本不支持 Agilex 器件。因此本节的核心任务是:在一台或一批工程机上,把 Quartus Prime Pro、对应器件支持包、许可证、版本控制与团队协作环境一次性搭好,并保证多人、多机之间可复现。下面按“装什么—怎么装—怎么授权—怎么管版本—怎么协作”的顺序展开。

一、安装内容与目录规划

Quartus Prime Pro 的安装包由若干独立组件构成,安装时按需勾选即可,不必全装。对 Agilex 项目,典型组件如下:

  • Quartus Prime Pro 主程序:综合、布局布线、时序分析、编程文件生成的核心,必须安装。
  • Agilex 器件支持包(Device Support):按具体器件系列勾选,例如 Agilex 7(AGF/AGI/AGM 等)与 Agilex 5(A5E/A5M 等)。器件包体积大,只勾选项目实际用到的系列可显著缩短安装时间。
  • ModelSim / Questa Intel FPGA 版:用于 RTL 功能仿真,建议安装。
  • DSP Builder、HLS Compiler、Nios V 工具链:按项目是否使用决定。
  • USB-Blaster / 下载电缆驱动:用于板级下载与调试。

安装路径建议统一规划,避免中文路径与空格。例如 Windows 下使用 D:\intelFPGA_pro\24.3,Linux 下使用 /opt/intelFPGA_pro/24.3。版本号作为一级目录,便于后续并存多个版本。安装完成后,主程序位于 quartus/bin,器件包位于 quartus/common/devinfo 与 quartus/../devices 等目录。

二、安装方式与静默安装

单机安装可直接运行 QuartusProSetup-<版本>.exe(Windows)或 ./QuartusProSetup-<版本>.run(Linux),按向导勾选组件。团队批量部署时更推荐静默安装,便于脚本化与统一版本。以 Linux 为例,可先生成配置文件再执行:

# 1. 生成静默安装配置模板
./QuartusProSetup-24.3std-linux.run --mode text --create-install-config install_config.txt

# 2. 编辑 install_config.txt,关键字段示例
# QUARTUS_PRO_INSTALL_DIR=/opt/intelFPGA_pro/24.3
# DEVICE_AGILEX7=1
# DEVICE_AGILEX5=1
# MODEL_SIM=1
# USB_BLASTER=1

# 3. 执行静默安装
./QuartusProSetup-24.3std-linux.run --mode unattended --unattendedmodeui none \
  --install-config install_config.txt

安装完成后,用 quartus_sh --version 确认主程序版本,用 quartus_sh --list_devices 或 quartus_sh -t 脚本查询已安装器件,确认目标 Agilex 器件确实存在。若器件缺失,说明器件支持包未勾选或安装不完整,需要重新运行安装程序补装。

三、许可证配置

Quartus Prime Pro 需要许可证才能编译。许可证来源通常有两种:Intel FPGA 官方授权(通过 Intel 自助服务或代理商获取 .dat 文件),或公司内部的许可证服务器。配置方式分本地文件与网络浮动两种。

本地文件方式:将 license.dat 放到固定目录,例如 D:\licenses\quartus_pro.dat,然后设置环境变量 LM_LICENSE_FILE 或 QUARTUS_LICENSE_FILE 指向该文件。网络浮动方式则指向服务器端口,例如 27000@lic-server.company.com。Linux 下可在 ~/.bashrc 中写入:

export QUARTUS_LICENSE_FILE=27000@lic-server.company.com
export LM_LICENSE_FILE=$QUARTUS_LICENSE_FILE

配置完成后,用 quartus_sh --license 或启动 Quartus 查看 Help → Licensing 确认授权状态。若提示找不到 Agilex 特性,通常是许可证未包含对应器件特性,需要联系授权方更新 INCREMENT 行。注意:许可证中的 hostid(MAC 地址或 FlexID)必须与本机一致,换机或换网卡后需重新申请。

四、版本管理与团队协作环境

FPGA 工程的版本管理不能只提交源码,还要考虑 Quartus 生成的大量中间文件。推荐做法是:只把源文件、约束文件、脚本、IP 描述文件纳入 Git,把 db/、incremental_db/、output_files/、tmp/ 等加入 .gitignore。典型 .gitignore 片段:

db/
incremental_db/
output_files/
tmp/
*.qws
*.qpf.bak
*.rpt
*.sof
*.pof
*.sopcinfo

工程文件 .qpf、.qsf 必须提交,因为 .qsf 记录了器件型号、引脚约束、编译选项等关键设置。IP 若使用 .ip 或 .qip,也应提交,并确保 IP 生成脚本可复现。团队协作时,建议统一 Quartus 版本号,并在仓库根目录放置 README 说明所需版本、器件包、许可证服务器地址与编译命令。

多人协作的常见问题是“同一工程在不同机器上编译结果不一致”。解决思路是:统一版本、统一器件包、统一编译脚本。推荐用 quartus_sh -t build.tcl 或 quartus_sh --flow compile <project> 进行命令行编译,把编译流程固化到脚本中,避免依赖 GUI 手工操作。CI 环境中可只安装 Quartus 主程序与目标器件包,用脚本完成综合与布局布线,输出 .sof 与报告供后续使用。

Agilex 开发环境与工具链搭建关系图 安装 → 器件包 → 许可证 → 版本管理 → 团队协作 ① Quartus Prime Pro 安装 • 主程序(综合/P&R/时序) • ModelSim / Questa 仿真 • USB-Blaster 驱动 • 路径:D:\intelFPGA_pro\24.3 ② 器件支持包 • Agilex 7:AGF/AGI/AGM • Agilex 5:A5E/A5M • 按项目勾选,减小体积 • 校验:quartus_sh --list_devices ③ 许可证配置 • 本地 .dat 文件 • 网络浮动:27000@server • 环境变量 QUARTUS_LICENSE_FILE • hostid 必须与本机一致 ④ 版本管理(Git) 提交:.qpf / .qsf / .v / .sv / .sdc / .ip / .qip / 脚本 忽略:db/ incremental_db/ output_files/ tmp/ *.sof *.rpt 统一版本号,README 记录 Quartus 版本与器件包 命令行编译:quartus_sh -t build.tcl ⑤ 团队协作环境 • 统一 Quartus 版本与器件包 • 统一许可证服务器地址 • 编译脚本固化,避免 GUI 手工差异 • CI 只装主程序 + 目标器件包 可复现的 Agilex 编译环境 同一版本 + 同一器件包 + 同一许可证 + 同一脚本 → 一致的 .sof 与报告 判断依据:quartus_sh --version / --list_devices / --license 三项均通过

五、环境验证与常见问题

环境搭好后,建议按以下顺序做一次完整验证:第一步,quartus_sh --version 确认版本;第二步,quartus_sh --list_devices 确认目标 Agilex 器件存在;第三步,quartus_sh --license 确认授权有效;第四步,用一个最小工程(例如 LED 闪烁)跑通综合、布局布线、生成 .sof;第五步,用 USB-Blaster 下载到板卡,观察实际现象。五步都通过,说明环境可用。

常见问题与判断依据:若编译报 “Device not supported”,说明器件包缺失;若报 “License not found” 或 “Feature not available”,说明许可证未配置或未包含 Agilex 特性;若多人编译结果不一致,优先检查 Quartus 版本与器件包版本是否一致,再检查 .qsf 是否被误改。把这些检查点写进团队 README,可以显著减少重复排障时间。

建议把 Quartus 版本号、器件包列表、许可证服务器地址、编译命令四项写入仓库根目录的 README.md,新成员按文档操作即可复现环境,避免口头传递造成版本漂移。