《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 多碼率、多碼長LDPC譯碼器的設(shè)計(jì)與實(shí)現(xiàn)
多碼率、多碼長LDPC譯碼器的設(shè)計(jì)與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2013年第12期
唐凱林,杜慧敏,段高攀
西安郵電大學(xué) 電子工程學(xué)院,陜西 西安710061
摘要: 針對IEEE802.16e標(biāo)準(zhǔn),基于層譯碼算法(TDMP)提出了一種適用于多碼率、多碼長的LDPC碼譯碼器結(jié)構(gòu)。該譯碼器采用半并行化和流水線設(shè)計(jì),可以在保證電路靈活性的同時(shí)提高譯碼吞吐量。利用Xilinx公司的ISE工具進(jìn)行綜合仿真,使用的FPGA芯片為Virtex4-xc4vfx12-sf363-12,最大工作頻率為170.278 MHz,譯碼吞吐量可達(dá)到128.77 Mb/s。最后,通過搭建軟硬件協(xié)同驗(yàn)證平臺驗(yàn)證設(shè)計(jì)的正確性,并將驗(yàn)證的結(jié)果與Matlab仿真結(jié)果進(jìn)行了對比。
中圖分類號: TN492
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)12-0058-03
Design and implementation of multi-rate and multi-length LDPC decoder
Tang Kailin,Du Huimin,Duan Gaopan
School of Electronics Engineering, Xi′an University of Posts and Telecommunications, Xi′an 710061,China
Abstract: A method of the decoding algorithm(TDMP) is presented for the multi-rate, multi-length LDPC code decoder. The decoder uses parallel and pipelining design, which can keep the flexibility of the decoder circuit at the same time to improve the throughput. ISE toolset of Xilinx is used to do the synthesis simulation,choosing Virtex4-xc4vfx12-sf363-12 as FPGA platform. The maximum clock frequency is 170 MHz,the decoding throughput can reach 128.77 Mb/s. Through the platform of software and hardware,verify the correctness of the design, the results are compared with the simulation results of Matlab.
Key words : IEEE 802.16e standard;TDMP;LDPC decoder;hardware & software co-verification platform

    為了保證實(shí)時(shí)通信業(yè)務(wù)的服務(wù)質(zhì)量,降低誤碼率,在數(shù)據(jù)傳輸中采用糾錯(cuò)編碼的方式使其有一定的糾錯(cuò)能力[1]。低差錯(cuò)率的信道編碼是提高無線通信可靠性和有效性的關(guān)鍵技術(shù)之一,也是無線通信領(lǐng)域的研究熱點(diǎn)之一。研究人員對信道編碼進(jìn)行了大量研究,其中,Turbo碼和LDPC碼以其最接近香農(nóng)極限的性能受到了通信界的廣泛關(guān)注。與Turbo碼相比,LDPC碼沒有錯(cuò)誤平層,且迭代譯碼的復(fù)雜度低。此外,LDPC碼本身具有抗突發(fā)差錯(cuò)的特性,不需要引入交織器,避免了交織過程帶來的時(shí)延。因此,LDPC碼在未來移動(dòng)通信系統(tǒng)中具有良好的應(yīng)用前景。

    由于LDPC碼的軟判決譯碼算法[2]中消息計(jì)算量比較大,且消息互聯(lián)比較復(fù)雜,因此采用軟件的方式實(shí)現(xiàn)LDPC碼的譯碼難以滿足現(xiàn)代通信系統(tǒng)中對較高傳輸速率的要求,如WiMAX系統(tǒng)中要求最高可以提供75 Mb/s的傳輸速率[3]。相比于軟件的實(shí)現(xiàn)方式,采用硬件實(shí)現(xiàn)能夠很好地利用算法本身的并行性,從而提高譯碼效率。
1 LDPC碼的TDMP譯碼算法
    TDMP譯碼算法首先更新一層校驗(yàn)節(jié)點(diǎn)消息,然后更新的校驗(yàn)節(jié)點(diǎn)消息立即用來更新該層對應(yīng)的變量節(jié)點(diǎn)消息,這個(gè)過程叫做子迭代。每一層子迭代更新的變量節(jié)點(diǎn)消息立即用于下一層子迭代過程中校驗(yàn)結(jié)點(diǎn)消息更新計(jì)算。以此類推,當(dāng)所有的層都完成了校驗(yàn)結(jié)點(diǎn)和變量結(jié)點(diǎn)的消息更新后,就算完成了一次迭代過程。完整的TDMP譯碼算法執(zhí)行過程如下:

