文章信息
- 王志国, 孟令军, 张皓威, 张敏
- WANG Zhiguo, MENG Lingjun, ZHANG Haowei, ZHANG Min
- 一种FPGA的SEU效应测试方法研究
- Study on a test method of FPGA SEU effect
- 中国测试, 2019, 45(1): 115-120
- CHINA MEASUREMENT & TEST, 2019, 45(1): 115-120
- http://dx.doi.org/10.11857/j.issn.1674-5124.2018030010
-
文章历史
- 收稿日期: 2018-03-04
- 收到修改稿日期: 2018-04-02
由于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测试。与航天部门的实验相比,本测试系统具有成本低、测试周期短、灵活性强、算法复杂度小的特点。本文选择我国青藏高原地区进行地面测试,青藏高原海拔在3 000~5 000 m(测试点及其海拔高度分布如表1所示),大气稀薄,空间辐射大,可以很好地模拟低空环境。
地点 | 经度 | 纬度 | 海拔/m |
西宁 | 东经101°77′ | 北纬36°62′ | 2 261 |
青海湖 | 东经100°30′ | 北纬36°34′ | 3 196 |
格尔木 | 东经94°89′ | 北纬36°42′ | 2 780 |
拉萨 | 东经91°06′ | 北纬29°36′ | 3 650 |
羊卓雍错 | 东经90°06′ | 北纬29°00′ | 4 450 |
纳木错 | 东经90°29′ | 北纬30°33′ | 4 760 |
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 II代(EP2C8T114I8)和Cyclone III代产品(EP3C5E144C7),均为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 = {I_P} \times R $ | (1) |
则,M3的D端电势降低为
$ {U_{\rm D}} = {V_{\rm cc}} - 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 单粒子翻转测试结果及分析
在青藏高原测试时间共8 d,分6个测试点,依次是西宁郊区、青海湖、格尔木市区、拉萨市区、羊卓雍错和纳木错。将保存在SD卡的测试结果数据读出并进行统计分析,本文显示的结果是经过长时间测试提取的具有参考意义的部分,时长均为2 h(即横轴时间为7 200 s);中子辐射曲线是相对应的2 h的大气中子剂量,单位微西弗每小时(μSv/h);FPGA误码分布曲线,1代表正常,0代表存在误码。
图7、图8分别显示了在西宁郊区和纳木错实验采集的数据用Matlab处理的结果。根据Matlab处理结果,对比两个地点的具体测试情况可知:1)在海拔相对较低的地点(西宁),中子辐射剂量0 μSv/h和5 μSv/h比较多,SEU事件次数基本为0:Cyclone II代FPGA芯片SEU次数为0,Cyclone III代FPGA芯片大致在第4 200 s的时候翻转了1次;2)在海拔相对较高的地点(纳木错),中子辐射剂量5,10,15 μSv/h较多,且最大值达到了25 μSv/h,SEU事件次数也有所增多:Cyclone II代FPGA芯片大致在第4 600 s和5 300 s翻转了2次,Cyclone III代FPGA芯片在第1 500 s和第6 500 s之间翻转了5次。
由上述分析可以简单得出,中子辐射剂量和FPGA芯片的SEU事件与海拔高度有一定的关联性。表3是6个测试点的大气中子剂量最大值统计表,表4是6个测试点的单粒子翻转次数统计表。
测试点 | EP2 | EP3 | |||
最大值/(μSv∙h–1) | 次数 | 最大值/(μSv∙h–1) | 次数 | ||
西宁郊区 | 10 | 3 | 10 | 1 | |
青海湖 | 10 | 5 | 10 | 6 | |
格尔木市区 | 15 | 1 | 15 | 1 | |
拉萨市区 | 15 | 5 | 20 | 1 | |
羊卓雍错 | 20 | 3 | 20 | 1 | |
纳木错 | 25 | 4 | 25 | 3 |
分析表3可知,中子辐射的剂量值在随着海拔的升高而缓慢增大;分析表4可知,随着海拔的升高,不论是Cyclone II代FPGA芯片还是Cyclone III代FPGA芯片,SEU发生的概率都在不断增大。综合以上两点可得,空气中子剂量的增多会使FPGA芯片发生SEU事件的概率增大。
将表3与表4统计分析与表1所示的测试地点地理信息分布结合分析,可以看出单粒子翻转现象与海拔高度有一定的线性关系:随着海拔的升高、以及越接近珠峰方向,大气中子剂量值也就越高,FPGA发生SEU的概率也就越大,该结论与预期一致。
4 结束语本文通过树莓派与FPGA结合使用,同时存储与显示FPGA的SEU效应测试结果,可以实时得知被测FPGA的失效情况。该测试系统在青藏高原的6个地点进行实地测试,获得了大量低空(海拔3 000~5 000 m)环境下FPGA的SEU效应数据,验证了在低空环境下,FPGA发生单粒子效应的可能性。该测试系统体积小、质量轻、便于携带,且测试结果具有实时性,能及时反馈给实验人员,极大地简化了FPGA的SEU效应测试流程。
现阶段的FPGA选型评价,需要从产品的需求方面分析,如逻辑复杂度、FPGA发生SEU概率等方面综合考虑。对于一般的地面设备,逻辑复杂度低的,且属于低海拔地区,则基本不需要考虑FPGA的SEU效应,选择逻辑门较少的FPGA即可实现功能;对于逻辑复杂度要求较高的,海拔较高,单粒子辐射较强的区域,则需要考虑使用逻辑门较多的FPGA,且必要时需要进行单粒子防护与加固。本系统可以为包括民用飞机、战斗机等在内的低空飞行器上FPGA的选型提供一种测试方式。
[1] |
冯颖, 刘忠健. 单粒子效应对飞行器的影响分析及防护技术[J].
强度与环境, 2011, 38(1): 26-30.
DOI:10.3969/j.issn.1006-3919.2011.01.005 |
[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.
DOI:10.3873/j.issn.1000-1328.2014.04.012 |
[5] |
JAHANIRAD H, MOHAMMADI K. Reliable Iimplementation on SRAM-based FPGA using evolutionary methods[J].
Iete Journal of Research, 2013, 59(5): 597-603.
DOI:10.4103/0377-2063.123766 |
[6] |
郑晓云, 王绍举. SRAM型FPGA单粒子翻转模拟系统研究[J].
红外与激光工程, 2014, 43(S1): 164-168.
|
[7] |
唐俊, 蒋健, 谢申喜. 基于树莓派的能耗数据采集网卡设计[J].
测控技术, 2017, 36(3): 98-106.
DOI:10.3969/j.issn.1000-8829.2017.03.025 |
[8] |
胡晓峰, 王红亮, 彭晴晴. 可扩展级联式机载数据采集系统设计[J].
中国测试, 2017, 43(6): 83-87.
|
[9] |
丁朋程. 基于SRAM型FPGA的抗单粒子效应容错技术的研究[D]. 兰州: 西北师范大学, 2013.
|
[10] |
孙洪波, 韩学涛, 王玉涛, 等. SRAM型FPGA单粒子翻转防护工程实现[J].
电子科学技术, 2015, 2(2): 144-149.
DOI:10.3969/j.issn.1673-5692.2015.02.006 |
[11] |
CIANI L, CATELANI M. A fault tolerant architecture to avoid the effects of Single Event Upset (SEU) in avionics applications[J].
Measurement, 2014, 54(6): 256-263.
|
[12] |
马寅, 安军社, 王连国, 等. 基于Scrubbing的空间SRAM型FPGA抗单粒子翻转系统设计[J].
空间科学学报, 2012, 32(2): 270-276.
|