4. 配置模式详解:FPP、PS、AS、JTAG 模式对比与选择
Agilex SoC 的 SDM(安全设备管理器)支持四种核心配置模式:FPP(快速被动并行)、PS(被动串行)、AS(主动串行)和JTAG。每种模式在数据宽度、时钟源、加载速度、引脚占用和适用场景上存在显著差异。本节将从架构原理、时序特征和工程选型三个维度进行深度对比。
4.1 四种模式的核心架构对比
下表从关键参数维度对四种模式进行横向对比,帮助快速建立选型框架:
| 对比维度 | FPP (x8/x16/x32) | PS (x1/x4) | AS (x4) | JTAG (IEEE 1149.1) |
|---|---|---|---|---|
| 时钟源 | 外部时钟 (CCLK) | 外部时钟 (DCLK) | 内部振荡器 / 外部晶振 | TCK (外部) |
| 数据位宽 | 8 / 16 / 32 位并行 | 1 / 4 位串行 | 4 位串行 | 1 位串行 (TDI/TDO) |
| 最大速率 | ~400 MB/s (x32 @100MHz) | ~50 MB/s (x4 @100MHz) | ~50 MB/s (x4 @100MHz) | ~10 MB/s (TCK 受限) |
| 配置源 | 外部主机 (HPS/CPLD/CPU) | 外部主机 (HPS/CPLD/CPU) | 主动读取外部 Flash | JTAG 下载器 (USB-Blaster II) |
| 引脚占用 | 高 (40+ 引脚) | 低 (6~10 引脚) | 中 (12~16 引脚) | 最低 (4 引脚) |
| HPS 参与度 | 高 (HPS 作为主机) | 高 (HPS 作为主机) | 低 (HPS 仅监控状态) | 低 (调试阶段) |
| 典型场景 | 高性能计算、视频处理 | 嵌入式控制、IoT 网关 | 独立运行、Flash 启动 | 调试、边界扫描、小批量烧录 |
选型提示: 在 Agilex HPS 与 FPGA 协同设计中,FPP 模式通常用于需要 HPS 在启动后快速加载 FPGA 比特流的场景(如 PCIe 加速卡);而 AS 模式更适合 FPGA 独立上电自加载,HPS 仅作为状态监控节点。
4.2 模式架构与数据流
下图展示了四种配置模式在 Agilex SoC 中的核心数据流路径与 SDM 控制关系:
4.3 各模式深度解析
4.3.1 FPP(快速被动并行)模式
FPP 是 Agilex 中吞吐量最高的配置模式,适用于需要快速加载大型比特流的场景。SDM 在 FPP 模式下被动接收来自外部主机(通常是 HPS 或 CPLD)的并行数据。
- 数据宽度:支持 x8、x16、x32 三种并行位宽,x32 模式下单周期可传输 4 字节。
- 时钟特性:CCLK 由外部主机提供,最高频率可达 100 MHz(x32 模式受 PCB 信号完整性限制)。
- HPS 协同:HPS 通过 FPGA Manager 接口将比特流从 DDR 或存储设备中读出,以并行方式写入 SDM。
- 典型时序:nCONFIG 拉低 → nSTATUS 拉高 → CCLK 开始 → DATA[31:0] 有效 → CONF_DONE 拉高。
工程要点: FPP x32 模式在 Agilex 7 上可实现约 400 MB/s 的配置速率,适合 500K LE 以上规模器件的快速加载。PCB 设计时需确保 DATA 总线等长控制在 ±50 mil 以内,CCLK 与 DATA 之间满足建立/保持时间。
4.3.2 PS(被动串行)模式
PS 模式以引脚少、布线简单为特点,适合引脚受限的嵌入式系统。SDM 被动接收串行比特流。
- 数据宽度:支持 x1 和 x4 两种串行模式,x4 模式使用 4 根数据线并行传输。
- 时钟特性:DCLK 由外部主机提供,最高频率通常为 100 MHz(x4 模式)。
- HPS 协同:HPS 通过 SPI 或 GPIO 模拟方式输出串行比特流,适合 HPS 资源紧张的场景。
- 典型时序:nCONFIG 拉低 → nSTATUS 拉高 → DCLK 开始 → DATA[3:0] 有效 → CONF_DONE 拉高。
注意: PS x1 模式配置速度较慢(约 12.5 MB/s @100MHz),对于大型 Agilex 器件(如 AGIB027R29)可能耗时数秒。若系统对启动时间敏感,建议使用 PS x4 或 FPP 模式。
4.3.3 AS(主动串行)模式
AS 模式是最常用的独立启动模式,SDM 主动从外部 Flash 读取配置数据,无需外部主机干预。
- 数据宽度:固定 x4 串行模式,与 QSPI/OSPI Flash 直接连接。
- 时钟特性:时钟由 Agilex 内部振荡器或外部晶振提供,SDM 自动产生读取时钟。
- Flash 类型:支持 QSPI NOR Flash(如 MT25QU256)和 OSPI Flash(如 S28HS512T)。
- HPS 协同:HPS 在配置完成后可通过 SDM 间接访问 Flash,用于固件升级或比特流更新。
- 启动流程:上电 → SDM 读取 Flash 头部 → 加载配置数据 → 释放 FPGA 复位 → HPS 启动。
推荐实践: 在 Agilex HPS 系统中,建议将 FPGA 比特流与 HPS 第一阶段引导程序(SPL)存储在同一个 QSPI Flash 的不同分区中。SDM 先加载 FPGA 配置,然后 HPS 从同一 Flash 读取 SPL 启动。
4.3.4 JTAG 模式
JTAG 模式主要用于调试、边界扫描和小批量烧录,不适用于生产环境的大规模配置。
- 接口标准:IEEE 1149.1,使用 TCK、TDI、TDO、TMS 四线接口。
- 配置速度:受 TCK 频率限制(通常 10~25 MHz),配置速度较慢,适合调试阶段。
- HPS 协同:HPS 可通过 JTAG 进行调试,但配置过程通常由外部下载器控制。
- 特殊功能:支持边界扫描测试(BST)、加密比特流下载、安全密钥烧录。
4.4 模式选择决策树
以下决策树帮助工程师根据系统需求快速选择配置模式:
4.5 模式组合与多阶段配置
在实际 Agilex HPS 系统中,配置模式并非互斥。SDM 支持多阶段配置,允许在不同阶段切换模式:
- AS + JTAG 组合:上电时从 Flash 主动加载(AS),调试时通过 JTAG 覆盖配置或读取状态。
- FPP + JTAG 组合:HPS 通过 FPP 快速加载主比特流,JTAG 用于边界扫描测试或安全调试。
- PS + AS 组合:HPS 通过 PS 模式加载部分重配置比特流,AS 模式用于初始全片配置。
多阶段配置示例: 在 5G 基带处理系统中,第一阶段使用 AS 模式从 QSPI Flash 加载基础比特流(< 1s),第二阶段 HPS 通过 FPP x32 模式从 DDR 加载加速器比特流(< 100ms),实现快速启动与动态功能切换。
4.6 配置模式选择总结
根据上述分析,总结四种模式的推荐选型场景:
| 系统需求 | 推荐模式 | 理由 |
|---|---|---|
| 高性能计算、低延迟启动 | FPP (x32) | 最高吞吐量,HPS 可灵活控制加载时序 |
| 引脚受限、中等性能 | PS (x4) | 引脚少,布线简单,速度可接受 |
| 独立运行、无需外部主机 | AS (x4) | 上电自动加载,可靠性高 |
| 调试、小批量生产 | JTAG | 灵活、支持加密和安全功能 |
| 多阶段配置、动态加载 | AS + FPP | 兼顾快速启动与高性能加载 |
最终建议: 对于大多数 Agilex HPS 协同项目,推荐使用 AS 模式作为主启动模式(从 QSPI Flash 加载),同时保留 JTAG 接口用于调试。若 HPS 需要动态加载 FPGA 功能,则增加 FPP x32 模式作为第二配置通道。