APP下载

一种Flash型FPGA单粒子效应测试方法设计及验证

2015-12-01杨振雷王晓辉杨海波

核技术 2015年2期
关键词:束流测试方法寄存器

杨振雷 王晓辉 苏 弘 刘 杰 杨海波 成 科,3 童 腾

1(中国科学院近代物理研究所 兰州 730000)

2(中国科学院大学 北京 100049)

3(西北师范大学 兰州 730000)

一种Flash型FPGA单粒子效应测试方法设计及验证

杨振雷1,2王晓辉1,2苏 弘1刘 杰1杨海波1,2成 科1,3童 腾1,2

1(中国科学院近代物理研究所 兰州 730000)

2(中国科学院大学 北京 100049)

3(西北师范大学 兰州 730000)

随着现场可编程门阵列(Field Programmable Gate Array, FPGA)在现代航天领域的广泛应用,FPGA的单粒子效应(Single Event Effect, SEE)逐渐成为人们的研究热点。选择Microsemi公司Flash型FPGA分布范围最广的可编程逻辑资源VersaTile和对单粒子效应敏感的嵌入式RAM单元RAM Block作为单粒子效应的主要测试对象,提出了两种不同的单粒子效应测试方法;然后,使用仿真工具ModelSim对提出的两种电路的可行性进行了仿真验证;最后,基于自主研发的实验测试平台,在兰州重离子加速器(Heavy Ion Research Facility in Lanzhou, HIRFL)上使用86Kr束进行了束流辐照实验,实验结果表明,测试方法合理有效。

现场可编程门阵列,单粒子效应,VersaTile,RAM Block

空间辐射环境中充斥着各种带电粒子,会导致航天器中的半导体器件发生单粒子效应(Single Event Effect, SEE),从而影响到航天器的寿命和可靠性。因此,在航天器发射之前,必须对其中的半导体器件进行单粒子效应测试,并采取一定的抗辐射加固方法,提高航天器的可靠性[1]。地面模拟实验是研究单粒子效应的重要途径之一。地面模拟实验是采用粒子加速器提供的高能重离子、质子、252Cf源、中子源等对半导体器件进行辐照,诱发其产生单粒子效应进行研究[2]。然而,加速器束流实验机时有限且费用昂贵,因此,在束流实验之前,采用合理的仿真方法和故障注入方法,对测试方法进行充分的验证,可确保实验的可行性,提高束流的利用率。

国外对现场可编程门阵列(Field Programmable Gate Array, FPGA)单粒子效应的研究开始于20世纪90年代,对FPGA单粒子效应测试方法、失效机理和加固方法均开展了深入的研究[3]。而国内对FPGA单粒子效应的研究起步相对较晚。但是,随着FPGA在现代航天领域的广泛应用,FPGA的单粒子效应逐渐成为人们研究的热点。近年来,国内多家单位,如中国科学院近代物理研究所、中国原子能科学研究院、航天相关院所及部分高校对FPGA单粒子效应开展了一定的研究工作,从中获得了大量的实验数据[4]。

FPGA结构复杂,包含时序逻辑电路、组合逻辑电路、存储单元和功能单元等,在辐照环境下,容易发生单粒子翻转、单粒子瞬态、单粒子功能中断和单粒子闩锁等效应[5]。兰州重离子加速器(Heavy Ion Research Facility in Lanzhou, HIRFL)是我国重要的中高能重离子加速器,可提供几百MeV至几个GeV的重离子,有宽广的LET范围,特别适合于单粒子效应研究。目前在该加速器上已经开展了大量的研究工作,并取得了一系列重要成果[6]。

1 FPGA单粒子效应测试方法

Microsemi公司Flash型FPGA具有高性能、低功耗、低成本和固件错误免疫等优点,应用于多颗卫星和航天器中[7]。本文选取Microsemi公司ProASIC3系列的A3P250作为典型器件开展单粒子效应研究,深入了解该类器件的单粒子效应特性,为航天事业提供实验数据。

ProASIC3系列FPGA逻辑容量为1.5万–100万系统门,采用130nm工艺,晶体管受7层金属保护,具有多达144kbit双端口RAM以及多达300个用户输入/输出(Input/Output, I/O)口并且支持多种I/O标准,运行频率高达300MHz[8]。结构框图如图1所示,主要包括以下几部分:输入输出端口(I/Os)、可编程逻辑资源(VersaTile)、存储单元(RAM Block)、FlashROM和时钟调节电路(Clock Conditioning Circuits, CCC)。其中,VersaTile是FPGA的核心单元,在该系列FPGA中的分布最广;RAM Block是对单粒子效应敏感的单元,极易发生单粒子翻转(Single Event Upset, SEU)[9]。因此,本文将VersaTile和RAM Block作为单粒子效应实验的研究对象。

图1 ProASIC3系列FPGA结构框图[10]Fig.1 ProASIC3 series FPGA structure diagram[10].

2 VersaTile测试方法

VersaTile为Flash型FPGA的基本组成单元,可以配置成与门、或门、非门或者多路选择器等组合逻辑,也可以配置成不带复位的D触发器(DFN1)、具有使能端的D触发器(DFN1E1)、具有清零端的D触发器(DFN1C1)等时序逻辑。为了测试VersaTile的SEU特征,待测器件(Device Under Test, DUT)被配置成多条移位寄存器链,设计框图如图2所示。在该设计中,移位寄存器链被分成4个模块,每个模块被设计成不同类型的复位方式:不带复位(Without Reset)移位寄存器链、同步复位(Synchronous Reset, SYN_RST)移位寄存器链、异步复位(Asynchronous Reset, ASYN_RST)移位寄存器链和异步复位同步释放(Asynchronous Reset Synchronous Release, ARSR_RST)移位寄存器链。其中,不带复位移位寄存器链和同步复位移位寄存器链被配置成DFN1型D触发器链,异步复位寄存器链和异步复位同步释放寄存器链被配置成DFN1C型D触发器链。因此,通过这样的设计,可以测试不同类型D触发器的SEU特性。在A3P250 FPGA中,共包括6144个VersaTile。在该设计中,将每条寄存器链的长度设置为135,共使用6 066个VersaTile,占总数的99%。

图2 移位寄存器链结构框图Fig.2 Framework of the shift register chain.

每个模块的3个移位寄存器链组采用三种输入信号:连续“0”模式、连续“1”模式和“01”交替模式,而每个移位寄存器链组对应有4路输出信号:输出1、输出2、输出3以及输出123的三模冗余(Triple Modular Redundancy, TMR)信号。未发生SEU时,4路输出信号应该为全0或者全1。但是,当VersaTile单元发生SEU时,如图3和表1中所示,OUT2[1]在第7个时钟(Clock, CLK)发生SEU,这时,输出信号将由全0或者全1变为0和1的组合。在这种情况下,只要控制FPGA检测到DUT的OUT[3:0]按位相或等于1且按位相与等于0,即可判断VersaTile单元发生SEU。

图3 输出端口OUT2时序图Fig.3 Sequence diagram of OUT2.

表1 输出信号真值表Table 1 Truth table of the output signal.

2.1 RAM Block测试方法

RAM Block是Flash型FPGA的内部存储单元。在A3P250中,共有8个RAM单元,每个单元有4608bit,均能够配置成双端口(Dual-Port)和两端口(Two-Port)存储器。ProASIC3系列FPGA有两种RAM Block:RAM4K9和RAM512×18,双端口的RAM使用RAM4K9,两端口RAM使用RAM4K9或者RAM512×18模块。ProASIC3系列FPGA的RAM块支持不同宽度和不同深度的配置,双端口的RAM可以配置成4K×1、2K×2、1K×4或者512×9,而两端口的RAM可以配置成256×18或者512×9[10]。

为了使测试能覆盖到所有的8块RAM单元,在本设计中,将每个RAM单元配置成512×9位,使用统一的读写时钟,如图4所示。8个RAM单元依次编号为RAM0–RAM4、RAM_A、RAM_B和RAM_C,其中,RAM_A、RAM_B和RAM_C经过TMR处理,组成RAM5。同时,为了防止控制RAM单元的读写模块发生SEU,读写模块均经过TMR处理。

图4 RAM Block单元测试框图Fig.4 Framework of RAM Block.

