《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > LTE標(biāo)準(zhǔn)下Turbo碼編譯碼器的集成設(shè)計(jì)
LTE標(biāo)準(zhǔn)下Turbo碼編譯碼器的集成設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2010年第7期
朱鐵林1,趙仲元2
1.哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱150001;2.哈爾濱工業(yè)大學(xué) 電子與信息工程學(xué)院,黑龍江 哈爾濱150001
摘要: 針對(duì)固定碼長(zhǎng)Turbo碼適應(yīng)性差的缺點(diǎn),以LTE為應(yīng)用背景,提出了一種幀長(zhǎng)可配置的Turbo編譯碼器的FPGA實(shí)現(xiàn)方案。該設(shè)計(jì)可以依據(jù)具體的信道環(huán)境和速率要求調(diào)節(jié)信息幀長(zhǎng),平衡譯碼性能和系統(tǒng)時(shí)延。方案采用“自頂向下”的設(shè)計(jì)思想和“自底而上”的實(shí)現(xiàn)方法,對(duì)Turbo編譯碼系統(tǒng)模塊化設(shè)計(jì)后優(yōu)化統(tǒng)一,經(jīng)時(shí)序仿真驗(yàn)證后下載配置到Altera公司Stratix III系列的EP3SL150F1152C2N中。測(cè)試結(jié)果表明,系統(tǒng)運(yùn)行穩(wěn)健可靠,并具有良好的移植性;集成化一體設(shè)計(jì),為L(zhǎng)TE標(biāo)準(zhǔn)下Turbo碼ASIC的開發(fā)提供了參考。
關(guān)鍵詞: SoPC Turbo碼 FPGA LTE
中圖分類號(hào): TN764
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2010)07-0031-04
The integrated design of Turbo encoder and decoder in LTE
ZHU Tie Lin1,ZHAO Zhong Yuan2
1.College of Information and Communications Engineering, Harbin Engineering University, Harbin 150001,China;2.School of Electronics information Engineering, Harbin Institute of Technology, Harbin 150001,China
Abstract: For the poor adaptability of fixed frame length Turbo codes, an FPGA implementation of Turbo encoder and decoder whose frame length can be configured is proposed in LTE. The design is able to adjust its interleaving depth according to the channel environment and the request of data rate, so that the decoding performance and system delay achieve the best balance. The "top-down" design thinking and the "bottom-up" implementation method is adopted. The Turbo encoder and decoder are optimal unified after modular design. By means of timing simulation, the design is configured to EP3SL150F1152C2N of Altera’s Stratix III family. Test results show that the system is running stable and reliable, and has good portability. The integrated design provides a reference for developing ASIC of Turbo codes in LTE.
Key words : Turbo codes;FPGA;LTE

    LTE[1](Long Term Evolution)是3GPP展開的對(duì)UMTS技術(shù)的長(zhǎng)期演進(jìn)計(jì)劃。LTE具有高數(shù)據(jù)速率、低延遲、分組傳送、廣域覆蓋和向下兼容等顯著優(yōu)勢(shì)[2],在各種“準(zhǔn)4G”標(biāo)準(zhǔn)中脫穎而出,最具競(jìng)爭(zhēng)力和運(yùn)營(yíng)潛力。運(yùn)營(yíng)商普遍選擇LTE,為全球移動(dòng)通信產(chǎn)業(yè)指明了技術(shù)發(fā)展的方向。設(shè)備制造商亦紛紛加大在LTE領(lǐng)域的投入,其中包括華為、北電、NEC和大唐等一流設(shè)備制造商,從而有力地推動(dòng)LTE不斷前進(jìn),使LTE的商用相比其他競(jìng)爭(zhēng)技術(shù)更加令人期待。
    Turbo碼[3]以其接近香農(nóng)極限的優(yōu)異糾錯(cuò)性能被選為L(zhǎng)TE標(biāo)準(zhǔn)的信道編碼方案之一[4]。對(duì)Turbo編譯碼器進(jìn)行FPGA集成設(shè)計(jì),能夠加速LTE的商用步伐,具有廣闊的應(yīng)用前景。在不同的信道環(huán)境中,通信系統(tǒng)對(duì)信息可靠性和數(shù)據(jù)實(shí)時(shí)性具有不同的指標(biāo)要求,實(shí)際應(yīng)用中必須對(duì)二者進(jìn)行適當(dāng)折中。因此,硬件設(shè)計(jì)一種糾錯(cuò)性能與譯碼時(shí)延可靈活配置的Turbo碼編譯碼器更具商業(yè)價(jià)值。
    Altera公司推出的功率優(yōu)化、性能增強(qiáng)的Stratix III系列產(chǎn)品采用了與業(yè)界領(lǐng)先的Stratix II系列相同的FPGA體系結(jié)構(gòu),含有高性能自適應(yīng)邏輯模塊(ALM),支持40多個(gè)I/O接口標(biāo)準(zhǔn),具有業(yè)界一流的靈活性和信號(hào)完整性。Stratix III FPGA和Quartus II軟件相結(jié)合后,為工程師提供了極具創(chuàng)新的設(shè)計(jì)方法,進(jìn)一步提高了性能和效能[5]。Stratix III L器件邏輯單元較多,為幀長(zhǎng)可配置Turbo碼編譯碼器的FPGA設(shè)計(jì)提供了便利條件。
    Turbo碼的誤碼性能在很大程度上取決于信息幀長(zhǎng),信息幀越長(zhǎng),譯碼性能越好,代價(jià)是譯碼延時(shí)的增大?;谶@一點(diǎn),本設(shè)計(jì)提出一種幀長(zhǎng)可配置的Turbo碼編譯碼器的FPGA實(shí)現(xiàn)方案,詳細(xì)介紹了該系統(tǒng)中交織器的工作原理,并對(duì)時(shí)序仿真結(jié)果和功能實(shí)現(xiàn)情況進(jìn)行了分析,為L(zhǎng)TE標(biāo)準(zhǔn)下Turbo編譯碼專用集成芯片的開發(fā)提供了參考。
