一种sram型fpga单粒子软错误与电路失效率关系快速测定方法

文档序号:10513548阅读:422来源:国知局
一种sram型fpga单粒子软错误与电路失效率关系快速测定方法
【专利摘要】本发明涉及一种SRAM型FPGA单粒子软错误与电路失效率关系快速测定方法,步骤如下:(1)选定初始向配置区注入的翻转位数N;(2)随机选择FPGA配置区N位进行故障注入,运行FPGA,记录FPGA输出是否出现错误;(3)重复第(2)k次,直到失效率在30%到70%;(4)根据实际条件,按照最终选定的N,进行尽量多次的故障注入,获得较好的统计性,推荐注入以N位随机翻转的故障注入试验次数不的小于30次;(5)最终得到注入N位随机故障后电路失效率为λN,然后用1?(1?λN)M/N估计电路的失效率上限,得到电路设计的SEU数目M?电路失效率λM评估结果。采用本发明的方法通过次数很少的故障注入,即可对FPGA电路设计抗SEU性能作出有效评价,大大减少了实验的次数和评估的周期。
【专利说明】
一种SRAM型FPGA单粒子软错误与电路失效率关系快速测定 方法
技术领域
[0001 ]本发明涉及一种SRAM型FPGA单粒子软错误与电路失效率关系的快速测定方法,属 于FPGA设计领域。
【背景技术】
[0002] 卫星运行在空间辐射环境,星上的电子设备会受到空间质子、电子以及其它类型 的辐照,并产生辐照效应。单粒子翻转(SEU)是由于空间质子、重离子引起的一种辐照效应, 发生SEU时,电子器件的存储器的逻辑状态会发生改变,进而引起程序执行错误,甚至电路 失效。目前,空间电子系统设计中一般选择SEU阈值满足设计需求的抗辐射加固的器件,并 采取诸如三模冗余等加固措施来缓解SEU问题。然而随着卫星数据处理能力需求的增加、以 及来自低成本和快速研发进度的需求,经过抗辐射加固的电子器件的性能与成本已经开始 不能够满足航天领域的需求,而商用SRAM(静态随机存取存储器)型的FPGA(现场可编程逻 辑门阵列)具有集成程度高、开发成本低、高性能、低功耗以及可在线重构等优点,已经被空 间领域关注、并逐步得到应用,但同时,SRAM型FPGA容易发生SEU,SEU会引起FPGA配置的电 路结构改变、失效。在空间领域应用SRAM型FPGA(现场可编程逻辑门阵列)时,需要进行SEU 防护设计,并验证SEU防护设计的有效性。
[0003] 验证SEU防护设计的有效性时,其中一项重要工作是考察电路设计的SEU敏感性, 即当发生FPGA内部已经发生SEU时,电路设计仍然能够正常工作、不发生异常的能力。对于 电路结构已知的情况下,可以通过理论分析、仿真故障注入等方式来考察电路设计的SEU敏 感性;而当电路结构未知时(评估人员无法获得电路设计源文件或者电路中应用了结构不 公开IP核),通过故障注入方式直接修改FPGA的配置区,模拟单粒子引起配置区的SEU,并通 过多次故障注入试验统计获得FPGA电路设计的敏感性。
[0004] 要获取SRAM型FPGA的SEU敏感性,需要进行足够多次的故障注入试验。一般而言, 故障注入需要经历生成故障序列、注入故障、配置FPGA、运行应用、分类并记录故障等步骤, 而这些步骤并不总是能在较短时间内完成。以故障分类为例,假如应用电路的运行周期时 间较长,则仅当电路运行一个完整周期并且电路未出现故障时,才能判定该次故障注入试 验不会引起电路错误或失效。由于故障分类需要时间较长,因此一次故障注入需要的时间 也相应较长。一次故障注入需要较长时间的情况,需要采取合理的故障注入方案,减少应用 电路SEU敏感性评估所需的故障注入次数。

【发明内容】

[0005] 本发明的目的在于优化故障注入策略,提供一种SRAM型FPGA单粒子软错误与电路 失效率关系的快速测定方法,通过少的故障注入次数来考察FPGA的电路设计的单粒子效应 敏感性,获得FPGA配置区翻转数目与电路失效率的关系曲线。
[0006] 本发明目的通过如下技术方案予以实现:
[0007] (1)选定初始向FPGA配置区注入的翻转位数为N位;
[0008] (2)随机选择FPGA配置区中的N位进行故障注入,运行FPGA,记录FPGA输出是否出 现错误;
[0009] (3)重复步骤(2)k次,计算FPGA的失效率λΝ;如果失效率λΝ小于30%,则增大翻转位 数Ν,返回步骤(2);如果失效率λ Ν超过70%,则减小翻转位数Ν,返回步骤(2);如果失效率λΝ 在30 %到70 %,则固定Ν值,进入步骤(4);
[0010] ⑷按照固定的Ν值,进行η次的故障注入,记录FPGA输出是否出现错误;
[0011] (5)计算注入N位随机故障后电路失效率λΝ,然后用1-(1-λΝ) Μ/Ν估计翻转位数M〈N时 电路的失效率λΜ的上限。
[0012] 优选的,步骤(1)中选定初始向FPGA配置区注入的翻转位数为Ν位,N=l/a,a为 FPGA中资源占用率。
[0013] 优选的,步骤⑴中选定初始向FPGA配置区注入的翻转位数为N位,N选择大于100。
[0014]优选的,步骤(3)中还包括,如果失效率λΝ小于30 %或超过70%,则设定目标失效 率λ〇,30 % 70 %,利用公式λο = 1-( 1-λΝ)i/N,计算i值,作为下一次故障注入的Ν值。
[0015]优选的,所述步骤(3)中k的取值大于10。
[0016]优选的,所述步骤(4)中η的取值大于30。
[0017] 本发明与现有技术相比具有如下优点:
[0018] (1)采用本发明的评估方法进行电路设计的SEU敏感性评估,通过次数很少的故障 注入,即可获得FPGA电路设计单粒子软错误与电路失效率关系,对电路设计的SEU敏感性做 出有效评价,大大减少了实验所需的故障注入的次数和单次评估的周期。
[0019] ⑵本发明的评估方法可以对翻转位数小于N时FPGA电路设计的翻转位数-失效率 关系进行偏保守的评估,而对于冗余结构较少的电路,该方法评估结果将更加准确。采用本 方法获得现有FPGA设计的SEU敏感性评估结果,然后结合空间单粒子环境可以对电路设计 在空间任务中错误率进行预测,确定FPGA电路设计能够适应空间环境。本方法对FPGA电路 的SEU容错设计具有验证作用。
[0020] (3)本发明的评估方法采用随机故障注入的方法,无需了解具体的电路结构,仅需 要有电路设计的配置文件即可执行,实验方法简单有效。
【附图说明】
[0021 ]图1是本发明建立快速获取FPGA单粒子敏感性方法的流程图;
[0022]图2是一非三模冗余FPGA电路故障注入结果与本方法预测的比较示意图;
[0023]图3是一典型三模冗余电路故障注入结果与本方法预测结果比较示意图。
【具体实施方式】
[0024] 如果不采用动态刷新策略,在轨运行卫星电子系统中FPGA配置区的SEU位数会随 着时间的推移逐步积累,从而导致FPGA中电路应用失效;如果采用了动态刷新策略,由于单 粒子效应的随机性,在一个刷新周期内,FPGA配置区也有可能发生多次SEU。在评估单粒子 敏感性时,需要掌握不同翻转位数Μ下应用电路的失效率λ Μ,获得应用电路的翻转位数M-失 效率Am关系曲线。
[0025] 对于运行在某种型号FPGA的一个应用电路,FPGA配置区的配置位数目一般可以达 到百万至千万量级,一般应用电路只利用了 FPGA的部分资源,也就是说,FPGA配置区的一部 分配置位并未被使用。这里所指的"未被应用"到意味着这些配置位无论别写成〇或者1,电 路均可以正常工作;配置位被"用到"则意味着这些配置位发生改变,或者一些特定配置位 的组合发生改变时,应用电路会失效。这些被用到配置位中,一些配置位是电路中的冗余结 构,即其该配置位单独发生翻转并不会引起电路的失效,仅当该配置位与一些特定配置位 的同时发生翻转时,电路才会失效;而另外一些配置位在电路中没有冗余,即只要这些配置 位发生翻转,电路就会失效。
[0026] 这里可以将FPGA中的配置位分为三类,形成三个集合R,UN,Ur :
[0027] R{配置位b |配置位b无论是0还是1,均不影响应用电路的状态}
[0028] UN{配置位b|只要配置位b发生翻转,应用电路就会失效}
[0029] UR{配置位b|配置位b单独翻转时并不引起电路失效,仅当其与本集合中其他一些 特定配置位{bd共同翻转时,才能引起应用电路将失效}
[0030] 假设FPGA配置区三个集合R,UN,Ur中配置位的占总配置位比例分别为r,UN,UR,显 然有r+u N+uR = 1。如果向FPGA的配置区随机注入了 N位翻转,则有以下三种可能性:
[0031] 1)这N位翻转均属于集合R中,应用电路正常工作,出现该情况的概率为:丹=/(确 定正常工作)
[0032] 2)这N位翻转至少有一位属于集合UN中,应用电路失效,出现该情况的概率为:P2 = 卜(1~un)n= l-(r+UR)N(确定失效)
[0033] 3)这N位翻转部分属于集合Ur中,部分属于集合R中,无法判定应用电路是否失效, 出现该情况的概率为:P3= l-Pi_P2 = (r+UR)N-rN(状态不定)
[0034] 这里要评估Ur集合中的元素引起FPGA电路设计的失效率理论上较为复杂,同时, 本方法主要应用目标是对电路设计结构未知的情况下评估电路的SEU敏感性,所以P 3中有 多大比例电路正常工作,有多大比例电离失效,在评估中无法确切知道。但是在本模型中, P!(确定正常工作)与P2(确定失效)是确定的,但可以据此给出对FPGA失效率上限与下限的 估计。随机注入N位翻转之后,FPGA失效率至少为P 2,即至少有一位翻转属于集合UN的概率; 失效率至之多为P2+P 3,或者Ι-Pi,即属于Ur集合中的翻转位也均会引起失效:
[0035] P2= l-(r+uR)N < P(失效)< l_rN=P2+P3
[0036] 电路实际的失效率应该在P0ljP2+P3之间。当注入故障位数较少时,随机选出并翻 转的配置位组合正好是导致电路失效的特定配置位组合的概率较低,此时电路失效率接近 p2,也就是l-(r+UR)N,随着故障注入位数的增加,随机选出翻转的配置位组合正好是导致电 路失效的配置位组合的概率开始不断增加。
[0037]假设某配置位aQeUR,存在着(α〇,α?),·…,( a〇,ak)等k个配置位两两组合,当(α〇, ai)同时发生翻转时,会导致应用电路失效。如果在故障注入中并未抽中a〇, .. .ak的任意一 位,则接下来只抽到a〇,...ak中的任意一位是不会引起电路失效的;如果在故障注入试验 时,a Q被抽中并翻转后,在接下来只要ai,.. .ak中任意一位,电路将会失效。换而言之,在a〇 euR被在故障注入中抽中后,接下来随机选取一位翻转并引起电路失效的概率提高了。 [0038] 假设目前已经向FPGA的配置区注入了 M-1位翻转,此时电路尚未失效,将FPGA剩余 的配置位分成两部分,形成两个集合Rm与UM:
[0039] Rm{配置位b I在注入M-1个特定翻转位后,配置位b无论是0或1,电路均不失效}
[0040] UM{配置位b I在注入M-ι个特定翻转位后,配置状态改变时,应用电路失效}
[0041] 根据上面的定义,某配置位如果属于集合R,那么它必然属于集合Rm;某配置位如 果属于集合Un,那么它必然属于集合Um;某配置位如果属于集合Ur,则其可能属于Rm,也可能 属于U M。当Μ的值较小时,Ur中的大部分元素属于Rm,而随着Μ的增加,Ur中的元素会逐步转移 到UM中。不妨设r M为Rm元素在剩余配置位中所占的比例,随着Μ的增加,rM的期望将单调递 减,向配置区注入Μ个翻转后,电路失效率λ Μ为:
[0043]
,是n,i = l,. . .,Μ的几何平均数,由于ri是单调递减,故 随着Μ的增加也是单调递减的。向配置区写入Μ个翻转,^]反应了平均每个翻转位不 引起电路失效的概率。计算向FPGA随机注入Μ位翻转时,计算电路失效率λΜ可以用公式
[0046]由于r(Μ)是单调递减的,如果向配置区分别注入Μ位翻转与Ν位翻转(Μ〈Ν ),有 。当已经知道注入Ν位翻转后,应用电路失效率可以预测,当FPGA的配置区发生 Μ位翻转之后λΝ,可以估计注入Μ位故障时电路失效率λΜ:
[0048] 上式中小于等于号处是因为当Μ〈Ν,有r(M) > r(iV)。实际上,可以通过1 _预 测到了 FPGA的配置区发生M(M〈N)位翻转后电路失效率的上限。
[0049] 根据上述结论,通过故障注入来评估电路设计的SEU敏感性时,并不一定需要注入 不同位数的故障,来获取一条完整的翻转位数M-失效率λ Μ关系曲线,可以仅按照N位翻转进 行故障注入试验并获得电路失效率λΝ,然后当配置区翻转位数为Μ(Μ〈Ν)时,电路设计的失 效率用本方法给出的上限来估计:
[0051]注入故障位数Ν的选择是一个关键问题:出于减少故障注入次数的目的,Ν不宜太 小或者太大,选择的Ν应当使得电路失效率λΝ在〇. 3到0.7之间。
[0052]图1为电路设计SEU评价的步骤,具体步骤如下:
[0053] (1)选定初始向配置区注入的翻转位数Ν;
[0054]这里Ν的初始值选择随意,如果已经知道电路设计的在FPGA中资源占用率为a,那 么可以选择N=l/a,如果对FPGA的电路设计完全处于黑盒状态,那么选择N=100或者其它 数值均可以。
[0055] (2)随机选择FPGA配置区N位进行故障注入,运行FPGA,记录FPGA输出是否出现错 误;
[0056] (3)重复第(2)K次(推荐不少于10次),如果发现在K次故障注入中,失效率小于 30 %,则适当增大一次注入的翻转位数No,重复第(2)步;如果失效率超过70 %,则适当减小 一次注入的翻转位数No,重复第(2)步;直到失效率在30%到70%,则进入第(4)步;
[0057] 这里可以利用来估计下一次故障注入的N,不妨假设我们期望注入Ν'位
翻转后,电路失效率为50 %,前一次故障注入得到的失效率为An,
[0058] (4)根据实际条件,按照最终选定的N,进行尽量多次的故障注入,获得较好的统计 性,推荐注入以N位随机翻转的故障注入试验次数不的小于30次;
[0059] (5)最终得到注入N位随机故障后电路失效率为λΝ,然后用1-(1-λ Ν)Μ/Ν估计M〈N时电 路的失效率上限,得到电路设计的单粒子敏感性评估结果。
[0060] 这里以两个典型电路的故障注入试验进行了验证,其结果如图2与图3所示。图2为 一个由一个计数器与一个移位寄存器组成,不包含冗余结构电路的故障注入结果;图3为一 个由一个计数器与一个移位寄存器组成,并经过三模冗余加固的电路的故障注入结果。
[0061] 在无冗余电路故障注入中,经过(1)(2) (3)步的试验,确定一次注入故障位数N = 3000,以3000位进行故障注入100次,其中58次电路失效,因此得至私3()()() = 〇. 58,同时,得到λΜ < 1-(1-0.58)μ/300° = 1-(1-0.000289)μ〇
[0062] 图2中黑色的线条即为上述公式预测出的理论曲线,而点为实际故障注入试验结 果,可以看出,本方法可通过少量故障注入试验较为准确给出无冗余结果电路的翻转位数 Μ-失效率λΜ关系,即使Μ大于3000,该方法也能给出准确的评估结果。
[0063] 对于有冗余的电路,经过(1)(2) (3)步的试验,确定一次注入故障位数Ν = 300,以 300位进彳丁故障注入100次,其中44次电路失效,因此得到λ3〇〇 = 0.44,同时,得到
[0064]图3中黑色的线条即为上述公式预测出的理论曲线,而点为实际故障注入试验结 果,可以看出,本方法当Μ〈Ν时,本方法可以给出偏保守的估计,即本方法预测的失效率要大 于实际失效率,而当Μ>Ν时,本方法将给出偏乐观的失效率估计,不再适合工程应用。而在Ν 的选取中,如果电路翻转位数超过Ν,将意味着电路失效率已经超过30%,实际应用中,电路 失效率超过30%意味着电路无法稳定工作,可以断定电路设计不适用工作在配置区翻转超 过Ν的单粒子环境中,所以对于实际应用场合,无需了解Μ超过Ν时,无必要了解电路失准确 的效率。
[0065] 通过本方法,通过次数很少的故障注入。可以对翻转位数小于Ν时FPGA电路设计的 翻转位数Μ-失效率λΜ关系进行偏保守的评估,而对于冗余结构较少的电路,该方法评估结 果将更加准确。
[0066] 以上所述,仅为本发明最佳的【具体实施方式】,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。
[0067] 本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
【主权项】
1. 一种SRAM型FPGA单粒子软错误与电路失效率关系快速测定方法,其特征在于包括如 下步骤: (1) 选定初始向FPGA配置区注入的翻转位数为N位; (2) 随机选择FPGA配置区中的N位进行故障注入,运行FPGA,记录FPGA输出是否出现错 误; (3) 重复步骤(2)k次,计算FPGA的失效率λΝ;如果失效率λΝ小于30 %,则增大翻转位数N, 返回步骤(2);如果失效率λΝ超过70%,则减小翻转位数Ν,返回步骤(2);如果失效率λ N在 30 %到70 %,则固定Ν值,进入步骤(4); (4) 按照固定的Ν值,进行η次的故障注入,记录FPGA输出是否出现错误; (5) 计算注入N位随机故障后电路失效率λΝ,然后计算1-(1-λΝ)Μ/Ν,作为翻转位数Μ时电 路的失效率λ Μ的上限,其中Μ〈Ν。2. 根据权利要求1所述方法,其特征在于,步骤(1)中选定初始向FPGA配置区注入的翻 转位数为N位,N = 1 /a,a为FPGA中资源占用率。3. 根据权利要求1所述方法,其特征在于,步骤(1)中选定初始向FPGA配置区注入的翻 转位数为N位,N选择大于100。4. 根据权利要求1所述方法,其特征在于,所述步骤(3)中如果失效率λΝ小于30 %或超过 70%,Ν值通过如下方法获得:,设定目标失效率λ〇,30% < λ〇 < 70%,利用公式λ〇 = 1-(1-λΝ )1/Ν,计算i值,作为下一次故障注入的Ν值。5. 根据权利要求1所述方法,其特征在于,所述步骤(3)中k的取值大于10。6. 根据权利要求1所述方法,其特征在于,所述步骤(4)中η的取值大于30。
【文档编号】G11C29/56GK105869679SQ201610183678
【公开日】2016年8月17日
【申请日】2016年3月28日
【发明人】于登云, 贾晓宇, 蔡震波, 张庆祥, 李衍存, 王颖, 秦珊珊, 郑玉展
【申请人】北京空间飞行器总体设计部
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1