RAM Block的测试时序如图5所示,检测模式采取“写读写读”模式。当接收到开始测试指令时,写使能WEN置低,由于RAM1–RAM5采用统一的写地址总线和写数据总线,所以数据一次性写入到RAM中,RAM写满后,写满信号WR_FULL生效;然后,读使能REN[0]–REN[5]逐次生效,RAM中的内容逐个按地址读出,并与预置数据比较以判断是否发生SEU。如果RAM单元中的内容发生SEU,相关信息,如错误数据、RAM编号以及错误地址等,一起写入到先入先出队列(First Input First Output, FIFO)中,并上传给上位机,以便进行进一步的分析。

图5 RAM Block单元测试框图Fig.5 Sequence diagram of RAM Block.

3 仿真验证

为了验证测试方法的可行性,必须对提出的方案进行仿真验证。本文采用Mentor Graphics的子公司Model Technology的产品ModelSim进行仿真验证。ModelSim是基于单内核的Verilog、VHDL混合仿真器,同时也是业界最优秀的HDL语言仿真软件之一,其采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术,编译仿真速度快,具有个性化的图形界面和用户接口,是FPGA设计的首选仿真软件[11]。

仿真验证开始前,需为每个设计编写相对应的testbench。考虑到testbench的可移植性,按照图6所示的结构框图进行设计,这样,每次更改设计只需要更改接口模块和必要的测试代码即可。仿真验证结构框图主要由故障注入模块、指令发送模块、接口模块和SEU接收模块组成,通过指令发送模块将开始测试指令、复位指令、设置DUT频率指令等发送给控制FPGA;控制FPGA在接收到指令后产生相应的时钟、复位等系统信号,通过接口模块传送给DUT;同时,通过故障注入模块在某种条件下改变DUT的输入,进而模拟辐照环境下的SEU;控制FPGA一直监控DUT的输出,当DUT中发生单粒子翻转后,将翻转的时刻、地址等信息打包发送给SEU接收模块,SEU接收模块对信息进行处理、实时保存并且显示。

图6 仿真验证结构框图Fig.6 Framework of simulation.

其中,故障注入模块的原理图如图7所示,当需要模拟一个SEU事件时,将INJ_EN置1,注入错误端口INJ_ERR与正确数据输入端口DATA_IN异或,即可将模拟的SEU故障注入到DUT中,从而模拟了辐射环境中的SEU。

图7 故障注入模块原理图Fig.7 Schematic of fault injection.

3.1 VersaTile 测试方法仿真

由于移位寄存器链的数量较多,且工作方式相同,检测方法也相同。本文以无复位寄存器链全0链中的一条为例,注入错误进行仿真,注入错误的周期为10ms。在仿真过程中,首先,发送全局复位命令;然后,发送设定频率命令,这里DUT的运行频率设定为100MHz;然后,再发送开始测试命令;最后,SEU接收模块开始监视SEU信息,如果发生SEU,便在ModelSim的Transcript中打印输出。

如图8所示,在t1时刻注入错误,输入由0翻转为1,该错误在t2时刻被检测出。错误被检测到的同时,触发FIFO的写操作FIFOCHECK_WREN,将该错误写入FIFO中,同时将此次事件打印到Transcript中显示出来。SEU信息按SEU发生时刻(Time)、移位寄存器链的编号(No)和错误数据(SEU)列出,如图9所示。从仿真结果中可以看出,发生SEU链的编号为0,即全0链,数据为0100(其中,低3位为3条移位寄存器链的输出,最高位为低3位进行TMR的输出),3条链中的1条发生错误,TMR位正确。由此可见,设计思路正确,测试方法能够准确地检测到SEU。

图8 移位寄存器链仿真波形图Fig.8 Simulation diagram of the shift register chain.

图9 移位寄存器链仿真结果Fig.9 Simulation result of the shift register chain.

3.2 RAM Block测试方法仿真

RAM Block的仿真过程如下:首先,发送配置数据命令,这里以“01”交替模式为例,即写入到RAM中的数据为0x155,同时,在地址0x100中注入错误0x154;然后,发送开始测试命令;最后,仿真模块中的SEU接收模块开始监视SEU信息,如果发生SEU,便在ModelSim的Transcript中打印输出。

