2. Versal器件架构深入

Versal 是 AMD 推出的异构计算加速平台(Adaptive Compute Acceleration Platform,ACAP),其核心思想不是把 CPU、DSP、FPGA 简单堆叠,而是通过统一的片上网络(NoC)和可编程逻辑,把标量处理、矢量/矩阵计算、硬件可编程逻辑与高速内存接口组织成一个可动态重构的计算系统。理解 Versal 架构,关键要抓住“分层异构 + 统一互联 + 可编程数据流”三条主线。

一、整体结构:从 PS 到 PL 再到 AI Engine

Versal 器件大致可分为四个功能域:标量处理子系统(PS,Processing System)、自适应引擎(AI Engine,简称 AIE)、可编程逻辑(PL,Programmable Logic)以及 NoC 与内存层次。PS 负责控制、调度、操作系统和通用计算;AI Engine 阵列负责高吞吐的矢量、矩阵和信号处理;PL 负责定制硬件加速、接口协议和实时逻辑;NoC 则像“片上高速公路”,把各计算域与 DDR、LPDDR、HBM 等存储资源连接起来。

与 Zynq 系列相比,Versal 最大的变化是引入了 AI Engine 阵列和 NoC。Zynq 的 PS 与 PL 通过 AXI 互联,带宽和延迟受限于总线结构;而 Versal 的 NoC 提供多通道、高带宽、低延迟的数据通路,使 AIE、PL、PS 可以并行访问内存,避免传统总线成为瓶颈。因此,Versal 更适合雷达、无线通信、视频分析、数据中心加速等对吞吐和实时性要求高的场景。

Versal ACAP 整体架构与数据通路 标量处理子系统 PS ARM Cortex-A72 ×2 ARM Cortex-R5F ×2 DDR 控制器 / 外设 平台管理 / 安全启动 控制、调度、OS 自适应引擎 AIE AI Engine 阵列 VLIW + SIMD 矢量核 本地内存 / 流接口 DSP / 矩阵运算 高吞吐信号处理 可编程逻辑 PL CLB / DSP58 / BRAM UltraRAM / 时钟资源 GTY/GTYP 收发器 定制接口与协议 硬件加速与实时逻辑 片上网络 NoC 多通道 AXI / 流式数据通路 · 高带宽 · 低延迟 · QoS 可配置 内存 DDR4/5 LPDDR4 HBM OCM AIE 本地 BRAM/URAM 层次化存储 数据流路径示例: ① PS 通过 NoC 从 DDR 读取原始数据 → ② 数据送入 AIE 阵列做 FFT/矩阵运算 → ③ 结果经 PL 做协议封装或实时判决 → ④ 最终写回 DDR 或输出到高速接口。 关键点:NoC 让 PS、AIE、PL 可并行访问内存,避免传统 AXI 总线成为带宽瓶颈;AIE 与 PL 之间可通过流接口直接通信,降低延迟。 选型时需关注:AIE 核数量、DSP58 数量、NoC 带宽、DDR/HBM 控制器数量、GT 收发器速率与数量、PL 逻辑资源规模。

二、标量处理子系统:控制与调度的“大脑”

Versal 的 PS 通常包含双核 ARM Cortex-A72 和双核 Cortex-R5F。A72 运行 Linux 或裸机应用,负责系统初始化、任务调度、驱动管理和上层协议处理;R5F 则适合实时控制、安全监控和低延迟响应。PS 还集成 DDR 控制器、以太网、USB、SD/eMMC 等外设,并承担安全启动、平台管理(PMU)和电源域管理。

在实际开发中,PS 往往不直接承担最重的计算任务,而是作为“指挥官”:它通过 NoC 或 AXI 把数据搬运到 AIE 或 PL,启动加速任务,等待中断或轮询完成标志,然后读取结果。例如在无线通信的波束成形场景中,A72 负责配置波束权重和调度帧结构,R5F 负责硬实时时序控制,AIE 执行复数乘加,PL 完成射频接口的 JESD204B 收发。

三、自适应引擎:矢量与矩阵计算的“引擎室”

