1. Agilex FPGA 架构概述

Agilex 7 系列是 Intel 基于 10nm SuperFin 工艺打造的高性能 FPGA 平台,专为数据密集型加速、网络与计算应用设计。本章从芯片级架构出发,依次剖析核心逻辑、高速串行接口(HSSI)、PCIe 硬核以及内嵌 DMA 控制器,为后续的 PCIe 接口 DMA 传输与驱动调试建立硬件认知基础。

1.1 Agilex 7 系列芯片架构

Agilex 7 采用异构计算架构,将 FPGA 逻辑阵列、硬核处理器系统(HPS)、高速收发器、PCIe 硬核、内存控制器以及 AI Tensor 模块集成在同一芯片上。其核心架构分为以下几个关键区域:

架构模块说明关键特性
FPGA 逻辑阵列自适应逻辑模块(ALM)、DSP 块、M20K 嵌入式存储器每 ALM 含 8 个 LUT 与 8 个寄存器;DSP 支持 INT8/FP16/BF16
硬核处理器系统(HPS)四核 ARM Cortex-A76 + 双核 Cortex-R52运行 Linux / RTOS,管理 PCIe 枚举与 DMA 描述符
高速串行接口(HSSI)多达 144 个 58 Gbps / 116 Gbps 收发器通道支持 PCIe Gen5、100G/400G 以太网、CPRI
PCIe 硬核PCIe Gen5 x16 硬核 IP支持 SR-IOV、TLP 直通、DMA 引擎集成
内存控制器DDR5 / HBM2e 硬核控制器ECC 保护,带宽可达 1 TB/s(HBM2e)
AI Tensor 模块专用矩阵乘法加速器每模块 512 MAC,支持 INT8/FP16
架构要点: Agilex 7 的 PCIe 硬核与 HSSI 收发器在物理上紧邻,片内通过 AXI4-Stream 高速总线与 FPGA 逻辑和 HPS 互联,这为低延迟 DMA 传输提供了硬件基础。
Agilex 7 芯片架构总览 FPGA 逻辑阵列 ALM · DSP · M20K AI Tensor 模块 AXI4-Stream 互联 硬核处理器系统 (HPS) Cortex-A76 ×4 + Cortex-R52 ×2 DDR5 / HBM2e 控制器 DMA 描述符管理器 高速串行接口 (HSSI) + PCIe 硬核 58 Gbps / 116 Gbps 收发器 · PCIe Gen5 x16 · SR-IOV · TLP 直通 片内 AXI4-Stream / AXI4-Lite 互联总线

1.2 HSSI 与 PCIe 硬核

Agilex 7 的 HSSI(High-Speed Serial Interface) 是一组多协议收发器通道,物理层支持 NRZ 和 PAM4 信令。每个收发器通道可独立配置为 PCIe、以太网、CPRI 或 JESD204B 协议。PCIe 硬核则是在 HSSI 之上实现的专用数字逻辑,负责完成事务层、数据链路层和物理层的协议处理。

PCIe 硬核关键特性

  • 支持 Gen5 x16:单向带宽 64 GB/s,双向 128 GB/s。
  • SR-IOV:最多 256 个物理功能(PF)和 2048 个虚拟功能(VF),适合虚拟化场景。
  • TLP 直通(TLP Bypass):允许用户逻辑直接处理事务层包,实现自定义 DMA 协议。
  • 内嵌 DMA 引擎:硬核内部集成描述符取指、数据搬运和完成通知逻辑。
调试要点: 在驱动调试初期,建议先通过 PCIe 配置空间读取 Vendor ID / Device ID 确认硬核枚举成功,再使用内置 Loopback 模式验证 HSSI 收发器链路完整性。

1.3 DMA 控制器简介

Agilex 7 的 DMA 控制器分为两种类型:硬核 DMA(Hard DMA) 和 软核 DMA(Soft DMA)。硬核 DMA 集成在 PCIe 硬核内部,无需消耗 FPGA 逻辑资源;软核 DMA 则使用 FPGA 逻辑实现,灵活性更高。

特性硬核 DMA软核 DMA
资源消耗0 LUT / 0 DSP约 2000–5000 LUT + BRAM
最大吞吐接近 PCIe Gen5 线速受 FPGA 频率与逻辑延迟影响
描述符管理硬件自动取指需用户逻辑或 HPS 软件管理
适用场景高性能、低延迟、固定模式自定义协议、多通道、动态配置
驱动复杂度较低(使用 Intel 官方驱动)较高(需自行实现描述符环)

在本次课程中,我们主要使用 硬核 DMA 进行 PCIe 数据传输,因为它能提供最佳的吞吐性能和最低的驱动开发工作量。硬核 DMA 的工作流程如下:

  1. 描述符提交:主机驱动在内存中构建描述符链表,包含源地址、目的地址、传输长度和标志位。
  2. 门铃寄存器写入:驱动通过 MMIO 写入门铃寄存器,通知 FPGA 硬核 DMA 引擎取指。
  3. 硬件取指与搬运:DMA 引擎通过 PCIe 读取描述符,然后发起 Memory Read / Write TLP 完成数据搬运。
  4. 完成通知:传输完成后,DMA 引擎写回完成状态,并可选触发 MSI-X 中断。
硬核 DMA 传输流程 主机内存 描述符链表 数据缓冲区 PCIe FPGA 硬核 DMA 描述符取指引擎 数据搬运引擎 门铃寄存器 MMIO 写入 1 构建描述符 2 写入门铃 3 取指 + 搬运 4 完成通知
常见误区: 初学者容易混淆“门铃寄存器”与“描述符地址寄存器”。门铃仅用于触发 DMA 引擎开始工作,描述符的地址和长度信息必须预先写入主机内存的描述符链表中,而非直接写入门铃寄存器。

1.4 本章小结

  • Agilex 7 采用 FPGA + HPS + HSSI + PCIe 硬核的异构架构,片内通过 AXI4-Stream 总线互联。
  • HSSI 收发器支持多协议,PCIe 硬核内嵌 DMA 引擎,支持 Gen5 x16 和 SR-IOV。
  • 硬核 DMA 无需消耗 FPGA 逻辑,吞吐高、驱动简单,是本次课程的首选方案。
  • DMA 传输流程分为描述符提交、门铃触发、硬件取指搬运、完成通知四个步骤。