2. Agilex 5架构基础

Agilex 5 是 Intel 面向中端边缘与嵌入式市场推出的 SoC FPGA 系列,其核心价值在于把一颗多核 ARM 处理器系统(HPS)与可编程逻辑(FPGA fabric)集成在同一芯片内,并通过高带宽片上互联打通两者。理解 Agilex 5 的架构,是后续做 DDR5 内存子系统、PCIe 高速接口以及 HPS-FPGA 协同设计的前提。本节从 HPS 组成、互联结构、器件选型与开发板资源四个角度建立整体认知。

一、HPS 硬核处理器系统组成

Agilex 5 的 HPS 是一个独立的硬核子系统,不占用 FPGA 逻辑资源,上电即可运行。它主要由以下部分构成:

  • 处理器核心:双核 ARM Cortex-A76 与双核 Cortex-A55 组成的大小核集群(部分型号为 A55 四核),共享二级缓存,支持 Linux、RTOS 等操作系统。
  • 缓存与一致性:每个核心带独立 L1,集群共享 L2,并通过 CCI/CMN 类一致性互连管理大小核与加速器之间的缓存一致性。
  • 内存控制器:硬核 DDR5/LPDDR5 控制器,支持 ECC,是 HPS 与外部大容量内存之间的唯一通道。
  • 外设子系统:包含 USB、以太网、SD/eMMC、UART、I2C、SPI、GPIO、定时器等硬核外设控制器。
  • 系统管理:时钟复位管理、电源管理、安全启动与 TrustZone 支持。

需要强调的是,HPS 内的外设是硬核实现,性能与引脚位置固定;而 FPGA fabric 中的逻辑是软实现,可自由定制。两者定位不同,不能互相替代。

二、FPGA fabric 与 HPS 的互联结构

HPS 与 FPGA fabric 之间并非简单几根线,而是一组分层的片上互联通道,按用途可分为三类:

  1. 高带宽数据通道:如 AXI 主/从端口,用于 HPS 访问 fabric 中的加速器、DMA 数据搬运,是吞吐量最大的路径。
  2. 轻量控制通道:如轻量 AXI(LWHPS2FPGA、FPGA2HPS),用于寄存器配置、状态读取,延迟低但带宽小。
  3. 中断与调试通道:fabric 逻辑可向 HPS 的 GIC 发送中断,HPS 也可通过 JTAG/调试接口访问 fabric。

互联的关键参数是位宽、时钟域和地址映射。HPS 访问 fabric 时,地址会经过桥接映射到 FPGA 侧;fabric 访问 HPS 外设时,则通过 HPS 的从端口进入。设计时必须明确每条通路的位宽与时钟,否则会出现带宽瓶颈或跨时钟域问题。

Agilex 5 SoC 架构与 HPS–FPGA 互联示意 HPS 硬核处理器系统 Cortex-A76 ×2 大核 / 高性能 Cortex-A55 ×2 小核 / 低功耗 L2 缓存 + 一致性互连 (CCI/CMN) DDR5 / LPDDR5 控制器 (支持 ECC) → 外部 DDR5 颗粒 硬核外设子系统 USB · 以太网 · SD/eMMC · UART I2C · SPI · GPIO · 定时器 系统管理 时钟复位 · 电源 · 安全启动 · TrustZone FPGA Fabric 可编程逻辑 用户逻辑 / 加速器 自定义数据通路 · 算法卸载 DMA / 数据搬运引擎 高吞吐 AXI 主端口 寄存器 / 控制逻辑 轻量 AXI 从端口 中断生成 / 调试逻辑 → GIC · JTAG 高带宽 AXI DMA 数据流 轻量 AXI 配置 中断 / 调试 HPS 与 Fabric 通过分层互联交换数据、控制与中断信号

三、SoC 器件选型要点

Agilex 5 系列内部按逻辑密度、处理器配置、收发器速率和封装划分多个型号。选型时建议按以下顺序判断:

选型维度关注点典型影响
逻辑资源LE/ALM 数量、DSP、M20K 块决定加速器与接口逻辑规模
处理器配置A76/A55 核数、主频决定操作系统与算力上限
内存接口DDR5/LPDDR5 速率、位宽、ECC决定带宽与可靠性
高速收发器PCIe Gen、通道数、速率决定与主机/外设互联能力
封装与功耗引脚数、散热、供电决定 PCB 层数与散热设计
选型时先锁定接口需求(PCIe 通道数、DDR5 位宽),再反推逻辑资源与封装,避免先选大器件造成成本与布线浪费。

四、开发板资源与实操场景

以 Agilex 5 开发板为例,典型资源包括:核心 SoC 器件、板载 DDR5 内存、PCIe 金手指或插槽、以太网 PHY、USB-Blaster/JTAG 调试口、SD 卡启动槽、用户 LED 与按键,以及扩展 GPIO 排针。这些资源对应到实际开发流程中:

# 典型启动与调试链路
SD 卡 / eMMC  →  加载 U-Boot  →  加载 Linux 内核  →  挂载根文件系统
JTAG          →  Quartus 下载 .sof  →  配置 FPGA fabric
HPS 侧        →  通过 /dev/mem 或 UIO 访问 fabric 寄存器
PCIe 侧       →  枚举设备  →  映射 BAR  →  DMA 传输测试

一个常见场景是:HPS 运行 Linux 负责网络与存储,FPGA fabric 实现高速数据采集加速器,两者通过高带宽 AXI 与 DMA 交换数据,HPS 通过轻量 AXI 配置加速器寄存器。此时 DDR5 由 HPS 内存控制器统一管理,fabric 通过 HPS 从端口访问内存。

常见误区:把 HPS 外设与 fabric 逻辑混为一谈。HPS 的 UART、I2C 是硬核,引脚固定;若在 fabric 中再实现一套,会占用逻辑资源且地址空间不同。设计前务必确认外设归属,避免重复实现和地址冲突。

五、复盘与检查清单

  • 是否明确 HPS 与 fabric 各自承担的功能边界?
  • 是否确认了高带宽 AXI 与轻量 AXI 的位宽、时钟和地址映射?
  • DDR5 控制器是否由 HPS 统一管理,fabric 访问路径是否清晰?
  • PCIe 通道数与器件型号是否匹配,封装是否满足布线?
  • 开发板启动方式(SD/JTAG)与调试链路是否验证通过?