1 幀長(zhǎng)可配置的Turbo編譯碼器的系統(tǒng)結(jié)構(gòu)
    LTE標(biāo)準(zhǔn)中,信道編碼主要采用Tail Biting(咬尾)卷積碼和Turbo編碼[4]兩種方案。其中Turbo碼碼率為1/3,由兩個(gè)生成多項(xiàng)式系數(shù)為(13,15)的遞歸系統(tǒng)卷積碼(RSC)和一個(gè)QPP(二次置換多項(xiàng)式)隨機(jī)交織器組成,采用典型的PCCC編碼結(jié)構(gòu)。
    根據(jù)Turbo碼編譯碼結(jié)構(gòu)原理可知,信息幀長(zhǎng)關(guān)鍵取決于交織深度的大小,如果交織器能夠根據(jù)不同幀長(zhǎng)參數(shù)自動(dòng)植入不同的交織圖樣,并對(duì)其他模塊進(jìn)行相應(yīng)參數(shù)控制,即可實(shí)現(xiàn)設(shè)計(jì)功能。由此得到可配置Turbo編譯碼器的設(shè)計(jì)思想:在編譯碼之前,由鍵盤電路輸入信息幀長(zhǎng),系統(tǒng)據(jù)此對(duì)編譯碼器進(jìn)行初始化,主要包括設(shè)置電路中存儲(chǔ)器的深度,計(jì)算、存儲(chǔ)交織圖樣,并通過LCD同步顯示幀長(zhǎng)信息;初始化過程結(jié)束時(shí)輸出狀態(tài)標(biāo)志位,編譯碼器進(jìn)入準(zhǔn)備狀態(tài),一旦有數(shù)據(jù)輸入,即啟動(dòng)編譯碼流程。由此得到Turbo編譯碼器系統(tǒng)結(jié)構(gòu)圖如圖1所示。

    圖1的Turbo碼編譯碼器中,所有有關(guān)信息長(zhǎng)度的參數(shù)均設(shè)置為輸入變量,包括存儲(chǔ)器深度、計(jì)數(shù)器周期等,以方便配置。
2 FPGA功能模塊的設(shè)計(jì)與實(shí)現(xiàn)
2.1 交織模塊的設(shè)計(jì)

    交織器是Turbo編譯碼器的主要構(gòu)成部分之一,其能否根據(jù)幀長(zhǎng)參數(shù)產(chǎn)生相應(yīng)的交織圖樣也是本設(shè)計(jì)的關(guān)鍵所在。LTE標(biāo)準(zhǔn)中規(guī)定交織器采用QPP偽隨機(jī)交織方案,交織長(zhǎng)度范圍為40~6 114,該方案對(duì)不同幀長(zhǎng)產(chǎn)生不同的交織圖樣,能夠有效改善碼字的漢明距離和碼重分布。假設(shè)輸入交織器的比特序列為d0,d1,…,dK-1,其中K為信息序列幀長(zhǎng),交織器輸出序列d′0,d′1,…,d′K-1。則有:
  
    參數(shù)f1和f2取決于交織長(zhǎng)度K,具體值可參見參考文獻(xiàn)[4]。
    傳統(tǒng)交織器的FPGA設(shè)計(jì)一般采用軟件編程的方法。根據(jù)通信協(xié)議,將所確定幀長(zhǎng)的交織圖樣預(yù)先計(jì)算出來(lái),生成存儲(chǔ)器初始化文件(.mif或.hex格式)載入到ROM中[6]。這樣雖然降低了硬件復(fù)雜度,卻不能自行配置編碼幀長(zhǎng),缺乏靈活性和通用性。因此,設(shè)計(jì)中將交織算法集成于FPGA內(nèi)部,需要改變信息幀長(zhǎng)時(shí)啟動(dòng)交織器重新計(jì)算交織地址存儲(chǔ)于RAM中。QPP交織器的硬件結(jié)構(gòu)框圖如圖2所示。

    圖2中,在系統(tǒng)初始化階段,由鍵盤電路采集輸入的信息幀長(zhǎng)K,經(jīng)消抖處理,一路傳輸給LCD同步顯示模塊,另一路傳送到f1、f2運(yùn)算單元,查表得到f1、f2的值,提供給交織算法集成模塊。
    交織算法集成單元是交織器設(shè)計(jì)的核心部分。主要功能是根據(jù)LTE協(xié)議標(biāo)準(zhǔn)以及參數(shù)K、f1、f2,在時(shí)序控制模塊的約束下,計(jì)算交織地址。運(yùn)算過程中,將FPGA不能綜合的對(duì)任意整數(shù)取余的運(yùn)算,均轉(zhuǎn)化為固定次數(shù)的加減循環(huán)操作,在時(shí)鐘管理模塊的控制下,采取小時(shí)鐘計(jì)算、大時(shí)鐘輸出的措施,保證交織數(shù)據(jù)的正確讀取。
    計(jì)算交織地址的同時(shí)產(chǎn)生寫入地址,將交織地址順序存儲(chǔ)到雙口RAM中,由此完成了交織器的主體設(shè)計(jì)。隨后發(fā)送握手信號(hào),可以開始Turbo碼編譯碼流程。
    因?yàn)椴⒉皇敲繋畔⒕幾g碼時(shí)都需要運(yùn)行交織算法模塊,所以只是在初始化階段載入交織地址,使交織算法與編譯碼器分時(shí)工作。調(diào)用交織器模塊時(shí)只需將順序地址輸入到雙口RAM的讀地址端,便能得到既定幀長(zhǎng)的QPP偽隨機(jī)交織地址,不會(huì)增加譯碼延時(shí)。得到交織圖樣以后即可進(jìn)行交織、解交織過程[7]。
2.2 Turbo碼編碼器的設(shè)計(jì)
    在完成交織模塊的基礎(chǔ)上對(duì)Turbo碼編碼器進(jìn)行FPGA設(shè)計(jì)。Turbo碼編碼器由RSC(遞歸系統(tǒng)卷積碼)子編碼器、交織器、復(fù)接電路等構(gòu)成,硬件實(shí)現(xiàn)框圖如圖3所示。

    系統(tǒng)初始化完畢后,交織器已存儲(chǔ)有對(duì)應(yīng)幀長(zhǎng)的交織圖樣,編碼器首先接收到一幀信息存儲(chǔ)于RAM中,開始信號(hào)啟動(dòng)編碼過程。在時(shí)鐘管理模塊和時(shí)序控制模塊的指引下,計(jì)數(shù)器產(chǎn)生順序地址,再按該順序地址訪問交織器得到交織地址,分別以順序地址和交織地址從存儲(chǔ)有信息序列的RAM中讀取數(shù)據(jù)進(jìn)入對(duì)應(yīng)的RSC進(jìn)行編碼,同時(shí)復(fù)接電路對(duì)信息位和校驗(yàn)位進(jìn)行并串轉(zhuǎn)換,一幀信息編碼完畢對(duì)子編碼器做歸零處理。
