百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

基于SRAM型FPGA的SEU敏感性研究_fpga内部sram怎么用

bigegpt 2025-02-19 11:00 8 浏览

冯 兴,王大鸣,张彦奎,代龙震

(中国人民解放军信息工程大学,河南 郑州450001)

摘 要:目前星载信号处理平台中大量使用商用芯片,但商用芯片抗辐射能力较弱,在空间环境下常出现单粒子翻转(Single Event Upset,SEU),从而造成系统功能紊乱,甚至中断。提出以星载信号处理平台中大量使用的SRAM型FPGA为研究对象,采用故障注入的方式研究FPGA中不同硬件资源对于SEU效应的敏感性问题。根据不同资源对SEU效应表现出不同敏感性的结论,可在SRAM型FPGA的抗SEU防护上进行有针对性的设计。

中图分类号:TN47;V19

文献标识码:A

DOI:10.16157/j.issn.0258-7998.2016.05.015

中文引用格式:冯兴,王大鸣,张彦奎,等. 基于SRAM型FPGA的SEU敏感性研究[J].电子技术应用,2016,42(5):53-56.

英文引用格式:Feng Xing,Wang Daming,Zhang Yankui,et al. SEU sensitivity research in SRAM-based FPGA[J].Application of Electronic Technique,2016,42(5):53-56.

0 引言

随着星载信号处理平台对于信号处理能力需求的不断提升,宇航级芯片已越来越难以满足需求,而商用芯片相对宇航级芯片拥有更强的处理能力和更多的处理资源。所以基于商用芯片构建星载处理平台的商用现成技术(Commercial Off-The-Shelf,COTS)成为当前卫星通信平台设计领域的研究热点。

由于商用芯片向着高密集度、低操作电压的方向迅速发展,使得它们在空间辐射环境下的可靠性大大降低。其中软故障是主要故障,它是由带电粒子和PN结相互作用引起的一种暂态故障,可造成芯片严重的运行错误[1]。所以如何弥补商用芯片本身抗辐照能力的不足是需要解决的重要问题。

国内外研究机构对于星载信号处理平台抗SEU方法目前主要分为两类:一类是针对SEU的屏蔽,包括各种抗SEU加固结构设计、高性能抗SEU的CMOS(Complementary Metal Oxide Semiconductor)工艺等[2];另一类是针对SEU的修复,如动态可重构技术、编码纠正[3]等方法。另外,由于星载平台中包含大量的诸如FIR(Finite Impulse Response)滤波和FFT(Fast Fourier Transform)的处理过程,故近年来针对各种滤波器和信号处理算法本身抗SEU的方法研究特别广泛,如文献[4]、文献[5]分别实现FIR滤波器和FFT算法的容错技术。

相对于上述研究思路,本文则重点关注芯片内部各种不同硬件资源对于SEU事件的敏感性。以星载平台上应用广泛的SRAM型FPGA为研究对象,通过模拟星载平台和故障注入的实验,根据各种资源在故障源注入后诱发系统出现功能紊乱的概率总结出各种资源对于SEU敏感性高低的结论。

1 SEU敏感性研究模型

为验证SRAM型FPGA不同资源对于SEU存在不同的敏感性,需要模拟星载信号处理平台SRAM型FPGA在外部空间遭遇SEU效应的整个过程。即在地面上模拟采用SRAM型FPGA的星载信号处理平台,模拟FPGA出现的SEU错误,以及将模拟的SEU错误注入到FPGA内部不同资源中。据此提出SEU敏感性研究的模型,如图1所示。

根据研究模型,首先可以采用基于商用芯片的星地联合处理平台来模拟星载平台,其硬件环境如图2所示。其中CPCI(Compact Peripheral Component Interconnect)总线用来模拟星地链路,星载处理板模拟星载信号处理平台,处理板采用了多片SRAM型FPGA芯片作为实验的测试芯片。

为调用FPGA内部资源,采用两种功能相同但实现方式不同的功能模块,因此可以针对两种模块设计颗粒度不同的实验A和实验B来分别进行实验。基于功能模块通过故障注入的方式生成模拟的SEU错误,在系统正常运行的情况下,将错误注入到平台FPGA的功能模块中,观察注入前后的输出状态,对比两次实验结果,得出SEU敏感性研究的结论。

2 SEU敏感性实验设计

2.1 基于IP核的FFT敏感性实验设计

通常星载平台中拥有大量的FFT运算,而这些运算大都通过在FPGA中调用IP核来实现。因此以基于IP核的FFT来进行SEU敏感性实验是合理的。SRAM型FPGA芯片由6个部分组成,其中Slice资源是可编程逻辑单元的基本逻辑单元,RAM资源是FPGA常用的硬核模块,两种资源都是FPGA内部广泛分布且应用较多的资源。所以基于IP核的FFT敏感性实验所针对的资源就是Slice和RAM。

Slice资源内部主要的配置关系是逻辑关系,即“+”、“~”、“*”关系;RAM资源内部主要的配置关系是数值关系,即0、1数值关系。所以针对这两种资源的故障注入将分别围绕这两种配置关系进行修改。利用FPGA_Editor查看网表文件,并对其进行修改,生成差异比特文件,即模拟故障源。在FFT模块正常运行后通过测试电脑经模拟星地链路,反复将故障源注入到FFT模块中,通过chipscope抓取结果,根据结果得出结论。

2.2 基于软件实现的FFT敏感性实验设计

为进一步验证上述结论,在前述实验的基础上,设计了另一种颗粒度更高的实验来加以证明。该实验运用VHDL语言编程实现16点的FFT功能模块,该模块调用更多的FPGA资源,采用相同的星地联合处理平台,同样针对Slice和RAM两种资源进行故障注入实验。

设16点数据为x(0)、x(1)…x(15)的16位的实数数据,按时间抽取的基2 FFT算法原理可得该16点FFT的蝶形交织运算,如图3所示,其结果即是X(0)~X(15)的16点FFT输出。由图可知,该FFT算法原理的核心是每一层的蝶形交织运算,因此整个16点FFT程序设计的关键是四层的蝶形交织运算。

设计程序分成五部分,即顶层的输入输出和4个蝶形交织层。最初输入16点的16位实数数据,然后通过每层的蝶形交织计算得到最终FFT的输出。将结果与MATLAB仿真进行对比,验证该FFT模块是否编写正确。确认模块功能正确后,同样针对Slice和RAM进行修改;然后进行故障注入试验,通过chipscope抓取结果;最后根据结果得出结论。

3 SEU敏感性实验及分析

3.1 基于IP核的FFT敏感性实验及分析

通过FPGA_Editor可得知IP核FFT模块拥有1 227个Slice、17个RAM资源。将1 227个Slice资源中每连续的20个左右分为一组,共分为60组。对每一组资源中的每一个Slice都在数量为10处进行逻辑修改。将17个RAM资源划为17组,对每一个RAM分别进行数量统一为10处的数值修改。最后得到60个Slice和17个RAM的差异比特文件,并对每一个差异比特文件进行100次的反复注入。

3.1.1 实验结果

针对Slice资源的故障注入结果分为四个程度,分别如图4~图7所示。所有60组试验中只有4组结果正确,其余组都出现各种错误。

针对RAM资源的故障注入结果分为三个程度,如图4、图8和图9所示。所有试验中只有4组出现错误。

3.1.2 实验结论

(1)在Slice颗粒度约为20个一组、共60组的情况下,根据大量反复注入的试验结果,利用统计数据可得针对Slice资源故障注入后模块的故障率为:θ1=(56/60)×100%=93.3%;针对RAM资源故障注入后的故障率为:θ2=(4/7)×100%=23.5%。故在SEU效应敏感度上,Slice强于RAM。

(2)试验中每组故障注入的数量一致,但注入的位置各不相同。通过每组最后的结果对比可知,不同位置的故障注入将对模块产生不同程度的影响。

(3)在77组故障注入试验中,结果是逻辑修改引起的模块故障率更高。故SEU造成逻辑上的故障对整个模块影响要明显强于数值故障造成的影响。

3.2 基于软件实现的FFT敏感性实验及分析

为了验证该编写的FFT模块功能正确,首先在MATLAB中实现FFT算法,然后将其每层蝶形交织结果与VHDL程序的每一层蝶形交织结果进行对比。对比输出结果如图10所示,左侧为MATLAB仿真结果,右侧为VHDL程序运行结果。

由对比可知,VHDL程序运行结果与MATLAB仿真吻合,证明该程序具备正确的FFT功能,可作为本次实验的模块。通过FPGA_Editor可知,生成的FFT模块拥有2 265个Slice、2个RAM资源。

与前述实验类似,将该FFT中的2 265个Slice资源每连续的10个左右分为一组,共分为240组,对每个Slice进行数量为10处的故障注入;将2个RAM资源划为2组,对每个RAM进行数量10处的数值修改。最后生成240个Slice和2个RAM差异比特文件,并对每个文件进行100次的反复注入。

3.2.1 实验结果

针对Slice资源试验,所有试验中有32组结果正确,其余出现明显错误,如图11所示。针对RAM资源的试验结果2组都正确,如图12所示。

3.2.2 实验结论

(1)本次实验在前述实验的基础上将Slice测试颗粒度提高1倍,试验组数提高4倍。由大量反复注入的试验结果,利用统计数据可得针对Slice注入模块故障率为:θ1=(208/240)×100%=86.7%;针对RAM资源故障注入后的FFT模块故障率为:θ2=(0/2)×100%=0%。所以有θ12,故在SEU效应敏感度上,Slice强于RAM。

(2)每组故障注入的数量相同,但位置不同。结果发现不同位置的注入对模块产生不同程度的影响。

(3)该次实验依然是针对Slice资源进行逻辑修改,针对RAM资源进行数值修改。从结果来看,依然是逻辑的错误对整个模块的影响强于数值错误。

4 结论

本文重点分析芯片内部不同硬件资源对于SEU效应敏感性的问题。以SRAM型FPGA为研究对象,设计进行了两种颗粒度不同的故障注入实验。结果表明,在FPGA内部资源中,Slice资源对于SEU效应的敏感性很强,RAM相对较弱。SEU效应引起的逻辑错误比数值错误更能诱发系统的功能紊乱。所以,可针对FPGA中占用Slice资源较多的模块进行防护,重点针对逻辑错误进行防护。

参考文献

[1] 裴志强,周刚.FPGA的空间容错技术研究[J].微处理机,2011,32(6):18-20.

[2] 冯彦君,华更新,杨桦,等.国外星载容错计算机技术及最新进展(综述)[C].全国第十二届空间及运动体控制技术学术会议论文集,2006.

[3] 徐斌,王贞松,陈冰冰,等.适用于空间环境下的FPGA容错与重构体系[J].计算机工程,2007,33(3):231-233.

[4] GAO Z,REVIRIEGO P,PAN W,et al.Efficient arithmetic residue-based SEU tolerant FIR filter design[J].Circuits & Systems II Express Briefs IEEE Transactions on,2013,60(8):497-501.

[5] REVIRIEGO P,BLEAKLEY C J,MAESTRO J A.A novel concurrent error detection technique for the fast Fourier transform[C].Signals and Systems Conference(ISSC 2012),IET Irish.IET,2012:1-5.

[6] 邢克飞.星载信号处理平台单粒子效应检测与加固技术研究[D].长沙:国防科学技术大学,2007.

[7] REVIRIEGO P,MAESTRO J A,O′DONNELL A,et al.Soft error detection and correction for FFT based convolution using different block lengths[C].11th IEEE International OnLine Testing Symposium.IEEE,2009:138-143.

[8] 宋凝芳,朱明达,潘雄.SRAM型FPGA单粒子效应试验研究[J].宇航学报,2012,33(6):836-842.

[9] 邢克飞,杨俊,王跃科.Xilinx SRAM型FPGA抗辐射设计技术研究[J].宇航学报,2007,2(1):123-129.

[10] REVIRIEGO P,BLEAKLEY C J,MAESTRO J A.Signal shaping dual modular redundancy for soft error tolerant finite impulse response filters[J].Electronics Letters,2011,47(23):1272-1273.

[11] YANG W,WANG L,ZHOU X.CRC circuit design for SRAM-based FPGA configuration bit correction[C].Solid-State and Integrated Circuit Technology(ICSICT),2010 10th IEEE International Conference on.IEEE,2010:1660-1664.

相关推荐

Linux 系统启动完整流程

一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...

超专业解析!10分钟带你搞懂Linux中直接I/O原理

我们先看一张图:这张图大体上描述了Linux系统上,应用程序对磁盘上的文件进行读写时,从上到下经历了哪些事情。这篇文章就以这张图为基础,介绍Linux在I/O上做了哪些事情。文件系统什么是...

linux入门系列12--磁盘管理之分区、格式化与挂载

前面系列文章讲解了VI编辑器、常用命令、防火墙及网络服务管理,本篇将讲解磁盘管理相关知识。本文将会介绍大量的Linux命令,其中有一部分在“linux入门系列5--新手必会的linux命令”一文中已经...

Linux环境下如何设置多个交叉编译工具链?

常见的Linux操作系统都可以通过包管理器安装交叉编译工具链,比如Ubuntu环境下使用如下命令安装gcc交叉编译器:sudoapt-getinstallgcc-arm-linux-gnueab...

可算是有文章,把Linux零拷贝技术讲透彻了

阅读本文大概需要6.0分钟。作者:卡巴拉的树链接:https://dwz.cn/BaQWWtmh本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景。为了迅速建立起零拷贝的概念...

linux软链接的创建、删除和更新

大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作。同样的,在系统级别也有。在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能...

Linux 中最容易被黑客动手脚的关键目录

在Linux系统中,黑客攻击后常会针对关键目录和文件进行修改以实现持久化、提权或隐藏恶意活动。本文介绍下黑客最常修改的目录及其手法。一、/etc目录关键文件有:/etc/passwd和/et...

linux之间传文件命令之Rsync傻瓜式教程

1.前言linux之间传文件命令用什么命令?本文介绍一种最常用,也是功能强大的文件同步和传输工具Rsync,本文提供详细傻瓜式教程。在本教程中,我们将通过实际使用案例和最常见的rsync选项的详细说...

Linux下删除目录符号链接的方法

技术背景在Linux系统中,符号链接(symlink)是一种特殊的文件,它指向另一个文件或目录。有时候,我们可能需要删除符号链接,但保留其指向的目标目录。然而,在删除符号链接时可能会遇到一些问题,例如...

阿里云国际站注册教程:aa云服务器怎么远程链接?

在全球化的今天,互联网带给我们无以计数的便利,而云服务器则是其中的重要基础设施之一。这篇文章将围绕阿里云国际站注册、aa云服务器如何远程链接,以及服务器安全防护如Ddos防火墙、网站应用防护waf防火...

Linux 5.16 网络子系统大范围升级 多个新适配器驱动加入

Linux在数据中心中占主导地位,因此每个内核升级周期的网络子系统变化仍然相当活跃。Linux5.16也不例外,周一最新与网络相关的更新加入了大量的驱动和新规范的支持。一个较新硬件的驱动是Realt...

搭建局域网文件共享服务(Samba),手机电脑都能看喜欢的影视剧

作为一名影视爱好者,为了方便地观看自己喜欢的影视作品,在家里搞一个专门用来存放电影的服务器是有必要的。蚁哥选则用一台Ubuntu系统的电脑做为服务器,共享影音文件,其他同一个局域网内的电脑或手机可以...

分享一个实用脚本—centos7系统巡检

概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本#!/bi...

Linux 中创建符号链接的方法

技术背景在Linux系统里,符号链接(SymbolicLink),也被叫做软链接(SoftLink),是一种特殊的文件,它指向另一个文件或者目录。符号链接为文件和目录的管理带来了极大的便利,比...

一文掌握 Linux 符号链接

符号链接(SymbolicLink),通常被称为“软链接”,是Linux文件系统中一种强大而灵活的工具。它允许用户创建指向文件或目录的“快捷方式”,不仅简化了文件管理,还在系统配置、软件开发和日...