一种基于 FPGA 多重启动的配置 Flash刷新方法

FPGA技术江湖 2026-09-23 08:03

题目:一种基于 FPGA 多重启动的配置 Flash刷新方法

作者:李全良,王超,王瑞琳,焦扬,乔川

(北京控制工程研究所)


摘要:对于长寿命产品,NOR Flash 内 存 储 的 FPGA 比 特 流 会 因 Flash 浮 栅 电 荷 泄 漏 而 发 生 数 据 位 翻 转,进 而 导 致FPGA 配置失败。针对该问题,提出了一种基于 FPGA 多重启动的 Flash刷新方法,产品年检时对 Flash进行刷新,以恢复浮栅电荷量。对 Kintex 7系列 FPGA 多重启动机制进行了研究,优化设计了配置数据组成,提高了多重启动的鲁棒性。优化后的配置数据包含1份同步头文件、2份相同的比特流、3份相同辅助文件。启动刷新后,FPGA 按自检、刷新、回读校验流程对 Flash进行刷新。测试结果表明,该刷新方法稳定可靠,具有较高的工程应用价值。

一种基于 FPGA 多重启动的配置 Flash刷新方法图1
本 文 亮 点





SRAM型FPGA上电后需从外部NOR Flash加载比特流才能正常工作。然而,NOR Flash以浮栅是否存储电荷表示数据,长期存储时浮栅电荷泄漏会导致数据位翻转,进而使FPGA配置失败,设备异常。对于寿命长达20~30年的长寿命产品,这一可靠性问题尤为突出。通过JTAG仿真器或在线升级方式刷新Flash虽可行,但前者需物理连接,现场可维护性差;后者需缓存两份比特流,且依赖串口等接口上传数据,操作复杂。


针对上述挑战,北京控制工程研究所李全良研究团队在《集成电路与嵌入式系统》2026年第9期发表了论文《一种基于FPGA多重启动的配置Flash刷新方法》,提出了一种基于FPGA多重启动的Flash自主刷新方法,FPGA内缓存2份完全相同的比特流及辅助信息,收到启动指令后自主完成自检、刷新与回读校验,无需外部干预。


一、优化配置数据组成,提高多重启动鲁棒性

传统多重启动Flash内缓存Golden Image(G文件)和Multiboot Image(M文件)。上电时先配置G文件,读取热启动地址和IPROG指令后跳转至M文件;若M文件异常则回退至G文件。但若M文件的同步字被破坏,配置控制器无法同步,回退机制失效。


针对此问题,本文对配置数据进行优化重构:


  • 用128字节的同步头文件(H文件) 取代G文件,仅包含同步字、热启动地址和IPROG指令,实现跳转控制功能。

  • 缓存2份完全相同的M文件(M1、M2),取代原有的G+M方案。

  • 增加3份相同的辅助文件(A1、A2、A3),每份128字节,包含M文件的CRC校验码、大小以及看门狗数据(同步字+看门狗指令+看门狗时间)。


上电时配置控制器依次读取H文件→跳转至M2文件;若M2配置失败(同步字被破坏),A文件中的看门狗超时触发回退,重新配置H文件→M1文件。3份A文件通过按位三取二提供冗余,保证M文件信息和看门狗数据的可靠性。


二、自主刷新流程:自检→刷新→校验

Flash内缓存顺序为:H文件(0x00000000)、M1文件、M2文件、A1/A2/A3文件。产品年检时(存储时间≤5年,小于Flash数据保持时间10~20年的50%),FPGA接收到刷新启动指令后,自主控制完成全部刷新流程:


  • 自检:分别从Flash和ROM读取H文件比对;从Flash读取3份A文件,按位三取二获得有效A文件,并从中提取M文件CRC和大小,分别校验M1和M2;A1/A2/A3分别与有效A文件比对。若H、M1、M2自检失败个数≤1且A1/A2/A3自检失败个数≤1,则进入刷新阶段。

  • 刷新:刷新顺序遵循“先刷新自检失败的,后刷新自检成功的”。A文件按PA1→PA2→PA3顺序擦除→编程→回读对比;H文件擦除→从ROM读取并编程→回读对比;M文件按先刷新自检失败的、再刷新自检成功的顺序,逐页读取、编程,最后计算CRC校验与A文件中的值对比。

  • 校验:每一步回读对比或CRC校验不通过即停止刷新,确保刷新过程中最多只有一个文件异常,待重启时重新执行。


三、实现与测试验证

基于国产深圳国微K7系列FPGA(SMQ7K410T)和配置Flash(SM25QH256,32MB,主SPIx2模式)搭建硬件平台。通过翻转M文件的关键位(同步字、ID字段、其他位、全FF)注入数据错误,共10种工况,分别对M1、M2、H文件进行破坏。测试中通过读取FPGA配置历史状态寄存器(BOOTSTS)验证多重启动行为和刷新效果。


所有工况下,刷新前BOOTSTS显示IPROG指令有效或回退/看门狗超时/ID错误/CRC错误等标志位被正确置位,多重启动机制正常响应;刷新后所有BOOTSTS值恢复至0x0005(仅状态0有效且IPROG有效),回读Flash文件与标准烧写文件完全一致。结果表明,该方法在多种数据异常工况下均能稳定刷新,使被破坏的配置数据恢复正常。


四、结论与应用前景

本文通过优化配置数据组成(H文件+2×M文件+3×A文件),提高了多重启动的鲁棒性,并设计了完整的自检→刷新→回读校验流程,实现了无需外部干预的Flash自主在位刷新。该方法已应用于某装备产品中,工作稳定可靠。通过修改配置电路、读/写接口及配置约束,该刷新方法可推广至主BPI配置模式下的Flash刷新,具有较强的工程推广价值。

本文引用格式:李全良,王超,王瑞琳,等.一 种 基 于 FPGA 多 重 启 动 的 配 置 Flash 刷 新 方 法 [J].集 成 电 路 与 嵌 入 式 系 统,2026,26(9):37-44.DOI:10.20193/j.ices2097 4191.2026.0011.

- -THE END- -


往期精选 

一种基于 FPGA 多重启动的配置 Flash刷新方法图2 
一种基于 FPGA 多重启动的配置 Flash刷新方法图3 

一种基于 FPGA 多重启动的配置 Flash刷新方法图4
一种基于 FPGA 多重启动的配置 Flash刷新方法图5

FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

一种基于 FPGA 多重启动的配置 Flash刷新方法图6

加群主微信,备注姓名+学校/公司+专业/岗位进群


FPGA技术江湖QQ交流群

一种基于 FPGA 多重启动的配置 Flash刷新方法图7

备注姓名+学校/公司+专业/岗位进群

一种基于 FPGA 多重启动的配置 Flash刷新方法图8

关于科技区角:国内科技展会垂直内容策划服务商,提供从论坛内容全案策划、会展市场化IP打造到精准专业观众一站式邀约服务,以产业内容吸引高质量B端人群,打通展会从议题设计、演讲嘉宾邀约、宣传预热、精准邀观到供需对接全链路。
声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。
FPGA
more
FPGA Horizons Issue 3:聚焦 FPGA 验证、AI、可靠性与开放生态
国外大学生都用FPGA做什么项目(二十)
直播预约 | “5人60天 vs 2人3天”:当FPGA开发遇上AI智能体,效率革命真的来了!
FPGA工程师就业班9月28日开班,线上线下同步,线上一对一辅导,系统性学习,终生技术服务!
【今晚七点开播!】“5人60天 vs 2人3天”:当FPGA开发遇上AI智能体,效率革命真的来了!
FPGA+MCU异构集成,京微齐力飞马系列赋能AI视觉终端
AEC-Q100+ASIL D双认证,安路科技车规FPGA护航智能座舱
用FPGA做的开源示波器(二)
【功能更新】IC Coder支持调用Vivado完成全流程AI自主FPGA研发
直播倒计时1天! | “5人60天 vs 2人3天”:当FPGA开发遇上AI智能体,效率革命真的来了!
Copyright © 2025-成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号