基于冗余互连资源的fpga单粒子翻转软错误检测方法

文档序号:8380833阅读:305来源:国知局
基于冗余互连资源的fpga单粒子翻转软错误检测方法【
技术领域
】[0001]本发明涉及FPGA软错误防护与检测领域,特别是涉及一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法。【
背景技术
】[0002]目前大部分的FPGA器件都采用SRAM,即静态随机存储器(StaicRandomAccessMemory,SRAM)作为配置信息的存储单元。虽然SRAM型FPGA器件具有开发周期短、成本低、高性能、低功耗以及可重配置等优点,但是SRAM型FPGA器件内部存在的大量SRAM可配置单元极易受到高能粒子影响发生单粒子翻转(SingleEventUpset,SEU)软错误,使得其结构与功能发生变化而产生功能失效。随着器件集成度的不断提高,FPGA器件应用范围不断扩大,单粒子翻转软错误引起的可靠性问题已经成为影响FPGA器件进一步发展的重要因素。[0003]在过去的研宄中已经对FPGA单粒子翻转软错误防护技术有了广泛研宄,这类研宄主要分为错误检测技术与纠正技术。软错误纠正技术能够在系统工作的同时将软错误对电路的影响消除,保证电路的正常工作。但是软错误纠正技术往往不能准确定位软错误的发生地,一旦软错误在FPGA器件中产生积累,只能将整个FPGA器件进行重配置才能使电路恢复正常。错误检测技术主要作用是将那些发生软错误的SRAM单元快速检测出来,并通过检测出来的错误信息准确地定位软错误的发生点,之后再配合其它的错误纠正技术,如刷新技术,动态重配置等对整体电路或者部分电路进行重配置来纠正软错误对电路的影响。[0004]双备份比较技术(DWC)是一种十分简单常用的错误检测技术。DWC技术将原电路转化为两份完全相同的复制电路,并通过比较这两份复制电路的输出来检测电路中是否有软错误发生。DWC技术是一种能够实现在线实时检测的错误检测技术,它不需要停止系统工作来对电路进行检测,一旦电路中发生软错误,DWC技术中的比较器就会即时地输出错误信息。通过对错误信息的解读,即可准确定位软错误的发生位置,并可以在保证其他电路正常工作的情况下,仅针对故障电路进行重配置从而使电路恢复正常。[0005]DWC技术本质是一种基于硬件冗余的检测技术,需要为电路提供时序元件,组合逻辑、布线资源以及I/O端口等多种硬件资源的全面冗余,但是全面冗余的策略会导致DWC技术在面积、时序、功耗以及I/O端口等方面有大量的开销。同时FPGA内部资源占用率往往有较大差别,这种资源占用的不均衡现象在实际设计中十分常见,往往因为某些资源的限制,导致其不能实现完整的双备份比较技术。【
发明内容】[0006]为克服上述现有技术存在的不足,本发明之目的在于提供一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,其通过充分利用设计中互连资源存在较多冗余这一现象,开发了高效的冗余互连资源搜索算法,并借助对FPGA结构的简单修改,实现了对单粒子翻转软错误的高效在线检测。[0007]为达上述及其它目的,本发明提出一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,包括如下步骤:[0008]步骤一,建立FPGA内部互连资源中的连接关系;[0009]步骤二,不使用逻辑单元,直接在FPGA器件中插入比较电路;[0010]步骤三,为已有的互联资源寻找复制线路[0011]步骤四,将复制线路与比较电路结合完成对FPGA的基于冗余互连资源的双备份比较,实现错误检测。[0012]进一步地,对互联资源寻找复制线路为不修改原设计的布局,直接在冗余互连资源的基础上完成对互连资源的复制。[0013]进一步地,步骤三进一步包括:[0014]将器件中的互连资源分为实际设计中已使用的互连资源与未使用的冗余互连资源;[0015]将已使用的互连资源拆分为多个互连线,以互连线为单位寻找复制线路;[0016]将实际电路图转化为有向图;[0017]在有向图中完成对复制线路的搜索。[0018]进一步地,所述将实际电路转化为有向图的转化方法为:[0019]为每个互连资源与其可连接的互连资源建立连接关系;[0020]将互连资源转化为有向图的顶点,互连资源之间的连接关系转化为有向图中的边。[0021]进一步地,所述在有向图中完成复制线路的搜索的搜索方法为:[0022]将互连线路重要性排序;[0023]按顺序对每一个互连线路搜索复制线路;[0024]对每根互连线,从冗余互连资源中搜索另一条从source端到sink端的路径;[0025]对每个互连线搜索完成后需要对互连资源中的使用情况进行重新分类。[0026]进一步地,对互连线路按涉及到的敏感比特位数进行排序。[0027]进一步地,对每根互连线,使用广度遍历算法,从冗余互连资源中搜索另一条从source端到sink端的路径。[0028]进一步地,在步骤二中,直接在FPGA器件中插入由异或门组成的比较电路。[0029]进一步地,步骤二中,在頂UX与逻辑模块接口处插入比较电路。[0030]进一步地,所述有向图为无权有向图。[0031]与现有技术相比,本发明一种基于冗余互联资源的FPGA单粒子翻转软错误检测方法充分利用了设计中互连资源存在较多冗余这一现象,开发了高效的冗余互连资源搜索算法,并借助对FPGA结构的简单修改,实现了对单粒子翻转软错误的高效在线检测。【附图说明】[0032]图1为本发明所面向的Virtex系列FPGA内部结构;[0033]图2为本发明一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法的步骤流程图;[0034]图3为本发明将net分解成line的示意图;[0035]图4为本发明将实际电路转化为有向图的示意图;[0036]图5为本发明一具体实施例的流程图。【具体实施方式】[0037]以下通过特定的具体实例并结合【附图说明】本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。[0038]本发明所面向的FPGA器件为Xilinx公司Virtex系列FPGA器件,其具体结构图如图1所示。Virtex器件采用的是岛式结构,主要由可配置逻辑模块阵列CLB构成,CLB周围被IO模块IOB所包围。每个CLB都由逻辑块(Logicblock,LB)、输入输出多路选择器(10MUX)以及开关矩阵(SwitchMatrix,SM)组成。其中一个LB中有两个Slice,每个Slice中包括两个4输入的查找表LUT(Look-uptable)、两个FFs(Flip-flops)以及若干MUX结构与逻辑门。所有的LB被互连资源所包围,互连资源主要组成成分有IOMUX和SwitchMatrix以及互连线段(Linesegment)。对Virtex系列的CLB中不同配置资源具体占比情况及其软错误发生比例进行分析,发现90%以上的软错误都发生在FPGA的互连资源,在对FPGA的实际设计进一步分析发现电路中的冗余互连资源大量存在,而冗余的逻辑资源较少。虽然FPGA中心区域的布线往往会因为设计的需要而被充分使用,但周围的互连资源往往会大量闲置,这对于利用互连资源的冗余改进双备份比较技术,从而实现软错误的检测是非常有利的。[0039]图2为本发明一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法的步骤流程图。如图2所示,本发明一种基于冗余互连资源的FPGA单粒子翻转软错误检测方法,包括如下步骤:[0040]步骤201,建立FPGA内部互连资源中的连接关系。[0041]在FPGA设计中互连资源是用于连接FPGA器件中的逻辑模块。所有的互连资源是由多个net(线网)构成,每个net是由多个互连资源即pip(ProgrammableIntercon-nectPoints)组成,代表的是一个逻辑单元产生的输出信号到另一个逻辑单元或者IOB端口的所有路径。我们可以将net中从输出端口引出的第一根互连线段的驱动端称为source端口;将net中接入到输入端口的最后一根互连线段的被驱动端口称为sink端口。因此步骤203中为互连资源寻找复制线路的实质就是在FPGA器件中为设计中的每个net寻找其复制线网即replicanet,replicanet是由器件中未被使用的可配置互连资源中的一些特定pip组成。replicanet的source端、sink端和原net的source端、sink端完全一至夂。由于一个net中包含一个source以及若干个sink,net会产生分支结构这种多分支结构给我们为每个net同时寻找复制线网带来很大的困难,因此我们将net拆分为多个line,每个line由一个source端口,一个sink端口以及若干个pip组成,其具体拆分方式如图3所示。图中一个net拆分为3个line每个line由一个source端口,一个sink端口以及若干个pip构成,无分支结构。其中lineA包括source端口,sinkl端口以及pl、p4、p7、p8共4个。丨。;1:[11613包括80111^6端口,8;[111^2端口以及。3、。6、。9、。11共4个。丨。;1;[1160包括source端口,sink3端口以及p2、p5、p10、p12、p13共5个pip0[0042]步骤202,不使用逻辑单元,直接在FPGA器件中插入比较电路。[0043]传统的完整双备份比较技术是利用LUT或当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1