论文部分内容阅读
随着物联网时代的发展,相关存储技术正在改变。因为NAND Flash具备高存储密度、低成本、擦除和写数据快等特点,所以大范围的应用于各类电子产品中。然而,随着半导体工艺技术进步,以及多阶存储技术的崛起,基于NAND Flash存储的原始误码率直接上升至10-3量级。使用传统循环检验码(Bose Chaudhuri Hocquenghem,BCH)进行纠错不能满足存储密度要求高的电子产品,因此高码率下拥有高纠错性能的低密度奇偶校验码(Low-Density Parity-check Codes,LDPC)成为了研究热点。本文以NAND Flash存储为应用背景,完成了基于LDPC码的纠错算法研究,并在工程上设计和实现了编码器、译码器模块电路。论文阐述了 NAND Flash的基本结构和闪存存储原理。进行了 NAND Flash差错机理分析,得出准循环(Quasi-Cyclic,QC)LDPC码适合作为NANDFlash的应用纠错码。另外,还分析了当前校验矩阵构造方法,考虑到工程实际运用,选择PEG(Progressive-Edge-Growth)构造法得到校验矩阵。将传统归一化最小和算法的并行信息传输结构改成分层消息传输结构,然后结合比特翻转算法思想,提出了 RLMS(Row-Layer-Min-Sum)算法。仿真表明该算法收敛速度快,平均迭代次数减少了大约31.7%~34.4%,且译码性能良好。为满足纠错模块需求,本文提出了一种半并行结构的译码器架构,实现了 RLMS算法并支持H矩阵在线可编程。根据所构造的校验矩阵的数学特性,提出一种简单可快速编码的方法。为了与译码器配合,设计了一种类CPU架构的LDPC编码器,并对其Shifter模块电路进行了优化,最终实现了本文编码算法。建立了 Matlab和ModelSim的仿真环境,并以此环境对LDPC码的纠错模块进行软件仿真。基于Xilinx公司的XC7K325T开发板和Flash模块,对LDPC码纠错模块进行FPGA验证,结果表明本文所设计的纠错码模块的性能满足4.15×10-3的原始误码率。支持QC-LDPC码的变换,即可构造出不同的循环码字用在本文设计的模块中。电路综合显示译码器可达到9.52Gb/s的吞吐率,且对比传统归一化最小和算法,RLMS算法所需硬件面积仅增加0.55%。