论文部分内容阅读
在某些工程试验项目中,除了试验环境恶劣外,试验成本也极高,因此为节约试验成本,对测试设备的可靠性要求苛刻,尤其对于试验数据的存储的完整性和正确性有极高要求。NAND flash以其高速、高存储密度、抗震、耐高低温等优点成为此类应用的最佳选择。但是,由于其结构特点与制造工艺限制,NAND flash使用中存在位错误现象。基于存储应用的纠错码技术(Error Correction Code, ECC)能够有效解决上述数据可靠性问题。本文针对专用数据存储设备的NAND flash控制器,设计并以固件形式实现了一种BCH纠错算法,对提高存储可靠性具有现实意义。本文首先对BCH纠错算法进行理论研究与系统层的仿真验证,具体包括算法实现的环境建立(有限域概述及构造)、线性分组码及循环码的特性描述、二进制BCH纠错算法的参数意义及选取。随后通过系统层算法的软件实现进行功能验证,并作为固件设计、调试及优化基础。在系统层算法验证的基础上,对BCH纠错算法进行了基于FPGA的固件设计,主要包括BCH编码器和译码器两大部分。编码器固件设计主要描述了参数选取分析过程以及32位并行编码器设计和逻辑实现。译码器固件设计首先详细分析有限域构造的固件实现过程,即元素生成及运算法则的建立。接着按译码算法三大步:校正子计算、错误位置多项式的确定及钱氏搜索纠错的逻辑实现进行详细分析。对固件算法的硬件验证平台、基于ZYNQ的算法与Flash控制器及上位机的数据交互方式进行描述。本文最后在硬件验证平台上对固件BCH纠错算法进行系统性测试,针对纠错功能的实现进行固件仿真测试及实物纠错能力测试,针对读写速度进行速度变化率测试,并且从应用角度对逻辑资源使用率测试。测试结果有效验证了算法设计的正确性及合理性。