《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > LTE系統(tǒng)中基于FPGA速率匹配算法的仿真及實(shí)現(xiàn)
LTE系統(tǒng)中基于FPGA速率匹配算法的仿真及實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2013年第7期
劉 輝,陳小亭,李小文
重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶400065
摘要: 速率匹配是LTE系統(tǒng)中重要的組成部分。在詳細(xì)分析3GPP協(xié)議中Turbo編碼速率匹配算法的基礎(chǔ)上,給出了一種基于FPGA的速率匹配實(shí)現(xiàn)方案。該方案通過乒乓操作以減少速率匹配的處理延時(shí);并以Virtex-6芯片為平臺(tái),完成了仿真、綜合、板級(jí)驗(yàn)證等工作。結(jié)果表明,基于該方案的速率匹配算法能夠明顯地縮小處理延遲。
中圖分類號(hào): TN929.5
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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(長期演進(jìn))是3.9G的全球標(biāo)準(zhǔn),采用OFDM和MIMO技術(shù)作為其無線網(wǎng)絡(luò)演進(jìn)的唯一標(biāo)準(zhǔn),極大地提高了系統(tǒng)的帶寬[1]。而速率匹配是LTE系統(tǒng)中重要的組成部分,因此速率匹配設(shè)計(jì)的優(yōu)劣,決定整個(gè)系統(tǒng)性能的好壞[2]。LTE系統(tǒng)中,速率匹配是指傳輸信道上的比特被打孔或者被重發(fā),以匹配物理信道的承載能力。當(dāng)輸入的比特?cái)?shù)目超過物理信道的承載能力時(shí),就要對(duì)輸入的序列進(jìn)行打孔;而當(dāng)輸入的比特?cái)?shù)目不滿足物理信道的承載能力時(shí),就要對(duì)輸入的序列進(jìn)行重發(fā)。根據(jù)編碼方式的不同,速率匹配又可分為卷積編碼和Turbo編碼的速率匹配。FPGA在數(shù)字信號(hào)處理方面性能優(yōu)越,利用FPGA做乒乓操作能夠明顯地提高數(shù)據(jù)的處理速度[3]。

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

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



2.2 乒乓前控制模塊的FPGA實(shí)現(xiàn)
    數(shù)據(jù)經(jīng)過Turbo編碼器后分3路暫存在3個(gè)RAM中。當(dāng)速率匹配模塊中的使能信號(hào)Rate_Match_En拉高時(shí),所有的模塊開始工作。如果乒乓前控制模塊的啟動(dòng)信號(hào)Control_Start為高電平并且接收到的碼塊個(gè)數(shù)是偶數(shù),則子塊交織A模塊的啟動(dòng)信號(hào)Interleavera_Start拉高,此時(shí)子塊交織A就會(huì)讀取外部RAM中的數(shù)據(jù),進(jìn)行子塊交織;否則子塊交織B模塊的啟動(dòng)信號(hào)Interleaverb_Start拉高,子塊交織B會(huì)從外部RAM中讀取數(shù)據(jù),進(jìn)行子塊交織。從而實(shí)現(xiàn)了乒乓操作。
2.3 子塊交織的FPGA實(shí)現(xiàn)
    以子塊交織A模塊為例。當(dāng)子塊交織A的啟動(dòng)信號(hào)拉高時(shí),子塊交織A模塊會(huì)從外部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實(shí)現(xiàn)過程中,將外部RAM模擬成一個(gè)交織矩陣。交織矩陣的每一個(gè)元素對(duì)應(yīng)RAM的每一個(gè)地址,每一個(gè)元素的具體內(nèi)容對(duì)應(yīng)于RAM的每一個(gè)數(shù)據(jù)。在程序中,第1路數(shù)據(jù)與第2路數(shù)據(jù)的交織方法一樣,用變量F_Matrix_Column、S_Matrix_Column、T_Matrix_Column表示3個(gè)交織矩陣的列;用變量F_Matrix_Row、S_Matrix_Row、T_Matrix_Row表示3個(gè)交織矩陣的行。以讀取第1路數(shù)據(jù)為例,因?yàn)槭切袑懭肓凶x出,所以行變量F_Matrix_Row每個(gè)時(shí)鐘要自加1,直到行變量取到RTCsubblock-1時(shí)歸零,同時(shí)列變量F_Matrix_Column按照表1所示進(jìn)行列交織。

 

 

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

    子塊交織和比特修剪的Verilog[5]程序已經(jīng)通過了Xilinx ISE 13.4[6]的編譯、仿真、板級(jí)驗(yàn)證和聯(lián)機(jī)測(cè)試。結(jié)果表明,運(yùn)用FPGA來實(shí)現(xiàn)速率匹配算法能夠滿足LTE系統(tǒng)對(duì)速率匹配的速度要求,同時(shí)也能夠充分發(fā)揮FPGA并行操作的優(yōu)越性。在此基礎(chǔ)上,引用乒乓操作的方法,在不消耗更多資源的情況下,進(jìn)一步縮短了速率匹配的處理時(shí)間,為整體系統(tǒng)的快速運(yùn)行提供了基本的速度保障。由于該算法的FPGA實(shí)現(xiàn)在聯(lián)機(jī)測(cè)試中,性能穩(wěn)定,故已在TD_LTE射頻一致性項(xiàng)目中得到應(yīng)用。
參考文獻(xiàn)
[1] 陳發(fā)堂,李小文,王丹,等.移動(dòng)通信接收機(jī)設(shè)計(jì)理論與實(shí)現(xiàn)[M].北京:科學(xué)出版社,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實(shí)現(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è)計(jì)教程(第2版)[M].北京:北京航空航天大學(xué)出版社,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)載。