FPGA架构:SEU检测与恢复策略

来源:半导纵横发布时间:2026-09-18 17:48
FPGA
技术进展
生成海报
辐射诱发的SEU是现代FPGA设计面临的可靠性难题。

SEU的检测与恢复需要分层策略,分别应对配置存储器(CRAM)、用户逻辑、嵌入式数据存储各自不同的脆弱点。没有任何一种技术可以覆盖FPGA全部资源类型。有效的方案是组合多种互补手段,每种手段针对一类特定失效模式,并且恢复机制需要和触发它的检测事件紧密耦合。本文将介绍各类检测技术以及配套恢复策略,涵盖配置层监控、逻辑级冗余,直至系统级行为观测。

CRAM回读与刷写

CRAM回读是检测CRAM中单粒子翻转最基础的手段。系统会对比特流计算循环冗余校验码(CRC)。FPGA内部的加固配置模块读取CRAM内容,将计算得到的CRC和预期值比对。一旦比对不一致,系统可以置位状态标志进行告警,例如通过软处理器的内部中断,或是板级控制器的外部引脚上报。

当系统报出SEU错误时,工程师可采取以下措施:

  • 停止FPGA业务,重新加载比特流,覆盖CRAM,修复翻转比特;

  • 等待SEU错误累积到一定数量后,再暂停业务并重载比特流;

  • 部分场景可直接对电路板断电重启,FPGA上电后会自动重新加载比特流。

SEU刷写(Scrubbing)是另一类SEU恢复手段。部分FPGA搭载后台盲刷电路,无论系统是否检出错误,都会周期性重写完整比特流。盲刷实现简单,不需要比对逻辑;缺点是无法输出错误率、SEU具体位置等诊断信息。

可以根据应用场景与功耗取舍,选择持续刷写或固定周期刷写。在地面环境,刷写间隔通常可以设置得更长;海拔越高,辐射粒子出现概率越高,刷写间隔则需要缩短。

更先进的SEU回读刷写电路,可以检测并修复SEU,还能上报同一个比特流帧内的多处翻转。新一代FPGA架构的比特流由多个帧构成,每一帧负责配置一部分CRAM。每一帧都采用单错纠正、双错检测(SECDED)保护。SEU回读刷写电路读取CRAM内容,把每一帧算出的纠错码(ECC)与该帧正常参考ECC做比对。

比对失败时,电路可以根据ECC失配特征定位单比特故障,并重写该比特流帧,修正错误比特。SEU回读电路结构更复杂,但可以提供更完善的错误率与故障位置诊断。但如果回读检出多处不可纠正错误,就需要重载全部比特流或者重启FPGA。

RAM的检错与纠错

块RAM发生翻转需要独立的检纠错方案,因为运行时存储的数据会动态变化,静态配置刷写无法对其提供保护。写入RAM的数据会额外增加若干校验位,位数取决于数据位宽与所选用的保护编码。

向RAM写入数据时使用ECC编码器,读取时使用ECC解码器,就可以检测数据损坏。ECC编解码器能够检出并纠正单比特、双比特错误。从系统设计角度,采用ECC保护块RAM会带来编解码延迟。

部分FPGA内置硬件ECC编码器(写RAM)与解码器(读RAM),用于检测并修复损坏比特。这类硬件编解码器会占用更多硅片面积、功耗更高,并且引入额外输出延迟。如果只有少量块RAM用于软处理器程序存储、高完整性数据通路、状态机存储等关键功能,在RTL代码中自行实现ECC编解码是不错的选择。

三模冗余(TMR)

三模冗余是抵御SEU最可靠的缓解方案。TMR需要为同一电路制作三份独立副本,输出相同结果。每一份电路都拥有独立的组合逻辑与时序逻辑。系统比对三份电路输出,采用 “三取二” 表决。只要其中一份电路出错,依然可以输出正确结果。

TMR可以逐周期持续屏蔽错误,不存在检测延迟,非常适合保护状态机、控制逻辑以及安全关键信号通路。但TMR对架构实现要求极高,必须保证三份电路之间不共享任何逻辑与布线资源。

虽然可靠性强,但TMR会大幅消耗FPGA资源并增加功耗。实现三模冗余至少需要三倍资源,功耗也随之上升。此外,TMR本身不能完成比特自修复。某一路电路出现比特翻转后,错误会一直存在,直到CRAM刷写清除该故障。

FPGA粒子翻转率测试

借助专用设施的粒子束加速器测试,可以量化FPGA受SEU影响的可靠性。地面场景SEU率的标准指标为软错误率(SER),单位为FIT(故障数/10⁹器件小时),1 FIT代表每十亿器件小时发生一次故障。

