CN107894898A - Sram型fpga片上刷新和纠错的装置、实现方法及fpga芯片 - Google Patents
Sram型fpga片上刷新和纠错的装置、实现方法及fpga芯片 Download PDFInfo
- Publication number
- CN107894898A CN107894898A CN201711219884.XA CN201711219884A CN107894898A CN 107894898 A CN107894898 A CN 107894898A CN 201711219884 A CN201711219884 A CN 201711219884A CN 107894898 A CN107894898 A CN 107894898A
- Authority
- CN
- China
- Prior art keywords
- cram
- error correction
- redundancy
- circuit
- piece
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Dram (AREA)
Abstract
本发明公开了一种SRAM型FPGA片上刷新和纠错的装置、实现方法及FPGA芯片,其中装置包括:CRAM,用于存储有效的配置码流信息;冗余CRAM,用于存储校验位信息;读写控制电路,分别与CRAM、冗余CRAM相连接,用于对CRAM和冗余CRAM的地址进行译码;专用配置回读IO;片上刷新纠错电路,对发生单粒子翻转的数据实现定位、纠错以及进行ECC编码后重新写入正确数据;以及选择器,一端与读写控制电路相连接,另一端分别与专用配置回读IO、片上刷新纠错电路选择性连接,根据需要实现的操作模式为片上刷新纠错还是配置回读对读写控制电路的连接方式进行选择。该装置可实现片上自动刷新和纠错、提高刷新和纠错的速度,降低系统的开发难度、系统功耗和成本。
Description
技术领域
本公开属于集成电路设计及抗辐照加固设计领域,涉及一种SRAM型FPGA片上刷新和纠错的装置、实现方法及FPGA芯片。
背景技术
随着超大规模集成电路技术的发展,基于静态随机存取存储器(SRAM,StaticRandom Access Memory)型的现场可编程门阵列(FPGA,Field Programmable Gate Array)依靠其优越的接口性能、丰富的逻辑和IP资源以及灵活方便的现场可编程能力,在航空航天工程中得到越来越广泛的应用,已成为关键的核心器件。
SRAM型FPGA通常包含大量的配置存储器(CRAM,Configurable Random AccessMemory),随着制造工艺的提高,这些CRAM对单粒子效应的敏感性越来越强,很容易发生单粒子翻转而导致系统的电路功能出现故障。为了提高整个电路系统的可靠性,需要快速纠正这些发生单粒子翻转(SEU,Single Event Upset)的CRAM的存储值。目前主要采用片外刷新的方法,即通过将配置芯片中存储的信息重新写入FPGA芯片中的CRAM来实现纠错。
有的研究通过总线状态机控制回读电路,将编程点中存储的信息读入回读电路中的回读寄存器,然后使用二维CRC校验电路进行校验,将发生SEU效应的编程点地址写入SEU寄存器;内部处理器根据SEU寄存器输出经细粒度刷新电路生成细粒度刷新位流,该刷新位流通过自配置接口写入FPGA芯片内部编程点;有的研究是通过联合测试工作组(JTAG,Joint Test Action Group)或SELECTMAP接口对SRAM型FPGA进行回读操作,确定FPGA型号并校验回读数据,若发生错误则从正确的数据源读取码流,从码流中截取有效部分,并通过JTAG或SELECTMAP接口将有效码流重新写入FPGA的内部配置位,从而完成配置存储器的刷新;有的研究是采用两片相同的存储器,BOOT(系统引导文件)存储了完整的配置文件,配置文件中包含了用户要实现的功能模块和FPGA实现自身刷新的刷新模块,SCRUB存储了编辑后的配置文件,FPGA加载完第一片存储器后,刷新模块启动进入刷新模式,通过周期性地读取SCRUB存储器中的配置文件,实现FPGA正常工作下的周期性刷新。
但是上述的刷新方式均是通过片外刷新的方法,需要通过FPGA器件提供的JTAG、SELECTMAP等接口实现对FPGA配置存储器的刷新来进行纠错,受限于器件接口速度的限制,严重影响了刷新纠错的速度,当粒子轰击的注量率较高时,难以实现及时的刷新纠错,仍会发生单粒子功能中断的风险。另外,现有的刷新和纠错方法需要额外开发刷新控制单路,系统开发者需要额外理解FPGA的码流协议,增加了FPGA系统级高可靠设计的复杂度。由于需要额外的器件来实现刷新控制电路,增加了系统实现的器件数量,降低了系统的集成度,增加了系统的研制成本。
发明内容
(一)要解决的技术问题
本公开提供了一种SRAM型FPGA片上刷新和纠错的装置、实现方法及FPGA芯片,以至少部分解决以上所提出的技术问题。
(二)技术方案
根据本公开的一个方面,提供了一种SRAM型FPGA片上刷新和纠错的装置,包括:CRAM,用于存储有效的配置码流信息;冗余CRAM,用于存储校验位信息;读写控制电路,分别与CRAM、冗余CRAM相连接,用于对CRAM和冗余CRAM的地址进行译码;专用配置回读IO,为FPGA的配置和回读提供的专用接口;片上刷新纠错电路,对发生单粒子翻转的数据实现定位、纠错以及进行ECC编码后重新写入正确数据;以及选择器,一端与读写控制电路相连接,另一端分别与专用配置回读IO、片上刷新纠错电路选择性连接,根据需要实现的操作模式为片上刷新纠错还是配置回读对读写控制电路的连接方式进行选择。
在本公开的一些实施例中,当采用片上刷新纠错模式时,将读写控制电路与片上刷新纠错电路连接起来;当采用配置回读模式时,将读写控制电路与专用配置回读IO连接起来。
在本公开的一些实施例中,片上刷新纠错电路包括:翻转定位电路,确定发生单粒子翻转的CRAM或冗余CRAM的位置;纠错电路,对确定的发生单粒子翻转的CRAM或冗余CRAM位置进行反转操作,实现纠错;ECC编码电路,确定纠错后的单帧CRAM存储值对应的校验值;以及帧地址生成电路,遍历生成CRAM和冗余CRAM对应的帧地址。
在本公开的一些实施例中,翻转定位电路为一ECC算法计算电路,根据单帧中的CRAM存储值计算确定校验位数值,并与冗余CRAM中存储的校验位数值进行比对,从而根据比对结果确定发生单粒子翻转的CRAM或冗余CRAM的位置;和/或纠错电路为一系列的异或组合逻辑,根据确定的发生单粒子翻转的CRAM或冗余CRAM的位置,对该位置存储的数据进行反转操作,实现纠错;和/或ECC编码电路为一ECC算法计算电路,重新计算纠错后的单帧CRAM存储值对应的校验值,并将重新得到的纠错后的数据和校验值通过选择器和读写控制电路分别写入CRAM和冗余CRAM。
在本公开的一些实施例中,SRAM型FPGA片上刷新和纠错的装置,还包括:片上刷新控制器,与读写控制电路相连接,用于控制实现片上刷新纠错和配置回读两种操作模式。
在本公开的一些实施例中,片上刷新控制器为一状态机,当片上刷新控制器用于实现片上刷新纠错操作时,会将CRAM和冗余CRAM中存储的值读出来,进行翻转定位和纠错,并重新计算纠错后的存储数据的校验值,并将纠错后的存储值和重新计算出的校验值分别写入CRAM和冗余CRAM;当片上刷新控制器用于实现普通配置回读操作时,通过专用配置回读IO将码流写入CRAM和冗余CRAM,从而实现用户所需的电路功能。
根据本公开的另一个方面,提供了一种FPGA芯片,包括本公开提到的任一种SRAM型FPGA片上刷新和纠错的装置。
根据本公开的又一个方面,提供了一种利用本公开提到的任一种SRAM型FPGA片上刷新和纠错的装置进行片上刷新和纠错的实现方法,包括:对FPGA器件进行配置过程;以及待配置过程完成后,自动启动片上刷新和纠错电路的功能,选择器将读写控制电路与片上刷新纠错电路连接起来,遍历所有帧的CRAM数据,利用翻转定位电路确定存在错误的CRAM或冗余CRAM的位置,并对确定的存在错误的CRAM或冗余CRAM位置利用纠错电路进行反转操作,实现纠错,将纠错后的数据通过ECC编码电路重新写入该存在错误的CRAM或冗余CRAM的位置,完成片上刷新和纠错。
在本公开的一些实施例中,对FPGA器件进行配置过程包括:FPGA器件进入配置回读模式,选择器将读写控制电路与专用配置回读IO相连接;以及待配置完成后,进入用户模式,片上刷新控制器通过专用配置回读IO将码流写入CRAM和冗余CRAM,使FPGA器件产生用户所需的电路功能。
在本公开的一些实施例中,遍历所有帧的CRAM数据,利用翻转定位电路确定存在错误的CRAM或冗余CRAM的位置,并对确定的存在错误的CRAM或冗余CRAM位置利用纠错电路进行反转操作,实现纠错,将纠错后的数据通过ECC编码电路重新写入该存在错误的CRAM或冗余CRAM的位置,包括:选定某一帧的CRAM进行判断,根据单帧中的CRAM存储值计算对应的校验位数值,并与冗余CRAM中存储的校验位数值进行比对,根据比对结果判断该帧的CRAM存储值是否正确;以及对于判断正确的数据,使帧地址增加1并读出新一帧CRAM数据并继续判断是否存在错误;对于判断错误的数据,利用翻转定位电路确定存在错误的CRAM或冗余CRAM的位置,并对确定的存在错误的CRAM或冗余CRAM位置利用纠错电路进行反转操作,实现纠错,将纠错后的数据通过ECC编码电路重新写入该存在错误的CRAM或冗余CRAM的位置;遍历所有帧的CRAM,找到所有存在错误的CRAM或冗余CRAM的位置并进行纠错,并以预定频率不断重复进行所述的遍历操作。
(三)有益效果
从上述技术方案可以看出,本公开提供的SRAM型FPGA片上刷新和纠错的装置、实现方法及FPGA芯片,具有以下有益效果:
(1)构建了片上刷新纠错电路,可在FPGA片上自动实现刷新和纠错功能,免受FPGA器件接口速度的限制,可以提高刷新和纠错的速度,并可提高FPGA电路系统抗单粒子翻转的能力,降低系统发生单粒子功能中断的风险;
(2)采用片上刷新进行纠错的方式,FPGA系统设计人员无需掌握FPGA的码流协议并开发刷新控制电路,降低了FPGA高可靠系统的开发难度;
(3)无需额外的器件来实现FPGA刷新功能,可提高系统的集成度,降低系统功耗和成本。
附图说明
图1为根据本公开实施例SRAM型FPGA片上刷新和纠错的装置示意图。
图2为根据本公开实施例FPGA配置位中的数据位和校验位的分布。
图3为根据本公开实施例SRAM型FPGA片上刷新和纠错的实现方法流程图。
图4为根据本公开实施例SRAM型FPGA片上刷新和纠错的实施过程示意图。
图5为根据本公开实施例在SRAM型FPGA片上刷新和纠错的装置上进行纠错配置的过程示意图。
【符号说明】
101,201-CRAM; 102,202-冗余CRAM;
103-读写控制电路; 104-专用配置回读IO;
105-翻转定位电路; 106-纠错电路;
107-ECC编码电路; 108-帧地址生成电路;
109-选择器; 110-片上刷新控制器;
203-有效数据位; 204-校验位;
203’-纠错后的数据; 204’-纠错后的校验值。
具体实施方式
本公开提供了一种SRAM型FPGA片上刷新和纠错的装置、实现方法及FPGA芯片,构建了片上刷新纠错电路,可在FPGA片上自动实现刷新和纠错功能,免受FPGA器件接口速度的限制,可以提高刷新和纠错的速度,并可提高FPGA电路系统抗单粒子翻转的能力,降低系统发生单粒子功能中断的风险;采用片上刷新进行纠错的方式,FPGA系统设计人员无需掌握FPGA的码流协议并开发刷新控制电路,降低了FPGA高可靠系统的开发难度;且无需额外的器件来实现FPGA刷新功能,可提高系统的集成度,降低系统功耗和成本。
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
在本公开的第一个示例性实施例中,提供了一种SRAM型FPGA片上刷新和纠错的装置。
图1为根据本公开实施例SRAM型FPGA片上刷新和纠错的装置示意图。
参照图1所示,本公开的SRAM型FPGA片上刷新和纠错的装置,包括:
CRAM(配置存储器)101,用于存储有效的配置码流信息;
冗余CRAM(配置存储器)102,用于存储校验位信息;
读写控制电路103,一端分别与CRAM 101、冗余CRAM 102相连接,用于对CRAM 101和冗余CRAM 102的地址进行译码;
专用配置回读IO104,为FPGA的配置和回读提供的专用接口;
片上刷新纠错电路,包括:翻转定位电路105,确定发生单粒子翻转的CRAM或冗余CRAM的位置;纠错电路106,对确定的发生单粒子翻转的CRAM或冗余CRAM位置进行反转操作,实现纠错;ECC编码电路107,确定纠错后的单帧CRAM存储值对应的校验值;以及帧地址生成电路108,遍历生成CRAM和冗余CRAM对应的帧地址;
选择器109,一端与读写控制电路103的另一端相连接,另一端分别与专用配置回读IO 104、片上刷新纠错电路选择性连接,根据需要实现的操作模式为片上刷新纠错还是配置回读对读写控制电路103的连接方式进行选择;以及
片上刷新控制器110,与读写控制电路103相连接,用于实现片上刷新纠错和配置回读两种操作模式。
下面结合图1,对本公开的SRAM型FPGA片上刷新和纠错的装置的各个部分进行详细介绍。
CRAM 101为FPGA中的配置存储器,通过给配置存储器写入不同的值,FPGA就可实现不同的电路功能,这里的CRAM 101包含若干个配置存储器单元,这里统称CRAM,不对其数量做限制,在实际的应用中,可根据实现电路功能的需求进行适应性设置。CRAM 101依次通过读写控制电路103和选择器109与片上刷新控制器110、专用配置回读IO 104相连接。
冗余CRAM 102为FPGA中额外的配置存储器,用于存储CRAM 101中的存储值通过ECC算法计算得到的校验位数值。冗余CRAM是版图设计时为满足对称性要求而增加的额外的配置存储器,写入冗余CRAM中的值并不影响FPGA实现的电路功能。这里的冗余CRAM 102包含若干个额外的配置存储器单元,这里统称冗余CRAM,不对其数量做限制,在实际的应用中,可根据实现电路功能的需求进行适应性设置冗余CRAM 102通过读写控制电路103和选择器109与片上刷新控制器110、专用配置回读IO 104相连接。
图2为根据本公开实施例FPGA配置位中的数据位和校验位的分布,其中,(a)为数据位,(b)为校验位。
参照图2中(a)所示,FPGA配置码流中的有效数据位203存储在CRAM 201中,而这些数据位203对应的校验位204存储在冗余CRAM 202中,参见图2中(b)所示。
读写控制电路103为一译码数据通路,用于对CRAM 101和冗余CRAM 102的地址进行译码并实现CRAM 101、冗余CRAM 102和选择器109的连接。
专用配置回读IO 104为FPGA中的专用IO(输入输出,Input-Output),为FPGA的配置和回读提供专用的接口。这些专用配置回读IO与公知的FPGA配置回读端口相同,通过选择器109与读写控制电路103相连,在此不再赘述。
片上刷新纠错电路的主要功能是对发生单粒子翻转的存储值进行定位,并对其进行纠错操作,在此过程中,需要遍历所有的CRAM 101和冗余CRAM 102对应的帧地址。
翻转定位电路105为一ECC算法计算电路,根据单帧中的CRAM 101存储值计算确定校验位数值,并与冗余CRAM 102中存储的校验位数值进行比对,本实施例中,使用诸如单比特错误纠错和两比特错误探测等ECC算法,确定发生单粒子翻转的CRAM 101或冗余CRAM102的位置。
纠错电路106为一系列的异或组合逻辑,根据翻转定位电路确定的翻转存储位,即发生单粒子翻转的CRAM 101或冗余CRAM 102的位置,对其进行反转操作,纠正翻转的CRAM101或冗余CRAM 102中的值。
ECC编码电路107为一ECC算法计算电路,重新计算纠错后的单帧CRAM 101存储值对应的校验值,并将重新得到的纠错后的数据和校验值通过选择器109和读写控制电路103分别写入CRAM 101和冗余CRAM102。
帧地址生成电路108为一计数器,遍历生成CRAM和冗余CRAM对应的帧地址。
选择器109为一公知的数字逻辑电路,用于控制FPGA中读写控制电路103的连接方式。当采用片上刷新模式时,将读写控制电路103与片上刷新纠错电路连接起来。当采用普通配置回读模式时,将读写控制电路103与专用配置回读IO 104连接起来。
片上刷新控制器110为一复杂的状态机,通过读写控制电路103对FPGA内的CRAM101和冗余CRAM102按照一定的码流协议进行读写控制,主要用于实现FPGA片上刷新纠错和普通配置回读两种操作模式。当片上刷新控制器110用于实现片上刷新纠错操作时,会将CRAM 101和冗余CRAM 102中存储的值读出来,进行翻转定位和纠错,并重新计算纠错后的存储数据的校验值,并将纠错后的存储值和重新计算出的校验值分别写入CRAM 101和冗余CRAM 102。当片上刷新控制器110用于实现普通配置回读操作时,通过专用配置回读IO 104将码流写入CRAM 101和冗余CRAM 102,从而实现用户所需的电路功能。
补充说明的是,说明书中的“普通配置回读”以及“普通配置过程”等术语是为了与片上刷新模式进行区别而加上了“普通”加以强调,与权利要求书或说明书其他地方出现的“配置回读”后“配置过程”代表相同的含义。
在本公开的第二个示例性实施例中,提供了一种FPGA芯片,该FPGA芯片的架构中至少包含有一片上刷新纠错电路,可实现片上自动的刷新纠错。
在本实施例中,该FPGA芯片包含第一个实施例所示的SRAM型FPGA片上刷新和纠错的装置。
FPGA片上刷新和纠错装置可应用于FPGA芯片的架构设计,通过添加片上刷新纠错电路实现片上自动的刷新纠错功能,可加快刷新纠错的速度,能够显著提升FPGA电路系统的抗单粒子翻转能力,使FPGA系统开发人员无需理解FPGA的码流协议即可实现高可靠的FPGA电路系统,同时还能减少系统实现的器件数量,降低系统研制成本。
在本公开的第三个示例性实施例中,提供了一种SRAM型FPGA片上刷新和纠错的实现方法。
图3为根据本公开实施例SRAM型FPGA片上刷新和纠错的实现方法流程图。图4为根据本公开实施例SRAM型FPGA片上刷新和纠错的实施过程示意图。图5为根据本公开实施例在SRAM型FPGA片上刷新和纠错的装置上进行纠错配置的过程示意图。
结合图1、图3-图5所示,本公开的SRAM型FPGA片上刷新和纠错的实现方法,包括:
步骤S302:对FPGA器件进行配置过程;
参照图1和图4所示,对FPGA器件进行配置过程包括:FPGA器件进入配置回读模式,选择器109将读写控制电路103与专用配置回读IO 104相连接,以公知的方式对FPGA器件进行配置;如果配置没有完成,则继续进行配置;待配置完成后,进入用户模式,片上刷新控制器110通过专用配置回读IO 104将码流写入CRAM 101和冗余CRAM 102,使FPGA器件产生用户所需的电路功能。
步骤S304:待配置过程完成后,自动启动片上刷新和纠错电路的功能,遍历所有帧的CRAM数据,利用翻转定位电路确定存在错误的CRAM或冗余CRAM的位置,并对确定的存在错误的CRAM或冗余CRAM位置利用纠错电路进行反转操作,实现纠错,将纠错后的数据通过ECC编码电路重新写入该存在错误的CRAM或冗余CRAM的位置,完成片上刷新和纠错;
参照图1所示,该步骤S304对应的是片上刷新模式,此时选择器109将读写控制电路103与片上刷新纠错电路连接起来,片上刷新控制器110会将CRAM 101和冗余CRAM 102中存储的值读出来,依次通过翻转定位电路105进行翻转定位、纠错电路106实现纠错,并利用ECC编码电路107重新计算纠错后的存储数据的校验值,并将纠错后的存储值和重新计算出的校验值分别写入CRAM 101和冗余CRAM 102,在此过程中,由帧地址生成电路108遍历所有的CRAM 101和冗余CRAM 102对应的帧地址,完成片上刷新和纠错。
参照图1、图4、图5所示,该步骤S304在实施过程中包括如下子步骤:
子步骤S304a:FPGA在后台自动启动帧地址生成电路,读出某一帧的CRAM数据,并利用翻转定位电路对该帧的CRAM数据进行ECC解码,判断该帧的CRAM数据是否存在错误;
本实施例中,帧地址生成电路为一计数器,能够遍历生成CRAM和冗余CRAM对应的帧地址;帧地址生成电路利用翻转定位电路判断该帧的CRAM数据是否存在错误,是根据单帧中的CRAM 101存储值计算确定校验位数值,并与冗余CRAM 102中存储的校验位数值进行比对,使用诸如单比特错误纠错和两比特错误探测等ECC算法,确定该帧的CRAM数据是否存在错误,即发生了单粒子翻转。
结合图1和图5举例说明,当粒子轰击FPGA芯片造成某个配置存储器(CRAM)发生了翻转,如图5中所示的有效数据位203中的数据位2发生了单粒子翻转,实施片上刷新纠错功能时,图1所示的翻转定位电路105按照一种ECC算法重新计算有效数据位203的所有数据位对应的校验位数值,然后与校验位204中存储的校验位进行对比,根据诸如单比特错误纠错和两比特错误探测等ECC算法,确定发生单粒子翻转的CRAM,此时由于该数据位2中的数据存在了错误,则通过翻转定位电路105的ECC算法计算出来的校验位数值与原本校验位204中存储的校验位数值之间会存在差异,那么便可以确定该位置存在单粒子翻转。
子步骤S304b:对于存在错误的数据,进行ECC纠错;对于不存在错误的数据,使帧地址增加1并读出新一帧CRAM数据进行是否错误判断;
结合图1和图5举例说明,ECC纠错包括:利用纠错电路106对存在错误的CRAM或冗余CRAM位置的数据进行反转操作,实现纠错;以及利用ECC编码电路107计算纠错后的单帧CRAM存储值对应的校验值。
子步骤S304c:将纠错后的数据重新写入该帧中,完成一次纠错过程;
结合图1和图5举例说明,纠错后的数据(或存储值)203’和纠错后的校验值204’分别写入CRAM 101和冗余CRAM 102中,完成一次刷新纠错过程。
子步骤S304d:判断该帧地址是否达到最大值,如果没有达到最大值,则继续增加帧地址,如果达到最大帧地址,则清零帧地址,重新开始对帧地址的遍历,完成所有帧的片上刷新和纠错;
需要说明的是,图1中所示的FPGA架构仅为能够实现该功能的一种可选的FPGA架构。图2-图5为本公开所提架构的一种实现方式。实际的电路设计中,只要能够正确实现本公开中所定义的各个功能,也可以选择其他的电路架构或实现方式。
综上所述,本公开提供了一种SRAM型FPGA片上刷新和纠错的装置、实现方法及FPGA芯片,构建了片上刷新纠错电路,可在FPGA片上自动实现刷新和纠错功能,免受FPGA器件接口速度的限制,可以提高刷新和纠错的速度,并可提高FPGA电路系统抗单粒子翻转的能力,降低系统发生单粒子功能中断的风险;采用片上刷新进行纠错的方式,FPGA系统设计人员无需掌握FPGA的码流协议并开发刷新控制电路,降低了FPGA高可靠系统的开发难度;且无需额外的器件来实现FPGA刷新功能,可提高系统的集成度,降低系统功耗和成本。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种SRAM型FPGA片上刷新和纠错的装置,包括:
CRAM,用于存储有效的配置码流信息;
冗余CRAM,用于存储校验位信息;
读写控制电路,分别与CRAM、冗余CRAM相连接,用于对CRAM和冗余CRAM的地址进行译码;
专用配置回读IO,为FPGA的配置和回读提供的专用接口;
片上刷新纠错电路,对发生单粒子翻转的数据实现定位、纠错以及进行ECC编码后重新写入正确数据;以及
选择器,一端与读写控制电路相连接,另一端分别与专用配置回读IO、片上刷新纠错电路选择性连接,根据需要实现的操作模式为片上刷新纠错还是配置回读对读写控制电路的连接方式进行选择。
2.根据权利要求1所述的装置,其中,当采用片上刷新纠错模式时,将读写控制电路与片上刷新纠错电路连接起来;当采用配置回读模式时,将读写控制电路与专用配置回读IO连接起来。
3.根据权利要求1所述的装置,其中,所述片上刷新纠错电路包括:
翻转定位电路,确定发生单粒子翻转的CRAM或冗余CRAM的位置;
纠错电路,对确定的发生单粒子翻转的CRAM或冗余CRAM位置进行反转操作,实现纠错;
ECC编码电路,确定纠错后的单帧CRAM存储值对应的校验值;以及
帧地址生成电路,遍历生成CRAM和冗余CRAM对应的帧地址。
4.根据权利要求3所述的装置,其中:
所述翻转定位电路为一ECC算法计算电路,根据单帧中的CRAM存储值计算确定校验位数值,并与冗余CRAM中存储的校验位数值进行比对,从而根据比对结果确定发生单粒子翻转的CRAM或冗余CRAM的位置;和/或
所述纠错电路为一系列的异或组合逻辑,根据确定的发生单粒子翻转的CRAM或冗余CRAM的位置,对该位置存储的数据进行反转操作,实现纠错;和/或
所述ECC编码电路为一ECC算法计算电路,重新计算纠错后的单帧CRAM存储值对应的校验值,并将重新得到的纠错后的数据和校验值通过选择器和读写控制电路分别写入CRAM和冗余CRAM。
5.根据权利要求1所述的装置,还包括:
片上刷新控制器,与读写控制电路相连接,用于控制实现片上刷新纠错和配置回读两种操作模式。
6.根据权利要求5所述的装置,所述片上刷新控制器为一状态机,当片上刷新控制器用于实现片上刷新纠错操作时,会将CRAM和冗余CRAM中存储的值读出来,进行翻转定位和纠错,并重新计算纠错后的存储数据的校验值,并将纠错后的存储值和重新计算出的校验值分别写入CRAM和冗余CRAM;当片上刷新控制器用于实现普通配置回读操作时,通过专用配置回读IO将码流写入CRAM和冗余CRAM,从而实现用户所需的电路功能。
7.一种FPGA芯片,包括权利要求1至6任一项所述的SRAM型FPGA片上刷新和纠错的装置。
8.一种利用如权利要求1至6任一项所述的SRAM型FPGA片上刷新和纠错的装置进行片上刷新和纠错的实现方法,包括:
对FPGA器件进行配置过程;以及
待配置过程完成后,自动启动片上刷新和纠错电路的功能,选择器将读写控制电路与片上刷新纠错电路连接起来,遍历所有帧的CRAM数据,利用翻转定位电路确定存在错误的CRAM或冗余CRAM的位置,并对确定的存在错误的CRAM或冗余CRAM位置利用纠错电路进行反转操作,实现纠错,将纠错后的数据通过ECC编码电路重新写入该存在错误的CRAM或冗余CRAM的位置,完成片上刷新和纠错。
9.根据权利要求8所述的实现方法,其中,所述对FPGA器件进行配置过程包括:
FPGA器件进入配置回读模式,选择器将读写控制电路与专用配置回读IO相连接;以及
待配置完成后,进入用户模式,片上刷新控制器通过专用配置回读IO将码流写入CRAM和冗余CRAM,使FPGA器件产生用户所需的电路功能。
10.根据权利要求8或9所述的实现方法,其中,所述遍历所有帧的CRAM数据,利用翻转定位电路确定存在错误的CRAM或冗余CRAM的位置,并对确定的存在错误的CRAM或冗余CRAM位置利用纠错电路进行反转操作,实现纠错,将纠错后的数据通过ECC编码电路重新写入该存在错误的CRAM或冗余CRAM的位置,包括:
选定某一帧的CRAM进行判断,根据单帧中的CRAM存储值计算对应的校验位数值,并与冗余CRAM中存储的校验位数值进行比对,根据比对结果判断该帧的CRAM存储值是否正确;以及
对于判断正确的数据,使帧地址增加1并读出新一帧CRAM数据并继续判断是否存在错误;对于判断错误的数据,利用翻转定位电路确定存在错误的CRAM或冗余CRAM的位置,并对确定的存在错误的CRAM或冗余CRAM位置利用纠错电路进行反转操作,实现纠错,将纠错后的数据通过ECC编码电路重新写入该存在错误的CRAM或冗余CRAM的位置;遍历所有帧的CRAM,找到所有存在错误的CRAM或冗余CRAM的位置并进行纠错,并以预定频率不断重复进行所述的遍历操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711219884.XA CN107894898A (zh) | 2017-11-28 | 2017-11-28 | Sram型fpga片上刷新和纠错的装置、实现方法及fpga芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711219884.XA CN107894898A (zh) | 2017-11-28 | 2017-11-28 | Sram型fpga片上刷新和纠错的装置、实现方法及fpga芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107894898A true CN107894898A (zh) | 2018-04-10 |
Family
ID=61806460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711219884.XA Pending CN107894898A (zh) | 2017-11-28 | 2017-11-28 | Sram型fpga片上刷新和纠错的装置、实现方法及fpga芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107894898A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108766491A (zh) * | 2018-06-01 | 2018-11-06 | 北京理工大学 | 一种sram型fpga片内跟踪环路单粒子翻转错误修复方法 |
CN109117301A (zh) * | 2018-07-20 | 2019-01-01 | 江苏华存电子科技有限公司 | 一种随机内存使用纠错码校验可配置功能设置分区的方法 |
CN109491821A (zh) * | 2018-11-06 | 2019-03-19 | 上海航天计算机技术研究所 | 抗单粒子翻转的加固系统及方法 |
CN110096909A (zh) * | 2019-04-19 | 2019-08-06 | 深圳忆联信息系统有限公司 | 一种保证efuse秘钥稳定性的方法及其系统 |
CN110489167A (zh) * | 2019-07-26 | 2019-11-22 | 广东高云半导体科技股份有限公司 | 双内核码流下载方法、装置、计算机设备及存储介质 |
CN111459712A (zh) * | 2020-04-16 | 2020-07-28 | 上海安路信息科技有限公司 | Sram型fpga单粒子翻转纠错方法及单粒子翻转纠错电路 |
CN111552500A (zh) * | 2020-03-26 | 2020-08-18 | 北京遥测技术研究所 | 一种适用于星载fpga的刷新方法 |
CN111597073A (zh) * | 2020-06-24 | 2020-08-28 | 上海安路信息科技有限公司 | Fpga单粒子翻转纠错方法及电路 |
CN111785310A (zh) * | 2020-08-04 | 2020-10-16 | 中国科学院近代物理研究所 | 一种用于抗单粒子翻转的fpga加固系统及方法 |
CN112073113A (zh) * | 2020-08-19 | 2020-12-11 | 北京无线电测量研究所 | 一种星载宽带波形产生组件和方法 |
CN113655745A (zh) * | 2021-08-19 | 2021-11-16 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
CN113721135A (zh) * | 2021-07-22 | 2021-11-30 | 南京航空航天大学 | 一种sram型fpga故障在线容错方法 |
CN113760820A (zh) * | 2021-09-15 | 2021-12-07 | 北京中科胜芯科技有限公司 | 一种超大规模fpga芯片的数据配置和回读方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306213A (zh) * | 2011-07-19 | 2012-01-04 | 西安电子科技大学 | 基于帧数据处理的抗单粒子辐照方法及抗单粒子辐照系统 |
US20120011423A1 (en) * | 2010-07-10 | 2012-01-12 | Mehdi Entezari | Silent error detection in sram-based fpga devices |
CN103631738A (zh) * | 2013-08-15 | 2014-03-12 | 中国科学院电子学研究所 | 一种片外配置和回读fpga装置 |
CN106293991A (zh) * | 2016-08-10 | 2017-01-04 | 上海无线电设备研究所 | 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法 |
-
2017
- 2017-11-28 CN CN201711219884.XA patent/CN107894898A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120011423A1 (en) * | 2010-07-10 | 2012-01-12 | Mehdi Entezari | Silent error detection in sram-based fpga devices |
CN102306213A (zh) * | 2011-07-19 | 2012-01-04 | 西安电子科技大学 | 基于帧数据处理的抗单粒子辐照方法及抗单粒子辐照系统 |
CN103631738A (zh) * | 2013-08-15 | 2014-03-12 | 中国科学院电子学研究所 | 一种片外配置和回读fpga装置 |
CN106293991A (zh) * | 2016-08-10 | 2017-01-04 | 上海无线电设备研究所 | 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108766491B (zh) * | 2018-06-01 | 2019-05-31 | 北京理工大学 | 一种sram型fpga片内跟踪环路单粒子翻转错误修复方法 |
CN108766491A (zh) * | 2018-06-01 | 2018-11-06 | 北京理工大学 | 一种sram型fpga片内跟踪环路单粒子翻转错误修复方法 |
CN109117301A (zh) * | 2018-07-20 | 2019-01-01 | 江苏华存电子科技有限公司 | 一种随机内存使用纠错码校验可配置功能设置分区的方法 |
WO2020015134A1 (zh) * | 2018-07-20 | 2020-01-23 | 江苏华存电子科技有限公司 | 一种随机内存使用纠错码校验可配置功能设置分区的方法 |
CN109491821B (zh) * | 2018-11-06 | 2022-07-01 | 上海航天计算机技术研究所 | 抗单粒子翻转的加固系统及方法 |
CN109491821A (zh) * | 2018-11-06 | 2019-03-19 | 上海航天计算机技术研究所 | 抗单粒子翻转的加固系统及方法 |
CN110096909A (zh) * | 2019-04-19 | 2019-08-06 | 深圳忆联信息系统有限公司 | 一种保证efuse秘钥稳定性的方法及其系统 |
CN110489167A (zh) * | 2019-07-26 | 2019-11-22 | 广东高云半导体科技股份有限公司 | 双内核码流下载方法、装置、计算机设备及存储介质 |
CN110489167B (zh) * | 2019-07-26 | 2020-07-03 | 广东高云半导体科技股份有限公司 | 双内核码流下载方法、装置、计算机设备及存储介质 |
CN111552500A (zh) * | 2020-03-26 | 2020-08-18 | 北京遥测技术研究所 | 一种适用于星载fpga的刷新方法 |
CN111459712A (zh) * | 2020-04-16 | 2020-07-28 | 上海安路信息科技有限公司 | Sram型fpga单粒子翻转纠错方法及单粒子翻转纠错电路 |
CN111597073A (zh) * | 2020-06-24 | 2020-08-28 | 上海安路信息科技有限公司 | Fpga单粒子翻转纠错方法及电路 |
CN111785310A (zh) * | 2020-08-04 | 2020-10-16 | 中国科学院近代物理研究所 | 一种用于抗单粒子翻转的fpga加固系统及方法 |
CN112073113A (zh) * | 2020-08-19 | 2020-12-11 | 北京无线电测量研究所 | 一种星载宽带波形产生组件和方法 |
CN113721135A (zh) * | 2021-07-22 | 2021-11-30 | 南京航空航天大学 | 一种sram型fpga故障在线容错方法 |
CN113721135B (zh) * | 2021-07-22 | 2022-05-13 | 南京航空航天大学 | 一种sram型fpga故障在线容错方法 |
CN113655745A (zh) * | 2021-08-19 | 2021-11-16 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
CN113655745B (zh) * | 2021-08-19 | 2023-04-07 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
CN113760820A (zh) * | 2021-09-15 | 2021-12-07 | 北京中科胜芯科技有限公司 | 一种超大规模fpga芯片的数据配置和回读方法 |
CN113760820B (zh) * | 2021-09-15 | 2022-04-22 | 北京中科胜芯科技有限公司 | 一种超大规模fpga芯片的数据配置和回读方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107894898A (zh) | Sram型fpga片上刷新和纠错的装置、实现方法及fpga芯片 | |
CN101826038B (zh) | 一种抗sram fpga器件seu的电路及方法 | |
CN105760250B (zh) | 一种具有码流纠检错功能的单粒子加固fpga配置电路 | |
CN109858195B (zh) | 一种sram型fpga上必要位单粒子翻转故障的在线仿真系统 | |
US9703627B2 (en) | Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information | |
CN103473146A (zh) | 存储器控制方法、存储器控制器以及电子装置 | |
CN107943609A (zh) | 存储器模块、存储器控制器和系统及其相应操作方法 | |
CN106293991B (zh) | 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法 | |
CN102651240A (zh) | 检错和纠错电路 | |
CN109491821B (zh) | 抗单粒子翻转的加固系统及方法 | |
CN108694098A (zh) | 对于存储设备的不同存储器区域的比特顺序修改 | |
US11106849B2 (en) | Method for generating redundant configuration in FPGAs | |
CN102436407A (zh) | 模拟错误产生设备 | |
CN111459712B (zh) | Sram型fpga单粒子翻转纠错方法及单粒子翻转纠错电路 | |
CN108694099A (zh) | 确定用于储存器设备的不同的存储器区域的码本 | |
CN104699577B (zh) | 用于在分布式码字存储系统中定位故障管芯的计数器 | |
CN103413571B (zh) | 存储器和利用该存储器实现检错纠错的方法 | |
CN104268253B (zh) | 一种基于查找表配置位统计的部分三模冗余方法 | |
CN104051023B (zh) | 侦测电路及侦测方法 | |
US9575862B1 (en) | Integrated circuits with error handling capabilities | |
CN105161137B (zh) | 一种MLC架构中Nand Flash控制器电路实现装置 | |
US8436646B1 (en) | Reconfigurable logic block with user RAM | |
CN109408839B (zh) | 一种通过局部冗余减少敏感配置比特的抗辐射容错fpga电路设计方法 | |
CN107331420A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN104733048A (zh) | 一种提高大容量反熔丝存储器成品率的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180410 |
|
WD01 | Invention patent application deemed withdrawn after publication |