LTE標(biāo)準(zhǔn)下Turbo碼編譯碼器的集成設(shè)計
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)方案,詳細介紹了該系統(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所示。
評論