如图10所示,当写使能WEN有效时,RAM中除地址0x100写入0x154外,其余均被写入0x155;写完毕后,读使能REN[5:0]生效,从仿真波形图中可以看出,每个错误均被检查出来。错误被检测出来的同时,FIFO写使能FIFO_WREN生效,每个错误均被写入FIFO中,最终被打印到Transcript中显示出来。SEU信息按SEU发生时刻(Time)、编号(No)、地址(Addr)、错误数据(SEU)列出,如图11所示。从仿真结果中可以看出,每个RAM块地址位为0x100均发生SEU,数据由0x155翻转为0x154(由于DUT的工作频率为20MHz,控制FPGA的工作频率为100MHz,所以每个错误被检测出5次)。由此可见,测试方法设计正确,能够准确地检测到SEU。

图10 RAM Block仿真波形图Fig.10 Simulation diagram of RAM Block.

图11 RAM Block仿真结果Fig.11 Simulation result of RAM Block.

4 实验验证

4.1 实验平台简介

为了对单粒子效应进行深入的研究,中国科学院近代物理研究所自行研发了一套通用型单粒子效应测试系统,该系统提供了120个单端IO和40对差分IO,支持1.5 V、1.8 V、2.5 V和3.3 V等常用电平标准,采用的高速连接器传输速率高达200Mbps,因此,该系统具有良好的通用性。目前,该系统已经在HIRFL上开展了多次实验,对多款静态随机存储器(Static Random Access Memory, SRAM)器件、几款FPGA进行了单粒子效应测试,取得了大量的实验数据[6]。

FPGA单粒子效应测试平台基本结构如图12所示。整个测试平台由上位机、测试系统和DUT组成。上位机通过RS485与测试系统进行通信,完成命令的发送、测试系统工作状态和实验数据的接收,并对实验数据进行在线分析和存储,同时通过RS232与可编程电源进行通信,对DUT的电压和电流进行实时监测显示,如果发生单粒子闩锁(Single Event Latch-up, SEL),则立即关闭可编程电源并实时记录SEL信息;测试系统主要包括电源模块、时钟复位模块、JTAG (Joint Test Action Group)模块和控制FPGA组成,电源模块为控制FPGA提供电源,时钟复位模块为控制FPGA提供时钟和复位信号,通过JTAG模块配置控制FPGA,控制FPGA实时监测DUT的输出,一旦发生SEU,将SEU发生的时刻、地址等信息缓冲到FIFO,最终报告给上位机;DUT由可编程电源直接供电,并通过高速连接器与测试系统相连接,同时由控制FPGA提供时钟信号、复位信号以及其他输入信号。

图12 FPGA单粒子效应测试平台结构框图Fig.12 Framework of single event effect about FPGA.

4.2 测试结果

利用FPGA单粒子效应测试平台,在HIRFL束流辐照终端利用86Kr束,对A3P250进行了束流实验。束流垂直于器件表面入射,离子LET值范围为20.20–40.91MeV·mg−1·cm2。VersaTile的束流测试,实验条件为LET=21.11 MeV·mg−1·cm2,DUT工作频率设置为50MHz;RAM Block的束流测试,实验条件为LET=37.62 MeV·mg−1·cm2,RAM中写全1。获得的实验数据如表2所示。该测试数据与文献[9]中的测试数据非常接近,由此表明,测试方法合理有效。

表2 测试数据Table 2 Experimental data.

5 结语

本文以Microsemi公司Flash型FPGA为研究对象,重点研究了可编程逻辑资源VersaTile和嵌入式存储单元RAM Block这两种核心单元,针对每个单元分别提出了不同的测试方法,并使用仿真工具ModelSim对每个检测方法的可行性进行了仿真。在兰州重离子加速器的束流终端上使用86Kr束进行了束流实验,实验结果表明,测试方法合理有效。

1 张宇宁, 张小林, 杨根庆, 等. 商用FPGA器件的单粒子效应模拟实验研究[J]. 宇航学报, 2009, 30(5): 2025–2026

ZHANG Yuning, ZHANG Xiaolin, YANG Genqing, et al. Simulation experiment of single event effect in commercial FPGA[J]. Journal of Astronautics, 2009, 30(5): 2025–2026

2 王跃科, 邢克飞, 杨俊, 等. 空间电子仪器单粒子效应防护技术[M]. 北京: 国防工业出版社, 2010: 118–119

WANG Yueke, XING Kefei, YANG Jun, et al. Single event effect mitigation techniques for space electronic instrument[M]. Beijing: National Defense Industry Press, 2010: 118–119

