3. Kria硬件架构与可测试性设计
Kria 系列(K26、K24、KV260 等)本质上是“Zynq UltraScale+ MPSoC + 定制载板 + 应用固件”的组合体。要理解它的量产测试,必须先看清它的可测试性结构:哪些部分天生可测、哪些部分需要额外设计测试通路、哪些部分只能通过功能自测间接覆盖。Kria 的可测试性资源分布在四个层面——PS(处理系统)、PL(可编程逻辑)、AI 引擎(深度学习处理单元 DPU 及 AI 加速逻辑)、内存与外设接口,而贯穿这四个层面的公共测试骨架是 JTAG/边界扫描与内建自测试(BIST)。
一、PS 侧的可测试性结构
PS 部分包含 APU(Cortex-A53 四核)、RPU(Cortex-R5F 双核)、OCM、DDR 控制器、GTR 收发器以及一组 PS 外设(USB、GEM、SD、UART、I2C、SPI、QSPI)。这些模块的可测试性主要来自三处:
- ARM CoreSight 调试架构:APU/RPU 内部集成 CoreSight 组件,通过 JTAG 或 DAP(Debug Access Port)可访问 CPU 的调试寄存器、断点单元与跟踪单元。量产阶段常用它做“CPU 是否可启动、能否停在复位向量”的快速判定。
- PS 内建自测试:Zynq MPSoC 提供 PMU(Platform Management Unit)与 CSU(Configuration Security Unit)相关的自检机制,上电时 BootROM 会校验 QSPI/OSPI 中的启动镜像,并可通过 eFUSE 与 CSU 寄存器读取启动状态码。Kria 的固件通常把启动阶段的关键状态写入 PMU 全局寄存器,测试脚本读取这些寄存器即可判断 PS 是否走完启动流程。
- PS 外设环回:GEM 以太网、USB、SD 等接口可通过内部环回或外部夹具环回做连通性验证。例如 GEM 在 RGMII 模式下可配置内部回环,把发送数据直接送回接收路径,无需外部 PHY 即可验证 MAC 侧逻辑。
二、PL 侧的可测试性结构
PL 是 Kria 可测试性设计中最灵活也最容易被忽视的部分。量产测试通常不会为每一块板子重新综合一套测试逻辑,而是预先在 PL 中固化一个“测试位流”(Test Bitstream),其中包含:
- 边界扫描链:PL 的 IOB 支持 IEEE 1149.1 边界扫描单元,可对每个用户 IO 做 EXTEST、SAMPLE/PRELOAD、INTEST 操作。Kria 的 SOM 连接器上大量信号(如 PL IO、HDMI、MIPI)都可通过边界扫描做开路/短路检测。
- PL 内建自测试:在测试位流中实例化 LFSR(线性反馈移位寄存器)+ MISR(多输入签名寄存器)结构,对 BRAM、DSP48、CLB 阵列做伪随机激励与签名比对。Xilinx 提供 SLT(System Level Test)与 Xilinx BIST IP,可在 PL 中生成可综合的 BIST 控制器。
- 时钟与复位可观测性:PL 的 MMCM/PLL 锁定状态、复位释放状态可映射到 AXI GPIO 或 ILA(集成逻辑分析仪)核,测试脚本通过 PS 侧 AXI 总线读取,判断时钟树是否正常。
三、AI 引擎与 DPU 的可测试性
Kria 的 AI 能力主要来自 PL 中实现的 DPU(Deep Learning Processing Unit)IP。DPU 本身是软核逻辑,其可测试性依赖两条路径:一是 PL 的 BIST 覆盖其底层 DSP/BRAM 资源;二是通过 DPU 驱动加载一个已知的小型网络(如 3×3 卷积 + ReLU),输入固定张量,比对输出张量的数值签名。量产中常用“金样比对法”:用已知良品板跑同一网络,记录输出校验和,作为后续板卡的判据。若输出偏差超过阈值,则判定 DPU 或相关内存通路异常。
四、内存与外设接口的可测试性
Kria SOM 上的 DDR4/LPDDR4 是量产故障高发区。可测试性设计包括:
- DDR 内建自测试:PS DDR 控制器支持通过寄存器发起简单的读写测试,但更完整的是在 PL 中实现 DDR 测试引擎(如 Xilinx 的 DDR4 BIST 或自研 AXI Master),对地址线、数据线、Bank 做 March C- 等算法测试。
- 眼图与裕量测试:通过 PS 的 DDR PHY 寄存器读取读/写训练结果(如 DQS 延迟、VREF 值),判断 DDR 链路裕量是否在规格内。Kria 的固件可导出这些训练参数,作为板卡一致性判据。
- 外设接口:eMMC/SD 通过读写已知块比对;QSPI 通过读取 JEDEC ID 与擦写校验;USB 通过枚举与环回;以太网通过内部回环或外部夹具环回。这些接口在 Kria 载板上通常有测试点或夹具接口。
五、JTAG 与边界扫描在 Kria 中的实现
Kria SOM 的 JTAG 链通常包含 PS 的 TAP 与 PL 的 TAP,二者可级联也可独立访问。量产测试中,JTAG 承担三个角色:
- 边界扫描连通性测试:对 SOM 连接器与载板之间的信号做开路/短路检测,尤其适合 BGA 焊接后的虚焊排查。
- 配置与回读:通过 JTAG 加载 PL 测试位流,并回读配置寄存器,确认 PL 配置完成且 CRC 正确。
- 调试访问:通过 DAP 访问 PS 的 CoreSight,做 CPU 复位、断点、内存读写,用于启动失败时的根因定位。
六、BIST 在 Kria 中的实现方式
Kria 的 BIST 不是单一模块,而是分层组合:
- PS 层:BootROM 自检 + PMU 状态码 + DDR 训练自检。
- PL 层:测试位流中的 LFSR/MISR 对 CLB/BRAM/DSP 做签名测试。
- 接口层:环回测试(GEM、USB、SD、QSPI)。
- 系统层:DPU 金样比对 + 应用级自测(如跑一个已知推理任务)。
实际执行时,测试流程通常按“JTAG 连通性 → PL 配置 → PS 启动 → DDR 训练 → 外设环回 → DPU 金样”的顺序推进,每一步都有明确的通过/失败判据。下面这张图展示了 Kria 可测试性结构的信号与测试通路关系。
从图中可以看出,Kria 的可测试性不是单点技术,而是“JTAG 骨架 + PS 自检 + PL BIST + 接口环回 + AI 金样”的组合。实际量产中,测试工程师需要根据板卡的具体配置(是否带载板、是否启用 DPU、DDR 类型)裁剪测试项,并为每一项设定明确的通过阈值。例如 DDR 训练参数中的 DQS 延迟若超出训练窗口的 30%,即使当前能读写通过,也应标记为“裕量不足”,在可靠性验证阶段重点跟踪。
最后需要强调:Kria 的测试位流与测试固件应作为受控版本管理。每次 PL 逻辑或 PS 固件变更后,必须重新跑一遍完整测试流程,确认 BIST 签名与金样校验和未发生非预期偏移。只有把可测试性结构真正落到“可执行、可判读、可复现”的测试脚本上,量产测试才具备工程意义。