4. 开发环境搭建:Quartus Prime Pro安装与许可、Platform Designer(QSys)使用、ModelSim/Questa仿真设置

Agilex 系列 FPGA 的开发依赖 Intel Quartus Prime Pro 软件套件。本章节将系统讲解开发环境的完整搭建流程,涵盖 Quartus Prime Pro 的安装与许可配置、Platform Designer(原 QSys)的工程化使用方法,以及 ModelSim/Questa 仿真环境的设置要点。正确的环境搭建是后续高速收发器与 PCIe 接口联合调试的基础保障。

4.1 Quartus Prime Pro 安装与许可配置

Quartus Prime Pro 是支持 Agilex 系列的唯一开发工具版本。安装前需确认操作系统兼容性(Windows 10/11 64-bit 或 Red Hat Enterprise Linux 7/8),并预留至少 40GB 磁盘空间。

4.1.1 安装步骤与组件选择

  1. 下载安装包:从 Intel FPGA 官网下载 Quartus Prime Pro 最新版本(如 23.4+),建议同时下载 Agilex 器件库。
  2. 运行安装程序:以管理员权限执行 setup.exe,选择安装路径(避免中文或空格)。
  3. 组件选择:勾选以下核心组件:
    • Quartus Prime Pro Edition
    • Agilex 7 / Agilex 5 器件支持
    • Platform Designer(默认包含)
    • ModelSim Intel FPGA Edition 或 Questa Intel FPGA Edition
  4. 环境变量:安装完成后,系统自动添加 QUARTUS_ROOTDIR 环境变量,指向安装根目录。
提示:若需同时使用多个 Quartus 版本,建议通过 quartus_setup.bat 脚本切换环境变量,避免版本冲突。

4.1.2 许可文件配置

Quartus Prime Pro 采用浮动许可(FlexLM)机制。许可配置步骤如下:

步骤 操作 说明
1 获取 MAC 地址 在命令行执行 ipconfig /all(Windows)或 ifconfig(Linux),记录物理地址
2 申请许可文件 登录 Intel FPGA 许可中心,绑定 MAC 地址生成 license.dat
3 设置环境变量 添加系统变量 LM_LICENSE_FILE,值为许可文件路径(如 C:\intelFPGA\license.dat)
4 启动许可服务 运行 lmgrd -c license.dat(Windows 服务或 Linux 守护进程)
5 验证许可 打开 Quartus Prime,进入 Tools → License Setup,确认状态为 Licensed
注意:Agilex 器件需要 Pro 版许可,标准版许可无法编译 Agilex 工程。若使用虚拟机,需确保 MAC 地址固定,否则许可会失效。

4.2 Platform Designer(QSys)使用

Platform Designer 是 Intel 提供的系统级集成工具,用于快速搭建包含处理器、外设、高速接口的片上系统。在 Agilex 项目中,Platform Designer 负责例化 PCIe Hard IP、DDR4/5 控制器、时钟复位模块等关键组件。

4.2.1 界面与工作流程

Platform Designer 的典型工作流程包含以下阶段:

  1. 创建系统:在 Quartus 中执行 Tools → Platform Designer,新建一个系统文件(.qsys)。
  2. 添加组件:从 IP Catalog 中拖拽所需 IP,如 Agilex Hard IP for PCI Express、Reset Release IP、Clock Bridge。
  3. 连接总线:使用 Connections 视图手动连接 Avalon-MM 或 AXI 总线,确保地址映射正确。
  4. 配置参数:双击组件进行参数化配置,如 PCIe 链路宽度(x8/x16)、参考时钟频率(100MHz/125MHz)。
  5. 生成 HDL:点击 Generate HDL,选择输出语言(Verilog/VHDL),生成系统顶层文件。
关键点:Platform Designer 生成的 .qsys 文件是 Agilex 工程的“骨架”,后续所有高速接口的例化与连接都基于此系统。建议在生成前使用 Validate System 功能检查连接错误。

4.2.2 高速收发器与 PCIe 的集成示例

