CN106293991B - 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法 - Google Patents

基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法 Download PDF

Info

Publication number
CN106293991B
CN106293991B CN201610651284.XA CN201610651284A CN106293991B CN 106293991 B CN106293991 B CN 106293991B CN 201610651284 A CN201610651284 A CN 201610651284A CN 106293991 B CN106293991 B CN 106293991B
Authority
CN
China
Prior art keywords
frame
module
fpga
data
address
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
CN201610651284.XA
Other languages
English (en)
Other versions
CN106293991A (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.)
Shanghai Radio Equipment Research Institute
Original Assignee
Shanghai Radio Equipment Research Institute
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 Shanghai Radio Equipment Research Institute filed Critical Shanghai Radio Equipment Research Institute
Priority to CN201610651284.XA priority Critical patent/CN106293991B/zh
Publication of CN106293991A publication Critical patent/CN106293991A/zh
Application granted granted Critical
Publication of CN106293991B publication Critical patent/CN106293991B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明涉及一种ECC纠错码的FPGA抗单粒子翻转快速刷新电路及方法,对于所述帧地址产生模块生成的任意一个帧地址,读写控制模块通过FPGA的ICAP接口读取数据帧,且每次只读取当前帧地址的帧数据,同时将读取的数据帧写入到帧缓存模块中;工作状态控制及错误解析模块从FPGA的帧ECC接口处接收的帧同步信号从低变高后,读取当前数据帧的ECC纠错的错误码来计算出数据帧中发生翻转的位置;帧纠错模块根据发生翻转的位置,从所述帧缓存模块中读取发生单粒子翻转的一段数据,对发生翻转的位取反得到纠错后的正确数据,并将正确数据重新写入到所述帧缓存模块中,再由所述读写控制模块将正确的数据帧重新写入到FPGA的当前帧地址中,完成FPGA抗单粒子翻转纠错。

Description

基于ECC纠错码的FPGA抗单粒子翻转快速刷新电路及方法
技术领域
本发明涉及空间有效载荷中FPGA电路可靠性设计领域,特别涉及一种基于ECC纠错码的FPGA抗单粒子翻转快速刷新电路及方法。
背景技术
Virtex-4和Virtex-5系列FPGA属于SRAM型FPGA,目前SRAM型FPGA的配置刷新电路多采用反熔丝型FPGA作为主控芯片,分别连接PROM和FPGA,控制正常加载程序和正常工作后的动态刷新。其中,反熔丝型FPGA采用A54SX72A等系列FPGA,该芯片体积大,占用印制板上宝贵的空间,并且在电路设计时,需要断开FPGA和PROM的加载连线,反熔丝型FPGA跨接在断开的两端,与原电路设计相比更改多,技术实现复杂,并且由于布局布线的影响,刷新速度慢。以上方法主要针对老一代FPGA例如Virtex和Virtex-Ⅱ系列FPGA采取的电路设计,没有考虑Virtex-4和Virtex-5系列等新一代FPGA的硬件特点和技术优势。
以下的现有技术“一种基于SRAM型FPGA配置、刷新一体化装置200920110357.X”、“FPGA内ROM映射区动态刷新纠错方法201110295603.5”、“基于SELECTMAP的宇航FPGA通用刷新电路及其实现方法201410051615.7”、“基于JTAG接口的宇航FPGA通用刷新电路及其实现方法201410051652.8”、“一种SRAM型大规模FPGA抗单粒子装置及方法》201410461355.0”和“一种SRAM型FPGA的配置、刷新与程序上注一体化系统201410851497.8”中,都采用外部反熔丝型FPGA作为控制电路实现FPGA芯片动态刷新,通过片外方式访问FPGA内部存储区,数据宽度和读写速度限制了动态刷新频率,不适合在Virtex-4和Virtex-5系列等大容量FPGA上应用,并且占用宝贵的印制板空间资源。
“抗单粒子翻转的SRAM型FPGA刷新电路及刷新方法201410250530.1”使用两片PROM分别存放配置文件和刷新文件,不仅增加布线难度,而且占用更多印制板的布局空间。“一种用于SRAM型FPGA配置刷新的CRC校验方法》201410783776.5”同样使用反熔丝型FPGA作为控制电路,并且采用CRC校验方式检测FPGA是否发生单粒子翻转,该校验方式不仅增加程序设计的难度,而且校验结果不能够提供数据帧发生单粒子翻转的位置,不适合在Virtex-4和Virtex-5系列FPGA上应用。
发明内容
本发明的目的在于避免上述背景技术中的不足之处而提出一种基于ECC纠错码的FPGA抗单粒子翻转快速刷新电路及方法,实现Virtex-4和Virtex-5系列FPGA在硬件资源有限的平台上的抗单粒子翻转快速纠错刷新。
为了达到上述目的,本发明的一个技术方案是提供一种ECC纠错码的FPGA抗单粒子翻转快速刷新方法,其中:
帧地址产生模块依次生成需要检测纠错的帧地址;
对于所述帧地址产生模块生成的任意一个帧地址,读写控制模块通过相连接的FPGA的ICAP接口读取数据帧,且每次只读取当前帧地址的帧数据,同时将读取的数据帧写入到帧缓存模块中;
工作状态控制及错误解析模块从相连接的FPGA的帧ECC接口处接收的帧同步信号从低变高后,所述工作状态控制及错误解析模块通过所述帧ECC接口读取当前数据帧的ECC纠错的错误码,并在读取到表示发生单粒子翻转的错误码来计算出数据帧中发生翻转的位置;
帧纠错模块根据发生翻转的位置,从所述帧缓存模块中读取发生单粒子翻转的一段数据,对发生翻转的位取反得到纠错后的正确数据,并将正确数据重新写入到所述帧缓存模块中,再由所述读写控制模块将正确的数据帧重新写入到FPGA的当前帧地址中,完成FPGA抗单粒子翻转纠错;
帧地址产生模块产生下一个帧地址。
优选地,所述读写控制模块每次将读取的数据帧,写入到帧缓存模块的双口RAM中,双口RAM的数据宽度与ICAP接口的数据宽度一致,数据深度由数据帧的长度决定。
优选地,所述帧纠错模块从帧缓存模块中读取发生单粒子翻转的一段数据时,每次从数据帧中读取的数据的位数与双口RAM的数据宽度相对应;所述帧纠错模块对发生翻转的位置以该位数进行整除得到双口RAM的地址,并根据整除的余数得到发生翻转的位进行数据取反后,重新写入到双口RAM中,再由所述读写控制模块将双口RAM中的正确数据帧写入到FPGA对应的帧地址中。
优选地,所述工作状态控制及错误解析模块根据错误码判断发生单粒子翻转时,从错误码的低11位计算出发生翻转的位置:
其中,S为错误码的低11位所代表的十进制数。
优选地,FPGA健康评估模块监测FPGA错误发生的频率和程度,来对检测频率进行实时调整;之后,根据FPGA健康评估模块选定的检测频率,执行本方案所述的方法;
为了对检测频率进行实时调整,FPGA健康评估模块在选定的检测频率下获取每个检测周期整个FPGA的检测结果,判断FPGA发生的错误类型:
当判断单位检测的错误计数小于第一阈值时,降低当前的检测频率进行检测;除非当前的检测频率已经是为单位翻转设定的最低检测频率,则保持当前的检测频率进行检测;
当判断单位检测的错误计数超过第二阈值时,提高当前的检测频率进行检测;除非当前的检测频率已经是为单位翻转设定的最高检测频率,则保持当前的检测频率进行检测;
当判断多位检测的错误计数小于第三阈值时,降低当前的检测频率进行检测;除非当前的检测频率已经是为多位翻转设定的最低检测频率,则保持当前的检测频率进行检测;
当判断多位检测的错误计数超过第四阈值时,提高当前的检测频率进行检测;除非当前的检测频率已经是为多位翻转设定的最高检测频率,则保持当前的检测频率进行检测。
优选地,设第一数组P1=[1、4、8]中的数值,分别为单位翻转时对正常检测频率f0的可选倍数;FPGA健康评估模块根据单位检测的错误计数与第一阈值或第二阈值的比对结果,从第一数组P1中选取高于当前一档的频率倍数、或低于当前一档的频率倍数、或保持当前的频率倍数;第一阈值为10,第二阈值为20;
设第二数组P2=[32、128]中的数值,分别为多位翻转时对正常检测频率f0的可选倍数;FPGA健康评估模块根据多位检测的错误计数与第三阈值或第四阈值的比对结果,从第二数组P2中选取高于当前一档的频率倍数、或低于当前一档的频率倍数、或保持当前的频率倍数;第三阈值为10,第四阈值为30。
优选地,由所述帧地址产生模块产生的帧地址与FPGA的结构相对应,帧地址的分配信息通过帧地址解析电路获得;
在帧地址解析电路中,当监测FPGA的配置完成标志信号表示该FPGA已经完成正常加载时,开始帧地址解析,对帧地址进行初始化赋0表示从数据帧的首地址开始读取;
帧地址解析电路从当前帧地址完成对一帧数据的读取后,得到下一个相邻数据帧的帧地址并通过串口通信送出,当判断送出的帧地址超过范围后停止,否则继续通过串口通信送出下一个相邻数据帧的帧地址,直到数据结尾。
本发明的另一个技术方案是提供一种基于ECC纠错码的FPGA抗单粒子翻转快速刷新电路,其包含:读写控制模块、帧地址产生模块、帧缓存模块、帧纠错模块、工作状态控制及错误解析模块、FPGA健康评估模块;
其中,所述帧地址产生模块,依次生成需要检测纠错的帧地址;
所述读写控制模块,根据帧地址产生模块生成的当前帧地址,从相连接的FPGA的ICAP接口处读取当前帧地址的数据帧;以及,将帧缓存模块获得纠错后正确的数据帧,重新写入到FPGA的当前帧地址;
所述帧缓存模块,从所述读写控制模块获得读取的数据帧进行存储,以及对存在位翻转的数据帧经纠错得到的正确数据写入对应帧地址;
所述帧纠错模块,根据发生翻转的位置,从帧缓存模块读取发生翻转的数据,并对数据帧中的位翻转进行纠正后,将纠错后的正确数据重新写入到所述帧缓存模块;
所述工作状态控制及错误解析模块,控制整个电路的工作状态,根据其从相连接的FPGA的帧ECC接口处读取当前数据帧的ECC纠错的错误码,解析出数据帧中发生翻转的位置;
所述FPGA健康评估模块,判断错误发生的频率和程度,对刷新周期进行调整。
优选地,由所述帧地址产生模块产生的帧地址与FPGA的结构相对应,帧地址的分配信息通过帧地址解析电路获得;所述帧地址解析电路进一步包含:帧指令产生模块,完成帧地址初始化、读取数据帧和读取帧地址的指令包生成,使所述读写控制模块执行指令包的写入、数据帧和帧地址的读取;以及,通信模块,将获得的帧地址以串口通信的方式送出,通过分析获得帧地址的分配信息。
优选地,所述方法及电路适用于Virtex-4和Virtex-5系列FPGA。
本发明不再使用反熔丝型FPGA作为FPGA动态刷新的硬件载体,有效克服了传统SRAM型FPGA动态刷新电路的不足,新设计的电路具有刷新速度快,刷新率智能调整和结构紧凑的特点,非常适合在印制板空间资源有限的硬件平台上使用。
附图说明
图1是表示本发明所涉及的电路示意图。
图2是表示本发明所涉及的工作状态控制流程图。
图3是表示本发明所涉及的FPGA健康评估模块的处理流程图。
图4是表示本发明所涉及的FPGA帧地址解析电路示意图。
图5是表示本发明所涉及的FPGA帧地址解析电路的处理流程图。
具体实施方式
以下,利用附图来说明本发明所涉及的基于ECC纠错码的FPGA抗单粒子翻转快速刷新电路的优选实施方式。
图1是表示本发明所涉及的电路示意图。图1中的电路包括:读写控制模块1、帧地址产生模块2、帧缓存模块3、帧纠错模块4、工作状态控制及错误解析模块5和FPGA健康评估模块6。
其中,帧地址产生模块2,根据FPGA结构产生相应的帧地址,该地址可通过帧地址解析电路获得;帧缓存模块3,存储读取的一帧数据,如果数据帧存在位翻转,经过纠错后会被写入对应帧地址;帧纠错模块4,根据发生错误的位置,纠正帧数据中的位翻转;工作状态控制及错误解析模块5,控制整个抗单粒子翻转纠错刷新的工作状态,通过获得的错误码解析出错误发生的位置;FPGA健康评估模块6,根据错误发生的频率和程度,估算空间辐照对FPGA的影响,实时调整刷新周期。
所述工作状态控制及错误解析模块5与FPGA的帧ECC接口7连接,读写控制模块1与FPGA的ICAP接口8连接,以上模块都在FPGA中实现,不需要额外的反熔丝型FPGA作为硬件载体。
帧地址产生模块2依次生成需要读取的帧地址,读写控制模块1每次读取一帧数据,同时把数据写入到帧缓存模块3中,当FPGA的帧ECC接口7输出的帧同步信号从低变高后,工作状态控制及错误解析模块5读取ECC纠错码,根据错误码计算出帧数据中发生翻转的位置。帧纠错模块4根据发生翻转的位置,从帧缓存模块3中读取发生单粒子翻转的一段数据,数据的长度与内部使用的双口RAM数据宽度有关,把发生翻转的位取反后,重新将纠错后正确的数据写入到帧缓存模块3中。
帧缓存模块3数据完成单粒子翻转纠错后,读写控制模块1将正确的数据帧重新写入到FPGA当前帧地址中,即完成FPGA抗单粒子翻转纠错功能。帧地址产生模块2产生下一个需要检测纠错的帧地址,根据Virtex-4和Virtex-5系列FPGA帧结构,地址低位可能是不连续的,帧地址分配可通过帧地址解析电路获得。
FPGA健康评估模块6根据检测结果实时调整检测频率。假设正常检测频率为f0,FPGA健康评估模块6可以按照f0的整数倍频率检测FPGA单粒子翻转。本发明对整数倍取值做了限制,根据检测结果,如果发生单位翻转,则在P1=[1、4、8]数组中选择检测频率f0的倍数,如果发生多位翻转,则在P2=[32、128]数组中选择检测频率f0的倍数。默认系数为P1=1,即正常检测频率f0,P1中的2、4、8和P2中的32、128代表正常检测频率f0的倍数,数字越大表示当前检测频率越快。
按照图3的流程图,说明本发明的所涉及的健康评估模块6的工作处理流程:
步骤A1、设置当前的检测频率为f0,即正常检测频率;
步骤A2、在每个检测周期获取整个FPGA的检测结果;
步骤A3、根据检测结果,判读FPGA发生的错误类型,如果发生多位翻转,则进入多位错误检测模式,进入到步骤A3.1,如果发生单位翻转,则进入单位错误检测模式,进入到步骤A4。
步骤A3.1、判断多位检测的错误计数是否超过阈值V4,根据经验V4可设置为30,如果超过V4,提高当前的检测频率,当f0的倍数小于32时,则f0的倍数赋值为32;当f0的倍数为32时,则f0的倍数赋值为128;当f0的倍数为128时,则f0的倍数保持不变,最后进入步骤A2。如果不满足该条件,进入步骤A3.2;
步骤A3.2、判断多位检测的错误计数是否小于阈值V3,根据经验V3可设置为10,如果小于V3,降低当前的检测频率,当f0的倍数为128时,则f0的倍数赋值为32;当f0的倍数为32时,则f0的倍数保持不变。如果不满足该条件,进入步骤A2;
步骤A4、判断单位检测的错误计数是否超过阈值V2,根据经验V2可设置为20,如果超过V2,提高当前的检测频率,当f0的倍数为1时,则f0的倍数赋值为4;当f0的倍数为4时,则f0的倍数赋值为8;当f0的倍数为8时,则f0的倍数保持不变,最后进入步骤A2。如果不满足该条件,进入步骤A4;
步骤A5、判断单位检测的错误计数是否小于阈值V1,根据经验V1可设置为10,如果小于V1,降低当前的检测频率,当f0的倍数为8或者大于8时,则f0的倍数赋值为4;当f0的倍数为4时,则f0的倍数赋值为1;当f0的倍数为1时,则f0的倍数保持不变,最后进入步骤A2。如果不满足该条件,进入步骤A2。
接着,按照图2的流程图,进行本发明所涉及的Virtex-4系列FPGA抗单粒子翻转纠错刷新装置中的工作处理流程:
步骤B1、监测FPGA的配置完成标志Done信号,等待信号变高后即FPGA已完成正常加载,抗单粒子翻转检测纠错程序开始运行,对帧地址进行初始化赋0,表示从数据帧的首地址开始检测。
步骤B2、判断帧地址是否超出范围,如果超出范围,对帧地址进行初始化赋0;如果未超出范围,则进入数据帧读取的工作状态。
步骤B3、通过ICAP接口8读取数据帧,每次只读取当前地址的帧数据,同时将读取的数据帧写入到帧缓存模块3的双口RAM中,双口RAM的数据宽度与ICAP接口8数据宽度一致,数据深度由数据帧的长度决定。
步骤B4、在读取数据帧时,FPGA会对数据帧经ECC纠错,纠错的结果和完成标志通过帧ECC接口7输出。当帧同步信号变高后,工作状态控制及错误解析模块5读取当前数据帧的ECC纠错码,根据错误码判断是否发生单粒子翻转,如果发生单粒子翻转,从错误码的低11位计算出发生翻转的位置,假设错误码的低11位所代表的十进制数为S,其计算公式如下:
步骤B5、如果数据帧发生单粒子翻转,则进入纠错处理状态,否则开始准备检测下一个相邻的数据帧。
步骤B6、帧纠错模块4对接收到错误翻转位置转换成内部双口RAM的地址,通常数据帧的长度为1312位,双口RAM存放数据的地址从0到40,每个地址数据位数为32位。帧纠错模块4每次只能读取32位数据,对翻转位置S2求32整除得到双口RAM的地址,对翻转位置S2求32整除的余数得到该地址32位数据中某一位发生翻转的位置,将该位数据取反得到正确的数据,重新写入双口RAM中,最后将双口RAM的正确数据写入到FPGA对应的帧地址中。
步骤B7、将帧地址指向下一个需要检测的相邻数据帧。帧地址主要由主地址和次地址组成,FPGA的配置文件是由不同类型的数据帧组成,不同类型的数据帧决定主地址的分配,主地址加1还是次地址加1由事先获得的帧地址分配信息决定。
图4是本发明所涉及的FPGA帧地址解析电路示意图,该电路包括:帧指令产生模块、读写控制模块1和通信模块,其中读写控制模块1与FPGA的ICAP接口8连接,以上模块都在FPGA中实现。
帧指令产生模块完成帧地址初始化、读取数据帧和读取帧地址的指令包生成。读写控制模块1执行指令包的写入、数据帧和帧地址的读取。通信模块将获得的帧地址以串口通信的方式送出,通过分析获得帧地址的分配信息。
按照图5的流程图,说明本发明所涉及的Virtex-4和Virtex-5系列FPGA帧地址解析电路的工作处理流程:
步骤C1、监测FPGA的配置完成标志Done信号,等待信号变高后即FPGA已完成正常加载,帧地址解析程序开始运行,对帧地址进行初始化赋0,表示从数据帧的首地址开始读取。
步骤C2、从当前帧地址读取一帧数据,舍弃数据帧内容,等待一帧数据读取完成后,此时帧地址指向下一个相邻数据帧,写入帧地址读取的指令包,即得到下一个相邻数据帧的帧地址。
步骤C3、通常帧地址长度为32位,串口通信例如RS422每次传送8位,总共需要传送4个字节,对接收到的帧地址进行分析即可得到帧地址分配信息。
步骤C4、判断帧地址是否超出范围,如果超出范围停止程序运行,否则继续执行步骤C2和步骤C3,串口通信会一直输出下一个相邻数据帧的地址,直到数据的结尾。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

Claims (10)

1.一种ECC纠错码的FPGA抗单粒子翻转刷新方法,其特征在于,
帧地址产生模块(2)依次生成需要检测纠错的帧地址;
对于所述帧地址产生模块(2)生成的任意一个帧地址,读写控制模块(1)通过相连接的FPGA的ICAP接口(8)读取数据帧,且每次只读取当前帧地址的帧数据,同时将读取的数据帧写入到帧缓存模块(3)中;
工作状态控制及错误解析模块(5)从相连接的FPGA的帧ECC接口(7)处接收的帧同步信号从低变高后,所述工作状态控制及错误解析模块(5)通过所述帧ECC接口(7)读取当前数据帧的ECC纠错的错误码,并根据读取到的表示发生单粒子翻转的错误码来计算出数据帧中发生翻转的位置;
帧纠错模块(4)根据发生翻转的位置,从所述帧缓存模块(3)中读取发生单粒子翻转的一段数据,对发生翻转的位取反得到纠错后的正确数据,并将正确数据重新写入到所述帧缓存模块(3)中,再由所述读写控制模块(1)将正确的数据帧重新写入到FPGA的当前帧地址中,完成FPGA抗单粒子翻转纠错;
帧地址产生模块(2)产生下一个帧地址。
2.如权利要求1所述的方法,其特征在于,
所述读写控制模块(1)每次将读取的数据帧,写入到帧缓存模块(3)的双口RAM中,双口RAM的数据宽度与ICAP接口(8)的数据宽度一致,双口RAM的数据深度由数据帧的长度决定。
3.如权利要求2所述的方法,其特征在于,
所述帧纠错模块(4)从帧缓存模块(3)中读取发生单粒子翻转的一段数据时,每次从数据帧中读取的数据的位数与双口RAM的数据宽度相对应;所述帧纠错模块(4)对发生翻转的位置以该位数进行整除得到双口RAM的地址,并根据整除的余数得到发生翻转的位进行数据取反后,重新写入到双口RAM中,再由所述读写控制模块(1)将双口RAM中的正确数据帧写入到FPGA对应的帧地址中。
4.如权利要求1所述的方法,其特征在于,
所述工作状态控制及错误解析模块(5)根据错误码判断发生单粒子翻转时,从错误码的低11位计算出发生翻转的位置:
发生翻转的位置
其中,S为错误码的低11位所代表的十进制数。
5.如权利要求1所述的方法,其特征在于,
FPGA健康评估模块(6)监测FPGA错误发生的频率和程度,来对检测频率进行实时调整;之后,根据FPGA健康评估模块(6)选定的检测频率,执行权利要求1中所述的方法;
为了对检测频率进行实时调整,FPGA健康评估模块(6)在选定的检测频率下获取每个检测周期整个FPGA的检测结果,判断FPGA发生的错误类型:
当判断单位检测的错误计数小于第一阈值(V1)时,降低当前的检测频率进行检测;除非当前的检测频率已经是为单位翻转设定的最低检测频率,则保持当前的检测频率进行检测;
当判断单位检测的错误计数超过第二阈值(V2)时,提高当前的检测频率进行检测;除非当前的检测频率已经是为单位翻转设定的最高检测频率,则保持当前的检测频率进行检测;
当判断多位检测的错误计数小于第三阈值(V3)时,降低当前的检测频率进行检测;除非当前的检测频率已经是为多位翻转设定的最低检测频率,则保持当前的检测频率进行检测;
当判断多位检测的错误计数超过第四阈值(V4)时,提高当前的检测频率进行检测;除非当前的检测频率已经是为多位翻转设定的最高检测频率,则保持当前的检测频率进行检测。
6.如权利要求5所述的方法,其特征在于,
设第一数组P1=[1、4、8]中的数值,分别为单位翻转时对正常检测频率f0的可选倍数;FPGA健康评估模块(6)根据单位检测的错误计数与第一阈值(V1)或第二阈值(V2)的比对结果,从第一数组P1中选取高于当前一档的频率倍数、或低于当前一档的频率倍数、或保持当前的频率倍数;第一阈值(V1)为10,第二阈值(V2)为20;
设第二数组P2=[32、128]中的数值,分别为多位翻转时对正常检测频率f0的可选倍数;FPGA健康评估模块(6)根据多位检测的错误计数与第三阈值(V3)或第四阈值(V4)的比对结果,从第二数组P2中选取高于当前一档的频率倍数、或低于当前一档的频率倍数、或保持当前的频率倍数;第三阈值(V3)为10,第四阈值(V4)为30。
7.如权利要求1所述的方法,其特征在于,
由所述帧地址产生模块(2)产生的帧地址与FPGA的结构相对应,帧地址的分配信息通过帧地址解析电路获得;
在帧地址解析电路中,当监测FPGA的配置完成标志信号表示该FPGA已经完成正常加载时,开始帧地址解析,对帧地址进行初始化赋0表示从数据帧的首地址开始读取;
帧地址解析电路从当前帧地址完成对一帧数据的读取后,得到下一个相邻数据帧的帧地址并通过串口通信送出,当判断送出的帧地址超过范围后停止,否则继续通过串口通信送出下一个相邻数据帧的帧地址,直到数据结尾。
8.如权利要求1所述的方法,其特征在于,
所述方法适用于Virtex-4和Virtex-5系列FPGA。
9.一种基于ECC纠错码的FPGA抗单粒子翻转刷新电路,其特征在于,包含:读写控制模块(1)、帧地址产生模块(2)、帧缓存模块(3)、帧纠错模块(4)、工作状态控制及错误解析模块(5)、FPGA健康评估模块(6);
其中,所述帧地址产生模块(2),依次生成需要检测纠错的帧地址;
所述读写控制模块(1),根据帧地址产生模块(2)生成的当前帧地址,从相连接的FPGA的ICAP接口(8)处读取当前帧地址的数据帧;以及,将帧缓存模块(3)获得纠错后正确的数据帧,重新写入到FPGA的当前帧地址;
所述帧缓存模块(3),从所述读写控制模块(1)获得读取的数据帧进行存储,以及对存在位翻转的数据帧经纠错得到的正确数据写入对应帧地址;
所述帧纠错模块(4),根据发生翻转的位置,从帧缓存模块(3)读取发生翻转的数据,并对数据帧中的位翻转进行纠正后,将纠错后的正确数据重新写入到所述帧缓存模块(3);
所述工作状态控制及错误解析模块(5),控制整个电路的工作状态,根据该工作状态控制及错误解析模块(5)从相连接的FPGA的帧ECC接口(7)处读取的当前数据帧的ECC纠错的错误码,解析出数据帧中发生翻转的位置;
所述FPGA健康评估模块(6),判断错误发生的频率和程度,对刷新周期进行调整。
10.如权利要求9所述的电路,其特征在于,
由所述帧地址产生模块(2)产生的帧地址与FPGA的结构相对应,帧地址的分配信息通过帧地址解析电路获得;
所述帧地址解析电路进一步包含:帧指令产生模块,完成帧地址初始化、读取数据帧和读取帧地址的指令包生成,使所述读写控制模块(1)执行指令包的写入、数据帧和帧地址的读取;以及,通信模块,将获得的帧地址以串口通信的方式送出,通过分析获得帧地址的分配信息。
CN201610651284.XA 2016-08-10 2016-08-10 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法 Active CN106293991B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610651284.XA CN106293991B (zh) 2016-08-10 2016-08-10 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610651284.XA CN106293991B (zh) 2016-08-10 2016-08-10 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法

Publications (2)

Publication Number Publication Date
CN106293991A CN106293991A (zh) 2017-01-04
CN106293991B true CN106293991B (zh) 2019-10-18

Family

ID=57667719

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610651284.XA Active CN106293991B (zh) 2016-08-10 2016-08-10 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法

Country Status (1)

Country Link
CN (1) CN106293991B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9965356B2 (en) * 2016-09-02 2018-05-08 Alibaba Group Holding Limited Method and system of high-availability PCIE SSD with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset
CN107945827B (zh) * 2017-10-29 2020-09-18 西安空间无线电技术研究所 一种基于Virtex5器件的位流文件解析方法及定时刷新方法
CN107894898A (zh) * 2017-11-28 2018-04-10 中科亿海微电子科技(苏州)有限公司 Sram型fpga片上刷新和纠错的装置、实现方法及fpga芯片
CN109783300B (zh) * 2018-12-20 2021-07-27 上海交通大学 基于关键度的fpga软错误多频度刷新方法及刷新器
CN110209547B (zh) * 2019-05-05 2023-06-16 北京空间飞行器总体设计部 一种sram型fpga单粒子翻转加固定时刷新频率确定方法及系统
CN111459712B (zh) * 2020-04-16 2021-04-02 上海安路信息科技股份有限公司 Sram型fpga单粒子翻转纠错方法及单粒子翻转纠错电路
CN111597073B (zh) * 2020-06-24 2021-08-03 上海安路信息科技股份有限公司 Fpga单粒子翻转纠错方法及电路
CN112698321B (zh) * 2020-12-11 2023-03-17 上海无线电设备研究所 基于dsp和fpga可调相位增量的数字下变频与多普勒补偿方法
CN114924808B (zh) * 2022-05-12 2023-03-14 中国电子科技集团公司第二十九研究所 一种基于双份存储程序的sram型fpga在轨可靠加载方法
CN115543683B (zh) * 2022-09-21 2023-07-18 深圳市紫光同创电子有限公司 单粒子翻转纠错方法、装置、电子设备以及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7036059B1 (en) * 2001-02-14 2006-04-25 Xilinx, Inc. Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays
CN104484214A (zh) * 2014-12-30 2015-04-01 华中科技大学 一种sram型fpga的配置、刷新与程序上注一体化系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7036059B1 (en) * 2001-02-14 2006-04-25 Xilinx, Inc. Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays
CN104484214A (zh) * 2014-12-30 2015-04-01 华中科技大学 一种sram型fpga的配置、刷新与程序上注一体化系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
抗单粒子翻转的双端口SRAM定时刷新机制研究;陈晨等;《微电子学》;20150831;第45卷(第4期);第512-515,520页 *

