CN101834611B - 一种纠正多比特错误的ecc电路 - Google Patents

一种纠正多比特错误的ecc电路 Download PDF

Info

Publication number
CN101834611B
CN101834611B CN2010101675754A CN201010167575A CN101834611B CN 101834611 B CN101834611 B CN 101834611B CN 2010101675754 A CN2010101675754 A CN 2010101675754A CN 201010167575 A CN201010167575 A CN 201010167575A CN 101834611 B CN101834611 B CN 101834611B
Authority
CN
China
Prior art keywords
bit
fpga
per
ecc
decoder
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.)
Active
Application number
CN2010101675754A
Other languages
English (en)
Other versions
CN101834611A (zh
Inventor
谢婧
来金梅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN2010101675754A priority Critical patent/CN101834611B/zh
Publication of CN101834611A publication Critical patent/CN101834611A/zh
Application granted granted Critical
Publication of CN101834611B publication Critical patent/CN101834611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明属于FPGA技术领域,具体为一种应用于SRAM FPGA器件的纠正多比特错误的ECC电路。该电路由3选1MUX,译码器,错误图样查找表和回写电路依次连接构成。其流程为:首先将编程点信息回读到ECC寄存器当中,按一定规则分别经过3选1MUX输出到译码器;同时,FPGA芯片内部BLOCK RAM中存储的冗余位作为4位冗余位输出到译码器;译码器采用(15,11)汉明循环码译码器。这种电路能够对FPGA中发生软错误的多个编程点进行纠正,从而使FPGA具有抗软错误功能,同时也最大程度的减少了面积开支。

Description

一种纠正多比特错误的ECC电路
技术领域
本发明属于FPGA技术领域,具体涉及一种使FPGA具有抗软错误功能的电路结构。尤其涉及一种FPGA内的纠正多比特错误的ECC电路结构。
背景技术
FPGA具有独特的现场可编程性和通用灵活性,电路功能可重配置,设计周期短,因而在国防武器装备、民口通信、汽车、医疗等领域中得到日益广泛的应用。但是随着半导体工艺进入超深亚微米或纳米尺度,小尺寸,高密度和低电压所带来的优势面临巨大挑战--噪声容限的减小,使得基于SRAM结构的FPGA器件极易受到位翻转(bit flips)[1]。这种源于软错误(soft error)的偶然的位翻转,是由于高能带粒子射入半导体器件灵敏区,产生部分额外的载流子,使器件逻辑状态翻转为相反状态,从而存储的信息出错,导致系统功能紊乱,严重的可以导致灾难性事故[2]。基于SRAM结构的FPGA,配置位流(configuration bitstream)决定了设计电路的内部走线及功能[2],位流信息中的每一位对应FPGA内部结构中的码点(programmable point)(即一个SRAM单元)。Xilinx公司的Virtex系列FPGA,易受到软错误影响的敏感位(sensitive bits)中,有91%来自于配置位(configuration bits)[1]。因而,软错误引起的单粒子翻转(SEU-single-eventupset),作用于配置存储器(configuration memory),往往影响到FPGA既定的电路功能。
近些年,为了增强FPGA配置存储器抗软错误能力,国内外提出了很多方法。主流FPGA供应商Xilinx公司在其高性能的FPGA芯片Virtex系列中每帧数据采用一个ECC电路,可以纠正每帧数据中的1比特错误。但是宇宙射线会影响到编程点阵列的多列,进而产生多种错误形式。包括行多错误,列多错误及L型错误,在Virtex系列芯片的ECC校验中,一个ECC字可以对应阵列中的一列,这样,行多错误位由于分属于不同的ECC字,因而这类行多错误能够看作单个错误,ECC电路就可以处理了。然而对于其他情形,如列多错误及L型错误,由于它们属于同一个ECC字内,则Virtex系列中的ECC电路无能为力。因此有必要提出一种能纠正由于宇宙射线引起的各种编程点错误的电路结构。
参考文献:
[1]P.Graham,M.Caffrey,J.Zimmerman,D.E.Johnson,P.Sundararajan,andC.Patterson,“Consequences and Categories of SRAM FPGA Configuration SEUs”,Millitary and Aerospace Applications of Programmable Logic Devices(MAPLD),2003
[2]S.Srinivasan,A.Gayasen,N.Vijaykrishnam,M.Kandemir,Y.Xie andM.J.Irwin,“Improving soft-error tolerance of FPGA configuration bits”,ICCAD,2004
[3]J.Maiz,S.Hareland,K.Zhang,and P.Armstrong,“Characterization ofmulti-bit soft error events in advanced SRAMs,”,in IEDMTech.Dig.,Dec.2003,pp.519-522
[4]T.Suzuki,Y.Yamagami,I.Hatanaka,A.Shibayama,H.Akamatsu and H Yamauchi,“A Sub-0.5-V Operating Embedded SRAM Featuring a Multi-Bit-Error-ImmuneHidden-ECC Scheme”,IEEE Journal of Solid-State Circuits,Vol.41,No.1,Jan 2006
[5]R.W.Hamming,“Error Detecting and Error Correcting Codes,”Bell SystemTech.J.,29,147(1950)。
发明内容
本发明针对基于SRAM结构的FPGA,提出一种能纠正宇宙射线引起的各种软错误的ECC电路,用于防止软错误造成FPGA电路逻辑错误。
FPGA中的可编程资源包括可编程逻辑资源和可编程互联资源,可以视为图1中的基本编程点单元(每个编程点单元大小为1bit,实际的FPGA编程点数目远大于图1中的编程点数目,图1仅代表了基本的FPGA编程点结构)。宇宙射线会影响到编程点阵列的多列,进而产生多种错误形式[3](如图1中红线部分)。包括行多错误,列多错误及L型错误。行多错误指同一行中有多个比特错误,列多错误指一列编程点中有多个比特错误,L型错误指编程点的错误位置像一个L字母的形状。然而随着纠正能力的提高(纠正多位错误),所需要的冗余位也会增加,同时电路也会更加复杂。当一个32-bit SRAM包含一个可纠正1-bit错误的ECC电路,利用汉明码编码所需要的冗余位为6位,这时,面积上会增加19%。然而,若采用纠正能力更强的ECC电路,比如说纠正4-bit错误,面积的损耗会增加75%[4]。因而,在面积最小化的前提下,尽量提高纠错能力是ECC电路实现的关键问题。
正是为了克服以上问题,本发明提出了包含汉明循环码的ECC电路,每32位数据为一个单元,利用(15,11)汉明循环码的编译码过程,能够在较小的面积损耗下几乎能纠正由于宇宙射线引起的编程点的全部错误。
本发明提出的纠正多比特错误ECC电路,其结构如图2所示。它由3选1MUX,译码器,错误图样查找表和回写电路依次连接构成。其流程为:首先将编程点信息回读到ECC寄存器当中,按每32比特增加1比特虚拟位的规则(其中A0,A1,A2各占11比特),分别作为11比特有效位经过3选1MUX输出到译码器;与此同时,FPGA芯片内部BLOCK RAM中存储的冗余位作为4位冗余位输出到译码器;译码器采用(15,11)汉明循环码译码器。
汉明码是一种可以纠正一位差错的编码,它利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子纠正码字中的错误[5]。汉明循环码作为一类特殊的汉明码,由于具有循环特性的排列,在编码及解码时,利用约定的生成多项式g(x)进行校验,使得编译码实现更简单。设(n,k)循环码的生成多项式为g(x),以g(x)除接收码多项式R(x)的商式q(x)与余式s(x),故有R(x)=q(x)g(x)+s(x),由上式,s(x)的计算电路类似以g(x)为模的多项式除法电路。本发明采用的(15,11)循环汉明码译码器,即一个15位被除数,5位除数的除法器。除法电路得到的伴随式s(x)若等于0,输出R(x)。若输出s(x)不等于0,则s(x)对应于校验矩阵H(x)中的某一列i,便知接收码矢中第i位有错,在第i位取反数据即可。生成多项式g(x)=x4+x+1的(15,11)汉明循环码,其校验矩H(x)如下:
H = 100110101111000 010011010111100 001001101011110 000100110101111
本发明将ECC(Error Check and Correction)技术运用到FPGA的抗软错误实现中。ECC电路的实现有两个关键问题,一是访问时间的控制,二是在面积最小化的前提下提高抗多位错误的能力。利用(15,11)循环汉明码译码器按照每32位数据为一个单元进行校验,不仅能检测错误,而且能达到纠正多比特错误的效果,最大程度上减少了面积开支。另一方面,汉明循环码的引入,使得编译码电路实现更加简单,大大的减少了ECC电路的面积。
附图说明
图1FPGA数据配置结构示意图。
图2纠正多比特错误的ECC电路结构图。
图3抗软错误系统构建流程图。
具体实施方式
本发明提出的纠正多比特错误的ECC电路在防止软错误对SRAM结构的FPGA产生损害的应用中体现价值,要配合整体流程发挥作用。
利用本发明提出的纠正多比特错误的ECC电路实现抗软错误功能的具体步骤如图3所示,具体描述如下:
1)生成带冗余码的位流。软件将生成的配置数据以每32比特填充一个虚拟位(值为0)进行扩充,然后按每11比特数据为一个信息有效位单元,经过(15,11)汉明循环码编码器生成4位冗余位数据。
2)位流下载。将冗余位数据写入芯片内部BLOCK RAM中,将生成的配置数据写入芯片内部编程点。
3)编程点信息回读。编点信息经过回读输出到ECC寄存器里,每32位编程点自动添加一位虚拟位,值为0。
4)纠正多比特错误的ECC校验。将每33比特数据(加入1比特虚拟位之后)分为3组,每一组为11比特,经过3选1MUX输出到(15,11)汉明循环码译码器中,如有软错误产生则将出错的有效位取反后回写入FPGA芯片。
5)最后通过启动指令使芯片正常启动进入工作状态。