2 LDPC碼譯碼器結(jié)構(gòu)設(shè)計(jì)
    根據(jù)IEEE 802.16e標(biāo)準(zhǔn)[4]中定義的LDPC碼特點(diǎn),可以把校驗(yàn)矩陣中每一行劃分為一個(gè)子校驗(yàn)矩陣。按這樣的劃分,每個(gè)子矩陣的列重均小于1,可保證每個(gè)子校驗(yàn)矩陣的各行消息同時(shí)計(jì)算。由于標(biāo)準(zhǔn)中定義的LDPC碼擴(kuò)展因子z(即子矩陣行數(shù))為24~96,因此,為了在不增加后驗(yàn)消息與計(jì)算單元之間映射復(fù)雜度的情況下實(shí)現(xiàn)標(biāo)準(zhǔn)中定義的所有碼長的LDPC碼譯碼,本設(shè)計(jì)將并行度定為96(即96個(gè)消息運(yùn)算單元)。為了減少硬件資源和存儲訪問的沖突,每一行的消息計(jì)算采用串行流水實(shí)現(xiàn)。
    本文設(shè)計(jì)的LDPC碼譯碼器要求在保持較好吞吐量的同時(shí)具有較高的靈活性,能夠支持IEEE802.16e標(biāo)準(zhǔn)所定義的6種碼率、19種碼長的LDPC碼譯碼。
    本文提出的譯碼器整體結(jié)構(gòu)如圖1所示。該譯碼器主要包括6個(gè)單元:總體控制單元、校驗(yàn)矩陣存儲單元、迭代結(jié)果存儲單元、消息置換網(wǎng)絡(luò)單元、消息處理單元和迭代結(jié)果檢測單元。

2.1 總體控制單元
     總體控制單元是整個(gè)譯碼器的調(diào)度中心,其主要完成如下控制:控制校驗(yàn)矩陣的更新;控制信道消息輸入和譯碼結(jié)果輸出;在消息迭代更新過程中,控制對上一次子迭代過程得到后驗(yàn)消息的讀操作,以及本次子迭代過程得到后驗(yàn)消息的寫操作;控制本次子迭代過程中消息的更新計(jì)算;控制上次迭代判決結(jié)果的檢測;控制消息置換單元完成后驗(yàn)消息與消息處理單元之間的映射。
2.2 校驗(yàn)矩陣存儲
    該模塊主要用于存儲基本矩陣信息,包括每行行重、非-1元素值以及該元素列坐標(biāo)。該模塊由一個(gè)大小為125×16 bit的RAM實(shí)現(xiàn)。每個(gè)存儲單元存儲數(shù)據(jù)格式如圖2所示。

    圖2中,row_weigh表示每行基本矩陣的行重;col*表示非-1元素所對應(yīng)的列坐標(biāo);val*表示非-1元素的值。
2.3 迭代結(jié)果存儲
    該單元主要用于存儲每次子迭代過程得到的后驗(yàn)消息和判決結(jié)果以及上一次迭代得到的判決結(jié)果。本單元主要包括輸入輸出控制模塊、后驗(yàn)消息存儲模塊和判決結(jié)果存儲模塊。
2.4 消息置換網(wǎng)絡(luò)
    消息置換網(wǎng)絡(luò)主要用于后驗(yàn)消息與消息處理單元之間的映射。根據(jù)IEEE 802.16e標(biāo)準(zhǔn)的LDPC碼特點(diǎn)可知,迭代過程中所需的消息置換網(wǎng)絡(luò)是一個(gè)可以支持19種位寬的桶式移位器。本文設(shè)計(jì)的消息置換網(wǎng)絡(luò)采用的是Daesun[5]提出的一種改進(jìn)的Benes網(wǎng)絡(luò)。
2.5 消息處理
    消息處理單元主要用于完成子迭代過程中校驗(yàn)消息和后驗(yàn)消息的更新計(jì)算。該模塊主要包括計(jì)算控制模塊、96個(gè)消息計(jì)算模塊、校驗(yàn)消息緩存和臨時(shí)變量消息緩存。
2.6 迭代結(jié)果檢測
    該模塊主要用于檢測上一次迭代得到的判決比特序列是否滿足校驗(yàn)方程H×x′T=0。本設(shè)計(jì)采用的是將上一次迭代判決結(jié)果檢測與當(dāng)前一次迭代計(jì)算同時(shí)進(jìn)行的策略,這樣不但可以消除由于等待每次迭代的檢測結(jié)果而帶來的譯碼延時(shí),還可以簡化譯碼器總體控制的復(fù)雜度。
3 綜合驗(yàn)證
3.1 綜合結(jié)果

    本文采用Xilinx公司的ISE工具,使用的FPGA為Virtex4,對文中所設(shè)計(jì)的電路進(jìn)行了綜合。
    綜合結(jié)果表明,本文實(shí)現(xiàn)的譯碼器最高工作頻率為170.28 MHz,從系統(tǒng)穩(wěn)定工作角度考慮,可將系統(tǒng)的工作頻率定為140 MHz。在工作頻率為140 MHz的情況下,本文設(shè)計(jì)的譯碼器吞吐量最高可達(dá)到128.77 Mb/s。與其他譯碼器[6-7]的對比結(jié)果如表1所示。

    從驗(yàn)證結(jié)果中可以看出,兩種譯碼方法得到的誤碼率只有很小的差異,這種差異主要來源于消息量化精度的不同。采用Matlab仿真時(shí),消息的量化精度為0.1,而本文設(shè)計(jì)的譯碼器消息的量化精度為0.062 5。因此說明圖3中的差異是合理的,本文設(shè)計(jì)的譯碼器是正確的。

 


    本文提出了一種針對IEEE 802.16e標(biāo)準(zhǔn)、基于層譯碼算法的靈活、高效的譯碼器結(jié)構(gòu)。利用Xilinx公司的ISE工具,使用Virtex4-xc4vfx12-sf363-12芯片的FPGA進(jìn)行綜合仿真,結(jié)果表明該結(jié)構(gòu)最高工作頻率可達(dá)到170.28 MHz,吞吐量可達(dá)到128.77 Mb/s。
參考文獻(xiàn)
[1] 鄧曉,潘學(xué)軍.基于DMR通信協(xié)議的信道編解碼研究[J].微型機(jī)與應(yīng)用,2013,32(9):51-53.
[2] 袁東風(fēng),張海剛.LDPC碼理論與應(yīng)用[M].北京:人民郵電出版社,2008.
[3] 趙慶,廖青.IEEE 802.16實(shí)時(shí)輪詢業(yè)務(wù)調(diào)度算法分析[EB/OL].(2008-10-24)[2013-09-02].http://www.paper.edu.cn.
[4] 肖揚(yáng).Turbo與LDPC編解碼及其應(yīng)用[M].北京:人民郵電出版社,2010.
[5] BERGERON J,CERNY E,HUTER A,et al.Verification  methodology manual for SystemVerilog[M].Springer,2005.
[6] 王鵬,陳詠恩.高速LDPC碼分層譯碼器設(shè)計(jì)[J].小型微型計(jì)算機(jī)系統(tǒng),2009,30(11):2294-2297.
[7] 喬華,管武等,董明科.LDPC碼高速譯碼器的設(shè)計(jì)與實(shí)現(xiàn)[J].北京大學(xué)學(xué)報(bào),2008,44(3):347-352.
[8] BANERJEE S,GUPTA T.Design aware scheduling of  dynamic testbench controlled design element accesses in  FPGA-based HW/SW co-simulation systems for fast functional verification[C].2010 2nd Asia Symposium on Quality Electronic Design (ASQED),2010:175-181.
[9] 何賓.基于AXI4的可編程SoC系統(tǒng)設(shè)計(jì)[M].北京:清華大學(xué)出版社,2011.
[10] 趙澤才,常青.基于MicroBlaze的嵌入式系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2006,29(10):56-59.
[11] 羅華飛.MATLAB GUI設(shè)計(jì)學(xué)習(xí)手記[M].北京:北京航空航天大學(xué)出版社,2011.

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