3 姚志斌, 范如玉, 郭红霞, 等. 静态单粒子翻转截面的获取及分类[J]. 强激光与粒子束, 2011, 3: 811–816

YAO Zhibin, FAN Ruyu, GUO Hongxia, et al. Acquisition and classification of static single-event upset cross section for SRAM-based FPGAs[J]. High Power Laser and Particle Beams, 2011, 3: 811–816

4 谢楠. 宇航用FPGA单粒子效应及监测方法研究[D].西安电子科技大学, 2011

XIE Nan. Single event effects of aerospace FPGA and monitoring methods[D]. Xi'an Electronic and Science University, 2011

5 Allen G R, Swift G M. Single event effects test results for advanced field programmable gate arrays[C]. Radiation Effects Data Workshop, IEEE, 2006: 115–120

6 高山山, 苏弘, 孔洁, 等. SRAM单粒子效应监测平台的设计[J]. 核电子学与探测技术, 2011, 2: 209–213

GAO Shanshan, SU Hong, KONG Jie, et al. Design of SRAM single event effect monitoring system[J]. Nuclear Electronics & Detection Technology, 2011, 2: 209–213

7 Spaceflight FPGAs catalog[OL]. http://www.microsemi. com/document-portal/doc_download/131352-spaceflightfpgas-catalog, 2012-5

8 ProASIC3 flash family FPGAs datasheet[OL]. http://www.microsemi.com/products/fpga-soc/fpga/proasi c3-e#documents, 2014-7

9 Rezgui S, Wang J J, Tung E C, et al. Comprehensive SEE characterization of 0.13 µm flash-based FPGAs by heavy ion beam test[C]. Presented at the Data Workshop RADECS, 2007

10 ProASIC3 FPGA Fabric user's guide[OL]. http://www. microsemi.com/products/fpga-soc/fpga/proasic3-e#docum ents, 2012-9

11 童腾, 苏弘, 王晓辉, 等. 一种改进的SRAM单粒子效应检测系统[J]. 原子核物理评论, 2014, 31(2): 170–171

TONG Teng, SU Hong, WANG Xiaohui, et al. An improved system of detecting single event effect in SRAM[J]. Nuclear Physics Review, 2014, 31(2): 170–171

CLC TN386

Design and verification of test method for the single event effect in flash-based FPGA

YANG Zhenlei1,2WANG Xiaohui1,2SU Hong1LIU Jie1YANG Haibo1,2CHENG Ke1,3TONG Teng1,2
1(Institute of Modern Physics, Chinese Academy of Sciences, Lanzhou 730000, China)
2(University of Chinese Academy of Sciences, Beijing 100049, China)
3(Northwest Normal University, Lanzhou 730000, China)

Background: With the increased application of Field Programmable Gate Array (FPGA) in the field of spaceflight, Single Event Effect (SEE) of FPGA is attracting more and more attentions recently. Purpose: The aim is to study single event effect in flash-based FPGA manufactured by Microsemi. Methods: VersaTile and RAM Block from the flash-based FPGA are selected as the research object. First of all, the simulation verification of the method was performed by using ModelSim toolkit. Then the experimental tests of FPGA samples were carried out using SEE testbed based on the Heavy Ion Research Facility in Lanzhou (HIRFL). Results and Conclusion: The simulation results verify that the test methods are effective, and the Single Event Upset (SEU) are detected timely and accurately. Experimental results on the SEE test base using86Kr of HIRFL showed its rationality and validation.

Field Programmable Gate Array (FPGA), Single Event Effect (SEE), VeasaTile, RAM Block

TN386

10.11889/j.0253-3219.2015.hjs.38.020404

No.11079045、No.11305233)资助

杨振雷,男,1985年出生,2011年毕业于中国地质大学(武汉),现为博士研究生,核电子学专业

苏弘,E-mail: suhong@impcas.ac.cn

2014-08-13,

2014-09-08

猜你喜欢

束流测试方法寄存器
基于泊松对相关的伪随机数发生器的统计测试方法
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
基于云计算的软件自动化测试方法
高能同步辐射光源低能束流输运线设计研究
中国散裂中子源加速器注入束流损失调节研究
DLD-100C型雷达测试方法和应用
对改良的三种最小抑菌浓度测试方法的探讨
ECR中和器束流引出实验研究
合肥光源钮扣型束流位置检测器的离线标定