基于FPGA的触发器单粒子翻转错误统计电路设计
2016-08-04吴加威河海大学物联网工程学院江苏常州213022
吴加威(河海大学物联网工程学院,江苏常州,213022)
基于FPGA的触发器单粒子翻转错误统计电路设计
吴加威
(河海大学物联网工程学院,江苏常州,213022)
摘要:触发器在太空辐射环境或者地面环境中受到带电粒子的辐射打击,会产生单粒子翻转错误。随着我国航空航天领域的快速发展,检测触发器芯片的软错误率,评估其可靠性,至关重要。本系统基于FPGA进行设计开发,对数据通过异或模块进行比较,然后通过计数器模块进行统计,并由PISO模块转换为串行输出。系统通过Verilog建模,运行可靠,方案可行。
关键词:单粒子翻转;FPGA;触发器;PISO
0 引言
单粒子翻转指的是当半导体存储器元件受到带电粒子辐射打击时,可能会发生的一系列存储位翻转的错误,其错误的形式主要有SBU/MBU(即单位/多位翻转)两种。
随着我国航空航天领域的快速发展,航天器、卫星等所载的半导体器件用到了大量的静态存储单元器和触发器等。而随着半导体工艺现代科技的持续向前快速发展,器件进入了纳米工艺制程,对单粒子翻转错误越来越敏感。因此,为了检测集成触发器单粒子翻转造成的软错误率,提高系统的可靠性,我们开发了基于FPGA系统的错误统计电路。
1 总体设计
为了实现检测集成触发器存储位翻转错误的功能,实现方案较多。因为FPGA具有实现简单、可扩展性强等优点,本系统基于FPGA进行设计。根据电路的预期功能,把电路分为四个模块,电路总体结构图如下图。
图1 片内错误统计电路总体结构图
如图1所示,错误统计电路整体分为四个大模块,数据流经由异或模块输入,输出一串二进制的数字序列,再输入至DFF(即D触发器)模块,会产生一列脉冲波形,把它作为计数脉冲输入至计数器模块,计数器模块输出并行的计数结果,计数结果4位并行地输入至PISO(即并入串出)模块,PISO模块串行输出4位二进制数,每组二进制数对应一个计数器的计数结果。观察此时的输出结果,可以确定片内错误统计电路能否正常工作,达到统计被测触发器芯片出错次数的预期要求。
2 功能模块划分
2.1异或模块
异或模块,用一个异或门实现两列数组异或,得到一列0和1组成的二进制数组。异或模块有两路输入,一路是触发器的输出,另外一路是触发器的输入。当两位相同时,异或输出为0,否则为1。
2.2DFF(D触发器)模块
该模块使用上升沿触发的D触发器,其外接一个时钟信号,在时钟信号的上升沿到来时,D触发器的输出Q与输入D相同,此时输入为0波形显示为低电平,输入为1波形则为高电平,这样D触发器就完成了波形发生器的功能。
2.3计数器模块
计数器模块用四个T´触发器级联组成一个4位异步计数器,其结构如图2所示。为了防止片内错误统计电路本身出错,我们把T´触发器用另外一个组合电路等价代替,即三个D触发器连接到表决器。这种做法是防止计数器受到外界干扰或者内部的其他原因,改变其中一个触发器的逻辑状态,造成计数错误,影响到最后结果。
2.4PISO模块
将四个相同的D触发器级联,它们共用同一个新时钟,而且每个D触发器都对应一个计数器电路的T´触发器。共经过四个计数周期,最后的D触发器会输出串行的4位二进制数,即前级计数器模块的计数结果。
3 Verilog建模
整个片内错误统计电路的顶层模块top用结构描述方式描述,具体代码如下所述。其中,输入“crest_SR_in”是被检测芯片输出的数据,输入“RPG_in“是原始数据,“crest_clk”是波形发生D触发器的时钟信号,也是计数器模块的计数周期,“clear”是4位异步二进制计数器的置数端,用来初始化计数器,让它从“0000”状态开始计数,“loadBar_shift”是PISO中数据选择器的数据选择位,“counter_clk”是PISO中四个D触发器共有的时钟输入信号,“serial_out”是整个电路最终的输出结果。
module top (crest_SR_in,RPG_in,crest_clk,clear,
loadBar_shift,counter_clk,serial_out);
input crest_SR_in,RPG_in,crest_clk,
clear,loadBar_shift,counter_clk;
output serial_out;
wire crest_SR_in,RPG_in,out1, out2,out3,out4,out5,out6,serial_out;
XOR u1(out1,crest_SR_in,RPG_in);
DFFF u2(out2,out1,crest_clk);
not u3(out3,out2);
not u4(out4,out3);
TMR_counter u5(Q0,Q1,Q2,Q3,out4,clear);
PISO u6(out5,~Q0,~Q1,~Q2,~Q3,counter_clk,loadBar_ shift);
not u7(out6,out5);
not u8(serial_out,out6);
endmodule
4 总结
本系统基于FPGA,设计了检测集成触发器单粒子翻转错误的统计系统,并由Verilog建模,仿真结果证明了设计的可行性。因为本系统基于FPGA,具有开发周期短、系统验证方便快捷,功能可扩展等优点。
图2 计数器模块的结构示意图
图3 PISO模块内部结构图
参考文献
[1]丁义刚, Ding Yigang - 《航天器环境工程》 2007年5期
[2]杨善潮, 齐超, 刘岩, 郭晓强, 金晓明, 陈伟, 白小燕, 林东生,王桂珍 - 《强激光与粒子束》 2015年11期
[3]杨海钢, 孙嘉斌, 王慰, Yang Hai-gang, Sun Jia-bin, Wang Wei - 《电子与信息学报》 2010年3期
Design and Implementation of Flip-flop Single Event Upset Error Counting Circuit based on FPGA
Wu Jiawei
(Collge of IOT, Hohai University,Changzhou,213022)
Abstract:Flip-flops may observe single event upsets induc ed by radiation strikes when they are exposed to radiation environments.With the development of our space exploration,we need to evaluate the soft error rate of flip-flops.Thus,this paper presents an error detection system based on FPGA. This system compares data through an XOR module,and the result is transferred to a counter and a PISO afterwards to to be sent in serial.The system has been modeled with Verilog and it runs very well.
Keywords:Single Event Upset;FPGA;Flip-flop;PISO