错误检测与纠正电路的设计与实现 错误检测与纠正电路的设计与实现 [pic] 摘 要:针对一些恶劣的电磁环境对随机存储器(RAM)电路误码影响的情况,根据纠错 编码的基本原理,提出简单实用的能检查两位错误并自动纠正一位错误的EDAC算法;通 过VHDL语言编程设计,由FPGA器件来实现,并给出仿真结果。 关键词:错误检测与纠正(EDAC) 汉明距离 FPGA VHDL 引 言 在一些电磁环境比较恶劣的情况下,一些大规模集成电路常常会受到干扰,导致不能 正常工作。特别是像RAM这种利用双稳态进行存储的器件,往往会在强干扰 下发生翻转,使原来存储的"0"变为"1",或者"1"变为"0",造成的后果往往是很严重的 。例如导致一些控制程序跑飞,存储的关键数据出错等等。现 在,随着芯片集成度的增加,发生错误的可能性也在增大。在一些特定的应用中,这已 经成为一个不能忽视的问题。例如在空间电子应用领域,单粒子翻转效应就成 为困扰设计师的一个难题。 在这种情况下,我们可以采用错误检测与纠正EDAC(Error Detection And Correction)电路来有效地减少或避免这种情况的出现。根据检错、纠错的原理,主要 思想是在数据写入时,根据写入的数据生成一定位数的校验码,与 相应的数据一起保存起来;当读出时,同时也将校验码读出,进行判决。如果出现一位 错误则自动纠正,将正确的数据送出,并同时将改正以后的数据回写覆盖原来 错误的数据;如果出现两位错误则产生中断报告,通知CPU进行异常处理。所有这一切动 作都是靠硬件设计自动完成的,具有实时性和自动完成的特点。通过这样 的EDAC电路,能大大提高系统的抗干扰能力,从而提高系统的可靠性。 当然,有一些现成的集成电路芯片可以完成上述功能,如74系列的74630芯片等。但 由于嵌入式系统中,往往由于集成化的需要,要将这样的功能集成到FPGA中去实现,因……