《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > LTE系統(tǒng)中基于FPGA速率匹配算法的仿真及實現(xiàn)
LTE系統(tǒng)中基于FPGA速率匹配算法的仿真及實現(xiàn)
來源:電子技術(shù)應(yīng)用2013年第7期
劉 輝,陳小亭,李小文
重慶郵電大學 通信與信息工程學院,重慶400065
摘要: 速率匹配是LTE系統(tǒng)中重要的組成部分。在詳細分析3GPP協(xié)議中Turbo編碼速率匹配算法的基礎(chǔ)上,給出了一種基于FPGA的速率匹配實現(xiàn)方案。該方案通過乒乓操作以減少速率匹配的處理延時;并以Virtex-6芯片為平臺,完成了仿真、綜合、板級驗證等工作。結(jié)果表明,基于該方案的速率匹配算法能夠明顯地縮小處理延遲。
中圖分類號: TN929.5
文獻標識碼: A
文章編號: 0258-7998(2013)07-0014-03
Realization and simulation of rate matching based on FPGA in LTE system
Liu Hui,Chen Xiaoting,Li Xiaowen
School of Communication and Information Engineering, Chongqing University of Posts and Telecommunications, Chongqing 400065,China
Abstract: Rate matching is one of the most important parts in TD_LTE system. Based on intensive research of Turbo code rate matching algorithm of 3GPP protocol,an implementation scheme is proposed based on FPGA rate matching.The scheme runs the ping-pong operation to reduce rate matching processing delay.And with Virtex-6 chip as a platform,it completes the simulation,comprehensive and board level verification,etc.The experimental results show that the program based on the rate matching algorithm can obviously reduce processing delay.
Key words : FPGA implementation;rate matching;ping-pong operation;Virtex-6

    LTE(長期演進)是3.9G的全球標準,采用OFDM和MIMO技術(shù)作為其無線網(wǎng)絡(luò)演進的唯一標準,極大地提高了系統(tǒng)的帶寬[1]。而速率匹配是LTE系統(tǒng)中重要的組成部分,因此速率匹配設(shè)計的優(yōu)劣,決定整個系統(tǒng)性能的好壞[2]。LTE系統(tǒng)中,速率匹配是指傳輸信道上的比特被打孔或者被重發(fā),以匹配物理信道的承載能力。當輸入的比特數(shù)目超過物理信道的承載能力時,就要對輸入的序列進行打孔;而當輸入的比特數(shù)目不滿足物理信道的承載能力時,就要對輸入的序列進行重發(fā)。根據(jù)編碼方式的不同,速率匹配又可分為卷積編碼和Turbo編碼的速率匹配。FPGA在數(shù)字信號處理方面性能優(yōu)越,利用FPGA做乒乓操作能夠明顯地提高數(shù)據(jù)的處理速度[3]。

1 速率匹配算法
1.1 速率匹配的整體流程

    在LTE系統(tǒng)中,基于Turbo編碼的速率匹配過程如圖1所示。該過程主要包括子塊交織、比特收集、比特選擇和修剪[4]。



2.2 乒乓前控制模塊的FPGA實現(xiàn)
    數(shù)據(jù)經(jīng)過Turbo編碼器后分3路暫存在3個RAM中。當速率匹配模塊中的使能信號Rate_Match_En拉高時,所有的模塊開始工作。如果乒乓前控制模塊的啟動信號Control_Start為高電平并且接收到的碼塊個數(shù)是偶數(shù),則子塊交織A模塊的啟動信號Interleavera_Start拉高,此時子塊交織A就會讀取外部RAM中的數(shù)據(jù),進行子塊交織;否則子塊交織B模塊的啟動信號Interleaverb_Start拉高,子塊交織B會從外部RAM中讀取數(shù)據(jù),進行子塊交織。從而實現(xiàn)了乒乓操作。
2.3 子塊交織的FPGA實現(xiàn)
    以子塊交織A模塊為例。當子塊交織A的啟動信號拉高時,子塊交織A模塊會從外部RAM中讀取數(shù)據(jù)。首先讀取第1路數(shù)據(jù)。第1路數(shù)據(jù)讀取完畢后立即讀取第2路數(shù)據(jù)和第3路數(shù)據(jù)。第2路數(shù)據(jù)放在偶數(shù)位置,第3路數(shù)據(jù)放在奇數(shù)位置。在Turbo編碼模塊中,輸出的數(shù)據(jù)已經(jīng)加入了填充比特。為了區(qū)別填充比特和數(shù)據(jù)信息,輸入數(shù)據(jù)的位寬占2 bit,填充比特用3來表示。子塊交織輸出的數(shù)據(jù)仍然占2 bit的位寬,只有在比特修剪模塊后,數(shù)據(jù)才按照1 bit的位寬表示。在子塊交織的FPGA實現(xiàn)過程中,將外部RAM模擬成一個交織矩陣。交織矩陣的每一個元素對應(yīng)RAM的每一個地址,每一個元素的具體內(nèi)容對應(yīng)于RAM的每一個數(shù)據(jù)。在程序中,第1路數(shù)據(jù)與第2路數(shù)據(jù)的交織方法一樣,用變量F_Matrix_Column、S_Matrix_Column、T_Matrix_Column表示3個交織矩陣的列;用變量F_Matrix_Row、S_Matrix_Row、T_Matrix_Row表示3個交織矩陣的行。以讀取第1路數(shù)據(jù)為例,因為是行寫入列讀出,所以行變量F_Matrix_Row每個時鐘要自加1,直到行變量取到RTCsubblock-1時歸零,同時列變量F_Matrix_Column按照表1所示進行列交織。

 

 

    按表2進行交織以后,將RAM交織矩陣中最后一列的第1個地址中的數(shù)據(jù)放到該列的最后一個地址中,將剩下的數(shù)依次向上移一個地址即可。
2.4 乒乓后控制模塊的FPGA實現(xiàn)
    在子塊交織A和子塊交織B開始工作時,乒乓后控制模塊也已經(jīng)開始工作。當子塊交織A的啟動信號Interleavera_Start拉高時,乒乓后控制模塊會將子塊交織A輸入的數(shù)據(jù)傳輸給比特修剪模塊;反之,則會將子塊交織B輸入的數(shù)據(jù)傳輸給比特修剪模塊。
2.5 比特修剪模塊的FPGA實現(xiàn)
    在比特修剪模塊中,一個碼塊的數(shù)據(jù)進行子塊交織后會緩存在一個RAM中。此方法可以阻止在輸入數(shù)據(jù)少于輸出數(shù)據(jù)需要重發(fā)操作時由于數(shù)據(jù)丟失而引起的傳輸錯誤。本程序中進行了乒乓操作,但由于輸入數(shù)據(jù)速率小于輸出數(shù)據(jù)的速率,所以乒乓操作不能做到無縫隙地進行,輸入的碼塊之間會有一定的間隔。而為了將碼塊之間的間隔限制在最小范圍,將表示速率匹配輸出序列長度的變量E和表示取數(shù)起始位置的變量Ko輸出給Turbo編碼模塊,可使碼塊之間的間隔限制在最小。在比特修剪時,設(shè)置一個計數(shù)器變量counter,初始值設(shè)置為零。當RAM中緩存的數(shù)據(jù)大于Ko時,可以從RAM中讀取數(shù)據(jù),若該數(shù)據(jù)是填充比特,則跳過,計數(shù)器counter不變;否則,計數(shù)器counter自加1,同時輸出數(shù)據(jù)。直到計數(shù)器counter的值等于E時,讀取數(shù)據(jù)完畢。等待下一個碼塊子塊交織后輸入的數(shù)據(jù)。
3 FPGA實現(xiàn)結(jié)果分析
    圖3和圖4分別是PUSCH信道子塊交織的ModelSim仿真圖形和FPGA實現(xiàn)圖。本程序的時鐘頻率是200 MHz。Virtex-6芯片做為測試平臺。程序中DataOf-Interleaverb和DataOfInterleaverb是PUSCH信道子塊交織的輸出數(shù)據(jù)和標志位,A_Matrix_Row和A_Matrix_Column分別表示交織矩陣的行和列, A_addrb是RAM交織矩陣的地址。由于交織矩陣的列數(shù)有32個,所以每次輸出數(shù)據(jù)的地址就要加32,以實現(xiàn)列讀出。變量A_Matrix_Row取到矩陣的最后一行后,又重新取下一列的第一行,直到32列全部取完為止。從PUSCH信道交織的仿真圖和FPGA實現(xiàn)圖可以看出,仿真結(jié)果與FPGA實現(xiàn)結(jié)果一致,因此FPGA能夠準確地實現(xiàn)PUSCH信道的子塊交織功能。
    圖5和圖6分別是PUSCH信道比特修剪的ModelSim仿真圖形和FPGA實現(xiàn)圖。從圖形中可知,仿真結(jié)果與板級驗證的結(jié)果一致,F(xiàn)PGA能夠穩(wěn)定、準確地實現(xiàn)比特修剪的功能。

    子塊交織和比特修剪的Verilog[5]程序已經(jīng)通過了Xilinx ISE 13.4[6]的編譯、仿真、板級驗證和聯(lián)機測試。結(jié)果表明,運用FPGA來實現(xiàn)速率匹配算法能夠滿足LTE系統(tǒng)對速率匹配的速度要求,同時也能夠充分發(fā)揮FPGA并行操作的優(yōu)越性。在此基礎(chǔ)上,引用乒乓操作的方法,在不消耗更多資源的情況下,進一步縮短了速率匹配的處理時間,為整體系統(tǒng)的快速運行提供了基本的速度保障。由于該算法的FPGA實現(xiàn)在聯(lián)機測試中,性能穩(wěn)定,故已在TD_LTE射頻一致性項目中得到應(yīng)用。
參考文獻
[1] 陳發(fā)堂,李小文,王丹,等.移動通信接收機設(shè)計理論與實現(xiàn)[M].北京:科學出版社,2011.
[2] Ma Chixiang,Lin Ping.Efficient implementation of rate matching for LTE Turbo codes[C].The 2nd International  Conference on Future Computer and Communication(ICFCC  2010),2010:704-708.
[3] 曹華,鄧彬.使用Verilog實現(xiàn)基于FPGA的SDRAM控制器[J].今日電子,2005,10(1):11-14.
[4] 3GPP TS 36.212 v9.1.0.3rd generation partner-ship project;technical specification group radio access network;evolved  universal terrestrial radio access(E-UTRA);rate matching  (Release 9)[S].2010.
[5] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程(第2版)[M].北京:北京航空航天大學出版社,2008.
[6] XilinxInc.Foundation series user guide[EB/OL].(2010-01-03).http://china.xilinx.com/support/documentation/user_guides/ug071.pdf.

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