CN104699571A - 基于冗余互连资源的fpga单粒子翻转软错误检测方法 - Google Patents
基于冗余互连资源的fpga单粒子翻转软错误检测方法 Download PDFInfo
- Publication number
- CN104699571A CN104699571A CN201510128267.3A CN201510128267A CN104699571A CN 104699571 A CN104699571 A CN 104699571A CN 201510128267 A CN201510128267 A CN 201510128267A CN 104699571 A CN104699571 A CN 104699571A
- Authority
- CN
- China
- Prior art keywords
- resource
- fpga
- soft error
- circuit
- error detection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,包括如下步骤:步骤一,建立FPGA内部互连资源中的连接关系;步骤二,不使用逻辑单元,直接在FPGA器件中插入比较电路;步骤三,为已有的互联资源寻找复制线路;步骤四,将复制线路与比较电路结合完成对FPGA的基于冗余互连资源的双备份比较,实现错误检测,本发明通过充分利用设计中互连资源存在较多冗余这一现象,开发了高效的冗余互连资源搜索算法,并借助对FPGA结构的简单修改,实现了对单粒子翻转软错误的高效在线检测。
Description
技术领域
本发明涉及FPGA软错误防护与检测领域,特别是涉及一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法。
背景技术
目前大部分的FPGA器件都采用SRAM,即静态随机存储器(Staic RandomAccess Memory,SRAM)作为配置信息的存储单元。虽然SRAM型FPGA器件具有开发周期短、成本低、高性能、低功耗以及可重配置等优点,但是SRAM型FPGA器件内部存在的大量SRAM可配置单元极易受到高能粒子影响发生单粒子翻转(Single Event Upset,SEU)软错误,使得其结构与功能发生变化而产生功能失效。随着器件集成度的不断提高,FPGA器件应用范围不断扩大,单粒子翻转软错误引起的可靠性问题已经成为影响FPGA器件进一步发展的重要因素。
在过去的研究中已经对FPGA单粒子翻转软错误防护技术有了广泛研究,这类研究主要分为错误检测技术与纠正技术。软错误纠正技术能够在系统工作的同时将软错误对电路的影响消除,保证电路的正常工作。但是软错误纠正技术往往不能准确定位软错误的发生地,一旦软错误在FPGA器件中产生积累,只能将整个FPGA器件进行重配置才能使电路恢复正常。错误检测技术主要作用是将那些发生软错误的SRAM单元快速检测出来,并通过检测出来的错误信息准确地定位软错误的发生点,之后再配合其它的错误纠正技术,如刷新技术,动态重配置等对整体电路或者部分电路进行重配置来纠正软错误对电路的影响。
双备份比较技术(DWC)是一种十分简单常用的错误检测技术。DWC技术将原电路转化为两份完全相同的复制电路,并通过比较这两份复制电路的输出来检测电路中是否有软错误发生。DWC技术是一种能够实现在线实时检测的错误检测技术,它不需要停止系统工作来对电路进行检测,一旦电路中发生软错误,DWC技术中的比较器就会即时地输出错误信息。通过对错误信息的解读,即可准确定位软错误的发生位置,并可以在保证其他电路正常工作的情况下,仅针对故障电路进行重配置从而使电路恢复正常。
DWC技术本质是一种基于硬件冗余的检测技术,需要为电路提供时序元件,组合逻辑、布线资源以及I/O端口等多种硬件资源的全面冗余,但是全面冗余的策略会导致DWC技术在面积、时序、功耗以及I/O端口等方面有大量的开销。同时FPGA内部资源占用率往往有较大差别,这种资源占用的不均衡现象在实际设计中十分常见,往往因为某些资源的限制,导致其不能实现完整的双备份比较技术。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,其通过充分利用设计中互连资源存在较多冗余这一现象,开发了高效的冗余互连资源搜索算法,并借助对FPGA结构的简单修改,实现了对单粒子翻转软错误的高效在线检测。
为达上述及其它目的,本发明提出一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,包括如下步骤:
步骤一,建立FPGA内部互连资源中的连接关系;
步骤二,不使用逻辑单元,直接在FPGA器件中插入比较电路;
步骤三,为已有的互联资源寻找复制线路
步骤四,将复制线路与比较电路结合完成对FPGA的基于冗余互连资源的双备份比较,实现错误检测。
进一步地,对互联资源寻找复制线路为不修改原设计的布局,直接在冗余互连资源的基础上完成对互连资源的复制。
进一步地,步骤三进一步包括:
将器件中的互连资源分为实际设计中已使用的互连资源与未使用的冗余互连资源;
将已使用的互连资源拆分为多个互连线,以互连线为单位寻找复制线路;
将实际电路图转化为有向图;
在有向图中完成对复制线路的搜索。
进一步地,所述将实际电路转化为有向图的转化方法为:
为每个互连资源与其可连接的互连资源建立连接关系;
将互连资源转化为有向图的顶点,互连资源之间的连接关系转化为有向图中的边。
进一步地,所述在有向图中完成复制线路的搜索的搜索方法为:
将互连线路重要性排序;
按顺序对每一个互连线路搜索复制线路;
对每根互连线,从冗余互连资源中搜索另一条从source端到sink端的路径;
对每个互连线搜索完成后需要对互连资源中的使用情况进行重新分类。
进一步地,对互连线路按涉及到的敏感比特位数进行排序。
进一步地,对每根互连线,使用广度遍历算法,从冗余互连资源中搜索另一条从source端到sink端的路径。
进一步地,在步骤二中,直接在FPGA器件中插入由异或门组成的比较电路。
进一步地,步骤二中,在IMUX与逻辑模块接口处插入比较电路。
进一步地,所述有向图为无权有向图。
与现有技术相比,本发明一种基于冗余互联资源的FPGA单粒子翻转软错误检测方法充分利用了设计中互连资源存在较多冗余这一现象,开发了高效的冗余互连资源搜索算法,并借助对FPGA结构的简单修改,实现了对单粒子翻转软错误的高效在线检测。
附图说明
图1为本发明所面向的Virtex系列FPGA内部结构;
图2为本发明一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法的步骤流程图;
图3为本发明将net分解成line的示意图;
图4为本发明将实际电路转化为有向图的示意图;
图5为本发明一具体实施例的流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
本发明所面向的FPGA器件为Xilinx公司Virtex系列FPGA器件,其具体结构图如图1所示。Virtex器件采用的是岛式结构,主要由可配置逻辑模块阵列CLB构成,CLB周围被IO模块IOB所包围。每个CLB都由逻辑块(Logic block,LB)、输入输出多路选择器(IO MUX)以及开关矩阵(Switch Matrix,SM)组成。其中一个LB中有两个Slice,每个Slice中包括两个4输入的查找表LUT(Look-up table)、两个FFs(Flip-flops)以及若干MUX结构与逻辑门。所有的LB被互连资源所包围,互连资源主要组成成分有IO MUX和Switch Matrix以及互连线段(Line segment)。对Virtex系列的CLB中不同配置资源具体占比情况及其软错误发生比例进行分析,发现90%以上的软错误都发生在FPGA的互连资源,在对FPGA的实际设计进一步分析发现电路中的冗余互连资源大量存在,而冗余的逻辑资源较少。虽然FPGA中心区域的布线往往会因为设计的需要而被充分使用,但周围的互连资源往往会大量闲置,这对于利用互连资源的冗余改进双备份比较技术,从而实现软错误的检测是非常有利的。
图2为本发明一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法的步骤流程图。如图2所示,本发明一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,包括如下步骤:
步骤201,建立FPGA内部互连资源中的连接关系。
在FPGA设计中互连资源是用于连接FPGA器件中的逻辑模块。所有的互连资源是由多个net(线网)构成,每个net是由多个互连资源即pip(ProgrammableIntercon-nect Points)组成,代表的是一个逻辑单元产生的输出信号到另一个逻辑单元或者IOB端口的所有路径。我们可以将net中从输出端口引出的第一根互连线段的驱动端称为source端口;将net中接入到输入端口的最后一根互连线段的被驱动端口称为sink端口。因此步骤203中为互连资源寻找复制线路的实质就是在FPGA器件中为设计中的每个net寻找其复制线网即replica net,replicanet是由器件中未被使用的可配置互连资源中的一些特定pip组成。replica net的source端、sink端和原net的source端、sink端完全一致。由于一个net中包含一个source以及若干个sink,net会产生分支结构这种多分支结构给我们为每个net同时寻找复制线网带来很大的困难,因此我们将net拆分为多个line,每个line由一个source端口,一个sink端口以及若干个pip组成,其具体拆分方式如图3所示。图中一个net拆分为3个line每个line由一个source端口,一个sink端口以及若干个pip构成,无分支结构。其中line A包括source端口,sink1端口以及p1、p4、p7、p8共4个pip;line B包括source端口,sink2端口以及p3、p6、p9、p11共4个pip;line C包括source端口,sink3端口以及p2、p5、p10、p12、p13共5个pip。
步骤202,不使用逻辑单元,直接在FPGA器件中插入比较电路。
传统的完整双备份比较技术是利用LUT或者改造三态缓冲器来插入比较电路。这种方法不仅会消耗更多的逻辑单元与布线资源使其更难实现完整的双备份比较技术之外,还会引入部分无法进行检测的配置比特位。本发明对FPGA结构做出简单的修改,在IMUX与LB的接口处插入由异或门组成的比较电路。这种比较电路不会引入额外的配置位,并且能够更加迅速的对单粒子翻转软错误做出检测。
步骤203,为已有的互联资源寻找复制线路。
对互联资源寻找复制线路就是不修改原设计的布局,直接在冗余互连资源的基础上完成对互连资源的复制,其进一步包括如下过程:
(1)将器件中的互连资源分为实际设计中已使用的互连资源与未使用的冗余互连资源。
(2)将已使用的互连资源拆分为多个互连线,以互连线为单位寻找复制线路。
(3)将实际电路图转化为有向图。转化方法包括:
为每个互连资源与其可连接的互连资源建立连接关系;
将互连资源转化为有向图的顶点,互连资源之间的连接关系转化为有向图中的边;
(4)在有向图中完成对复制线路的搜索。搜索方法具体如下:
将互连线路重要性排序;
按顺序对每一个互联线路搜索复制线路;
对每根互连线,使用广度遍历算法,从冗余互连资源中搜索,另一条从source端到sink端的路径;
对每个互连线搜索完成后需要对互连资源中的使用情况进行重新分类。
具体地说,在对每一个line进行搜索复制线路的过程中,首先对FPGA中的未被使用的pip进行标定;然后建立FPGA中所有pip的连接关系从而得到每个pip可能连接到的所有pip;通过对pip之间连接关系的分析,将FPGA中的实际电路资源转化为一个无权有向图,pip、source、sink为有向图的顶点,不同的pip之间的连接关系为有向图的弧,实际电路转化为有向图具体过程如图4所示,其中实线为已被占用的互连资源,虚线为未被占用的互连资源。
通过上述步骤,将为每个line寻找复制线路的问题转化为一个以source为起点,sink为终点在未使用的互连资源中寻找一条最短路径问题,然后使用广度遍历算法为每个line搜索复制线路。一旦为一个line搜索到复制线路后,即对复制线路中占用的互连资源视为已经使用,并对FPGA中的互连资源进行重新标定。之后,针对另一个line在未被占用的互连资源中为其搜索复制线路,重复以上步骤,直至对所有line的搜索结束。
步骤204,将复制线路与比较电路结合完成对FPGA的基于冗余互连资源的双备份比较,实现错误检测。
图5为本发明一具体实施例的流程图。以下将通过一具体实施例来说明本发明提出的基于冗余互连资源的双备份比较技术的具体实现过程:
在步骤S1中,首先建立FPGA内部互连资源中的连接关系,即对每一个pip找出其可连接的所有其他pip,接着执行步骤S2。
在步骤S2中,对FPGA结构稍作修改,在IMUX与LB的接口处插入由异或门组成的比较电路,接着执行步骤S3。
在步骤S3中,读入需要实现基于冗余互联资源的双比较技术的具体电路设计,并将实际电路转化为有向图,并进行步骤S4。
在步骤S4中,在有向图中对未使用的互连资源进行标定,未使用的互连资源是之后复制线路的搜索域。
在步骤S5中,得到电路中的所有已使用的互连资源net,并将每个net转化为多个line,line是复制线路每次搜索的目标,之后执行步骤S6。
在步骤S6中,对line按涉及到的敏感比特位数进行排序,之后先对涉及较多敏感比特位的line进行搜索,并进行步骤S7。
在步骤S7中,取出一个未被搜索过的line,并找到其source端口,从source端开始进行搜索,之后进入步骤S8。
在步骤S8中,从source端口开始进行广度遍历搜索,并对每一次搜索结果标记为已搜索防止被重复搜索,之后进行步骤S9。
在步骤S9中,判断在一定次数广度遍历后是否能够遍历到该line的sink端口,如果遍历到了则进入步骤S10,若没有则进入步骤S11。
在步骤S10中,此时对单个line的复制线路搜索已经完成,由于需要继续对其他复制线路进行搜索,因此应该重新标定未使用互连资源,复制线路占用的互连资源应该标定位已使用,之后进入步骤S11。
在步骤S11中,判断当前line是否为设计中的最后一个未搜索的line,如果是则进入步骤S12,如果不是则回到步骤S7去另一个line进行搜索。
在步骤S12中,将复制线路与比较电路结合到一起完成对当前设计的基于冗余互连资源的双备份比较技术的实现。
一般经常使用软错误率(SER,Soft Error Rate)来衡量软错误对电路造成的影响。目前有多种指标来表征软错误率,其中最常用的为FIT(Failures in Time),FIT代表的是规定时间内系统发生软错误的次数,1FIT表示电路在每109小时将会出现1次软错误。在实际FPGA设计中总设计的FIT数与设计中的敏感比特数成正比,对FPGA电路设计软错误的防护效果只需要评估电路中敏感比特数量及其变化即可。当本发明为一条line找到其复制线路后,这些可以被覆盖的line以及复制线路上所有敏感比特位上发生的SEU软错误都可以被检测出来并获得修复。因此,这个软错误检测覆盖率代表了敏感比特位数的减少,从而表征了软错误的防护能力。下表1是使用MCNC benchmark测试用例实现本发明后能够减少的敏感比特位数目,即基于敏感比特位的检测覆盖率结果。实验结果表明,本发明提出的基于冗余互连资源的双备份比较技术能够在较低的面积与时序开销下对不同的设计达到较好的软错误检测效果。结合已有的软错误纠正手段,可以有效地降低FPGA器件因软错误而发生失效的概率。
表1
可见,本发明一种基于冗余互联资源的FPGA单粒子翻转软错误检测方法充分利用了设计中互连资源存在较多冗余这一现象,开发了高效的冗余互连资源搜索算法,并借助对FPGA结构的简单修改,实现了对单粒子翻转软错误的高效在线检测。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (10)
1.一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,包括如下步骤:
步骤一,建立FPGA内部互连资源中的连接关系;
步骤二,不使用逻辑单元,直接在FPGA器件中插入比较电路;
步骤三,为已有的互联资源寻找复制线路;
步骤四,将复制线路与比较电路结合完成对FPGA的基于冗余互连资源的双备份比较,实现错误检测。
2.如权利要求1所述的一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,其特征在于:对互联资源寻找复制线路为不修改原设计的布局,直接在冗余互连资源的基础上完成对互连资源的复制。
3.如权利要求2所述的一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,其特征在于,步骤三进一步包括:
将器件中的互连资源分为实际设计中已使用的互连资源与未使用的冗余互连资源;
将已使用的互连资源拆分为多个互连线,以互连线为单位寻找复制线路;
将实际电路图转化为有向图;
在有向图中完成对复制线路的搜索。
4.如权利要求3所述的一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,其特征在于,所述将实际电路转化为有向图的转化方法为:
为每个互连资源与其可连接的互连资源建立连接关系;
将互连资源转化为有向图的顶点,互连资源之间的连接关系转化为有向图中的边。
5.如权利要求3所述的一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,其特征在于,所述在有向图中完成复制线路的搜索的搜索方法为:
将互连线路重要性排序;
按顺序对每一个互连线路搜索复制线路;
对每根互连线,从冗余互连资源中搜索另一条从source端到sink端的路径;
对每个互连线搜索完成后需要对互连资源中的使用情况进行重新分类。
6.如权利要求5所述的一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,其特征在于:对互连线路按涉及到的敏感比特位数进行排序。
7.如权利要求5所述的一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,其特征在于:对每根互连线,使用广度遍历算法,从冗余互连资源中搜索另一条从source端到sink端的路径。
8.如权利要求1所述的一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,其特征在于:在步骤二中,直接在FPGA器件中插入由异或门组成的比较电路。
9.如权利要求1所述的一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,其特征在于:步骤二中,在IMUX与逻辑模块接口处插入该比较电路。
10.如权利要求3所述的一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,其特征在于:所述有向图为无权有向图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510128267.3A CN104699571B (zh) | 2015-03-23 | 2015-03-23 | 基于冗余互连资源的fpga单粒子翻转软错误检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510128267.3A CN104699571B (zh) | 2015-03-23 | 2015-03-23 | 基于冗余互连资源的fpga单粒子翻转软错误检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104699571A true CN104699571A (zh) | 2015-06-10 |
CN104699571B CN104699571B (zh) | 2017-11-14 |
Family
ID=53346731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510128267.3A Active CN104699571B (zh) | 2015-03-23 | 2015-03-23 | 基于冗余互连资源的fpga单粒子翻转软错误检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104699571B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808367A (zh) * | 2016-03-04 | 2016-07-27 | 上海交通大学 | 一种现场可编程门阵列软错误容错方法及结构 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6204687B1 (en) * | 1999-08-13 | 2001-03-20 | Xilinx, Inc. | Method and structure for configuring FPGAS |
CN102054110A (zh) * | 2011-01-27 | 2011-05-11 | 复旦大学 | Fpga可编程逻辑块通用装箱方法 |
CN103440363A (zh) * | 2013-07-31 | 2013-12-11 | 浙江大学 | 一种fpga布局布线后仿真中异常信号溯源方法 |
-
2015
- 2015-03-23 CN CN201510128267.3A patent/CN104699571B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6204687B1 (en) * | 1999-08-13 | 2001-03-20 | Xilinx, Inc. | Method and structure for configuring FPGAS |
CN102054110A (zh) * | 2011-01-27 | 2011-05-11 | 复旦大学 | Fpga可编程逻辑块通用装箱方法 |
CN103440363A (zh) * | 2013-07-31 | 2013-12-11 | 浙江大学 | 一种fpga布局布线后仿真中异常信号溯源方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808367A (zh) * | 2016-03-04 | 2016-07-27 | 上海交通大学 | 一种现场可编程门阵列软错误容错方法及结构 |
Also Published As
Publication number | Publication date |
---|---|
CN104699571B (zh) | 2017-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8516339B1 (en) | Method of and circuit for correcting adjacent bit errors in a memory | |
US7523380B1 (en) | Methods and structures for providing programmable width and error correction in memory arrays in programmable logic devices | |
US9720766B2 (en) | Self-healing, fault-tolerant FPGA computation and architecture | |
Borecký et al. | Parity driven reconfigurable duplex system | |
CN104715121B (zh) | 基于三模冗余的防御硬件木马威胁的电路安全性设计方法 | |
Sterpone et al. | On the optimal reconfiguration times for TMR circuits on SRAM based FPGAs | |
CN106777719B (zh) | 双模冗余的故障检测装置的故障检测方法 | |
Khedhiri et al. | Concurrent error detection adder based on two paths output computation | |
US9575862B1 (en) | Integrated circuits with error handling capabilities | |
Borecký et al. | Enhanced duplication method with TMR-like masking abilities | |
Lahrach et al. | A novel SRAM-based FPGA architecture for defect and fault tolerance of configurable logic blocks | |
Villalta et al. | Estimating the SEU failure rate of designs implemented in FPGAs in presence of MCUs | |
US8549379B2 (en) | Classifying a criticality of a soft error and mitigating the soft error based on the criticality | |
CN104699571A (zh) | 基于冗余互连资源的fpga单粒子翻转软错误检测方法 | |
Niknahad et al. | A study on fine granular fault tolerance methodologies for FPGAs | |
Huang et al. | Fault tolerance of switch blocks and switch block arrays in FPGA | |
Coelho et al. | A soft-error resilient route computation unit for 3D networks-on-chips | |
US6732348B1 (en) | Method for locating faults in a programmable logic device | |
Niknahad et al. | QFDR-an integration of Quadded Logic for modern FPGAs to tolerate high radiation effect rates | |
Lahrach et al. | Master-slave TMR inspired technique for fault tolerance of SRAM-based FPGA | |
Farazmand et al. | Online multiple fault detection in reversible circuits | |
Lala et al. | Self-checking logic design for FPGA implementation | |
Huang et al. | Exploiting free lut entries to mitigate soft errors in sram-based fpgas | |
Killian et al. | Hybrid fault detection for adaptive noc | |
Borecký et al. | Parity Waterfall Method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |