首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于FPGA的检纠错逻辑算法的实现
来源:本站整理  作者:佚名  2011-09-21 06:54:03



当执行纠错功能时,需要同时读取数据位和监督校验位,并且对所读取的数据位按照校验位的生成算法重新进行1次校验位的生成(可以用NCC0~NCC6来表示),通过CC0~CC6和NCCO~NCC6的比对来进行检错纠错运算。如果发生1位数据翻转错误,则新生成的校验位NCC中会有若干位同原先的CC校验位相异,通过相异的位可以对数据进行纠错。假设目前检测出CCl,CC2,CC4,CC5这4个校验位同新生成的NCC中对应位的异或运算结果为1,如图2中细箭头所示。

  

  CCl校验位相异对应出错数据位列号倒数第二位为1;CC2对应列号倒数第3位为1,可以推出错误数据位的列号为110,同理行号相关的几个校验位中CC4,CC5出现相异可以推出错误数据位的行号为0110,由此可以知道出错的数据位是DA22,再对确认出错的数据位取反就实现了纠正1位错误的功能。而如果出现2位错误,比如数据位DAl和DA34同时出错,如图2中所示,这会引起新老校验位中的CC0,CCl,CC3,CC4,CC6同时出现相异。这时如果还按照上述纠正1位错误时的算法,就会推出出错数据位的行号为1011列号为011,这样,就会认为是数据为DA51发生了翻转,从而产生错误的检纠错结果,如图2中粗箭头所示。以前的测试数据表明,若在近地轨道中,SRAM存储器中的每一个存储数据位一天之内发生SEU概率约是10-7(位·天),则可以推导出这个SRAM中1组64位的数据,在一天时间内有2位同时出现错误的可能性约为10-10(次·天),在南大西洋辐射异常区和太阳活动高峰期,这种情况的发生率可能还会提高1~2个数量级。

  为了避免在发生双位元错误时出现错检错纠的情况,需要增加1个校验位CC7,它是所有数据位的奇偶校验结果,即CC7=DA0⊕DAl⊕DA2⊕DA3⊕…⊕DA63。这样在每次出现1个数据位错误时,新生成的NCC7也都会与先前的值相异,而当数据位中有2个存储单元出错,其他校验位会检测有错误出现,但NCC7不会发生变化,NCC7⊕CC7=0,这时就可以判断出有双位错误,从而使系统实现了检测双位错误的功能。

  2 设计实现

  将所有与主存储器中数据一一对应的校验位(CCl~CC8)存储在另一个独立的8位SRAM中,系统的硬件结构如图3所示。

  

纠错逻辑电路模块

  存储校验位的8位数据SRAM2同样遇到出现SEU效应得可能,通过分析可以知道,SRAM2出现1位数据翻转时,只有对应的一位数值与通过数据位新生成的校验位数值相异,而其他的7个校验位数据都没有变化,此时对对应的校验位取反就实现了纠错功能。对于出现双位元错误的可能,通过理论分析,可以知道一组8位的校验数据在一天中出现这种情况的概率约为7×10-13。,相比于主存储器而言降低了两三个数量级,暂时可以不予考虑。

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:90,292.97000 毫秒