CN114996050B - 一种参数可配置的自动检纠错电路及检纠错方法 - Google Patents
一种参数可配置的自动检纠错电路及检纠错方法 Download PDFInfo
- Publication number
- CN114996050B CN114996050B CN202210917710.5A CN202210917710A CN114996050B CN 114996050 B CN114996050 B CN 114996050B CN 202210917710 A CN202210917710 A CN 202210917710A CN 114996050 B CN114996050 B CN 114996050B
- Authority
- CN
- China
- Prior art keywords
- configuration
- check
- block
- module
- data
- 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
Links
Images
Classifications
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明提供了一种参数可配置的自动检纠错电路及检纠错方法,该电路主要包括码流配置内存、控制电路、数据处理电路、ECC校验计算电路、ECC处理内存等。相比传统的电路,对于每个校验块,最多能自动检测出连续8bit错误并且纠正8bit错误,最少检测并且纠正1bit错误,可以通过配置码流对电路进行参数配置,可以针对可能出现的不同SEU覆盖情况选择不同的配置,以此来解决出现SEU导致的电路工作异常的问题。本方案电路更灵活,且具有良好的可靠性和保密性。
Description
技术领域
本发明属于集成电路设计及电路抗辐照加固设计领域,尤其涉及一种参数可配置的自动检纠错电路及检纠错方法。
背景技术
随着FPGA规模不断扩大和内部资源的不断丰富,FPGA芯片凭借灵活方便的可编程特性以及丰富的IP资源得到了非常广泛的应用。用户电路经过EDA软件综合布局布线后映射成FPGA中的可编程逻辑资源并存储在SRAM中,最终由SRAM中存储的数据来控制用户电路的实现。随着集成电路制造工艺的进步,SRAM更容易发生单粒子翻转(SEU,Single EventUpset),而一旦发生SEU就会造成用户电路功能出现不可预期的情况,严重的甚至会导致芯片损坏。因此,需要自动检纠错(ECC,Error Correction Code)电路对FPGA芯片中的SRAM进行实时的监测和纠正,来保证出现SEU的时候是可知的,并且能将出现的错误进行纠正,保障用户电路的可靠性。
目前大部分的自动检纠错电路都是基于汉明码的原理,将FPGA中配置可编程逻辑块的数据回读后进行检错和纠错的,但是由于汉明码的局限性,最多只能检测2bit纠正1bit错误。因此大大限制了抗SEU的性能,一旦出现多于1bit错误就无法实时的维持用户电路的正确。
还有的检纠错电路是通过片外的存储设备预先存储配置码流,在用户电路工程的过程中,通过FPGA芯片提供的JTAG或者被动配置接口对FPGA的配置存储单元进行检纠错刷新电路的,但是这种片外刷新的方式受限于器件接口速度,无法达到实时监测和纠正的目的。同时,使用片外刷新的方式需要另外开发检纠错电路,增加了系统设计的复杂度和系统的研制成本。
发明内容
针对现有技术中的不足之处,本发明提供了一种参数可配置的自动检纠错电路,本方案中,对于每个校验块,最多能自动检测出连续8bit错误并且纠正8bit错误,最少检测并且可以纠正1bit错误,可以通过配置码流对电路进行参数配置。用户可以针对可能出现的不同SEU覆盖情况选择不同的配置,以此来解决出现SEU导致的电路工作异常问题。具体而言,本发明提供了以下技术方案:
一方面,本发明提供了一种参数可配置的自动检纠错电路,所述电路包括参数配置模块、数据处理模块、ECC校验计算模块、ECC处理控制模块、翻转纠错模块、ECC内存控制模块、配置块读写控制模块、配置内存模块、ECC处理内存模块;
所述参数配置模块用于根据用户的参数设置,基于配置码流形成包含配置块和校验值的最终码流;所述参数配置模块与数据处理模块、配置块读写控制模块进行数据交互;
所述配置块读写控制模块,将最终码流配置进FPGA中,并将用户电路映射数据和校验数据分别传输至配置内存模块;此处,可以在配置内存模块中设置一校验存储单元,以单独存储校验数据;
数据处理模块,在最终码流配置过程中,获取相关参数;以及,在等待时间计时结束后且FPGA正常工作后,从配置内存模块中读取配置块,对配置块中的解码块进行解码并发送至ECC校验计算模块,将解码前数据及解码前校验值发送至ECC处理内存模块;所述相关参数包括参数设置中的需要检纠错的连续bit数n,n为大于等于1的整数;
ECC校验计算模块,对解码后的数据进行ECC校验,将计算校验值与解码前校验值比对,基于比对结果通过翻转纠错模块对错误bit进行翻转纠正;
翻转纠错模块将翻转纠正后数据发送至ECC处理内存模块中,并覆盖对应的纠错前数据。
优选的,所述最终码流的配置方式为:
基于参数设置中的n及ECC基本处理单元大小,将配置码流的每个配置块分割为对应数量的校验块;
在校验块中,每隔n bit选取1bit,将每个校验块分割成对应数量的编码块;
对每个编码块进行校验编码,计算出每个编码块的校验值;
将每个编码块的校验值和每个配置块组合,形成最终码流。
优选的,所述对应数量的确定方式为:
先确定校验块的bit数:
校验块bit数=n*m
其中,n为参数设置中的需要检纠错的连续bit数,m为ECC基本处理单元大小;
对应块数=单个配置块bit数/(n*m)。
优选的,将配置块分割为校验块时,若最后一个校验块bit数不足,则将其补足,以使得每个校验块的数据量一致;
在将每个编码块的校验值和每个配置块组合之前,去除校验块中补足部分的bit数据。
优选的,所述数据处理模块中,对配置块中的解码块进行解码的具体方式为:
每隔n bit从配置块中截取出对应的解码块进行解码,并发送至ECC校验计算模块。
优选的,所述数据处理模块还包括数据处理回写单元,用于在ECC校验计算模块对错误bit翻转纠正完毕后,将ECC处理内存模块中的数据读出并发送至配置块读写控制模块,以将翻转纠正后数据重新写入配置内存模块中。
优选的,所述等待时间由用户进行配置,以保证已下载配置码流的FPGA已开始正常工作。
优选的,每个配置块校验结束后,对重新回写至ECC处理内存模块的数据进行CRC校验;全部配置块校验结束后得到校验后CRC值;
若CRC值未发生错误,则检纠错电路重新对所有配置块进行校验;若CRC值发生错误,则检纠错电路停止,并发送错误报警信息。
优选的,在得到配置块和配置块数据进行ECC纠正的过程中,CRC校验同步进行计算,以在全部配置块校验结束后,得到CRC值。
优选的,CRC值校验的方式为:在配置码流下载到FPGA中的同时,将正确的CRC值写入FPGA的相关寄存器中,再将计算得到的CRC值与正确的CRC值进行比较。
此外,本发明还提供了一种参数可配置的自动检纠错方法,该方法应用于如上所述的检纠错电路中,该方法包括:
S1、将配置码流下载至FPGA中,在等待时间计时结束后,执行S2;
S2、基于配置码流的大小,逐次从配置内存模块中读出相同大小的配置块;
S3、根据参数配置中的参数,将配置块打散,并形成最终码流;
S4、对所述最终码流进行ECC校验计算,并将错误翻转粒子进行翻转纠正;
S5、将翻转纠正后的数据重新写回ECC处理内存模块中,并覆盖翻转纠正前对应的数据,同时将翻转纠正后的数据重新写入配置内存模块中,并覆盖配置内存模块中翻转纠正前的对应的数据;
S6、对重新写回ECC处理内存模块中的数据进行CRC校验;
S7、全部配置块读取完毕,则执行S8;否则,读取下一配置块,并返回S3;
S8、计算得到校验后的CRC值,若CRC值未发生错误,则返回S2;否则,停止并报错。
优选的,所述S3进一步包括:
S31、基于参数设置中的n及ECC基本处理单元大小,将配置码流的每个配置块分割为对应数量的校验块;
S32、在校验块中,每隔n bit选取1bit,将每个校验块分割成对应数量的编码块;
S33、对每个编码块进行校验编码,计算出每个编码块的校验值;
S34、将每个编码块的校验值和每个配置块组合,形成最终码流。
优选的,所述S31中,将配置块分割为校验块时,若最后一个校验块bit数不足,则将其补足,以使得每个校验块的数据量一致;
所述S34中,在将每个编码块的校验值和每个配置块组合之前,去除校验块中补足部分的bit数据。
与现有技术相比,本方案具备以下优点:1、本方案提供的自动检纠错电路参数可配置,电路更灵活:本发明中的自动检纠错电路的最大刷新时间、每次纠错覆盖配置块大小、配置块和校验块分割大小都是可配置的,方便用户根据不同情况选择不同配置,达到最优的检纠错性能。2、本方案可纠正连续多bit错误:本发明中的自动检纠错电路可以检纠错出现的连续多bit错误,相比传统电路更能保障用户电路的可靠性。3、本方案保障用户电路可靠性:本发明中的自动检纠错电路可将出现的SEU错误进行纠正,防止用户电路在工作中受SEU影响出现不可预知的问题。4、本方案更有效的提高用户电路的保密性:本方案在用户电路映射的配置块中插入了校验值,增加了用户配置数据的复杂性,降低用户电路被破解的可能,因此可以进一步对用户电路进行保密。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的电路结构示意图;
图2为本发明实施例的检纠错流程示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
下面结合具体的实施方式对本发明做进一步的解释说明。
在一个具体的实施例中,结合图1所示,本发明提供的参数可配置的自动检纠错电路包括配置内存模块、控制电路、数据处理模块、ECC校验计算模块、ECC处理内存等。其中,控制电路主要包括配置读写控制模块、ECC内存控制模块、ECC处理控制模块。
相比传统的电路,对于每个校验块,最多能自动检测出连续8bit错误并且纠正8bit错误,最少检测并且纠正1bit错误,可以通过配置码流对电路进行参数配置。用户可以针对可能出现的不同SEU覆盖情况选择不同的配置,以此来解决出现SEU导致的电路工作异常的问题。
本实施例中,自动检纠错电路主要包括参数配置模块、ECC内存控制模块、配置块读写控制模块、ECC处理控制模块、ECC校验计算模块、翻转纠错模块、数据处理模块、ECC处理内存模块、配置内存模块;
ECC处理控制模块、ECC校验计算模块、翻转纠错模块、数据处理模块共同构成本发明的核心模块电路。
参数配置模块将配置参数相关的数据信息发送给数据处理模块及配置块读写控制模块;翻转纠错模块将纠错后数据发送至ECC内容控制模块,ECC内存控制模块与配置块读写控制模块连接;配置块读写控制模块将校正过的数据送入数据通道并发送至配置内存模块,配置内存模块也可以将payload数据和校验bit数据发送至配置块读写控制模块;ECC内存控制模块与ECC处理内存连接并进行数据交互;ECC处理控制模块分别与ECC校验计算模块、数据处理模块连接,数据处理模块将处理后数据发送至ECC校验计算模块,ECC校验计算模块将处理后数据发送给翻转纠错模块,并处理后发送至ECC内存控制模块;数据处理模块接收来自ECC内存控制模块的数据。
其工作原理如下:根据用户的参数设置将配置码流进行对应的编码,通过解码和计算来实现校验的目的。配置码流即软件根据用户设计的电路映射成的用来配置FPGA芯片的烧写文件,该烧写文件一般可包含用户电路对应bit数据和用户电路对应bit数据进行编码后的校验数据。在软件层面实现编码,在硬件层面实现解码和计算。在一个具体的实施方式中,具体的软件编码过程可分为几个步骤进行:
1、根据用户的参数设置,将配置码流的每个配置块分割成对应块数的校验块,若出现最后一个校验块内bit数不足,则进行补零来满足每个校验块的数据量都是一致的。
此处,用户进行参数设置时,可设置参数包括例如:需要检纠错的连续bit数n,n可以取大于等于1的整数,具体可由设备性能要求、检纠错数据要求、用户使用要求等来确定;是否开启ECC功能的对应参数ECC功能参数;检测出错误后是否进行纠正的对应参数纠正参数等。本实施例中,默认用户启用ECC功能,且启用纠正功能,即对应的参数是用户默认已开启的,以对本发明的具体纠正实现方式进行说明。当然,在配置码流中,也可以是不包含ECC功能的配置码流。
进一步的,将配置码流的每个配置块分割成对应块数的校验块中,对应块数分割以一实例进行说明:假设ECC基本处理单元大小是m bit,根据设置得到n*m bit表示校验块的bit数(即检纠错的连续bit数是n),对应块数就是每个配置块的bit数除以(n*m)得到的,每个配置块的bit数是根据FPGA的资源大小决定的,不同芯片这个数值不同,因此,会出现最后一块校验块内的bit数不足的情况,此时,我们可以采用上述的例如以补零的方式进行补足。
2、根据用户的参数设置,在校验块中每隔n bit选取1bit,将每个校验块分割成对应块数的编码块。此处的对应块数与上面第1条中的对应块数相同,此时,每个编码块相当于有m个bit。
3、对每个编码块进行校验编码,计算出对应的校验值。在此处的校验编码中以及校验值的计算中,可以采用本领域中的现有校验编码方式进行,例如使用汉明码进行校验计算等,此处不再赘述。
4、去除分割配置块时补的零,将步骤3中计算出的校验值和每个配置块的码流组合成最终码流。
结合图1、图2所示,自动检纠错电路的硬件部分具体实现分为几个模块:
1、配置块读写控制模块,开始先将软件生成的最终码流配置进FPGA中,通过配置块读写控制模块,将用户电路映射的bit数据和编码后生成的校验数据分别写进配置内存模块和校验存储单元中。该校验存储单元一般可以设置在配置内存模块中,以便于校验数据的存储。
此处的用户电路映射bit数据、编码后生成的校验数据,即配置码流烧写文件中的用户电路对应bit数据和用户电路对应bit数据进行编码后的校验数据。
2、数据处理模块,在最终码流配置过程中会获取相关参数并存放在寄存器中。此处的相关参数,即上述的设置参数,包括例如:需要检纠错的连续bit数n;是否开启ECC功能的对应参数ECC功能参数;检测出错误后是否进行纠正的对应参数纠正参数等。
在FPGA正常工作后,该模块中的定时器会根据配置的等待时间参数计时,计时结束后进行数据处理,从配置内存中将配置块读出,根据配置块中的相关参数(即上述的设置参数)每隔n bit从配置块中截取出对应的解码块进行解码,并送至ECC校验计算模块,同时将解码前的数据和校验值送至ECC处理内存进行缓存。
3、ECC校验计算模块,对解码后的数据进行ECC校验,将计算出的校验值与ECC处理内存缓存的校验值作对比,根据对比结果对出现的错误bit进行翻转纠正,并且记录错误信息写进寄存器中,此处,进行校验比对确定错误bit,可以使用本领域中的已有方式进行,例如采用汉明码算法进行校验等,此处不再赘述。将翻转纠正后的数据重新缓存在ECC处理内存中,并且覆盖原来的数据,若校验中未发现错误bit,则后续不需要进行任何操作。
4、更进一步优选的,数据处理模块中还可以单独设置一数据处理回写单元,该单元包含在数据处理模块中,在ECC校验计算模块纠正完数据后,将ECC处理内存中的数据读出并送至配置块读写控制模块,将纠正完的数据重新写入配置内存中。
结合上述的检纠错电路实施例中,结合图2,本发明提供的检纠错电路的整个工作流程如下:
先将配置码流正常下载至FPGA中,保证FPGA正常工作。在FGPA正常工作后自动检纠错电路会在等待用户配置的时间后开始启动,此处的用户配置的时间,即是一等待时间,该时间长度可以基于FPGA性能等通过用户配置进行设置。自动检纠错电路启动后会根据配置码流的大小每次从配置内存中读出相同大小的配置块,并且根据用户配置的校验块大小将配置块分成对应数据进行处理,即如上述的将配置块分割为检验块,再由校验块获得编码块。
通过对校验块解码处理后就将可能出现的连续错误翻转粒子打散,然后通过对错误数据分散后的校验块进行ECC校验计算,即可将检纠错范围内的所有错误翻转粒子进行检纠错处理。
在检纠正处理结束后,将纠正后的数据重新覆盖ECC处理内存中的数据,并且重新写入配置内存中,此处优选的,重新写入配置内存中的数据同样覆盖原来的数据;最后再读取下一个配置块进行同样的动作来完成整个FPGA配置内存的检纠错功能。
更进一步的,每个配置块校验结束后都会对重新回写的数据进行CRC校验,所有配置块都校验结束后计算得到校验后的CRC值,在一个优选的实施方式中,在得到配置块和纠正配置块的过程中,CRC同步进行计算,所以在所有配置块校验结束后,就得到了最终的CRC结果。
CRC值是否发生错误,可选用的判断方式为:最开始将配置码流下载到FPGA中的时候,已经将正确的CRC值写入了FPGA的相关寄存器中,在ECC校验结束后将计算得到的CRC与寄存器中存储的CRC进行比较,不一样则表示CRC校验发生错误。
如果CRC未发生错误,说明未出现无法纠正的情况,自动检纠错电路会重新对所有配置块重新进行ECC校验,并进行循环;若出现CRC错误,则说明出现超出纠正范围的SEU错误,则自动检纠错电路会停止工作,并将错误信息存入寄存器供用户进行读取信息和后续处理使用。
需要说明的是,在说明书流程图中表示或在此以其他方式描述的逻辑和/或步骤,可以具体实现在任何可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种参数可配置的自动检纠错电路,其特征在于,所述电路包括参数配置模块、数据处理模块、ECC校验计算模块、ECC处理控制模块、翻转纠错模块、ECC内存控制模块、配置块读写控制模块、配置内存模块、ECC处理内存模块;
所述参数配置模块用于根据用户的参数设置,基于配置码流形成包含配置块和校验值的最终码流;所述参数配置模块与数据处理模块、配置块读写控制模块进行数据交互;
所述配置块读写控制模块,将最终码流配置进FPGA中,并将用户电路映射数据和校验数据分别传输至配置内存模块;
数据处理模块,在最终码流配置过程中,获取相关参数;以及,在等待时间计时结束后且FPGA正常工作后,从配置内存模块中读取配置块,对配置块中的解码块进行解码并发送至ECC校验计算模块,将解码前数据及解码前校验值发送至ECC处理内存模块;所述相关参数包括参数设置中的需要检纠错的连续bit数n,n为大于等于1的整数;
ECC校验计算模块,对解码后的数据进行ECC校验,将计算校验值与解码前校验值比对,基于比对结果通过翻转纠错模块对错误bit进行翻转纠正;
翻转纠错模块将翻转纠正后数据发送至ECC处理内存模块中,并覆盖对应的纠错前数据;
ECC处理控制模块分别与ECC校验计算模块、数据处理模块连接;ECC内存控制模块与配置块读写控制模块连接,ECC内存控制模块与ECC处理内存连接并进行数据交互;ECC处理控制模块分别与ECC校验计算模块、数据处理模块连接,数据处理模块将处理后数据发送至ECC校验计算模块,ECC校验计算模块将处理后数据发送给翻转纠错模块,并处理后发送至ECC内存控制模块;数据处理模块接收来自ECC内存控制模块的数据;
所述最终码流的配置方式为:
基于参数设置中的n及ECC基本处理单元大小,将配置码流的每个配置块分割为对应数量的校验块;
在校验块中,每隔n bit选取1bit,将每个校验块分割成对应数量的编码块;
对每个编码块进行校验编码,计算出每个编码块的校验值;
将每个编码块的校验值和每个配置块组合,形成最终码流。
2.根据权利要求1所述的检纠错电路,其特征在于,将配置块分割为校验块时,若最后一个校验块bit数不足,则将其补足,以使得每个校验块的数据量一致;
在将每个编码块的校验值和每个配置块组合之前,去除校验块中补足部分的bit数据。
3.根据权利要求1所述的检纠错电路,其特征在于,所述数据处理模块中,对配置块中的解码块进行解码的具体方式为:
每隔n bit从配置块中截取出对应的解码块进行解码;并发送至ECC校验计算模块。
4.根据权利要求1所述的检纠错电路,其特征在于,所述数据处理模块还包括数据处理回写单元,用于在ECC校验计算模块对错误bit翻转纠正完毕后,将ECC处理内存模块中的数据读出并发送至配置块读写控制模块,以将翻转纠正后数据重新写入配置内存模块中。
5.根据权利要求1所述的检纠错电路,其特征在于,所述等待时间由用户进行配置,以保证已下载配置码流的FPGA已开始正常工作。
6.根据权利要求1所述的检纠错电路,其特征在于,每个配置块校验结束后,对重新回写至ECC处理内存模块的数据进行CRC校验;全部配置块校验结束后得到校验后CRC值;
若CRC值未发生错误,则检纠错电路重新对所有配置块进行校验;若CRC值发生错误,则检纠错电路停止,并发送错误报警信息。
7.一种参数可配置的自动检纠错方法,其特征在于,所述方法应用于权利要求1-6任一所述的检纠错电路中,该方法包括:
S1、将配置码流下载至FPGA中,在等待时间计时结束后,执行S2;
S2、基于配置码流的大小,逐次从配置内存模块中读出相同大小的配置块;
S3、根据参数配置中的参数,将配置块打散,并形成最终码流;
S4、对所述最终码流进行ECC校验计算,并将错误翻转粒子进行翻转纠正;
S5、将翻转纠正后的数据重新写回ECC处理内存模块中,并覆盖翻转纠正前对应的数据,同时将翻转纠正后的数据重新写入配置内存模块中,并覆盖配置内存模块中翻转纠正前的对应的数据;
S6、对重新写回ECC处理内存模块中的数据进行CRC校验;
S7、全部配置块读取完毕,则执行S8;否则,读取下一配置块,并返回S3;
S8、计算得到校验后的CRC值,若CRC值未发生错误,则返回S2;否则,停止并报错。
8.根据权利要求7所述的方法,其特征在于,所述S3进一步包括:
S31、基于参数设置中的n及ECC基本处理单元大小,将配置码流的每个配置块分割为对应数量的校验块;
S32、在校验块中,每隔n bit选取1bit,将每个校验块分割成对应数量的编码块;
S33、对每个编码块进行校验编码,计算出每个编码块的校验值;
S34、将每个编码块的校验值和每个配置块组合,形成最终码流。
9.根据权利要求8所述的方法,其特征在于,所述S31中,将配置块分割为校验块时,若最后一个校验块bit数不足,则将其补足,以使得每个校验块的数据量一致;
所述S34中,在将每个编码块的校验值和每个配置块组合之前,去除校验块中补足部分的bit数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210917710.5A CN114996050B (zh) | 2022-08-01 | 2022-08-01 | 一种参数可配置的自动检纠错电路及检纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210917710.5A CN114996050B (zh) | 2022-08-01 | 2022-08-01 | 一种参数可配置的自动检纠错电路及检纠错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114996050A CN114996050A (zh) | 2022-09-02 |
CN114996050B true CN114996050B (zh) | 2022-10-25 |
Family
ID=83022223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210917710.5A Active CN114996050B (zh) | 2022-08-01 | 2022-08-01 | 一种参数可配置的自动检纠错电路及检纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114996050B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608918A (zh) * | 2021-08-19 | 2021-11-05 | 无锡中微亿芯有限公司 | 具有对可编程逻辑模块自动检纠错功能的fpga |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102002925B1 (ko) * | 2012-11-01 | 2019-07-23 | 삼성전자주식회사 | 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법 |
CN107710325A (zh) * | 2015-12-31 | 2018-02-16 | 京微雅格(北京)科技有限公司 | 一种fpga电路和其配置文件处理方法 |
CN107015880B (zh) * | 2016-01-28 | 2020-06-30 | 京微雅格(北京)科技有限公司 | 一种fpga电路和其配置文件处理方法 |
CN109756235A (zh) * | 2018-12-07 | 2019-05-14 | 天津津航计算技术研究所 | 一种可配置的并行bch纠错编码方法 |
CN111143107B (zh) * | 2019-11-13 | 2022-06-17 | 广东高云半导体科技股份有限公司 | 一种fpga单粒子反转校验电路和方法 |
CN113655745B (zh) * | 2021-08-19 | 2023-04-07 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
-
2022
- 2022-08-01 CN CN202210917710.5A patent/CN114996050B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608918A (zh) * | 2021-08-19 | 2021-11-05 | 无锡中微亿芯有限公司 | 具有对可编程逻辑模块自动检纠错功能的fpga |
Also Published As
Publication number | Publication date |
---|---|
CN114996050A (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105280240B (zh) | 一种Nand Flash参数的读取方法 | |
CN102279776B (zh) | 一种错误检查与纠正能力的测试方法及装置 | |
US8433950B2 (en) | System to determine fault tolerance in an integrated circuit and associated methods | |
CN111176884A (zh) | 用于fpga配置存储器的sec校验方法和装置 | |
CN110289041A (zh) | 一种系统芯片中bist与ecc结合的存储器检测装置 | |
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
WO2019165794A1 (zh) | 数据校验方法及装置、计算机可读存储介质 | |
TW201503153A (zh) | 快閃記憶體裝置、記憶體控制器及快閃記憶體的控制方法 | |
CN110136769B (zh) | Otp寄存器数据修正方法、装置、计算机设备和存储介质 | |
US20090287969A1 (en) | Electronic apparatus and bit error rate tolerance method for programming non-volatile memory devices | |
US9172398B2 (en) | Vehicle data abnormality determination device | |
CN111104246B (zh) | 提升dram的错误检测与纠错的验证效率的方法、装置、计算机设备及存储介质 | |
CN114996050B (zh) | 一种参数可配置的自动检纠错电路及检纠错方法 | |
CN108108262A (zh) | 具有检查所选择的存储器访问的硬件检查单元的集成电路 | |
CN113655745B (zh) | 一种实现配置码流自动检纠错的fpga | |
CN113254288B (zh) | 一种星载设备中fpga单粒子翻转故障注入方法 | |
US11238948B2 (en) | Testing memory cells by allocating an access value to a memory access and granting an access credit | |
CN114816806A (zh) | 容器可用性验证方法、装置、计算机设备和存储介质 | |
US20050223241A1 (en) | Semiconductor intergrated circuit device, data storage verification device, and data storage verification method | |
CN111026579B (zh) | 一种数据检错能力的校验方法、装置、终端设备及介质 | |
JP4135413B2 (ja) | メモリチェックシステムおよびメモリチェック方法、信号処理装置および信号処理装置のメモリチェック方法、ならびに、メモリチェックプログラム | |
CN115543678B (zh) | 监管ddr5内存颗粒错误的方法、系统、存储介质及设备 | |
CN115904797B (zh) | 基于现场可编程门阵列的cpu内存诊断方法、系统和设备 | |
CN117056149B (zh) | 一种内存测试方法、装置、计算设备及存储介质 | |
TWI569279B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |