0 引言
随着半导体技术的高速发展,大规模集成电路变得更加复杂,开发周期变得更长。FPGA由于具备可编程性,其广泛应用可以降低电路的开发成本。然而,单粒子翻转(SEU)会使FPGA内部的大量的存储器变得不可靠,尤其是Static RAM(SRAM)型FPGA的配置存储器受到重离子轰击时,会导致器件逻辑布线出错,进而引起模块故障,甚至导致整个系统的功能中断。对于SRAM型FPGA,配置存储器的单粒子翻转占整个器件翻转总数的90%以上的比例[1],因此对配置存储器的单粒子翻转防护十分重要。
目前也有一些方法可以对抗SEU。三模冗余(Triple Modular Redundancy,TMR)是一种常用的有效加固设计,可以有效提高可靠性。TMR的每一个冗余支路可以屏蔽一个错误,但无法处理多比特翻转,尤其是3倍资源的消耗也会影响整个器件的运行功耗。为了减少资源的消耗,文献[2]提出了一种基于双模冗余(Double Modular Redundancy,DMR)的检错电路,它以较小的资源代价来处理多比特翻转;文献[3]提出了一种星载信号处理平台结构,利用高可靠性的反熔丝Actel FPGA对Xilinx V4系列 FPGA进行监控和刷新;文献[4]介绍了FPGA的刷新设计要处理Half-latch,来避免回读无法发现的错误;文献[5]介绍了一种高效的加固测试的方法;文献[6]提出了基于ZYNQ加固的技术。
随着技术的发展,功能模块的集成度逐渐提高,Xilinx公司Kintex-7系列FPGA是当下较为普遍的处理器,而对其的单粒子防护变得更为迫切。为了提高可靠性,有效对抗空间辐射引起的故障,本文提出了一种基于高可靠性反熔丝Actel FPGA对Xilinx Kintex-7 FPGA进行回读、校验和刷新的处理平台。
1 空间辐射
空间中的电子器件,会受到空间中大量高能辐射粒子(质子、电子、α粒子、重离子、γ射线等)的作用,高能粒子对半导体器件PN结的碰撞,在重粒子的运动轨迹周围形成电荷被PN节灵敏电极收集形成瞬态电流,当瞬态电流超过一定值就会触发逻辑电路,将造成半导体存储器或触发器的翻转、逻辑功能的瞬时异常或中断,即单粒子效应。
根据单粒子效应的产生机理,可以对航天应用中的集成电路芯片进行加固,以减少单粒子效应对系统功能的影响。对于单粒子效应的加固,从加固方法上可将其分为工艺上加固和功能上加固两大类。
工艺上的加固指的是采用抗辐射能力强的工艺和材料,制造出具有较高抗辐射能力的器件,例如宇航级的器件,它本身就进行了辐射加固设计。功能上的加固是指通过复位或者重写操作对器件进行修复,将单粒子效应引起的错误逻辑进行纠正,从而达到抗辐射的目的。
2 研究现状
美国的好奇号探测器、金星快车探测器均使用Xilinx公司的宇航级FPGA,目前该公司的抗辐射FPGA产品如Virtex-4QV(以下简称V4)被认为是用于空间应用的成熟处理器。但其高昂的价格和较长的采购周期提高了国内相关领域的研究成本。Xilinx制造的Kintex-7(以下简称K7) FPGA具有低功耗高性价比的优点,并且可用资源比抗辐射的V4有较大优势,表1比较了V4(具体型号为XQ4VSX55)和K7(具体型号为XC7K32ST)两款芯片的主要参数[7]。
XC7K325T的逻辑单元是XQ4VSX55的5.9倍,DSP资源是它的1.6倍,丰富的资源提供了复杂信号处理的解决能力,同时为系统的小型化设计提供了可靠的解决方案。
XC7K325T和XQ4VSX55均采用SRAM型结构,其主要硬件组成为:可配置存储器(Configurable Memory)、可编程逻辑单元(Configurable Logic Block)、可编程输入输出口(Programmable IO)、块存储器(BlockRAM)、乘法器(Multiplier)、数字时钟管理模块(Digital Clock Manager)、配置状态机(Configuration State Machine)、上电复位状态机(Power On Reset State Machine)、布线资源(Routing Resource)。
由于采用SRAM型结构,通过相关实验表明,FPGA故障多数是由可配置存储器发生单粒子翻转(SEU)引起的[8]。可配置存储器控制着FPGA设计中的控制位(Control Bit)、查找表(Look Up Table)、开关矩阵(Multiplexiers)、可编程互连点(Programmable Interconnect Points)和布线缓存器(Routing Buffer)。根据可配置存储器中各类功能位所占的比例,可以判断可配置存储器单粒子翻转主要引起布线资源的错误。单粒子翻转影响它所在功能模块的功能,但并不一定引起整个器件信号处理功能的失效,并且此类故障可以通过刷新来修复。
3 加固平台设计
3.1 总体设计
本单粒子加固平台主要由高可靠性单元(High Reliability Unit,HRU)、XC7K325T和PROM组成。其中,信号处理部分由一片FPGA完成,高可靠单元完成对FPGA的配置、监控、回读校验和刷新功能。基于XC7K325T的抗SEU平台设计框图如图1所示。
图中K7 FPGA和反熔丝HRU直接交互,同时HRU直接与存储芯片连接,程序采用帧校验的方法来比对K7 FPGA中的配置位,存储芯片17V16的大小为16 Mb,经过计算共需要6片17V16。
3.2 K7的上电配置
该平台工作流程是,系统加电后,HRU首先配置K7,根据K7的配置时序图(如图2所示),首先置低PROGRAM_B引脚,初始化K7的配置寄存器,当INIT_B引脚变高后,这时再将PROM中的程序下载到K7中,当配置完成后,K7的DONE引脚会变高,意味着配置成功,此时K7开始工作;这时HRU首先检测配置是否成功,如果未成功,则重新配置;如果配置K7成功后,它的看门狗电路开始工作,这时HRU进入监测状态,实时地检测K7的工作状态。
其中K7的各个配置引脚的定义如表2所示。
3.3 K7的回读校验与刷新
当K7配置完成后,等待回读校验命令对器件进行回读测试。K7的回读校验采用按帧编码校验的方式。在回读过程中,对出错的帧进行记录和数传。当K7的回读校验都完成以后,进行错误判决。如果检测出错误,则对相应的器件进行动态重构处理,使其恢复到原始设计状态。完整的K7抗SEU加固软件执行流程如图3所示。
其中检测K7的状态是通过回读操作完成的,回读是通过SelectMAP接口将K7内部配置存储器中的数据读出的过程。回读过程可以读出K7存储器的当前状态以及布线资源的配置情况等,然后通过检测回读数据来判断当前配置数据的正确性。回读校验是K7单粒子效应故障检测的重要方法。回读过程分为写操作命令、读取数据和恢复现场三部分。FPGA每一帧回读数据的内容都决定着与其相对应的功能模块的逻辑功能。通过对配置存储器的回读和校验,HRU可以决定是否需要对该功能模块进行局部重配置。
4 应用验证
本设计采用的动态回读是在不中断正在运行的电路逻辑功能的情况下对配置存储器的回读。当回读发现K7的配置数据异常时,则进行刷新操作。刷新操作是在对目标器件K7的错误配置数据进行重构修复,通过以上流程HRU可以完成对XC7K325T的SEU加固。
为通过模拟XC7K325T空间环境应用时发生SEU,对加固软件的回读校验和刷新功能进行测试。测试系统组成如图4所示。
测试系统主要由故障生成计算机、XC7K325T和HRU组成。为了调试方便,用Flash存储K7的配置文件,计算机通过JTAG口将错误的配置信息烧录到FPGA中,HRU通过与Flash存储的配置文件比对,检测出SEU后实施刷新操作。通过工作指示可以监测当注入错误的配置信息后K7的工作状态,随后当回读校验刷新时,FPGA的原有的配置程序功能恢复。
测试主要分为以下几个步骤:
(1)以存储在Flash中的配置文件为基础,修改其中的一位或几位,并生成校验正确的配置文件;
(2)将两种配置文件的工作指示加以区别以便监测刷新操作;
(3)模拟SEU注入修改过的配置文件,并观察工作指示;
(4)等待程序中设定的校验时间后,通过工作指示判断HRU是否检测到了翻转并实施刷新操作;
(5)改变翻转的数目和故障注入的位置,重复试验。
测试表明,HRU加固软件能够正常完成对单片XC7K325T的上电配置,检测XC7K325T配置存储区的SEU和修复功能。
5 后续工作
FPGA单粒子效应故障加固设计,针对程序代码本身还需要增加以下几项工作,来增加整体平台对抗SEU的能力:
(1)对于FPGA中的关键逻辑模块,要采取三模冗余[9]设计TMR(Triple Modular Redundancy);
(2)如果FPGA对信号的运算速度要求宽裕,可以利用检错算法来判断FPGA的逻辑运行是否正确[10];
(3)可以在程序中增加逻辑探针,用区域约束布线的方法固定在FPGA重要模块的附近,实时对该区域的单粒子效应进行检测。
6 结束语
本文通过分析空间辐射的特点,结合SRAM型FPGA的硬件结构,阐述了单粒子翻转引起SRAM型FPGA的故障机理,结合工程实践提出了一种利用高可靠单元对XC7K325T进行配置、监控、回读校验和刷新功能的抗单粒子翻转的加固平台设计。模拟了故障注入对加固设计进行了测试,测试表明该加固平台设计可以完成对FPGA监控和修复,为Kintex-7 系列大容量的FPGA在空间环境中应用提供了设计参考。试验表明该平台可以有效修复单粒子效应引起的位翻转和功能故障。
参考文献
[1] 王跃科,邢克飞,杨俊,等。空间电子仪器单粒子效应防护技术[M]。北京:国防工业出版社,2010.
[2] AMAGASAKI M,NAKAMURA Y,TERAOKA T,et al.An area compact soft error resident circuit for FPGA[C].IC Design and Technology 2016 International Conference(ICICDT),2016.
[3] 邢克飞,杨俊,王跃科,等.Xilinx SRAM型FPGA抗辐射设计技术研究[J]。宇航学报,2007,28(1):123-129.
[4] 邢克飞,杨俊,周永彬,等。星用SRAM型FPGA加固设计方法研究[J]。电子器件,2007,30(1):202-205.
[5] 王鹏,张道阳,芦浩,等。基于分区测试的翻转故障注入方法研究[J]。电子技术应用,2017,43(8):88-91.
[6] 张小林,丁磊,顾黎明。基于三层级低开销的FPGA多比特翻转缓解技术[J]。电子技术应用,2018,44(4):61-64.
[7] Virtex-7 FPGA user guide[Z].UG470(v1.4),Xilinx,2012.
[8] 林金茂.SDR平台抗SEU性能评价关键技术研究[D]。长沙:国防科学技术大学,2009.
[9] 黄锦杰,孙鹏,沈鸣杰,等。基于TMR的FPGA单粒子加固试验探究[J]。复旦学报(自然科学版),2011,50(4):477-484.
[10] 李梦良,乐立鹏,张建军,等。星载65 nm抗辐射GNSS接收机ASIC的SEFI实验方法[J]。电子技术应用,2017,43(1):53-56.
评论
查看更多