1. Agilex FPGA 概述:架构、PCIe Gen5 硬核与嵌入式逻辑分析仪
本章作为课程的开篇,首先建立对 Agilex FPGA 系列的整体认知。Agilex 是 Intel 推出的基于 10nm SuperFin 工艺的高性能 FPGA 家族,其核心亮点在于集成了 PCIe Gen5 硬核 IP 以及片上调试利器——嵌入式逻辑分析仪(ELA)。理解这三者的关系,是后续进行 PCIe 链路调试的基础。
1.1 Agilex 系列架构特点
Agilex 系列 FPGA 采用了异构计算架构,将传统 FPGA 逻辑与高性能计算单元、高速接口紧密集成。其架构核心可概括为“三引擎”协同:
- FPGA 逻辑 Fabric:基于自适应逻辑模块(ALM)和数字信号处理(DSP)块,提供可编程的并行计算能力。
- 硬核处理器系统(HPS):集成四核 ARM Cortex-A76 处理器,运行 Linux 或裸机程序,负责系统管理与上层协议处理。
- 高速串行收发器(Transceiver):支持从 1 Gbps 到 112 Gbps 的 PAM4 信令,是 PCIe Gen5 链路的物理层基础。
关键指标: Agilex 7 系列(原 Agilex-F)最高支持 58 Gbps NRZ 和 116 Gbps PAM4 收发器速率,逻辑单元密度可达 200 万 LE 以上。
下表对比了 Agilex 系列中不同子系列在关键资源上的差异:
| 子系列 | 逻辑单元 (LE) | 最大收发器速率 | PCIe 支持 | HPS 核心 |
|---|---|---|---|---|
| Agilex 7 (F-Series) | 2.0M | 58 Gbps NRZ | Gen5 x16 | 四核 A76 |
| Agilex 7 (I-Series) | 1.2M | 116 Gbps PAM4 | Gen5 x16 | 四核 A76 |
| Agilex 5 (D-Series) | 0.5M | 32 Gbps NRZ | Gen4 x8 | 双核 A76 |
Agilex 的另一个架构特点是采用了 芯片上网络(NoC) 结构,用于连接 Fabric、HPS 和高速接口,提供高带宽、低延迟的内部数据通路,这对 PCIe 数据流的实时捕获至关重要。
1.2 PCIe Gen5 硬核 IP 介绍
Agilex 集成的 PCIe Gen5 硬核 IP 是链路调试的核心对象。与软核实现相比,硬核 IP 在功耗、面积和时序收敛上具有显著优势。该 IP 支持以下关键特性:
- 速率与宽度:每通道 32 GT/s,支持 x1、x2、x4、x8、x16 配置。
- 协议层:完整实现物理层(PHY)、数据链路层(DLL)和事务层(TLP),支持 MRd、MWr、CplD 等标准事务。
- 高级功能:支持 ARI(替代路由ID解释)、SR-IOV(单根I/O虚拟化)、TLP 处理提示(TPH)等。
- 调试接口:提供专用的调试端口,用于访问链路状态、错误计数器和 LTSSM 状态机。
调试切入点: PCIe Gen5 的 LTSSM(链路训练与状态机)包含 11 个主要状态(如 Detect、Polling、Configuration、L0、Recovery 等)。链路调试的第一步通常是观察 LTSSM 是否稳定停留在 L0 状态。
下表列出了 PCIe Gen5 硬核 IP 在调试中需要关注的关键信号组:
| 信号组 | 方向 | 调试用途 |
|---|---|---|
pld_clk / pld_rst_n |
输入 | 检查用户时钟与复位是否稳定 |
rx_st_* / tx_st_* |
双向 | 监控 AXI4-Stream 接口上的 TLP 数据流 |
ltssm_state[4:0] |
输出 | 实时读取 LTSSM 状态编码 |
dl_up |
输出 | 数据链路层初始化完成标志 |
phy_* |
双向 | 物理层信号质量与链路宽度协商结果 |
1.3 嵌入式逻辑分析仪(ELA)基本概念
嵌入式逻辑分析仪(ELA)是 Intel 提供的一种片上调试工具,它利用 FPGA 内部的存储资源(如 M20K 块)和逻辑资源,实现类似传统逻辑分析仪的功能,但无需外部探头。ELA 的核心组件包括:
- 信号探针(Probe):用户选择需要观察的内部信号,ELA 会自动插入探针逻辑。
- 触发逻辑(Trigger):支持多级触发条件,如边沿、电平、数据模式、计数器溢出等。
- 存储深度(Sample Depth):由分配的 M20K 块数量决定,典型配置为 64K 到 2M 样本。
- 时钟域(Clock Domain):ELA 必须在被测信号的时钟域下工作,支持跨时钟域捕获。
资源占用提示: ELA 会消耗 FPGA 内部的逻辑单元(用于触发逻辑)和 M20K 块(用于存储)。在调试 PCIe Gen5 链路时,建议预留至少 2 个 M20K 块作为 ELA 存储,避免影响用户逻辑布局。
ELA 的工作流程可以概括为以下步骤:
- 信号选择:在 Quartus Prime 中指定需要捕获的 PCIe 硬核 IP 信号(如
ltssm_state、rx_st_data)。 - 触发条件配置:设置触发条件,例如“当
ltssm_state进入 Recovery 状态时开始捕获”。 - 编译与下载:重新编译工程,将包含 ELA 的比特流下载到 Agilex 器件。
- 运行与捕获:通过 System Console 或 Signal Tap 逻辑分析仪界面启动捕获。
- 波形分析:观察捕获到的信号波形,定位链路异常点。