2. Versal架构与AI Engine阵列
Versal 是 AMD 推出的自适应计算加速平台(Adaptive Compute Acceleration Platform,ACAP),它并不是把 FPGA 简单放大,而是把标量处理器、可编程逻辑、AI Engine 阵列、DSP 引擎和高速接口在芯片级整合成一张可编程的异构计算网络。理解 Versal,关键不是记住模块名称,而是看清三类计算资源各自擅长什么、通过什么通路交换数据、在信号处理链路中如何分工。
一、平台组成:三类计算资源与一张片上网络
从工程视角看,Versal 可划分为三个主要计算域。第一是处理器系统(PS,Processing System),通常包含 Arm Cortex-A72 应用核与 Cortex-R5F 实时核,负责操作系统、任务调度、控制流、协议栈和系统管理,适合处理分支判断、状态机和低速控制。第二是可编程逻辑(PL,Programmable Logic),即传统 FPGA 部分,提供可定制的逻辑、查找表、触发器、块 RAM 和 DSP58 切片,适合位级操作、接口时序、高速数据搬运和确定性流水线。第三是 AI Engine 阵列,由大量 VLIW/SIMD 向量处理器和专用乘法累加资源组成,适合高吞吐、规则化的向量运算,例如 FIR 滤波、FFT、矩阵乘、波束形成和神经网络推理。
三者之间并非各自独立,而是通过 NoC(Network on Chip)、AXI 总线和专用流接口连接。NoC 提供高带宽、可配置的片上数据通路,使 AI Engine 阵列、PL 和 DDR 之间可以按需建立数据流;PS 通过 AXI 访问 PL 和 AI Engine 的控制寄存器,完成配置、启动和状态读取。这种结构决定了 Versal 的典型用法:PS 管控制,PL 管接口与预处理,AI Engine 管密集计算,NoC 管数据搬运。
二、AI Engine 阵列结构:从单个向量核到二维计算网格
AI Engine 阵列的基本单元是 AI Engine 核(AIE Tile)。每个核内部包含一个 VLIW 向量处理器,支持定点与浮点运算,配有专用乘法累加单元、通用寄存器、程序存储器和数据存储器。核与核之间通过 AXI Stream 或专用互连进行点对点数据传递,形成二维网格。阵列中通常还包含 AI Engine-ML 核(面向机器学习优化)和共享的存储器模块,用于缓存中间结果和系数。
这种结构的核心优势是“空间并行 + 流水线并行”。例如做 256 点复数 FFT,可以把蝶形运算按级分配到多个 AIE 核,每级核完成本级的旋转因子乘加后,把结果流给下一级核,形成流水线;同时多个通道的 FFT 可以在不同核上并行执行。每个核的本地存储器容量有限,因此数据分块、系数驻留和流式调度是 AI Engine 编程的关键。实际工程中,常用参数包括核的工作频率、每周期 MAC 数、本地存储容量、流接口带宽和阵列规模,这些参数共同决定可实现的吞吐与延迟。
三、协同关系:控制、接口与计算的分工
在典型信号处理链路中,三类资源的分工可以这样理解。以雷达或通信接收链路为例:射频前端输出的中频信号先进入 PL,由 PL 完成 ADC 接口时序、数字下变频、抽取和格式打包;打包后的数据通过 NoC 或 AXI Stream 送入 AI Engine 阵列,由多个 AIE 核完成匹配滤波、FFT、波束形成或解调;计算结果再经 NoC 送回 PL 或 DDR,由 PS 读取并做后续协议处理、显示或上报。PS 不直接参与高速采样数据搬运,而是通过控制寄存器配置 PL 和 AI Engine 的工作模式、系数和启动顺序。
这种协同的关键在于“数据流与控制流分离”。数据流走 NoC 和流接口,追求高带宽和确定性延迟;控制流走 AXI-Lite 或 PS 的寄存器访问,追求灵活配置和状态监控。设计时需要明确每个模块的输入输出接口、数据宽度、时钟域和缓冲深度,避免因为某一级阻塞导致整条链路吞吐下降。
四、一个可参考的协同配置示例
假设要实现一个 4 通道、每通道 100 MSPS 的 FIR 滤波链路,示例参数如下:PL 侧用 DSP58 实现 4 路抽取滤波器,把 100 MSPS 降到 25 MSPS;AI Engine 阵列分配 8 个 AIE 核,每 2 个核处理 1 个通道的 64 阶复数 FIR,核内以 8 路 SIMD 并行计算,系数常驻本地存储器;PS 通过 AXI-Lite 配置滤波器系数和通道使能,并通过中断读取每帧的统计结果。NoC 配置为 4 条独立流,每条流带宽按 25 MSPS × 32 bit 估算,留出 2 倍余量。这个示例不是实测结果,而是用于说明参数如何影响资源分配和接口设计。
| 资源 | 承担任务 | 关键接口 | 关注指标 |
|---|---|---|---|
| PS | 配置、调度、协议处理 | AXI-Lite、中断 | 控制延迟、CPU 占用 |
| PL | ADC 接口、抽取、打包 | AXI Stream、NoC | 时序收敛、吞吐 |
| AI Engine | FIR、FFT、矩阵运算 | 流接口、本地存储 | MAC 利用率、延迟 |
| NoC | 数据搬运与路由 | NoC 主/从端口 | 带宽、拥塞 |