一种FPGA的SEU效应测试方法研究

2019-07-01 02:31王志国孟令军张皓威张敏
中国测试 2019年1期

王志国 孟令军 张皓威 张敏

摘要:为对"GA在低空环境下受高能粒子辐射而产生的单粒子翻转(SEU)进行失效统计,设计一种便携式实时FPGA的SEU效应测试系统。该系统采用FPGA作为主控模块,以树莓派作为上位机,通过长距离低压差分信号线远程连接到被测FPGA进行测试。上位机接收测试结果存储至SD卡,并实时显示到车载显示器,以供测试人员即时了解测试情况。经过在青藏高原实地测试,获得大量的现场数据。对测试结果进行分析,得到的大气中子剂量与FPGA的SEU事件概率之间的数值关系与预期一致。测试结果表明该便携式实时测试系统科学有效,可为低空飞行器的FPGA选型提供一定参考。

关键词:FPGA;低空环境;单粒子翻转;树幕派;低压差分信号

中图分类号:V11 文献标志码:A 文章编号:1674-5124(2019)01-0115-06

0 引言

由于FPGA具有容量大、速度快、稳定性好、并行数据处理能力强以及开发成本低周期短的特点,被广泛应用于航空宇航领域的控制与信号处理[1]。目前绝大多数FPGA属于SRAM型逻辑块阵列,是一种易失性存储器件[2],尤其是集成电路工艺达到了微米、纳米级别,FPGA的内核电压降低、门数剧增[3],单粒子翻转(single event upset,SEU)、单粒子功能中断(single event function interrupt,SEFI)和单粒子瞬态脉冲(single event transient,SET)等一系列单粒子效应发生的可能性大大增加[4]。其中,SEU是最常见的FPGA单粒子故障,当空间各类粒子(如质子、中子、α粒子等)对FPGA产生辐射,很容易发生SEU,从而使FPGA功能紊乱甚至失效,对飞行器造成不可预估的影响和损害[5]。因此,国内外许多研究机构对FPGA的SEU效应进行了研究。

现在,对于FPGA的SEU效应的测试方法主要有分析模型法、故障注人法以及现场错误数据分析法[6]。分析模型法主要针对小型电路系统,且其计算复杂,耗费人力;故障注人法是人为引入故障测试FPGA,但仍然与真实环境有差别;现场错误数据分析法目前主要是针对航天领域的FPGA测试,我国的航天某研究所与高校都曾做過实验,将测试设备带入太空,可以获得真实有效的数据。

本测试系统采用的是现场错误数据分析法,主要对低空飞行器机载FPGA进行SEU测试。与航天部门的实验相比,本测试系统具有成本低、测试周期短、灵活性强、算法复杂度小的特点。本文选择我国青藏高原地区进行地面测试,青藏高原海拔在3000~5000m(测试点及其海拔高度分布如表I所示),大气稀薄,空间辐射大,可以很好地模拟低空环境。

1 系统组成与测试原理

1.1 系统组成

该测试系统主要包括:树莓派(Raspberry Pi)上位机与测试台模块,FPGA主控模块,被测FPGA模块,中子探测仪以及GPS模块。系统整体组成如图1所示。

树莓派上位机采用Python语言编程[7],用于实时存储与显示单粒子翻转现象的测试结果;FPGA主控模块作为被测FPGA的信号源,完成测试数据回读,与原数据对比得出结果并经过LVDS线[8]上传到上位机;中子探测仪实时获取测试点大气中中子剂量,将中子检测结果传输到主控FPGA,由主控FPGA编帧发送到上位机存储,以此作为判断大气粒子实时剂量的参考值;GPS模块实时获取测试点的经纬度信息、年月日时分秒信息,同时为系统提供秒脉冲(PPS)信号,将其作为数据采集存储基准触发时钟。

1.2 测试原理

1.2.1 SEU效应原理

本文设计的测试系统,主要测试SRAM型FPGA的单粒子翻转效应。SRAM型FPGA编程功能是依靠无数个SRAM存储单元存放的数值(“0”或“1”)[9],本文测试的两款FPGA分别为CycloneⅡ代(EP2C8T11418)和CycloneⅢ代产品(EP3CSE144C7),均为SRAM型FPGA。前者存储单元数为16万余个,后者总的存储单元数为42万余个。这两个型号的FPGA均为实验室常用型号,属于中低集成度的常用芯片。图2是典型的6T(6管)SRAM存储单元结构示意图。

M1与M2组成一个CMOS反相器a,其中M1的G端(栅极)与M2的G端连结为输入(in,与图中的“Q”相连),M1的S端(源极)接GND,M2的S端接Vcc,M1的D端(漏极)与M2的D端连结作为输出(out,与图中的“Q非”相连)。M3与M4组成一个CMOS反相器b,由CMOS反相器a、b交叉耦合组成锁存器[10]。根据CMOS管的通断可以判断SRAM的输出值,具体对应关系如表2所示。

根据图2可知,当M1与M4导通,M2与M3关断时,SRAM存储单元内容为“1”(即Q为“1”)。此时M3的D端电势为VCC,所以M3的漏极PN结处于反偏状态。当空间环境中具有一定能量的重粒子射入M3的漏极PN结附近时(图3中被圈起的部分),在该高能粒子入射轨迹周围的P型衬底被电离化形成耗尽层[11],由此产生从M4的S端到M3的D端形成一个瞬间脉冲电流IP。在M4的内部存在导通电阻R,在瞬间脉冲电流IP的作用下,M4的S端到D端之间形成一个压降Ue,其计算公式为

Ue=IP×R(1)

则,M3的D端电势降低为

UD=UCC-Ue(2)

当UD 降低时,意味着M1与M2的G端电势UG也会降低。如果环境中高能粒子剂量较高,不断入射到FPGA之中,IP不断增大就会使UG降到比M1关断而M2导通的临界值USD还要小。一旦M1关断而M2导通,M1与M2的D电势变为VCC,即“Q非”从“0”跳变为“1”,由于SRAM的驱动能力大于其锁存能力,因而“Q”从“1”跳变为“0”,发生了逻辑翻转,存储单元存储的内容从原来的“1”变为“0”[12],即SEU。

1.2.2 测试系统工作原理

主控FPGA发送测试数据地址给被测FPGA,同时计时器进行计时,在规定时间内未收到被测FPGA返回的数据则发送错误标志给Raspberry Pi;否则将被测FPGA返回的数据与预定的数据进行比较,如果相等则说明没有发生SEU,发送正确标志给Raspberry Pi,否则发送错误标志。主控FPGA每发送一个地址,地址加1,从RAM中读取的数据地址也加1,在被测FPGA的RAM中的内存初始化文件中,其每一个地址上的数据都不相同,这样数据就可以不断变化并且逐个比较。测试信号流及方法如图4所示。

此外,为了使被测FPGA的RAM覆盖率达到90%以上,该系统根据被测FPGA不同逻辑存储容董巍量置不同数量RAM。RAM的数量根据被测FPGA的BANK数量来划分,即EP2具有4个BANK,就分配4个RAM,从不同BANK的引脚中各挑选一对作为控制FPGA与被测FPGA的连接引脚,EP3则为8对,在控制FPGA主控程序中循环切换,以此来保证被测FPGA的被测存储单元达到最大可能。

2 系统软件设计

2.1 主控FPGA逻辑设计

主控FPGA为本系统的核心模块,其功能主要为接收测试台的控制指令,编帧处理中子探测仪与GPS模块的数据,接收对比被测FPGA的数据并编帧发送到树莓派上位机。每测试完成一个循环,主控FPGA需要判断上位机是否下发停止测试指令。具体工作流程如图5所示。

2.2 上位机逻辑设计

本系统采用树莓派作为上位机,其主要功能是接收测试结果,记录测试次数,显示测试结果,将测试结果、GPS报文信息和中子探測仪的数据存储到SD卡中。其工作流程如图6所示。

3 单粒子翻转测试结果及分析

在青藏高原测试时间共8d,分6个测试点,依次是西宁郊区、青海湖、格尔木市区、拉萨市区、羊卓雍错和纳木错。将保存在SD卡的测试结果数据读出并进行统计分析,本文显示的结果是经过长时间测试提取的具有参考意义的部分,时长均为2h(即横轴时间为7200s);中子辐射曲线是相对应的2h的大气中子剂量,单位微西弗每小时(μSv/h);FPGA误码分布曲线,1代表正常,0代表存在误码。

