文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)07-0014-03
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.