Claims (2)

1.一种纠正多比特错误的ECC电路,其特征在于它由3选1MUX,译码器,错误图样查找表和回写电路依次连接构成;其实施抗软错误的流程如下:
1)生成带冗余码的位流软件将生成的配置数据以每32比特填充一个虚拟位进行扩充,然后按每11比特数据为一个信息有效位单元,经过(15,11)汉明循环码编码器生成4位冗余位数据;
2)位流下载将冗余位数据写入芯片内部BLOCK RAM中,将生成的配置数据写入芯片内部编程点;
3)编程点信息回读编点信息经过回读输出到ECC寄存器里,每32位编程点自动添加一位虚拟位,值为0;
4)纠正多比特错误的ECC校验将每33比特数据分为3组,每一组为11比特,经过3选1MUX输出到(15,11)汉明循环码译码器中,如有软错误产生则将出错的有效位取反后回写入FPGA芯片;
5)最后通过启动指令使芯片正常启动进入工作状态。
2.一种使用如权利要求1所述的纠正多比特错误的ECC电路实施抗软错误的方法,其特征在于具体步骤如下:
1)生成带冗余码的位流  软件将生成的配置数据以每32比特填充一个虚拟位进行扩充,然后按每11比特数据为一个信息有效位单元,经过(15,11)汉明循环码编码器生成4位冗余位数据;
2)位流下载将冗余位数据写入芯片内部BLOCK RAM中,将生成的配置数据写入芯片内部编程点;
3)编程点信息回读编点信息经过回读输出到ECC寄存器里,每32位编程点自动添加一位虚拟位,值为0;
4)纠正多比特错误的ECC校验将每33比特数据分为3组,每一组为11比特,经过3选1MUX输出到(15,11)汉明循环码译码器中,如有软错误产生则将出错的有效位取反后回写入FPGA芯片;
5)最后通过启动指令使芯片正常启动进入工作状态。
CN2010101675754A 2010-05-06 2010-05-06 一种纠正多比特错误的ecc电路 Active CN101834611B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101675754A CN101834611B (zh) 2010-05-06 2010-05-06 一种纠正多比特错误的ecc电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101675754A CN101834611B (zh) 2010-05-06 2010-05-06 一种纠正多比特错误的ecc电路

