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 数据流的实时捕获至关重要。

Agilex FPGA 异构架构概览 FPGA Logic Fabric ALM / Logic Cells 2.0M LE DSP Blocks FP16 / INT8 M20K Memory ~22 MB NoC Chip-to-Chip Hard Processor System (HPS) Quad-Core A76 Up to 2.0 GHz DDR5 / LPDDR5 64-bit ECC High-Speed Transceivers PCIe Gen5 32 GT/s x16 Ethernet 100G / 400G 图 1-1:Agilex 异构架构由 FPGA Fabric、HPS 和高速收发器三大引擎构成,通过 NoC 互联

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 的工作流程可以概括为以下步骤:

  1. 信号选择:在 Quartus Prime 中指定需要捕获的 PCIe 硬核 IP 信号(如 ltssm_state、rx_st_data)。
  2. 触发条件配置:设置触发条件,例如“当 ltssm_state 进入 Recovery 状态时开始捕获”。
  3. 编译与下载:重新编译工程,将包含 ELA 的比特流下载到 Agilex 器件。
  4. 运行与捕获:通过 System Console 或 Signal Tap 逻辑分析仪界面启动捕获。
  5. 波形分析:观察捕获到的信号波形,定位链路异常点。
嵌入式逻辑分析仪(ELA)工作流程 步骤 1 信号选择 步骤 2 触发配置 步骤 3 编译下载 步骤 4 运行捕获 步骤 5 波形分析 ELA 在 PCIe 调试中的典型应用场景 • 捕获 LTSSM 状态跳转:观察链路是否从 L0 异常跳转到 Recovery 或 Hot Reset。 • 监控 TLP 数据流:检查是否出现错误的 TLP 类型或格式。 • 测量链路延迟:通过捕获发送与接收时间戳,计算往返延迟。 • 验证复位序列:确保 pld_rst_n 与 dl_up 信号满足时序要求。

1.4 本章小结