2.3 Turbo碼譯碼器的設(shè)計(jì)
    Turbo碼譯碼器相對(duì)于編碼器來(lái)說硬件結(jié)構(gòu)更加復(fù)雜,根據(jù)譯碼原理和交織器實(shí)現(xiàn)方式,得到譯碼器實(shí)現(xiàn)結(jié)構(gòu)圖如圖4所示。

    為節(jié)省硬件資源,本文設(shè)計(jì)的Turbo碼譯碼器采用子譯碼器單核復(fù)用的結(jié)構(gòu)模式。當(dāng)子譯碼器模塊作為子譯碼器1時(shí),信息比特順序?qū)懭氪鎯?chǔ)器后順序讀出到子譯碼器中,L_a2以交織地址寫入存儲(chǔ)器,順序地址讀出作為子譯碼器1的先驗(yàn)信息,同時(shí)校驗(yàn)位選擇yp1,子譯碼器1根據(jù)3個(gè)輸入進(jìn)行SISO(軟輸入軟輸出)譯碼運(yùn)算,得到新的L_a2及L_e;此后子譯碼器作為子譯碼器2,以交織地址將ys從存儲(chǔ)器中讀出,L_a2以順序地址寫入存儲(chǔ)器,交織地址讀出作為子譯碼器2的先驗(yàn)信息,同時(shí)校驗(yàn)位選擇yp2,子譯碼器2根據(jù)3個(gè)輸入進(jìn)行SISO(軟輸入軟輸出)譯碼運(yùn)算,得到新的L_a2及L_e,完成一次迭代。在滿足迭代停止準(zhǔn)則以后,將L_e解交織后進(jìn)行硬判決,得到譯碼序列。
    設(shè)計(jì)中,子譯碼器采用復(fù)雜度與性能折中的Max-Log-MAP譯碼算法。根據(jù)輸入的信息位、校驗(yàn)位及先驗(yàn)概率信息,在時(shí)序控制模塊的管理下,分別進(jìn)行分支轉(zhuǎn)移度量、前向狀態(tài)度量、后向狀態(tài)度量和對(duì)數(shù)似然比的計(jì)算及存儲(chǔ),以備下次譯碼運(yùn)算調(diào)用。
    依據(jù)初始化分支轉(zhuǎn)移度量值,由(13,15)RSC的籬笆圖,找出當(dāng)前時(shí)刻前向狀態(tài)度量與前一時(shí)刻前向狀態(tài)度量的對(duì)應(yīng)關(guān)系[7],計(jì)算當(dāng)前時(shí)刻的前向狀態(tài)度量。依次遞推,為防止數(shù)據(jù)溢出范圍,每次迭代對(duì)其進(jìn)行歸一化處理,得到實(shí)現(xiàn)框圖如圖5所示。后向狀態(tài)度量與前向狀態(tài)度量具有相似的運(yùn)算結(jié)構(gòu),只是逆向遞推而已。
    由對(duì)數(shù)似然比的定義,將得到的分支轉(zhuǎn)移度量、前向狀態(tài)度量和后向狀態(tài)度量代入運(yùn)算公式[8],對(duì)3種輸入?yún)⒘窟M(jìn)行組合運(yùn)算,然后取出“1”路徑8種狀態(tài)中的最小值和“0”路徑8種狀態(tài)的最小值,做差即得到Max-Log-MAP算法中的對(duì)數(shù)似然比。迭代數(shù)次后進(jìn)行輔助硬判決,解交織輸出即為傳回信宿的譯碼序列。

3 系統(tǒng)實(shí)現(xiàn)與仿真結(jié)果分析
    在Quartus Ⅱ開發(fā)工具上,以Stratix III 系列的EP3-
SL150F1152C2為配置平臺(tái),用Verilog HDL語(yǔ)言對(duì)上述各功能模塊進(jìn)行編程建模,調(diào)試統(tǒng)一后編譯綜合,得到編譯碼器主要硬件資源占用情況如表1所示。


    建立波形文件,分別對(duì)Turbo碼進(jìn)行時(shí)序仿真,得到信息幀長(zhǎng)分別配置為128、512時(shí),Turbo碼編碼器的仿真波形如圖6(a)、圖6(b)所示。''

    圖6中,每幀碼字序列的結(jié)尾,都有12個(gè)系統(tǒng)尾比特,以使編碼器寄存器回歸全零狀態(tài)。經(jīng)多次驗(yàn)證,與Matlab仿真數(shù)據(jù)進(jìn)行對(duì)比,結(jié)果正確。
    將編碼碼字量化后存儲(chǔ)于ROM中,提供給譯碼器進(jìn)行時(shí)序仿真,得到信息幀長(zhǎng)分別配置為128、512(碼字序列長(zhǎng)度分別為396、1 548)時(shí),Turbo碼譯碼器的仿真波形如圖7(a)、圖7(b)所示。

    圖7中,譯碼器首先根據(jù)幀長(zhǎng)設(shè)置初始化交織圖樣,然后對(duì)系統(tǒng)碼字解復(fù)接,得到信息序列(ys)、校驗(yàn)位1(yp1)及校驗(yàn)位2(yp2),與外信息(L_all)一起輸入子譯碼器進(jìn)行SISO譯碼運(yùn)算,迭代6次以后判決得到譯碼結(jié)果(decoderout)。
    設(shè)置不同的信息幀長(zhǎng),經(jīng)多次仿真驗(yàn)證,均能正確實(shí)現(xiàn)編譯碼功能。將程序下載配置到EP3SL150F1152C2中,利用VC軟件編寫測(cè)試窗口,進(jìn)行測(cè)試。結(jié)果顯示,本設(shè)計(jì)可以利用外圍鍵盤電路自行輸入幀長(zhǎng),進(jìn)行交織運(yùn)算,得到交織圖樣,并能正確實(shí)現(xiàn)Turbo編譯碼功能,達(dá)到了設(shè)計(jì)要求。
    本設(shè)計(jì)以LTE為應(yīng)用背景,實(shí)現(xiàn)了一種可根據(jù)信道環(huán)境現(xiàn)場(chǎng)配置幀長(zhǎng)的Turbo編譯碼的硬件方案。將QPP交織算法集成于FPGA內(nèi)部,充分利用其時(shí)鐘頻率高、速度快的優(yōu)勢(shì),減小了外圍接口電路消耗。在系統(tǒng)初始化時(shí)進(jìn)行交織運(yùn)算,先于Turbo編譯碼進(jìn)程開始,兩者分時(shí)工作,協(xié)調(diào)統(tǒng)一,不會(huì)帶來(lái)額外的時(shí)延。所實(shí)現(xiàn)的Turbo碼編譯碼器是一種比較理想的通用型方案,為L(zhǎng)TE標(biāo)準(zhǔn)下Turbo編解碼專用集成芯片的開發(fā)與推廣提供了參考。
參考文獻(xiàn)
[1] 沈嘉.LTE的技術(shù)創(chuàng)新與挑戰(zhàn)[J].電子技術(shù)應(yīng)用.2009,35(6):7-13.
[2] 李鵬,李波.LTE的關(guān)鍵技術(shù)及其標(biāo)準(zhǔn)演變[J].電信網(wǎng)技術(shù).2009,1(1):40-42.
[3] BERROU C,GLAVIEUX A,THITIMAJSHIMA P.Near shannon limit error-correcting coding and decoding Turbocodes(1).Proc.ICC’93.Geneva,1993:1064-1070.
[4] 沈嘉,索士強(qiáng),全海洋,等.3GPP長(zhǎng)期演進(jìn)(LTE)技術(shù)原理與系統(tǒng)設(shè)計(jì)[M].北京:人民郵電出版社,2009.
[5] E代電子.Altera Stratix III系列高性能FPGA功耗可降低 50%[Z].http://www.laogu.com/wz_60188.htm.
[6] 趙旦峰,雷李云,羅清華.基于FPGA的Turbo譯碼交織器設(shè)計(jì)[J].信息與電子工程,2007,5(3):186-189.
[7] 羅清華.Turbo碼編譯碼器FPGA設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱工程大學(xué),2008.

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