1. Zynq平台与软硬件协同加速全景

Zynq-7000 系列属于 Xilinx(现 AMD)推出的全可编程片上系统(All Programmable SoC,APSoC)。它并不是把一颗 FPGA 和一颗 ARM 处理器简单封装在一起,而是在同一芯片内通过 AXI 互联把处理系统(Processing System,PS)与可编程逻辑(Programmable Logic,PL)深度耦合。理解这种“硬核处理器 + 可编程逻辑”的双域结构,是后续所有软硬件协同加速工作的起点。

PS 部分是一套相对固定的处理子系统,典型器件中集成了双核 ARM Cortex-A9 处理器、L1/L2 缓存、片上存储器(OCM)、DDR 控制器、DMA、中断控制器以及 UART、SPI、I2C、USB、以太网、SD 等外设控制器。它擅长运行操作系统、处理控制流、管理文件与网络、执行复杂但串行的逻辑。PL 部分则是可编程逻辑阵列,包含查找表、触发器、DSP48 乘法累加单元、Block RAM 以及可配置 I/O,适合实现大规模并行、流水线化、位宽可定制的数据通路。二者分工的本质,是把“控制密集”和“计算密集”两类任务放到各自最擅长的域中执行。

软硬件协同加速的价值正来自这种分工。以图像处理、卷积、矩阵运算、加密、滤波等算法为例,若全部在 PS 上以软件循环执行,性能受限于处理器主频、指令级并行度和缓存带宽;而把其中最内层、最规整的循环映射到 PL 中,用多个并行通道同时计算,往往可以获得数倍到数十倍的吞吐提升,同时显著降低单位运算的功耗。需要强调的是,加速并非“把代码丢进 FPGA 就变快”,而是要在算法结构、数据搬运、接口带宽、存储层次之间做权衡。一个常见的经验是:如果数据搬运开销超过计算本身,加速收益会被迅速抵消,因此 DMA 与 AXI 带宽设计往往比计算单元本身更关键。

从系统视角看,PS 与 PL 之间通过若干 AXI 接口连接。常用的有:用于 PS 访问 PL 内寄存器和 BRAM 的 AXI GP(General Purpose)接口,用于 PL 主动访问 DDR 的高性能 AXI HP(High Performance)接口,以及用于 PL 访问 PS 外设的 AXI ACP(Accelerator Coherency Port)接口。GP 接口适合控制与状态交互,HP 接口适合大批量数据流,ACP 则可用于与 CPU 缓存保持一致性。理解这些接口的方向、带宽和用途,是设计加速器数据通路的基础。

Zynq APSoC 软硬件协同加速全景 PS 处理系统(控制密集) 双核 ARM Cortex-A9 L1/L2 Cache · NEON · 中断控制 DDR 控制器 外部大容量存储 OCM / 外设 UART·SPI·I2C·ETH DMA 控制器 批量数据搬运 · 降低 CPU 占用 操作系统 / 驱动 / 应用 Linux · 裸机 · 控制流调度 软件侧职责 算法分解 · 任务调度 · 数据准备 寄存器配置 · 中断响应 · 结果校验 性能测量 · 瓶颈定位 PL 可编程逻辑(计算密集) 查找表 / 触发器阵列 并行逻辑 · 流水线 · 位宽定制 DSP48 单元 乘加 · 卷积 · 矩阵 Block RAM 片上缓存 · 行缓冲 加速器 IP 核 自定义数据通路 · 多通道并行 AXI 接口逻辑 GP · HP · ACP 协议桥接 硬件侧职责 并行计算 · 流水线调度 · 数据流 时序收敛 · 资源优化 · 功耗控制 接口握手 · 突发传输 · 状态反馈 AXI 互联 GP HP ACP 开发流程:算法分析 → 软硬件划分 → HLS/RTL 实现 → 系统集成 → 板级验证 → 性能调优

基于上述结构,一个典型的协同加速项目通常遵循这样的开发流程:首先在 PS 侧用 C/C++ 实现算法参考版本,确认功能正确并测量软件执行时间,找出热点函数;然后判断哪些循环适合硬件化——通常选择计算密集、数据规整、并行度高、控制分支少的部分;接着用高层次综合(HLS)把 C/C++ 热点转换为 RTL,或直接编写 Verilog/VHDL,并添加流水线、数组分割、数据流等优化指令;随后在 Vivado 中把生成的 IP 核与 Zynq PS 通过 AXI 接口连接,分配地址、配置中断,生成比特流;最后在 SDK/Vitis 中编写主机程序,通过寄存器读写或 DMA 搬运驱动加速器,并用计时器、性能计数器或逻辑分析仪测量加速比与资源占用。

本课程的项目目标,是围绕一个可运行的 Zynq 加速实例,完整走通“软件基准 → 硬件加速器 → 系统集成 → 性能对比”的闭环。我们会在后续章节中逐步展开:如何用 HLS 把一个卷积或矩阵乘法内核流水线化,如何用 DMA 在 DDR 与 PL 之间高效搬运数据,如何通过 AXI HP 接口获得足够带宽,以及如何用 AXI Timer 和性能计数器量化加速效果。整个过程中,PS 负责调度、配置和校验,PL 负责并行计算,二者通过 AXI 互联协同工作——这正是 Zynq 软硬件协同加速的核心图景。

学习本章时,建议先建立三个基本判断:第一,PS 与 PL 不是主从关系,而是对等协作的两个计算域;第二,加速收益取决于计算并行度与数据搬运开销的比值;第三,AXI 接口的选择直接决定数据通路带宽,是系统设计中最容易被忽视却最关键的环节。