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

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

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

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

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

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

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


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

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

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

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