Publications (2)

Publication Number Publication Date
CN101834611A CN101834611A (zh) 2010-09-15
CN101834611B true CN101834611B (zh) 2012-11-21

Family

ID=42718564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101675754A Active CN101834611B (zh) 2010-05-06 2010-05-06 一种纠正多比特错误的ecc电路

Country Status (1)

Country Link
CN (1) CN101834611B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385936A (zh) * 2011-09-16 2012-03-21 中国科学院微电子研究所 基于汉明码对静态随机存储器多位翻转进行容错的方法
CN109165115B (zh) * 2018-06-26 2021-11-09 北京中电华大电子设计有限责任公司 一种增强flash存储器可靠性的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1904843A (zh) * 2005-07-11 2007-01-31 阿尔卡特公司 用于减轻运行期间集成电路存储器存储装置中的软错误的自动方法和设备
CN101063948A (zh) * 2006-04-21 2007-10-31 奥特拉股份有限公司 可编程装置的软差错定位和敏感度检测

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6838899B2 (en) * 2002-12-30 2005-01-04 Actel Corporation Apparatus and method of error detection and correction in a radiation-hardened static random access memory field-programmable gate array

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1904843A (zh) * 2005-07-11 2007-01-31 阿尔卡特公司 用于减轻运行期间集成电路存储器存储装置中的软错误的自动方法和设备
CN101063948A (zh) * 2006-04-21 2007-10-31 奥特拉股份有限公司 可编程装置的软差错定位和敏感度检测

