2. Kria SOM硬件架构解析
Kria SOM 的核心并不是“一块带 FPGA 的小板”,而是把 Zynq UltraScale+ MPSoC 的异构计算资源、DDR 内存、启动介质、电源管理、时钟与高速接口预先集成到邮票孔或连接器模块上,再由用户设计载板提供具体外设与供电。理解 Kria 的硬件架构,关键是把它拆成三条并行但互相耦合的路径:PS 处理系统负责控制、操作系统与通用计算;PL 可编程逻辑负责确定性数据通路与自定义加速;视频编解码硬核与高速接口负责把摄像头、网络、显示和存储连成完整链路。只有把这三条路径的带宽、时钟域和内存访问关系同时看清,后续的 Vitis、PetaLinux 与实时视频分析设计才不会在“能跑但跑不快”或“功能对但延迟大”之间反复返工。
PS 处理系统:控制平面与通用计算
Zynq UltraScale+ MPSoC 的 PS 部分通常包含应用处理单元 APU、实时处理单元 RPU、平台管理单元 PMU 以及 CSU 等模块。以 Kria KV260 常见的 K26 SOM 为例,APU 为四核 Arm Cortex-A53,主频约 1.5 GHz,负责运行 Ubuntu 或 PetaLinux,承担视频流调度、模型推理前后处理、网络协议栈和文件系统;RPU 为双核 Cortex-R5F,适合运行裸机或 FreeRTOS,用于硬实时控制,例如触发采集、电机同步或低延迟 IO 响应。PMU 负责电源域、复位与隔离管理,CSU 负责安全启动与配置。对视频分析平台而言,一个常见的分工是:A53 运行 GStreamer 管线与 AI 推理调度,R5F 处理与 PL 之间的确定性握手和看门狗,PMU 保证异常时能安全复位 PL 而不影响 PS 关键任务。
PS 内部通过 AXI 互联与 PL 交换数据。需要特别关注的是 PS-PL 接口的带宽与位宽选择:AXI HP 口适合高吞吐数据流,AXI GP 口适合寄存器配置,AXI ACP 口可让 PL 访问 APU 缓存以降低一致性开销。若视频帧从 PL 写入 DDR 再由 A53 读取,通常走 HP 口;若 A53 只做少量控制寄存器读写,则走 GP 口即可。接口选错,往往表现为“逻辑没问题但吞吐上不去”。
PL 可编程逻辑:确定性数据通路与加速
PL 是 Kria 区别于普通嵌入式 SoC 的关键。它由可配置逻辑块、DSP 切片、Block RAM、UltraRAM 和可编程 IO 组成,适合实现像素级流水线、多路视频拼接、颜色空间转换、缩放、去噪、光流预处理以及自定义 CNN 加速器。以 1080p60、YUV422、每像素 2 字节为例,单路视频原始带宽约为 1920×1080×60×2 ≈ 249 MB/s;若同时处理四路,则接近 1 GB/s。这个量级必须用 AXI4-Stream 在 PL 内部流水,并配合足够位宽的 HP 口写入 DDR,否则会在互联处形成背压。
PL 设计还要处理跨时钟域问题。摄像头输入可能来自 MIPI CSI-2 的像素时钟,PL 内部加速器可能运行在 300 MHz 逻辑时钟,DDR 控制器又属于 PS 时钟域。正确做法是在边界使用异步 FIFO 或 AXI4-Stream Clock Converter,并明确每段通路的吞吐上限。若忽略时钟域,常见现象是图像偶发撕裂、帧计数不连续或 AXI 握手超时。
内存层次与带宽预算
Kria SOM 通常板载 4 GB LPDDR4 或 DDR4,另有 OCM 256 KB、各级缓存和 QSPI/eMMC 启动介质。视频分析中最容易低估的是内存带宽:四路 1080p60 YUV422 同时写入 DDR,再被 APU 读取做推理、被 VCU 读取做编码,实际占用可能超过 2 GB/s。若 DDR 有效带宽按 60% 估算,4 GB LPDDR4 在 2400 MT/s、64 位位宽下理论带宽约 19.2 GB/s,看似充裕,但多主口并发、刷新开销和访问模式会显著降低有效值。工程上应把“每路视频写入 + 读取 + 编码回写”的带宽逐项列出,再决定是否需要在 PL 内先做缩放或抽帧,减少进入 DDR 的数据量。
视频编解码硬核与接口
Zynq UltraScale+ EV 系列集成 VCU 硬核,支持 H.264/H.265 的编码与解码,可独立于 PL 逻辑工作,适合把多路视频压缩后传输或存储。使用 VCU 时要注意:输入通常需要 NV12 等受支持格式,帧率、分辨率和码率需在驱动允许范围内;若输入是 YUV422,需先经 PL 或软件做颜色空间转换。VCU 与 PL 视频流水线之间通过 AXI4-Stream 或 DDR 帧缓冲衔接,选择哪种方式取决于延迟要求:低延迟预览可让 PL 直接送 VCU,高吞吐录像则可先写 DDR 再编码。
外设接口方面,Kria SOM 通过载板连接器引出 MIPI CSI-2、DisplayPort、GigE、USB3、SDIO、UART、I2C 等。载板设计要点集中在三处:一是电源,SOM 需要多路低噪声供电,VCU 和 DDR 对纹波敏感;二是时钟,MIPI 与 DP 需要低抖动参考时钟,走线应做阻抗控制与等长;三是复位与启动模式,载板必须正确拉高或拉低相关引脚,否则 SOM 无法进入预期启动流程。若载板自行设计,建议先用 Kria KV260 或 KR260 载板验证 PS-PL 通路与 VCU,再迁移到自定义板,避免同时调试硬件与逻辑。
载板设计检查清单
| 检查项 | 关键内容 | 判断依据 |
|---|---|---|
| 供电 | VCU、DDR、PL 各电源域纹波与上电时序 | 上电无反复复位,VCU 编码不报错 |
| 时钟 | MIPI、DP 参考时钟抖动与走线阻抗 | CSI 无丢帧,DP 无闪屏 |
| PS-PL 接口 | HP/GP/ACP 分配与位宽 | AXI 性能计数器无长期背压 |
| 启动介质 | QSPI/eMMC 启动模式引脚 | 能稳定进入 Linux 或裸机 |
| 散热 | VCU 与 PL 高负载下结温 | 长时间运行不降频、不重启 |
把上述资源放在同一张图里看,Kria SOM 的硬件架构就清晰了:PS 是控制与通用计算中心,PL 是确定性数据通路与加速器,DDR 是共享带宽池,VCU 与高速接口是视频进出通道,载板则决定供电、时钟和物理连接是否可靠。后续做实时视频分析时,任何性能问题都应先回到这张图上定位:是 PS 调度不过来,是 PL 流水线背压,是 DDR 带宽不足,还是 VCU 格式不匹配。定位清楚,再改逻辑或改载板,才能把调试从“猜”变成“算”。