《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > BCH編譯碼器的FPGA設計及SoPC驗證
BCH編譯碼器的FPGA設計及SoPC驗證
來源:電子技術應用2012年第6期
蔡 恒,崔雪楠,孟虹兆,黃啟俊,常 勝
武漢大學 物理科學與技術學院 微電子學與固體電子學,湖北 武漢430072
摘要: 針對NAND Flash應用,完成了并行化BCH編譯碼器硬件設計。采用寄存器傳輸級硬件描述語言,利用LFSR電路、計算伴隨式、求解關鍵方程、Chien搜索算法等技術方法完成了BCH編譯碼算法在FPGA上的硬件實現(xiàn)。相比于傳統(tǒng)串行實現(xiàn)方案,采用并行化實現(xiàn)提高了編譯碼器的速度。搭建了基于SoPC技術的嵌入式驗證平臺,在Nios處理器的控制下能快速高效地完成對BCH編譯碼算法的驗證,具有測試環(huán)境可配置、測試向量覆蓋率高、測試流程智能化的特點。
中圖分類號: 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

    隨著科技進步和信息化的快速發(fā)展,如何在海量數(shù)據(jù)存儲中確保數(shù)據(jù)不出錯成為眾人關心的問題。作為廣泛應用于U盤、固態(tài)硬盤等電子產(chǎn)品的一種非易失性存儲介,NAND Flash 由于其結(jié)構(gòu)的特殊性,在進行擦寫操作時易產(chǎn)生錯誤,故需要引入錯誤校驗機制。早期使用SLC工藝的NAND Flash通常采用漢明碼(ECC)校驗,但是無法糾正1 bit以上的錯誤?,F(xiàn)今的MLC工藝多采用BCH糾錯,但每頁產(chǎn)生的錯誤往往超過2 bit,甚至達到4 bit。國內(nèi)外對BCH糾錯的研究已展開,參考文獻[1-2]采用串行結(jié)構(gòu)完成譯碼器設計,實現(xiàn)簡單,但最大時鐘頻率小、速度慢,無法滿足高速的需要。參考文獻[3-4]中提出并行化結(jié)構(gòu),提高了設計速度和數(shù)據(jù)吞吐量,但電路實現(xiàn)討論不充分。參考文獻[5]中通過ASIC制備芯片并進行測試驗證,但此方法周期長、費用高。

    針對以上問題,本文基于Altera公司的CycloneII EP2C35系列FPGA完成了并行化BCH(8184,7976,16)碼編譯器設計,并利用SoPC Builder搭建了驗證平臺,在Nios II處理器的控制下能高效地完成BCH編譯碼算法的驗證,具有測試環(huán)境可配置、測試向量覆蓋率高、測試流程智能化的特點。
1 BCH編譯碼FPGA設計
    結(jié)合實際使用NAND Flash的情況, 16 bit糾錯是NAND Flash使用的趨勢。本設計采用并行化結(jié)構(gòu)實現(xiàn)16 bit BCH碼算法。
1.1 并行BCH編碼器的設計
    BCH編碼器通過除法電路得到余數(shù)作為系統(tǒng)碼的校驗位,實現(xiàn)公式為:
    



2 基于SoPC技術的驗證系統(tǒng)
    搭建了基于SoPC技術的嵌入式驗證平臺, NiosⅡProcessor通過AVALON總線以AVALON—SLERVER協(xié)議與RAM_CONTROLLER以及BCH_IP外設進行通信,控制編譯碼模塊工作,如圖4所示。其中data_cnt為傳輸碼元數(shù),eob信號為傳輸碼元結(jié)束信號,sob為開始傳輸原碼信號,data信號為傳輸原碼數(shù)據(jù)。

 

 

    在此基礎上,利用NIOS向RAM中寫入多種類別錯誤進行糾錯。大量數(shù)據(jù)的測試證明了BCH編譯碼設計的正確性。部分測試結(jié)果如表1所示。

    使用硬件描述語言,基于Altera公司的Quartus8.0開發(fā)工具完成了應用于NAND Flash的并行化BCH編譯碼器的設計。采用并行結(jié)構(gòu)縮短了編解碼周期,最大時鐘頻率可達101.84 MHz。搭建了基于SoPC技術的嵌入式驗證平臺,在Nios II處理器的控制下高效地完成了BCH編譯碼算法的驗證。驗證結(jié)果表明該算法具有測試環(huán)境可配置、測試向量覆蓋率高及測試流程智能化的特點。
參考文獻
[1] 孫怡,田上力,林建英.BCH碼譯碼器的FPGA實現(xiàn)[J].電路與系統(tǒng)學報,2000(12):98-100.
[2] 江建國.BCH編譯碼器的設計及驗證[D].上海:上海交通大學.2010.
[3] 張彥,李署堅,崔金.一種BCH碼編譯碼器的設計與實現(xiàn)[J].通信技術,2010,43(12):24-26.
[4] 劉冀,孫玲.可變碼率BCH碼編譯碼的FPGA實現(xiàn)[J].信號與信息處理,2010,40(7):11-13.
[5] 許錦.NAND Flash快速BCH編解碼算法及硬件實現(xiàn)[D].上海:上海復旦大學,2008.
[6] 趙景琰,金鷹翰,趙培,等.并行化的BCH編解碼器設計[J].微處理機,2010(4):42-45.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。