文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)12-0058-03
為了保證實(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.