kaiyun官方注册
您所在的位置: 首页> 可编程逻辑> 设计应用> BCH编译码器的FPGA设计及SoPC验证
BCH编译码器的FPGA设计及SoPC验证
来源:电子技术应用2012年第6期
蔡 恒,崔雪楠,孟虹兆,黄启俊,常 胜
武汉大学 物理科学与技术学院 微电子学与固体电子学,湖北 武汉430072
摘要:针对NAND Flash应用,完成了并行化BCH编译码器硬件设计。采用寄存器传输级硬件描述语言,利用LFSR电路、计算伴随式、求解关键方程、Chien搜索算法等技术方法完成了BCH编译码算法在FPGA上的硬件实现。相比于传统串行实现方案,采用并行化实现提高了编译码器的速度。搭建了基于SoPC技术的嵌入式验证平台,在Nios处理器的控制下能快速高效地完成对BCH编译码算法的验证,具有测试环境可配置、测试向量覆盖率高、测试流程智能化的特点。
关键词: 并行化 BCH FPGA 优化 SoPC
中图分类号:TP391
文献标识码:A
文章编号: 0258-7998(2012)06-0015-03
FPGA design and SoPC verification of BCH encoder/decoder
Cai Heng,Cui Xuenan,Meng Hongzhao,Huang Qijun,Chang Sheng
Department of Electronics Science and Technology, School of Physics and Technology, Wuhan University, Wuhan 430072,China
Abstract:Parallel structures of BCH encoder/decoder are implemented, for application of NAND Flash. The design is composed of LFSR circuit module, syndrome solving module, key equation solving module and Chien search module. They are described in register-transfer level and realized on FPGA platform. The design is verified on an embedded SoPC platform. Under the control of Nios CPU, BCH algorithm can be efficiently tested. This embedded test system has the virtue of configurable test environment, high test-vector coverage and intelligent test process.
Key words :parallelization;BCH;FPGA;optimization;SoPC

随着科技进步和信息化的快速发展,如何在海量数据存储中确保数据不出错成为众人关心的问题。作为广泛应用于U盘、固态硬盘等电子产品的一种非易失性存储介,NAND Flash 由于其结构的特殊性,在进行擦写操作时易产生错误,故需要引入错误校验机制。早期使用SLC工艺的NAND Flash通常采用汉明码(ECC)校验,但是无法纠正1 bit以上的错误。现今的MLC工艺多采用BCH纠错,但每页产生的错误往往超过2 bit,甚至达到4 bit。国内外对BCH纠错的研究已展开,参考文献[1-2]采用串行结构完成译码器设计,实现简单,但最大时钟频率小、速度慢,无法满足高速的需要。参考文献[3-4]中提出并行化结构,提高了设计速度和数据吞吐量,但电路实现讨论不充分。参考文献[5]中通过ASIC制备芯片并进行测试验证,但此方法周期长、费用高。

针对以上问题,本文基于Altera公司的CycloneII EP2C35系列FPGA完成了并行化BCH(8184,7976,16)码编译器设计,并利用SoPCBuilder搭建了验证平台,在Nios II处理器的控制下能高效地完成BCH编译码算法的验证,具有测试环境可配置、测试向量覆盖率高、测试流程智能化的特点。
1 BCH编译码FPGA设计
结合实际使用NAND Flash的情况, 16 bit纠错是NAND Flash使用的趋势。本设计采用并行化结构实现16 bit BCH码算法。
1.1 并行BCH编码器的设计
BCH编码器通过除法电路得到余数作为系统码的校验位,实现公式为:




2 基于SoPC技术的验证系统
搭建了基于SoPC技术的嵌入式验证平台, NiosⅡProcessor通过AVALON总线以AVALON—SLERVER协议与RAM_CONTROLLER以及BCH_IP外设进行通信,控制编译码模块工作,如图4所示。其中data_cnt为传输码元数,eob信号为传输码元结束信号,sob为开始传输原码信号,data信号为传输原码数据。

在此基础上,利用NIOS向RAM中写入多种类别错误进行纠错。大量数据的测试证明了BCH编译码设计的正确性。部分测试结果如表1所示。

使用硬件描述语言,基于Altera公司的Quartus8.0开发工具完成了应用于NAND Flash的并行化BCH编译码器的设计。采用并行结构缩短了编解码周期,最大时钟频率可达101.84 MHz。搭建了基于SoPC技术的嵌入式验证平台,在Nios II处理器的控制下高效地完成了BCH编译码算法的验证。验证结果表明该算法具有测试环境可配置、测试向量覆盖率高及测试流程智能化的特点。
参考文献
[1] 孙怡,田上力,林建英.BCH码译码器的FPGA实现[J].电路与系统学报,2000(12):98-100.
[2] 江建国.BCH编译码器的设计及验证[D].上海:上海交通大学.2010.
[3] 张彦,李署坚,崔金.一种BCH码编译码器的设计与实现[J].通信技术,2010,43(12):24-26.
[4] 刘冀,孙玲.可变码率BCH码编译码的FPGA实现[J].信号与信息处理,2010,40(7):11-13.
[5] 许锦.NAND Flash快速BCH编解码算法及硬件实现[D].上海:上海复旦大学,2008.
[6] 赵景琰,金鹰翰,赵培,等.并行化的BCH编解码器设计[J].微处理机,2010(4):42-45.

此内容为AET网站原创,未经授权禁止转载。
Baidu
map