Also Published As

Publication number Publication date
CN106293991A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN106293991B (zh) 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法
US8397152B2 (en) Method of detecting an attack by fault injection on a memory device, and corresponding memory device
CN110389851A (zh) 具有错误校正功能的存储器设备及其操作方法
US9575125B1 (en) Memory device with reduced test time
CN107894898A (zh) Sram型fpga片上刷新和纠错的装置、实现方法及fpga芯片
CN106525231B (zh) 一种基于可编程逻辑器件的多光子符合计数器
CN110289041A (zh) 一种系统芯片中bist与ecc结合的存储器检测装置
CN103984506B (zh) 闪存存储设备数据写的方法和系统
CN111459712B (zh) Sram型fpga单粒子翻转纠错方法及单粒子翻转纠错电路
JP2013025835A (ja) 不揮発性半導体記憶装置
KR20150144715A (ko) 저장 데이터 값의 에러 검출
CN108228381A (zh) 存储系统及其错误校正方法
CN109542670A (zh) 基于错误快速定位的fpga软错误刷新方法以及刷新器
CN106373616B (zh) 一种检测随机存储器故障的方法、装置和网络处理器
CN100368997C (zh) 一种静态数据存储的纠错编码装置
CN110383258A (zh) 存储器装置环回系统及方法
CN103593252B (zh) 具有动态错误侦测及更正的存储器
US8392768B2 (en) Memory test system with advance features for completed memory system
CN105161137B (zh) 一种MLC架构中Nand Flash控制器电路实现装置
US10303543B1 (en) System and method for memory control having address integrity protection for error-protected data words of memory transactions
CN104298572B (zh) 一种纠错方法、纠错装置、主控制器和纠错系统
CN108459876A (zh) 用于缩减面积的控制寄存器电路的方法与装置
CN112349343A (zh) 电路结构、芯片以及电子设备
CN103177768B (zh) 一种存储器的bist地址扫描电路及其扫描方法
CN104348738B (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
GR01 Patent grant
GR01 Patent grant