Also Published As

Publication number Publication date
CN101834611A (zh) 2010-09-15

Similar Documents

Publication Publication Date Title
CN101820288B (zh) 低密度校验码的信息处理方法
CN101958720B (zh) 缩短Turbo乘积码的编译码方法
CN111143107B (zh) 一种fpga单粒子反转校验电路和方法
CN107659382A (zh) 用于编码信息的方法和设备
CN102789806B (zh) 一种空间设备的tcam抗辐照防护方法
Sai et al. Diagonal hamming based multi-bit error detection and correction technique for memories
CN100368997C (zh) 一种静态数据存储的纠错编码装置
CN101834611B (zh) 一种纠正多比特错误的ecc电路
CN102820892A (zh) 一种用于并行bch编码的电路、编码器及方法
CN103023518A (zh) 一种基于并行编码译码的循环汉明码的纠错方法
CN102064835A (zh) 适用于准循环ldpc译码的译码器
CN111597073B (zh) Fpga单粒子翻转纠错方法及电路
CN101764621A (zh) 星载(8176,7156)ldpc编译码器中实现缩短码与子码兼容的方法
CN202838976U (zh) 基于edac模块的三模冗余对存储器的容错装置
CN202856718U (zh) 一种基于fpga的抗多位错误翻转rs码检错纠错系统
Das et al. Systematic b-adjacent symbol error correcting reed-solomon codes with parallel decoding
CN111900999B (zh) 一种面向卫星非连续通信的高性能极化编码方法及编码器
CN114528983A (zh) 一种脉冲神经元加固电路、加固方法
Li et al. Scheme for periodical concurrent fault detection in parallel CRC circuits
US11126500B2 (en) Error detection and correction with integrity checking
CN111130565B (zh) 一种基于神经网络的译码方法及装置
Tawada et al. A bit-write reduction method based on error-correcting codes for non-volatile memories
CN104393876B (zh) 奇偶校验矩阵及编码方法和编码器与译码方法和译码器
CN108242973B (zh) 一种数据纠错方法及装置
CN102831761B (zh) 一种航天器遥控开关指令的传输方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant