民用机载电子硬件的SEU 效应FPGA 仿真测试研究*
2013-12-22薛茜男
薛茜男,王 鹏 ,田 毅,白 杰
(中国民航大学适航审定技术与管理研究中心,民用航空器适航与维修重点实验室,天津300300)
现场可编程门阵列FPGA(Field Programmable Gate Array)等数字电路已被广泛应用于航空航天等多方面领域。目前,民用机载电子硬件等相关开发很多都是基于FPGA 技术,诸如信号处理、监控、发动机控制等。由于FPGA 的可编程性,使得其具有极大的灵活度,可以配置执行任何用户指定的操作。同时,FPGA 还可以及时修订不正确的设计和重新配置FPGA 而避免一些错误的发生[1]。FPGA 比起ASIC 等其他电路芯片系统有着不可比拟的优势,但是FPGA 对于重离子和原子所引起的单粒子效应非常敏感,尤其是近年来高密度集成芯片的出现,电路容量增大、操作电压降低使得它们在辐射环境下的可靠性降低[2-3]。单粒子效应引起的逻辑翻转会影响到用户设计的触发器,FPGA 配置比特流,和任何隐藏的FPGA 寄存器或状态机。其中配置比特流的翻转是特别重要,因为这样的翻转会直接影响电路的工作状态和相关动作。如果配置位翻转,电路的工作会被改变,将直接导致资源和逻辑功能被打乱。
单粒子效应引起的翻转故障是由粒子和PN 结相互作用引起的一种暂态故障,主要是由单粒子翻转SEU(Single Event Upset)及单粒子瞬态脉冲SET(Single Event Transient)这些单粒子效应引起的,对SRAM 型的FPGA 上实现的电路具有特别严重的影响。由于三模冗余 TMR (Triple Modular Redundancy)技术简单性以及高可靠性,被广泛使用于FPGA 电路中的SEU 效应的容错技术。文献[4-5]中表明三模冗余的容错技术可大幅度提高FPGA在SEU 效应影响下的可靠性。
FPGA 等数字电路已经成为航空飞行控制的基本组成部分。不同于航天领域,尽管航空飞行遭受辐射的强度和机率都会较低,但是随着数字电路技术的发展,工艺尺寸已经达到微米甚至纳米级尺度,在实现高密度和高集成度的数字电路同时也使得数字电路更加容易受到重离子轰击造成单粒子翻转故障[6]。特别是对于民用航空领域,较长的使用时间和很高的使用频率对FPGA 等相关数字电路的可靠性都提出了更高的要求。实验数据表明[7-8],在6 000 inch 北纬40°飞行时,器件发生SEU 的概率为1.85×10-2次/(天·器件)。假设一块航空电子电路板上有4 个FPGA,航空电子系统含有4 块板,则此航空电子系统的平均翻转间隔时间为9 h,远达不到可靠性要求。联邦航空管理局(FAA)2011 年2 月最新发布的《机载系统的微处理器的选择和评价手册》[9]中专门提到单粒子翻转引起的软故障会导致寄存器配置位的改变,并提出应该对SEU 效应进行监控。ARJ21 影子审查开展后,FAA 在其独立的问题纪要中提到需要考虑的“单粒子效应”问题,要求对其进行额外检查以保证功能的正确性和完整性。因而,亟待民用机载电子硬件适航审定人员开展单粒子效应测试研究工作,评估机载电子硬件数字电路对单粒子效应的防护能力。
目前,对FPGA 等数字电路抗SEU 效应的测试方法主要包括航空航天器搭载实验[10]、地面高能粒子辐照实验[11]和单粒子翻转故障注入实验[12]。其中搭载试验周期长,成本高,试验灵活性差。地面高能粒子辐照实验需要昂贵复杂的设备,测试周期长,灵活性差,而且是有损测试。另外,由于SEU 是一种随机事件,为了保证实验中能够确保观察到单粒子翻转现象,需要加长测试时间或是采取加速手段,这都对实验设计提出了很高要求。单粒子翻转故障注入的方法实现灵活,测试率高,对器件没有物理损伤,不受器件固有SEE 性能和其他辐射效应影响,受到了许多研究人员的关注。
本文以仿真SEU 故障注入为手段,从民用机载电子硬件数字电路中主流的三模冗余技术入手,设计了SEU 效应仿真测试电路,可仿真检测系统是否受SEU 故障影响引起系统失效,并计算系统的SEU故障失效率。基于Altera Cyclone® Ⅳ4CE115 FPGA 器件,将冗余系统与多时钟沿触发相结合,提高了电路的检错能力。模拟高空辐射环境对冗余系统进行故障注入,通过与参照单元的比较,可直接灵活地仿真测试SEU 故障的发生。
1 SEU 故障注入技术原理
1.1 SRAM 型FPGA 的单粒子效应
由于SRAM 的FPGA 对于带电粒子的辐射特别敏感,当某个基本电路单元受到高能粒子入侵产生单粒子翻转故障时,这个故障可以通过新生的关系,扩大到更大的作用区域,甚至导致电路输出失效。在空间辐射环境下,由于高能粒子入射到SRAM 型FPGA并最终导致电路输出软失效是一个复杂的随机过程[13]。首先,高能粒子穿过航天器表面的防护层及器件封装材料,抵达器件的敏感区域。然后,考虑粒子抵达敏感区域后与器件材料发生相互作用,使得器件特性发生变化,导致某些存储单元或处理节点发生了位翻转的逻辑状态异常,发生了软故障。最后,单粒子翻转发生后在系统内部扩散和传播,最终导致系统输出结果偏离预期或出现错误动作,造成系统失效。单粒子翻转的概率取决于器件的翻转截面和粒子通量,而粒子通量与辐射环境有关,翻转截面是器件本身的物理特性,表征的实际上就是器件的固有抗单粒子翻转能力。单粒子翻转将按照一定的概率转化为系统输出的软失效,这个过程与系统硬件和软件的体系结构以及工作负载(对FPGA 就是用户电路)有关,如FPGA 中未使用到的配置比特流资源等,这些单元是否发生单粒子翻转都不会被传播。目前,研究人员对于单粒子效应仿真研究的主要是关注在软故障发生的前提下,是否导致失效发生,目的在于分析系统在单粒子翻转发生后的对电路输出的影响。
1.2 SEU 故障注入方法
故障注入技术是通过人为向系统中注入故障,并观察系统的行为来对容错系统可信性进行验证的一项技术[7]。按照注入的方式,可将故障注入分为3 种[8]:基于硬件的故障注入、基于软件的故障注入和基于仿真的故障注入[14]。基于仿真的故障注入是在设计阶段对系统的可靠性进行评价的一种有用的实验方法,在设计阶段尽早地发现错误并进行修正。并且,与其他技术相比,基于仿真技术所建模的组件具有较高的可观察性和可控制性。
2 SEU 效应仿真测试
2.1 基于FPGA 的SEU 效应仿真测试模型的建立
本文介绍的面向民用机载电子硬件SEU 效应仿真测试系统构成如图1 所示,由测试计算机、基于FPGA 的测试仿真板组成。测试计算机为USB 接口的PC 机,通过JTAG 接口对FPGA 器件加载冗余电路、进行配置或者编程及调试,并完成测试信号设定。测试仿真板是整个系统的核心组成部分,由一片Altera Cyclone® Ⅳ4CE115 FPGA 器件实现。
图1 民用机载电子硬件SEU 效应仿真测试系统构成
2.2 SEU 效应仿真测试过程
在测试过程中,首先,使用仿真器的内建命令进行了错误注入,运用TB 文件对输入数据进行控制,以模拟真实情况下的SEU 效应引起的翻转故障。仿真测试过程中,由测试计算机控制测试单元是否正常工作,当收到故障注入命令后,系统会启动模拟故障模式,在触发时刻同时,故障注入数据输入到系统接收端。测试单元接收故障注入数据,并进行容错处理,最终判别单元将容错后输出数据以参照单元为标准进行单粒子翻转失效检测,并输出判断结果。记录测试过程中共注入的位翻转次数Ns,共检测到的失效次数为Nf,则被检测系统的失效概率为τ=Nf/Ns[13],以该失效概率τ 来评估该被检测系统对单粒子翻转效应的防护能力。
3 基于TMR 技术的检错电路设计及SEU 效应仿真测试验证
3.1 基于多时钟沿的SEU 故障TMR 检错电路设计
TMR(Triple Modular Redundancy)是一种常用的单粒子翻转故障容错结构[15],该设计原理是将电路复制成完全相同的3 份,同时运行这3 部分电路,并且将结果输出到一个多数表决器中,表决器会将多数的结果作为正确结果输出。基于该种原理,结合参照单元比较,即可实现对单粒子翻转造成系统失效的检测。
具体电路设计如图3 所示。3 个相同的输入分别设为Input1,Input2,Input3,作为3 个D 触发器的输入端,3 个D 触发器的时钟由CLK 时钟控制,CLK触发时,分别输出Output1,Output2,Output3。将Output1,Output2,Output3 作为多数表决器的输入端,经过多数表决,输出最终的正确结果。具体操作为Output1,Output2,Output3 两两作为3 个与门的输入,两两相与后的记过输出到一个或门,最终作为多数表决器的输出。
图2 SEU 效应仿真测试过程
图3 SEU 故障TMR 容错电路
作为常用的数字电路容错技术,TMR 可以屏蔽大部分的SEU 效应引起的翻转故障,但是前提是任意两个模块不会在同一时间发生故障。即便是不考虑TMR 所需附加资源多、功耗大、占用空间大等缺陷,从容错失效率来讲,TMR 技术对于同一时刻两路输入同时发生翻转故障的情况下,表现得无能为力。如果输入模块某两输入发生单粒子翻转效应,即便迅速恢复正确输入,仍然会造成误判。
本文的SEU 效应仿真测试研究是基于FPGA设计的一种基于多时钟沿的SEU 故障TMR 检错电路,在每一个冗余模块结合时钟沿延迟触发,继而通过多数表决器表决,并将输出结果与参照单元输出结果相比较,判断是否有单粒子翻转所引起的失效发生。对于单粒子翻转测试来说,该种设计在同时多输入发生可恢复的翻转故障时,具有较好的判断力。对于触发器来说,只有在时钟触发的时候,才对输入信号进行采样,其输出数据才作为一个冗余数据,而其他任何时刻的输入都不被考虑。
检错电路具体设计如图4 所示,数据不仅输入到3 个冗余模块,并同时输入到参照单元。每个冗余模块的时钟触发都是不同时的,本文将3 个时钟分别设计为具有不同占空比的时钟,也就决定了采样到的输入不是同一时刻的输入,避免了一些多模块同时发生故障导致失效的可能性。参照单元为判断依据,判断单粒子翻转是否造成失效,输出最终的检错结果。基于该模式对单粒子翻转是否引起失效进行检测,即便多于一个输入同时发生翻转故障,只要在模块各自时钟沿触发时刻,输入无故障发生,即不会影响系统的检测结果。该种思路弥补了TMR设计的一些不足,提高了电路的检错能力,对一些产生逻辑翻转并及时恢复的翻转故障有很好的屏蔽效果。
图4 基于多时钟沿的SEU 故障TMR 检错电路结构
3.2 民用机载电子硬件的SEU 效应FPGA 仿真测试
本文利用模拟的内建命令进行了单粒子翻转故障的注入,以模拟真实情况下的单粒子翻转故障。考虑TMR 系统冗余模块发生单粒子故障的可能性,对冗余系统中的一个或多个模块进行故障注入,使冗余模块中输出信号发生翻转,模拟单粒子效应引起的翻转故障。
实验设计针对一个检测周期,以CLK3 的1/4周期为最小单位,设0 为正确数据,1 为发生翻转故障。每个模块故障注入有Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ5 种情况(图5),分别代表故障在第0/4CLK3、1/4CLK3、2/4CLK3、3/4CLK3、4/4CLK3 时刻发生。图6 所示为当三输入系统中有2 个模块在CLK3 上升沿时发生翻转故障,单粒子翻转故障TMR 容错电路和基于多时钟沿的单粒子翻转故障TMR 容错电路的输出波形。从图中可以看出,当有2 个冗余模块同时发生翻转故障的时候,传统的TMR 容错电路就无法输出正确的结果。引入了多时钟沿触发之后,由于一个模块的翻转故障发生在其触发之后,故其仍能输出正确的结果。
表1 部分故障注入2 种电路的容错结果
图5 模拟SEU 效应引起的故障注入
图6 SEU 故障注入
考虑对于三输入系统故障发生的可能性,三通道共注入故障125 种,观察一个周期内容错电路输出结果。检错电路以参照单元输出为依据,判断SEU 故障是否引起系统失效,从而实现SEU 故障测试。利用本文所述的SEU 故障仿真测试方法,对两种容错电路进行故障注入,并进行SEU 故障测试,判断测试单元在遭受SEU 故障后是否产生失效。表1 列出了部分故障注入2 种电路的容错结果,红色虚线框内表示失效的产生。统计位翻转次数Ns和检测到的失效次数Nf,计算测试单元的失效率。从表2 可以看出,基于多时钟沿的SEU 故障TMR检错电路的失效率明显低于SEU 故障TMR 检错电路,检错电路能够实现对SEU 效应所引起的翻转故障的仿真测试,得出测试单元的SEU 故障失效率,用以评估测试单元对SEU 效应的防护能力。
表2 基于多时钟沿的SEU 故障TMR 检错电路与SEU 故障TMR 检错电路的失效率
4 结束语
本文针对民用机载电子硬件易于在飞行中遭受辐射而发生单粒子翻转故障,研究了一种基于多时钟沿的冗余检错电路用于单粒子翻转故障仿真测试。该仿真检错电路通过以参照单元作为判别依据,可以检测被测单元是否输出正确的容错结果,计算被测单元的SEU 故障失效率,来评估被测单元的抗SEU 效应的能力。通过该检错电路仿真结果表明,引入的多时钟沿电路,可以降低冗余系统的故障失效率,改进了冗余系统的容错能力,验证了该检错电路用于SEU 效应仿真测试的可行性。
[1] Eric Johnson,Michael Wirthlin,Michael Caffrey. Single-Event Upset Simulation on an FPGA[C]//Proceedings of the International Conference on Engineering of Reconfigurable Systems and Algorithms(ERSA),CSREA Press,June 2002,68-73.
[2] Azambuja J R,Sousa F,Rosa L,et al.Evaluating Large Grain TMR and Selective Partial Reconfiguration for Soft Error Mitigation in SRAM-Based FPGAs[C]//On-Line Testing Symposium,2009.IOLTS 2009.15th IEEE International,24-26 June 2009,101-106.
[3] 李飞,安海华.0.18 μm NMOS 的重离子单粒子瞬态脉冲的仿真模拟[J].电子器件,2011,34(5):558-561.
[4] Rollins N,Wirthlin M,Caffrey M,et al.Evaluating TMR Techniques in the Presence of Single Event Upsets[C]//Proceedings of the 6th Annual International Conference on Military and Aerospace Programmable Logic Devices(MAPLD). Washington,D. C.:NASA Office of Logic Design,AIAA,September 2003:63.
[5] Carl Carmichael.Triple Module Redundancy Design Techniques for Virtex FPGAs[R].Technical report,Xilinx Corporation,November 1,2001.XAPP197(v1.0).
[6] José Rodrigo Azambuja,Fernando Sousa,Lucas Rosa,et al.Evaluating Large Grain TMR and Selective Partial Reconfiguration for Soft Error Mitigation in SRAM-Based FPGAs[C]//Proceedings of IEEE International On-Line Testing Symposium.Sesimbra-Lisbon,Portugal:IEEE Press,2009,101-106.
[7] Gracia J,Baraza J C,Gil D,et al. Comparison and Application of Different VHDL-Based Fault Injection Techniques [C]//Proceedings of IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems,2001,233-241.
[8] 任向隆,马捷中,曾宪炼. 基于VHDL 的故障注入技术研究[J].测控技术,2009,11,73-76.
[9] Air Traffic Organization.Handbook for the Selection and Evaluation of Microprocessors for Airborne Systems,DOT/FAA/AR-11/2.NextGen &Operations Planning Office of Research and Technology Development,Washington,DC 20591,February 2011.
[10] Paul E Dodd,Lloyd W Massengill. Basic Mechanisms and Modeling of Single-Event Upset in Digital Microelectronics[J].IEEE Transactions on Nuclear Science,2003,50(3):583-599.
[11] 王忠明,姚志斌,郭红霞,等.SRAM 型FPGA 的静态与动态单粒子效应试验[J].原子能科学技术,2011,45(12):1506-1510.
[12] Kastensmidt F L,Neuberger G,Hentschke R F,et al. Designing Fault-Tolerant Techniques for SRAM-Based FPGAs[J].IEEE Design and Test of Computers,2004,21(6):552-562.
[13] 周永彬,杨俊.SRAM 型FPGA 单粒子翻转失效率自动测试系统设计与实现[J].计算机测量与控制,2010,18(10):2272-2274.
[14] 聂永峰,于东英,曾泽嵘,等.一种改进的对抗软错误电路结构设计[J].现代电子技术,2011,34(24):184-187.
[15] 张超,赵伟,刘峥.基于FPGA 的三模冗余容错技术研究[J].现代电子技术,2011,34(5):167-171.