AI Engine 是 Versal 区别于传统 FPGA 的关键。每个 AIE 核是一个 VLIW 架构的矢量处理器,支持 SIMD 定点/浮点运算,配有本地内存和专用流接口。多个 AIE 核按二维阵列排列,核间可通过 AXI Stream 或共享内存通信。AIE 适合做 FFT、FIR、矩阵乘法、卷积、波束成形等规则性强、数据并行度高的运算。

以 256 点复数 FFT 为例,可将其分解为多级蝶形运算,每级由若干 AIE 核并行处理,核间通过流接口传递中间结果。AIE 的编程通常使用 AI Engine 内核语言(C++ 扩展)或 DSP 库,编译后映射到阵列上。与 PL 实现相比,AIE 开发更接近软件,迭代快,但灵活性不如 PL;与 PS 相比,AIE 的吞吐量可高出数十倍。

四、可编程逻辑:定制硬件与接口的“万能胶”

PL 部分包含 CLB、DSP58、BRAM、UltraRAM 以及高速收发器。DSP58 支持 INT8、INT16、FP32 等模式,适合做乘加密集型运算;BRAM/UltraRAM 提供片上存储;GTY/GTYP 收发器支持 32Gbps 以上速率,用于 100G 以太网、PCIe、JESD204B 等接口。PL 的典型角色包括:实现自定义数据通路、协议转换、实时预处理、与 AIE 配合完成流水线加速。

例如在视频分析中,PL 可实现去马赛克、色彩空间转换和缩放,把处理后的数据以流方式送入 AIE 做目标检测,最后再由 PL 完成叠加和输出。PL 的灵活性最高,但开发周期和时序收敛难度也最大,因此通常只把最需要定制或最实时的部分放在 PL。

五、NoC 与内存层次:数据流动的“高速公路”

NoC 是 Versal 的片上互联骨干,支持多通道、QoS 和多种协议。它把 PS、AIE、PL 与 DDR/LPDDR/HBM 控制器连接起来,允许各计算域并行访问内存。内存层次从近到远依次为:AIE 本地内存、PL 的 BRAM/UltraRAM、PS 的 OCM、片外 DDR/LPDDR/HBM。设计时应尽量让数据在近端存储中复用,减少对片外内存的频繁访问。

一个实用的带宽估算示例:若 AIE 阵列需要处理 1 GSPS 的复数数据,每样本 4 字节,则原始数据率约 4 GB/s;若算法需要 3 次读写,则 NoC 和 DDR 需提供约 12 GB/s 的有效带宽。选型时必须核对 NoC 通道数和 DDR 控制器带宽是否满足,否则再强的计算单元也会因数据饥饿而闲置。

六、器件选型方法:从需求到型号

Versal 选型可遵循“先算力、再带宽、后接口”的顺序。第一步,估算算法所需的 DSP 乘加次数、AIE 核数量和 PL 逻辑规模;第二步,计算数据吞吐和内存带宽,确定 NoC 通道与 DDR/HBM 配置;第三步,核对高速接口需求,如 100G 以太网、PCIe Gen4/5、JESD204B 通道数;第四步,考虑功耗、封装、温度等级和开发工具链支持。

例如,某雷达信号处理任务需要 64 通道 ADC、每通道 250 MSPS、16 位采样,则原始数据率约 32 GB/s。若采用 AIE 做脉冲压缩和 Doppler 处理,需选择 AIE 核数较多、带 HBM 或高带宽 DDR 的 Versal 型号,并确保 GT 收发器数量满足 JESD204B 链路需求。若任务以控制和小规模加速为主,则可选 AIE 核数较少、PL 资源适中的入门型号,以降低成本。

选型时不要只看 AIE 核数量,还要看 NoC 带宽、DDR 控制器数量、GT 速率和 PL 的 DSP58/BRAM 资源。计算、存储、接口三者必须匹配,否则系统会出现“算得快但喂不饱”或“接口够但算不动”的失衡。

总体而言,Versal 的架构可以理解为:PS 做控制,AIE 做规则计算,PL 做定制与接口,NoC 做连接,内存层次做支撑。掌握这五者的分工与数据流关系,是后续进行平台设计、加速器划分和性能优化的基础。