读《春宵》这首诗,里面写到 “春宵一刻值千金,花有清香月有阴。歌管楼台声细细,秋千院落夜沉沉。” 所谓花香般的岁月静好,不过是春宵一刻通宵达旦努力的结果。否则远处的楼台上,歌舞升平,觥筹交错,欢宵达旦,近处的自家庭院中,万籁俱寂,夜色沉沉。
想想买保险产品的时候,各种产品选的是头晕眼花,脑子里整天就想着对比两个字。空间应用首要考虑的因素就是可靠性,要保险的产品,而不仅仅是给产品买保险,所以更需要对比。
值此良辰,贫道着重介绍FPGA宇航应用下的抗辐照刷新方案,主要分为外部刷新方案和内部刷新方案,从多个角度进行了对比,大家可根据自己的产品适用场景,借以参考。
以Xilinx FPGA/PSOC举例,CONFIG电路比较复杂,接口包括SelectMAP、JTAG、PCAP和ICAP。CONFIG寄存器包括状态寄存器STAT、CTL0、CMD、FAR、FDRI、COR1、CRC和FDRO等。CONFIG电路通过FDRI和FDRO两个寄存器对Configuration Memory进行读写,来实现刷新、回读等功能。CONFIG电路支持Built-in Readback CRC和Frame ECC功能。
图1 FPGA CONFIG电路框图
01外部刷新方案
图2 外部刷新框图
1.1 外部刷新功能介绍
外置Scrubber芯片主要用于SRAM型FPGA的刷新(压缩刷新),通过监测并定时刷新FPGA,削减单粒子的累积效应。外置Scrubber芯片可以支持多种FPGA或PSOC,以增强其通用性。
外置Scrubber芯片还可以支持多种类型的存储器,包括异步NOR FLASH、QSPI FLASH、NAND FLASH、PROM。可以支持多种用户接口,比如串行SPI接口、UART接口、CAN接口、1553B接口等。通过用户接口对FLASH进行编程、擦除、校验、回读等操作。这些用户接口和其他单机连接,用来实现在轨重构和单机系统工作状态检测。
外置Scrubber芯片还可以做到支持用户自定义的功能,从而支持更多的应用场景。
使用简单(可固定功能不需要额外开发)、应用场景广泛(支持用户自定义功能)、单颗芯片PCB尺寸更小(反熔丝方案需要两片器件来实现)、功能丰富等优点,使得外置Scrubber方案成为客户很理想的选择。
1.2 可靠性保障
空间应用从可靠性角度出发,Scrubber、FPGA和存储器应该尽量选择宇航级器件。各宇航级元器件常见的抗辐照参数如下,供参考。
1)Scrubber
TID≥100Krad(Si)
SEL≥75MeV.cm2/mg
SEU≥ 37MeV.cm2/mg
2) FPGA
TID≥100Krad(Si)
SEL≥75MeV.cm2/mg
SEFI≥ 37MeV.cm2/mg或者1E-7 upset/device/day
SEU各资源阈值普通比较低,主要考虑截面数据。需要通过刷新和三模冗余进行加固。
3) 存储器
TID≥100Krad(Si) (读写模式)
SEL≥75MeV·cm2/mg
SEU≥37MeV·cm2/mg(读模式)或者达到E-12 upset/位/天(读模式)
当元器件满足以上指标时,那么整个外部刷新方案可靠性会非常高,没有薄弱环节。为什么这么说呢?刷新本身的作用是来消除FPGA CRAM中的SEU累积,但是如果刷错地址,那么会造成CRAM数据大面积出错,导致FPGA功能异常甚至出现大电流。
首先就得保证存储器里面的数据不会出错,除了依靠元器件自身可靠性,还可以增加主备份来提高可靠性。其次得保证Scrubber本身不会发生SEU,否则也可能会刷错。最后还得保证FPGA没有发生SEFI,也就是说Selectmap接口以及COFIG关键寄存器不能错,否则也可能会刷错。
02内部刷新方案
2.1 Build-in Readback CRC
Xilinx 7series FPGA支持Built-in Readback CRC功能,可以纠正type0帧中,每一帧数据中的1bit错误。Readback CRC会对FPGA的CRAM进行周期性的扫描,并计算出CRC值和Golden或者PRE_COMPUTED指定的值进行比较。如果发现异常,根据POST_CRC_ACTION约束来执行SEU Correction,Halt或者Continue。
图3 Built-in Readback CRC工作流程图
约束示例如下:
set_property POST_CRC_SOURCE FIRST_READBACK | PRE_COMPUTED [current_design] set_property POST_CRC_INIT_FLAG ENABLE [current_design] set_property POST_CRC ENABLE [current_design] set_property POST_CRC_ACTION CORRECT_AND_CONTINUE [current_design] set_property POST_CRC_FREQ 6 [current_design]2.1 SEM IP
图4 SEM IP结构
Xilinx在Bulit-in Readback CRC基础之上,结合ICAP和FRAEM ECC功能,开发了一款SEM IP,用来纠正CRAM SEU。如下表所示,SEM IP总共支持3种Correction Mode。
表1 SEM IP Correction Mode
SEM IP的故障消除时间间隔,以7K325T为例,ICAP 66Mhz,Scan+Replace+Classify整个全部流程下来, 纠正one frame的mitigation latency为20.197ms。
03综合比较
3.1 效率
以7K325T为例,采用一般外部刷新方案,刷新接口采用SelectMapx8,cclk为10Mhz的情况下,器件刷新时间大约为1s,也就是说每一帧的刷新间隔最快是1s。
由于ICAP接口时钟可达最多100Mhz,且数据位宽采样32bit,因此SEM mitigationlatency更小。其次本文给出的例子是计算one frame的mitigation latency,如果出错的frame越多,那么mitigation latency也就越大。空间环境越恶劣,辐照通量越大的情况下,SEM的效率会明显降低。
外部刷新方案也可以采用一些措施来提高刷新效率,比如可以采用提高CCLK频率,增加SelectMap接口位宽或者支持压缩刷新等。
3.2 SEFI监测
外部刷新方案支持FPGA SEFI监测功能,并且针对不同种类的SEFI,采取不同的应对措施。根据PG036描述,SEM IP不能支持FPGA SEFI的监测。对于SRAM型FPGA,如果在die层面没有做过SEFI加固的话,那么使用SEM IP将会有潜在的SEFI风险。
3.3 在轨重构
SEM IP不能支持对外部存储器的编程,SEM IP运行在FPGA中,空间应用下通过FPGA去重构存储器(地面方案)可靠性比较低。如果想重构存储器,需要额外加一片反熔丝或者Flash-Hardened FPGA。那既然使用了反熔丝器件,那为啥不选择设计外部刷新呢?
此外SEM IP Repalce Corrrection对外部存储器的支持仅限于SPI FLASH,使用场景受限。
3.4 资源消耗
SEM IP需要额外消耗FPGA资源,这会带来潜在的影响。首先是IO可能占用多达56个IO,以7K325T为例总共user io是500个,占比达到11.2%,当IO资源紧张的情况下,可能无法使用。然后考虑内部资源,普遍上用户使用FPGA资源消耗都很高,而且还需要做三模冗余设计,SEM IP需要消耗额外的资源,这对FPGA软件设计本身来说增加了复杂度和难度。
表2 SEM IP内部资源消耗情况
3.5 刷新可靠性说明
SEM IP是使用FPGA内部的逻辑资源来实现的,自身也存在被单粒子打翻的可能,且一旦打翻可能造成对CRAM的误判断和误纠错,从而导致FPGA整体功能异常,更严重的是会导致FPGA产生大电流。因此需要对SEM IP进行监测,一旦发生异常,立马对FPGA进行重新加载。
关于外部刷新和内部刷新可靠性对比试验,国外有一些Paper讲这个事情。本人目前还没有参与相关的辐照试验,因此不好给结论。摘抄一些Paper中的观点,仅供参考。
摘自一份学术报告《Experimental study on Soft Error Mitigation Core (SEM) efficiency》
摘自《Effectiveness of Internal vs. External SEU Scrubbing Mitigation Strategies in a Xilinx FPGA: Design, Test, and Analysis》。
文章从Cross Section Analysis和Resource Analysis两个角度进行分析,最终得到结论,描述是这样的:
“In accordance to the fact that the NASNGSFC scrubber has the ability to correct any number of errors it has been shown that the NASNGSFC has improved performance over the Xilinx Scrubber”。
战术总结
最近刚给自己F5了一波奥密克戎抗体,就迫不及待的给各位兄弟姐妹分享了SRAM型FPGA刷新方案,在下一篇中接着聊SRAM型FPGA的三模冗余设计,各位老铁,还不抓紧点击一波关注!你们的点赞可是我前进的动力!
全部0条评论
快来发表一下你的评论吧 !