下图展示了在 Platform Designer 中集成 Agilex 高速收发器与 PCIe Hard IP 的典型架构:

Platform Designer 集成架构:Agilex 高速收发器 + PCIe Hard IP Platform Designer 系统 PCIe Hard IP Gen4/Gen5 x8/x16 高速收发器 (Transceiver) 28Gbps / 58Gbps PAM4 时钟与复位模块 用户逻辑 (User Logic) DMA 引擎 数据缓冲区 协议处理 状态控制 PCIe 链路 (外部) SFP/QSFP (外部) 说明 Platform Designer 自动生成 Avalon-MM/AXI 总线连接

4.3 ModelSim/Questa 仿真设置

仿真验证是高速接口调试的关键环节。ModelSim Intel FPGA Edition 和 Questa Intel FPGA Edition 均支持 Agilex 器件的仿真模型。本节以 Questa 为例说明仿真环境搭建步骤。

4.3.1 仿真库编译

首次使用前,必须编译 Agilex 器件仿真库。Quartus Prime Pro 提供 Library Compiler 工具自动完成此过程。

# 在 Quartus 命令行中执行库编译
quartus_sh --qcompile --family=agilex7 --tool=questa --output_dir=./questa_lib

# 或使用 GUI 方式:Tools → Launch Simulation Library Compiler
# 选择仿真器:Questa Intel FPGA Edition
# 选择器件族:Agilex 7
# 指定输出目录后点击 Start Compilation
提示:编译完成后,将库路径添加到 modelsim.ini 或 questa.ini 文件中,避免每次仿真都重新编译。典型路径为 ./questa_lib/agilex7。

4.3.2 仿真脚本模板

以下是一个适用于 Agilex PCIe 工程的 Questa 仿真脚本示例:

# run_sim.tcl
# 清除之前的工作
quit -sim
.main clear

# 设置库路径
set QUESTA_LIB ./questa_lib
set WORK_LIB ./work

# 映射库
vlib $WORK_LIB
vmap work $WORK_LIB
vmap agilex7 $QUESTA_LIB/agilex7

# 编译设计文件
vlog -work work +incdir+../rtl ../rtl/pcie_top.sv
vlog -work work +incdir+../rtl ../rtl/transceiver_wrapper.sv
vlog -work work +incdir+../testbench ../testbench/tb_pcie_top.sv

# 加载仿真
vsim -voptargs=+acc work.tb_pcie_top

# 添加波形
add wave -r /tb_pcie_top/*

# 运行仿真
run 10 us

4.3.3 仿真调试技巧

场景 推荐操作 说明
PCIe 链路训练 观察 pcie_ltssm_state 信号 检测链路状态机是否进入 L0 状态
收发器 PLL 锁定 检查 tx_pll_locked 和 rx_pll_locked PLL 未锁定时无法进行数据收发
数据完整性 使用 assert 或 check 语句 在 testbench 中嵌入 CRC 校验逻辑
仿真加速 启用 -voptargs=+acc 优化编译 减少仿真时间,但保留全部信号可见性

4.4 环境验证与常见问题

搭建完成后,建议通过一个简单的 Agilex PCIe 回环工程验证环境正确性。验证流程如下:

  1. 在 Platform Designer 中创建包含 PCIe Hard IP 和收发器的系统。
  2. 生成 HDL 并编译 Quartus 工程,确保无时序违例。
  3. 运行 Questa 仿真,观察 PCIe LTSSM 状态机是否进入 L0。
  4. 检查收发器眼图测试结果(硬件环境)。
常见问题:
  • 许可错误:检查 LM_LICENSE_FILE 环境变量是否指向正确路径,以及 lmgrd 服务是否运行。
  • 仿真库缺失:确认 modelsim.ini 中已映射 Agilex 库路径,或重新运行 Library Compiler。
  • Platform Designer 连接失败:使用 Validate System 功能检查未连接的时钟、复位或中断信号。

完成上述环境搭建后,即可进入下一阶段:Agilex 高速收发器与 PCIe 接口的联合调试实战。