先确定启动主体,再选择存储器 #
“FPGA 配置存储器”可以指两种不同的系统。传统 FPGA 可以作为 SPI 主设备,直接从串行 NOR 读取比特流并为其提供时钟。配备处理器的 FPGA 或自适应 SoC 则可以运行不可变的 BootROM,加载平台固件,验证复合启动镜像,然后配置可编程逻辑。其中一些器件可以从 eMMC 启动;纯 FPGA 的 SPI 配置端口则不能。
这一区别决定了接口、镜像格式、恢复设计和替代边界。合理的设计顺序是:
- 选择确切的 FPGA 或自适应 SoC 系列及其支持的启动模式;
- 确定复位后第一次读取由哪个不可变模块负责;
- 在选择容量之前,先规划主镜像、恢复镜像和更新镜像;
- 定义认证、加密、密钥存储和回滚策略;
- 选择启动 ROM 和编程工具都支持的、可订购的存储器件;
- 在生产硬件上验证冷启动、中断更新和恢复。
本指南讨论的正是这一系统契约。Winbond 串行闪存系列指南更深入地介绍了闪存系列和后缀差异;FPGA DDR4/DDR5 设计指南涵盖了配置后的易失性工作存储器。QSPI NOR 和 eMMC 都不能替代外部 DDR。
QSPI NOR 是直接配置路径 #
AMD UltraScale 和 UltraScale+ FPGA 支持 x1、x2 和 x4 模式的主 SPI;UltraScale 还支持由两个相同闪存器件构成的 x8 配置。在这种拓扑中,FPGA 生成配置时钟,发出支持的读命令,并直接消费比特流。因此,闪存必须在 FPGA 开始事务之前就处于唤醒状态,并且其读取时序必须在所选配置时钟设置下收敛。
Altera Agilex 器件通过安全设备管理器(SDM)控制配置。对于 Agilex 5 主动串行设计,文档给出的流程使用 QSPI 和 AS x4。本指南进一步针对 PCIe 做了区分:Micron QSPI 允许启动 ROM 对初始固件使用 AS x4,而其他受支持的闪存类型则以 AS x1 读取,并且要求板级复位时序保留 PCIe 枚举窗口。正因如此,仅凭“容量相同、都是 Quad SPI”并不足以批准替代料。
以下五个闪存细节常常会改变启动行为:
- 电压与 I/O 域。 1.8 V 的 MT25QU 器件和 3 V 的 MT25QL 器件可能容量相同、命令集相同,但电气上并不兼容。
- 超过 128 Mbit 的寻址。 大容量器件可能需要 4 字节寻址,或采用 bank/扩展地址机制。AMD 在基于处理器的系列上明确区分 QSPI24 和 QSPI32 模式;生成的镜像和启动模式跳线必须与所选拓扑一致。
- 读命令、空周期与 Quad Enable 状态。 启动 ROM 实现的命令集是固定的。如果某颗闪存需要不同的模式序列、上电状态或延迟代码,可能在用户固件还来不及修正之前就已启动失败。
- 复位与上电行为。 复位引脚可能是专用引脚,也可能与 I/O 功能复用。上电延迟、深度掉电退出和复位恢复时间都必须满足 FPGA 首次访问的时序要求。
- 编程工具支持。 AMD Vivado 2026.1 仍要求用户选择具体的配置存储器型号。Altera 的 Programming File Generator 同样要选定受支持的闪存器件,并依据其几何参数生成编程文件。光有串行 NOR 数据手册,并不代表工具链就认可这颗器件。
启动时间计算应基于生成并经过安全处理的镜像,而不是 FPGA 的标称比特数。头部、固件、认证材料、对齐、压缩以及多镜像都会改变实际存储大小。配置时间要从电源正常到系统真正就绪的指示来测量;原始时钟速率只是其中一项。
eMMC 属于处理器管理的启动流程 #
eMMC 把 NAND、控制器和固件集成在标准化接口之后,容量远高于典型的配置 NOR,可存放启动固件、操作系统、文件和应用数据。但它仍然不能直接替换串行配置器件。
AMD 现行的 Versal 系统软件指南将 eMMC 列为主要启动模式,并支持安全启动和回退。器件 BootROM 和平台管理控制器会解析 Versal 可编程器件镜像(PDI),其中可包含平台加载器固件、可编程逻辑配置、处理器软件和其他分区。该指南将这种处理器管理的流程与 QSPI24、QSPI32 和 OSPI 模式区分开来。
Altera Agilex 5 SoC 内置 HPS SD/SDIO/eMMC 控制器,支持 eMMC 5.1 及以下版本,FPGA 配置和安全仍由 SDM 负责。Agilex 的启动顺序可以是 FPGA 优先,也可以是 HPS 优先。因此,团队必须严格按照对应的 SoC 启动指南,确定第一阶段加载器、FPGA 镜像、操作系统和恢复镜像各自存放在哪里;有 eMMC 控制器并不意味着 eMMC 就能当 AS x4 闪存用。
如果所选 SoC 或自适应 SoC 明确支持该启动模式,且系统需要可管理的大容量存储,就选 eMMC。此时除了容量和 HS400 速度,还要验证以下方面:
| eMMC 控制项 | 发布前需确认的问题 |
|---|---|
| 启动分区和总线宽度 | BootROM 是否支持所选分区以及 x1/x4/x8 模式? |
| 器件版本和固件 | 平台验证是否覆盖了该器件确切的受管理 NAND 行为? |
| 封装和电压 | BGA 封装、I/O 电源轨和电源时序是否与板卡匹配? |
| 耐久度和数据保持 | 启动/更新工作负载和温度曲线是否在供应商限定范围内? |
| 掉电行为 | 如果在镜像或元数据更新期间掉电,会出现什么情况? |
| 生命周期和变更控制 | 更换控制器/NAND 后,能否免于重做安全启动和更新测试? |
受管理 NAND 可以把坏块和磨损管理对主机隐藏起来,但同时也给已认证的系统引入了控制器固件。“容量相同、都是 eMMC 5.1”并不能说明启动延迟、分区配置、掉电响应或生命周期行为也一致。
安全启动由 FPGA 强制执行,而非闪存标签 #
串行 NOR 的保护位、一次性可编程区域、密码功能和 RPMC 计数器可以为安全平台提供支持,但它们本身并不能认证 FPGA 比特流。信任根是不可变的 BootROM 或配置安全模块、其中预置的密钥,以及决定哪些镜像可以执行的安全策略。
对于 AMD UltraScale 级 FPGA,UG570 记载了使用 BBRAM 或一次性可编程 eFUSE 中存储的 256 位密钥进行 AES-GCM 比特流加密和认证的方法,也记载了 RSA-2048 认证,并警告依赖 RSA 认证的设计必须遵循最新的缓解指南并强制启用加密。因此,安全设置取决于具体的器件代次,而不是一份通用的“Xilinx 安全启动”检查清单。
Versal 的信任链不同。2026.1 文档定义了非对称和对称硬件信任根。非对称启动可用 RSA 或 ECC 认证,对称启动则用 AES-256-GCM 实现机密性、真实性和完整性。BootROM 会先加载并验证平台加载器,之后才接受后续 PDI 分区。部分 eFUSE 设置会永久强制启用安全启动;量产前必须先在可牺牲的器件上演练预置流程。
Altera Agilex 5 把配置和安全都交给 SDM 管理。当前器件文档列出了安全启动、AES 加密、哈希函数和 ECDSA 认证。同样,具体用哪些算法、密钥存储、签名工具以及恢复行为,取决于确切的器件型号和 Quartus 版本,而不是 QSPI 料号。
安全设计需要回答四个彼此独立的问题:
- 真实性: 镜像由谁签名?器件中熔断的是哪个公钥哈希或根密钥?
- 完整性: 若镜像被非法篡改,能否在逻辑或软件加载之前将其拦截?
- 机密性: 外部镜像是否必须加密,以防克隆或逆向工程?
- 新鲜度与恢复: 如何拒绝旧版本但签名有效的镜像?当最新镜像损坏或供电中断时,产品如何恢复?
认证机制若没有经过验证的恢复镜像,可能把设备变成安全的砖头。加密若没有受控的密钥生成、存储和撤销流程,可能造成无法挽回的生产问题。生产发布包应注明签名工具版本、密钥标识符、镜像哈希、安全熔丝状态、允许的回滚下限和恢复步骤,同时不得泄露密钥材料。
当前存储器实例及其实际限制 #
以下型号用于说明电压、封装、生命周期和托管 NAND 方面的限制,并不表示每个型号都出现在各 FPGA 厂商的支持闪存列表中。制造商页面和文档的核查日期为 2026 年 8 月 21 日;具体器件能否使用,仍须经对应的 FPGA 和工具版本确认。
| 可订购型号 | 当前官方状态 | 有用的设计边界 |
|---|---|---|
| Micron MT25QL512ABB8ESF-0SIT | 量产;512 Mbit,3 V,x4,133 MHz,−40°C 至 +85°C,SOIC | 3 V 工业级串行 NOR 的代表型号。SF 封装和 SIT 等级是 OPN 的一部分。 |
| Micron MT25QU512ABB1EW9-0SIT | 量产;512 Mbit,1.8 V,x4,166 MHz,−40°C 至 +85°C,8 × 6 mm W-PDFN | 标称密度与 MT25QL 示例相同,但电压、封装尺寸和时序边界不同。 |
| Infineon S25HL512TDPNHV010 | 活跃且优选;512 Mbit,3 V Quad SPI,−40°C 至 +105°C,PG-WSON-8;计划供应至少到 2037 | 增加了内部 ECC/CRC 和保护功能,但 FPGA 启动 ROM 和工具支持仍需单独确认。 |
| Kingston EMMC64G-IY29 | 64 GB 工业级 eMMC 5.1 HS400,11.5 × 13 × 0.8 mm BGA,3D TLC,−40°C 至 +85°C | 仅为处理器管理的存储示例;在纯 FPGA 主 SPI 配置端口上,它无法替代 QSPI。 |
512 Mbit NOR 示例的容量是 64 Mbytes,而不是 512 Mbytes。团队预留主镜像、黄金镜像和现场更新槽位时,密度单位搞错会付出高昂代价。闪存映射要以字节为单位,考虑擦除块对齐,并为将来签名镜像的增大预留未使用空间。
验证故障路径,而不只是正常启动 #
一块板卡仅通过 JTAG 成功启动一次,并不代表其配置系统已经过验证。发布测试应涵盖:
| 检查项 | 需留存的证据 |
|---|---|
| 电源与复位 | 在电源斜坡、温度和复位各种组合下的冷启动与热启动;闪存在首次访问前已就绪 |
| 编程 | 使用生产夹具和确切版本的工具进行擦除、编程、校验和回读 |
| 接口时序 | 在所选 x1/x4 速率下,包括生产封装在内的时钟/数据波形及裕量 |
| 镜像映射 | 主镜像、出厂镜像、更新镜像和元数据的偏移量与烧录文件及启动模式寻址一致 |
| 认证 | 授权镜像可启动;被篡改的头部、签名和有效载荷在系统放行前即失败 |
| 加密 | 密钥来源正确时可启动;密钥错误或未烧录时按文档所述状态失败 |
| 回滚 | 较旧的已签名镜像按策略规定被接受或拒绝 |
| 更新中断 | 在擦除、编程和元数据提交阶段断电后,产品仍可恢复 |
| 恢复 | 看门狗、启动计数或手动恢复能选出已知良好的镜像,无需依赖 JTAG |
| 生产可追溯性 | FPGA OPN、闪存/eMMC OPN、镜像哈希、密钥 ID、工具版本和熔丝状态与该单元关联 |
远程更新时,要测试每一个会改变权威镜像指针的转换过程。Agilex RSU、AMD MultiBoot 和 Versal 回退都是系列特定的机制,不能简化成通用的 A/B 分区图。工厂镜像应当体积小、受保护,并且能够接收或选择有效的更新。如果恢复镜像与应用镜像共用同一套未经测试的驱动程序,或共用已损坏的元数据,那就算不上独立的恢复手段。
同时冻结 BOM 与安全流程 #
只写“512 Mb QSPI 闪存”的 RFQ 会把风险最高的决策留空。应当提供:
- 完整的制造商料号、电压、封装、温度等级和包装代码;
- 精确的 FPGA/SoC OPN、启动模式和 I/O 电源轨;
- 已批准的 Vivado 或 Quartus 版本及受支持存储器选项;
- 分配主镜像、工厂镜像和更新镜像后所需的容量;
- 启动时钟/读取命令要求、地址模式和复位引脚使用情况;
- 生命周期、变更通知和批次可追溯性要求;
- 替代料是否需要重新进行烧录夹具、安全启动、掉电和环境设计验证。
工程部门还应归档生成的烧录文件、闪存映射、启动模式跳线、安全策略和测试结果。这样采购就可以拿可用器件与受控接口进行比对,而不是仅凭容量和封装去推断兼容性。
结论 #
QSPI NOR 仍是常规的直接配置存储器,因为 FPGA 或其 SDM 可以在复位后立即读取受支持的比特流。只有当配备处理器的 FPGA 或自适应 SoC 明确提供由处理器管理的启动路径时,才适合使用 eMMC。安全启动位于两者之上:器件信任根先对镜像进行认证(并可选解密),然后才释放逻辑或软件。
因此,一份站得住脚的 BOM 会把四件事绑定在一起:FPGA 代际、启动拓扑、存储器 OPN 的确切型号,以及安全/恢复流程。其中任何一项发生变化,在批准替代料之前,都要重新做受影响的烧录、时序、认证和中断更新测试。
官方参考资料 #
- AMD UltraScale 架构配置用户指南 UG570,版本 1.20.1
- AMD UG570 主 SPI 接口及支持的总线宽度
- AMD UG570 比特流加密与认证指南
- AMD Versal 系统软件开发人员指南 UG1304:启动器件模式,2026.1
- AMD Versal UG1304 安全启动流程,2026.1
- AMD Vivado 烧录与调试 UG908:添加配置存储器器件,2026.1
- Altera Agilex 5 器件配置用户指南:配置架构
- Altera Agilex 5 主动串行配置硬件与 QSPI 指南
- Altera Agilex 5 SoC 器件概述:HPS eMMC 与 SDM 安全功能
- Altera Agilex 7 SoC 启动用户指南:SDM QSPI 所有权
- Micron 当前串行 NOR 产品目录
- Infineon S25HL512TDPNHV010 产品页面与生命周期状态
- Kingston 商用与工业级 eMMC 产品表