图7、图8分别显示了在西宁郊区和纳木错实验采集的数据用Matlab处理的结果。根据Matlab处理结果,对比两个地点的具体测试情况可知:1)在海拔相对较低的地点(西宁),中子辐射剂量0μSv/h和5μSv/h比较多,SEU事件次数基本为0:CycloneⅡ代FPGA芯片SEU次数为0,CycloneⅢ代FPGA芯片大致在第4200s的时候翻转了1次;2)在海拔相对较高的地点(纳木错),中子辐射剂量5,10,15μSv/h较多,且最大值达到了25μSv/h,SEU事件次数也有所增多:CycloneⅡ代FPGA芯片大致在第4600s和5300s翻转了2次,CycloneⅢ代FPGA芯片在第1500s和第6500s之间翻转了5次。

由上述分析可以简单得出,中子辐射剂量和FPGA芯片的SEU事件与海拔高度有一定的关联性。表3是6个测试点的大气中子剂量最大值统计表,表4是6个测试点的单粒子翻转次数统计表。

分析表3可知,中子辐射的剂量值在随着海拔的升高而缓慢增大;分析表4可知,随着海拔的升高,不论是Cyclone Ⅱ代FPGA芯片还是CycloneⅢ代FPGA芯片,SEU发生的概率都在不断增大。综合以上两点可得,空气中子剂量的增多会使FPGA芯片发生SEU事件的概率增大。

将表3与表4统计分析与表1所示的测试地点地理信息分布结合分析,可以看出单粒子翻转现象与海拔高度有一定的线性关系:随着海拔的升高、以及越接近珠峰方向,大气中子剂量值也就越高,FPGA发生SEU的概率也就越大,该结论与预期一致。

4 结束语

本文通过树莓派与FPGA结合使用,同时存储与显示FPGA的SEU效应测试结果,可以实时得知被测FPGA的失效情况。该测试系统在青藏高原的6个地点进行实地测试,获得了大量低空(海拔3000~5000m)环境下FPGA的SEU效应数据,验证了在低空环境下,FPGA发生单粒子效应的可能性。该测试系统体积小、质量轻、便于携带,且测试结果具有实时性,能及时反馈给实验人员,极大地简化了FPGA的SEU效应测试流程。

现阶段的FPGA选型评价,需要从产品的需求方面分析,如逻辑复杂度、FPGA发生SEU概率等方面综合考虑。对于一般的地面设备,逻辑复杂度低的,且属于低海拔地区,则基本不需要考虑FPGA的SEU效应,选择逻辑门较少的FPGA即可实现功能;对于逻辑复杂度要求较高的,海拔较高,单粒子辐射较强的区域,则需要考虑使用逻辑门较多的FPGA,且必要时需要进行单粒子防护与加固。本系统可以为包括民用飞机、战斗机等在内的低空飞行器上FPGA的选型提供一种测试方式。

参考文献

[1]冯颖,刘忠健.单粒子效应对飞行器的影响分析及防护技术[J].强度与环境,2011,38(1):26-30.

[2]郑晓云,王绍举.SRAM型FPGA单粒子翻转模拟系统研究[J].红外与激光工程,2014,43(S1):164-168.

[3]薛茜男,张道阳,李颖,等.航空高度FPGA单粒子翻转飞行实验及失效分析[J].强激光与粒子束,2016,28(12):124102-1-124102-7.

[4]侯建文,张爱兵,郑香脂,等.FPGA单粒子翻转事件在轨探测研究[J].宇航学报,2014,35(4):454-458.

[5]JAHANIRAD H,MOHAMMADI K.Reliable Iimple-mentation on SRAM-based FPGA using evolutionarymethods[J].Iete Journal of Research,2013,59(5):597-603.

[6]鄭晓云,王绍举.SRAM型FPGA单粒子翻转模拟系统研究[J].红外与激光工程,2014,43(S1):164-168.

[7]唐俊,蒋健,谢申喜.基于树莓派的能耗数据采集网卡设计[J].测控技术,2017,36(3):98-106.

[8]胡晓峰,王红亮,彭晴晴.可扩展级联式机载数据采集系统设计[J].中国测试,2017,43(6):83-87.

[9]丁朋程.基于SRAM型FPGA的抗单粒子效应容错技术的研究[D].兰州:西北师范大学,2013.

[10]孙洪波,韩学涛,王玉涛,等.SRAM型FPGA单粒子翻转防护工程实现[J].电子科学技术,2015,2(2):144-149.

[11]CIANI L,CATELANI M.A fault tolerant architecture toavoid the effects of Single Event Upset(SEU)in avionicsapplications[J].Measurement,2014,54(6):256-263.

[12]马寅,安军社,王连国,等.基于Scrubbing的空间SRAM型FPGA抗单粒子翻转系统设计[J].空间科学学报,2012,32(2):270-276.