一种基于SRAM的FPGA抗单粒子翻转方法与流程

文档序号:33386589发布日期:2023-03-08 08:30阅读:82来源:国知局
一种基于SRAM的FPGA抗单粒子翻转方法与流程
一种基于sram的fpga抗单粒子翻转方法
技术领域
1.本发明涉及fpga设计领域尤其适用于星上sram等存储器抗单粒子翻转的fpga设计领域。


背景技术:

2.单粒子翻转是宇宙中的空间粒子辐射撞击采用sram工艺的fpga而发生的存储单元位翻转(即存储单元中的1变成0,或0变成1)。翻转的发生可能造成电子设备功能性异常,也有可能导致存储数据的异常。为了提高航空电子设备的抗单粒子翻转的屏蔽和纠错的能力,现有的技术一般采用的技术方案有以下几种:
3.有针对电子设备前端加固结构设计的方案,使用新材料的抗辐射屏蔽罩对抗单粒子辐射;
4.或者,采用空间粒子辐射影响较小的技术工艺设计fpga;
5.也有针对电子设备后端采用单粒子翻转恢复,如错误检测和编码纠正的技术方案,其中,编码纠正即使用特定的编码和解码规则的纠错码,用于减缓单粒子的辐射,校验和纠正存储器中的故障。
6.以上的技术方案在工程上具有可行性,但分别存在以下问题:
7.加固结构设计可以带来抗辐照能力的显著提高,但一般都对附带性能上的牺牲,如可实现的高速时钟往往要下降一半以上,实现成本也由于对工艺的更改而大大增加。单粒子翻转恢复虽然在成本控制和性能损失上相较于第一类方案更为优化,但是由于翻转形式的多样,不能保证百分百的容错,只能提供一定程度的减缓。


技术实现要素:

8.本发明实施例提供了一种基于sram的fpga抗单粒子翻转方法。
9.所述方法通过对fpga配置文件的恢复和容错实现抗单粒子翻转,所述配置文件存储于配置存储器,根据功能不同所述配置文件在存储器中可划分为配置逻辑帧块、bram帧块和bram内联帧块,所述方法包括:
10.配置逻辑帧块采用的回读刷新方法;fpga从帧地址寄存器中获取配置帧地址,并根据配置帧地址从配置存储单元读取对应的配置数据帧,并对所述配置数据帧进行错误校验和定位;若检验成功则回读下一配置数据帧;若检验失败则将正确的数据写入错误配置数据帧中;
11.bram帧块和bram内联帧块采用的自恢复三模冗余电路的方法;自恢复三模冗余电路,增加了电路中表决器的数量,bram同时输出同一地址的三路bram单元数据用于表决;表决后的数据经过自恢复回路作为新的输入数据;若检测到数据错误则由比较器判断另外两路表决电路中正确的数据并输出,再由自恢复回路恢复bram中的错误数据。
12.本发明的实施例提供了在空间应用中遇到的fpga单粒子翻转的检验纠错方法,为fpga在空间应用提供了新的解决方案。
附图说明
13.为了使本技术实施例中的技术方案及优点更加清楚明白,以下结合附图对本技术的示例性实施例进行进一步详细的说明,显而易见地,下面描述中的附图仅仅是本说明书披露的多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
14.图1是针对于配置逻辑帧块抗单粒子翻转采用的回读方法的示意图;
15.图2是针对于配置逻辑帧块抗单粒子翻转采用的刷新方法的示意图;
16.图3是针对于bram和bram内联帧块抗单粒子翻转采用的三模冗余方法的示意图。
17.图4是针对于bram和bram内联帧块抗单粒子翻转的三模冗余表决电路的设计方法示意图;
18.图5是抗单粒子翻转的fpga电路结构示意图;
19.图6是针对于配置逻辑帧块抗单粒子翻转的fpga电路在执行过程中的流程示意图,在与配置寄存器内的数据和外部存储芯片中的原始配置信息比较后,若数据不同则需要触发刷新流程;
20.图7是抗单粒子翻转的实时回读、实时比较、实时刷新的电路结构示意图;
21.图8是自恢复三模冗余电路的结构示意图;
22.图9针对于bram和bram内联帧块抗单粒子翻转的三模冗余表决电路执行流程示意图。
具体实施方式
23.下面结合附图,对本说明书实施例提供的方案进行描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
24.本发明实施例提供一种基于sram的fpga抗单粒子翻转的方法,所述方法作用于fpga的后端,通过对fpga配置文件的恢复和容错实现抗单粒子翻转。
25.fpga的配置文件存储于配置存储器,配置存储器的最小可读写单位为配置数据帧,多组配置数据帧组成一个配置帧列,所述配置帧列根据功能的不同可划分为:clb全局时钟帧列、可配置逻辑帧列、io块帧列和、io块寄存器帧列、bram帧列和bram内联帧列。以上配置帧列在存储单元中划分为配置逻辑帧块(clb)、bram帧块和bram内联帧块。
26.在fpga中配置逻辑帧块存储在阵列seam数据块中,seam数据块包含了所有水平方向的全局导线分布,如时钟网络、配置网络、扫描网络、复位网络等,其中包括:
27.1)8列可编程逻辑(plb)1列嵌入式存储块(emb),高18行;
28.2)1列交叉开关矩阵(xbar),高16行;
29.3)贯穿整个fpga的时钟树spine,由全局时钟树,全局时钟控制器,缓冲器组等组成;
30.4)由seam数据块边界连接xbar引脚的导线形成的回环网络。
31.seam数据块在fpga中是可寻址的与配置帧地址相对应,所述配置帧地址包括:7位地址数据,每一帧都包含地址数据段和ecc校验数据段,地址数据对应127个seam数据块。
32.针对于配置逻辑帧块的抗单粒子翻转的回读方法如图1所示,方法包括:
33.s101:系统上电;
34.s102:导入fpga配置文件;
35.s103:完成配置fpga开始工作;
36.s104:回读fpga帧地址寄存器中的数据,若相同执行s105,若不同执行s101;
37.s105:回读fpga状态寄存器中的数据,若相同执行s106,若不同执行s101;
38.s106:回读fpga数百万锁存器寄存器中的数据,和外部存储芯片中的原始配置信息逐位对比,若相同执行s103,若不同需要刷新纠正,控制芯片触发刷新纠正流程。
39.当需要刷新纠正时,配置逻辑帧块的抗单粒子翻转需要采用刷新的方法如图2所示,刷新就是在fpga已经上电配置成功之后,不事先擦除已有的逻辑,就直接重新写入配置数据且不中断用户的功能。理论上来说刷新也属于fpga部分重配置,刷新方法包括:
40.s201:fpga重配置,准备刷新配置寄存器;
41.s202:以特定的顺序将外部芯片中的配置数据写入fpga中,完成数百万配置锁存器中的数据更新;
42.s203:重新执行一次s201证对已发生翻转的数据的纠正。
43.bram(block ram)是fpga内部嵌入的专用ram区,可以被配置成多种维度和尺寸的ram,形式也多样化,单端口ram、双端口ram、flash等都可以通过设定不同的参数来实现。
44.bram存储实时数据,会随着工作不断变化,如果对其进行刷新或回读操作,可能会因为影响实时数据进而影响到fpga的正常工作,导致死锁或其它故障。因此对bram的容错设计不同于配置逻辑部分,简单的三模冗余设计已被证明效果一般,对于bram和bram内联帧块抗单粒子翻转需要有对实时数据的检测、存储和恢复处理,实施例采用的三模冗余方法如图3所示,方法如下:
45.s301:bram做自恢复三模冗余设计,每一路表决电路搭配一个表决器,各bram设计有地址计数器和写使能端口;
46.s302:每块bram输出同一个地址的三路bram单元数据用于表决;
47.s303:表决后的数据输入到比较器进行数据检测;
48.s304:若检测的数据正确则输出正确的数据,地址计数器使能,继续计数,开始下一ram单元的检错纠错;若数据检测到数据错误则由比较器判断另外两路表决电路中正确的数据并输出,写使能端口激活,由自恢复回路纠正bram中的错误数据,地址计数器使能,继续计数,开始下一ram单元的检错纠错。
49.对于bram采用自恢复三模冗余设计,将一个单端口ram,通过修改综合后的网表文件,替换成三个拥有冗余表决和比较、纠错功能的自恢复ram然后使用新的网表文件布局布线,完成对bram的容错设计,三模冗余表决电路的设计方法如图4所示,方法如下:
50.s401:按照ram的性能参数定义宏参数;
51.s402:将ram配置成三个bram,每个bram设计一个地址计数器,地址计数器搭配表决器做三模冗余自恢复处理,综合生成地址计数器网表;
52.s403:生成bram自纠错模块网表;
53.s404:综合定义的宏参数生成原始网表文件;
54.s405:用bram自纠错模块的网表替换原始网表文件中的bram网表;
55.s406:使用新的网表文件进行布局布线。
56.本发明实施例提供了一种基于sram的fpga抗单粒子翻转的fpga纠错电路,抗单粒子翻转的fpga电路结构如图5所示,根据恢复和容错方法的不同包括配置逻辑帧块电路以及bram、bram内联帧块电路。
57.执行回读比较和刷新操作的核心控制由一块具有高抗辐照性能的芯片sa503完成,如asic或反熔丝的fpga;sa503一侧是具有高抗辐照性能的存储芯片,用于存储fpga的配置文件;另一侧是fpga sa504,完成用户功能。
58.实时回读、比较、回写电路sa501主要执行read、write的操作指令,实时回读、实时比较、实时刷新的电路结构如图7所示,当执行read指令时:
59.核心控制芯片通过位元线/位元线块(bl/blb)为vdd预充电,准备好读取数据寄存器,字线驱动器(wld-drive)打开bl/blb获取数据帧并送到fifo/bit0中,然后fifo/bit0将数据移到寄存器bit1中,最后由核心控制芯片将数据送到校验电路sa502中,完成ecc校验。若数据校验失败,则核心控制芯片再将正确的数据写入错误的数据帧中。
60.当执行write指令时:
61.核心控制芯片将所有的数据通过fifo/bit1移位,当移位完成后fifo将数据帧从bit1送到bit0中,bl驱动器开始将数据送到bl/blb中,然后由wld-drive打开字线开始write操作。
62.核心控制芯片执行回读、比较和刷新的过程如图6所示,在与配置寄存器内的数据和外部存储芯片中的原始配置信息比较后,若数据不同则需要触发刷新流程,完整流程如下:
63.s601:启动所述抗单粒子翻转容错电路;
64.s602:从配置寄存器中导入fpga配置文件;
65.s603:完成配置,配置信号调高,fpga正常工作;
66.s604:回读比较帧地址寄存器中的数据,若未发现寄存器错误,执行s605,若与帧地址寄存器中的数据不同则需要重新上电配置fpga;
67.s605:回读比较状态寄存器中的数据,若未发现寄存器错误,执行s606,若与帧地址寄存器中的数据不同则需要重新上电配置fpga;
68.s606:回读fpga数百万锁存器寄存器中的数据,和外部存储芯片中的原始配置信息逐位对比,若相同执行s603,若不同需要刷新纠正,控制芯片触发刷新执行s607;
69.s607:重新配置配置寄存器,准备刷新;
70.s608:导入配置数据至fpga中,更新配置锁存器;
71.s609:再刷新一次保证翻转的数据的纠正;
72.bram、bram内联帧块电路包括三路带自恢复回路的表决电路sb505和一个比较器sb506,自恢复三模冗余电路的结构如图8所示,其中:
73.表决电路包括:边环s801、bram s802、表决器s803、表决输出端口s806组成;
74.bram包括:地址计数器端口s805、写使能端口s806以及自恢复回路。
75.三模冗余表决电路执行流程如图9所示,具体流程如下:
76.s901:bram输出同一个地址的三路bram单元数据用于表决;
77.s902:表决后的数据输入到比较器进行数据检测;
78.s903:由比较器检测数据是否正确;
79.s904:若输出正确数据,地址计数器使能,继续计数,开始下一ram单元的检错纠错;
80.s905:若输出错误数据,比较器判断另外两路表决电路中正确的数据并输出,写使能端口激活,由自恢复回路纠正bram中的错误数据,地址计数器使能,继续计数,开始下一ram单元的检错纠错。
81.本发明的实施例在fpga的前端加装了3mm的铝制屏蔽罩;后端为了实现回读刷新增加了一块控制芯片,占用了一定的pcb面积,也增加了一些功耗;为了bram实现对实时数据的检测、存储和恢复处理又采用了三模冗余设计方案,表决器和片内ram资源也增加了三倍。然而按照最恶劣情况考虑,seu发生率在10次/器件/天,本发明提供的实施例最后实现时,回读/刷新的速率可以达到300ms/次,这个速率远远大于翻转率,能够充分解决fpga在空间应用的可靠性。
82.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1