多数支持SEU检测与刷写的FPGA厂商,会在权威测试机构预约高能束流实验,可提供重离子、中子、质子、α 粒子照射。这类实验室分布在美国、加拿大、瑞士、日本。这种地面加速测试可以表征该系列FPGA的辐射敏感度,测试得到的FIT数据可用于预测目标环境下的翻转率。

地面测试与解析模型可以在部署前预估FIT指标,但在实际应用环境中在线监测,才能最精准表征器件真实行为。CRAM检测与刷写电路可以记录SEU发生时间、位置与频次,用于和部署前的预测值对比。

如果实测翻转率和预估值存在偏差,可以重新设计关键电路、调整刷写间隔,或是修改工作区间。大部分FPGA用户会和芯片厂商紧密配合,获取该器件系列在束流测试中测得的地面FIT数据,并与实际环境测试结果做比对。

具备SEU防护能力的FPGA

以Efinix的Titanium与Topaz系列为例,该系列基于台积电16nm FinFET工艺。同等工艺尺寸下,FinFET的器件结构天然比平面二维晶体管具备更低的SEU敏感度。

该系列FPGA按照JEDEC JESD89A(α 粒子)、JESD89与JESD89-A(中子)标准完成独立测试,表征SEU特性,为设计工程师提供实测FIT数据,用于评估系统级可靠性。

该公司Titanium系列FPGA搭载CRAM SEU检测功能,设计工程师可监控配置完整性,并在检出翻转后通过外部动作完成恢复。Efinix还会在软错误率(SER)报告中提供SEU事件对应的FIT贡献(瞬态失效率)。

设计工程师可利用这些数据,评估是否需要开启片上防护功能,以满足ISO 26262-5标准中对应ASIL等级的随机硬件失效概率指标(PMHF)。

Titanium Edge FPGA将SEU检测与硬件刷写结合。刷写架构按帧实现SECDED,最高工作时钟80MHz。SECDED可自动纠正单比特错误,无需外部处理器;双比特不可纠正错误会上报,由系统进行处理。

SEU检测功能支持配置,适配不同应用需求。自动检测模式自动遍历所有CRAM帧,无需人工干预,检测平均耗时最短,最大程度保障配置完整性;手动监控模式支持按需触发刷写。

同样,检纠错触发方式可设置为自动、手动或固定速率,根据部署环境预估SEU风险调整刷写周期。为便于设计验证与系统鲁棒性测试,Titanium Edge FPGA内置硬件错误注入功能,可以在CRAM阵列任意位置注入单比特错误。

Topaz系列FPGA拥有和Titanium系列相近的SEU检测能力,但不具备Titanium Edge的硬件刷写架构开销。系统设计师可监控SEU故障,通过外部操作完成故障恢复。该系列面向机器视觉、工业机器人、广播图像与控制等大批量应用场景。

SEU检测为何至关重要

辐射诱发的SEU是现代FPGA设计面临的可靠性难题。SEU会在无告警情况下发生比特翻转,破坏配置存储器、嵌入式存储、布线资源与逻辑,进而影响系统运行。

先进小工艺节点FPGA的SEU威胁,同样存在于地面应用场景,一套系统内部署数千片FPGA时风险更突出。单颗FPGA的地面FIT率或许很低,但大规模部署后,SEU影响系统运行的概率会上升,必须配套检测与恢复机制。

封装技术不断进步,降低微量放射性杂质与 α 粒子释放,帮助FPGA厂商降低FIT指标。但重离子、质子、中子依然会带来SEU风险,需要束流测试量化器件敏感度与FIT数值。

SEU检测以及FPGA CRAM刷写,用于统计错误累积量,判断是否需要重配置或断电重启。同时,针对特定海拔环境统计SEU错误,结合功耗与预期错误率之间的取舍,可指导系统设置刷写周期。

规划嵌入式块RAM保护方案时,同样需要权衡利弊。检纠错需要大量逻辑资源,可采用软逻辑或片上硬化实现。如果不需要对全部块RAM做检纠错,仅对关键任务所用块RAM采用软实现ECC,能够节省功耗与资源。

针对关键控制与数据通路防护,最全面的方案是TMR,但代价是三倍资源占用以及更高功耗。部分应用会混合使用TMR、块RAM ECC以及CRAM SEU检测 + 刷写。

无论选择哪一种SEU缓解方案,都需要和FPGA厂商沟通,了解其测试方法与FIT测试数据。基于FPGA的FIT数据外推,对比实测结果与应用环境特征。

本文转自媒体报道或网络平台,系作者个人立场或观点。我方转载仅为分享,不代表我方赞成或认同。若来源标注错误或侵犯了您的合法权益,请及时联系客服,我们作为中立的平台服务者将及时更正、删除或依法处理。

评论
暂无用户评论