孫遠(yuǎn)昕,秦水介
(1.貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽 550025;2.貴州省光電子技術(shù)與應(yīng)用重點(diǎn)實(shí)驗(yàn)室,貴州 貴陽 550025)
單載波-頻分多址(Single Carrier-Frequency Division Multiple Access,SC-FDMA)是LTE上行鏈路的主流多址方式[1]。SC-FDMA信號的產(chǎn)生過程如圖1所示,首先對調(diào)制后的數(shù)據(jù)符號進(jìn)行離散傅里葉變換(Discrete Fourier Transform,DFT)擴(kuò)展,將數(shù)據(jù)轉(zhuǎn)換到頻域,再把不同用戶數(shù)據(jù)映射到不同子載波上從而實(shí)現(xiàn)用戶間的正交頻分復(fù)用,最后通過IFFT轉(zhuǎn)換回時(shí)域并進(jìn)行循環(huán)前綴CP插入[2-3]。上述DFT擴(kuò)展又被稱為LTE上行鏈路的預(yù)編碼[4]。
圖1 SC-FDMA信號產(chǎn)生流程圖
3GPP協(xié)議[5]規(guī)定上行鏈路中數(shù)據(jù)符號的DFT點(diǎn)數(shù)滿足
(1)
其中,a2、a3、a5取非負(fù)整數(shù)。
由上式可知,LTE上行DFT預(yù)編碼共有35種不同點(diǎn)數(shù)的模式,且存在非2n點(diǎn)數(shù)的特殊需求,行業(yè)內(nèi)可直接調(diào)用的FFT IP核大多數(shù)以基2/4為主[6-7],無法滿足DFT預(yù)編碼的特殊點(diǎn)數(shù)需求。
本文根據(jù)LTE上行DFT預(yù)編碼的多模式需求,設(shè)計(jì)了一種支持35種模式的DFT硬件加速器。
設(shè)x={x(n),n=0,1,…,N-1}為N點(diǎn)離散信號,N點(diǎn)DFT公式為
(2)
如果N可以被表示為多個(gè)因子的乘積形式,那么大點(diǎn)數(shù)DFT可以被分解為多級小點(diǎn)數(shù)DFT,利用旋轉(zhuǎn)因子的周期性和對稱性進(jìn)行化簡,可以有效的減少DFT運(yùn)算量[8,9]。這里以N點(diǎn)DFT分解為兩級基r1、r2蝶形運(yùn)算為例進(jìn)行公式推導(dǎo)。設(shè)N=r1r2,對時(shí)域指數(shù)n和頻域指數(shù)k分別進(jìn)行二維映射
將二維映射的指數(shù)帶入式(2)中進(jìn)行化簡得到
(3)
根據(jù)式(3),N=r1r2的DFT可以被歸納為下述運(yùn)算過程[10]:
(1)進(jìn)行式(4)運(yùn)算,做r2個(gè)r1點(diǎn)DFT,得到X1(k0,n0) ,如下
(4)
(5)
(3)進(jìn)行式(6)運(yùn)算,做r1個(gè)r2點(diǎn)DFT,得到X2(k0,k1)
(6)
(4)利用式(7)進(jìn)行整序,得到X(k)
X(k)=X(k1,k0)=X2(k0,k1)
(7)
DFT硬件電路的整體結(jié)構(gòu)框圖如圖2所示,主要包括以下幾個(gè)子模塊:狀態(tài)機(jī)、蝶形單元、地址控制單元、緩存區(qū)。蝶形單元有2、3、4、5共4種點(diǎn)數(shù),對應(yīng)圖中R2、R3、R4、R5。緩存區(qū)包括RAM_in、ROM、RAM_0、RAM_1,其中RAM_in由4個(gè)RAM單元組成,存放第一級R4的4組輸入數(shù)據(jù);RAM_0、RAM_1為上下級蝶形運(yùn)算之間的數(shù)據(jù)緩存區(qū);ROM存放預(yù)先計(jì)算出的旋轉(zhuǎn)因子;緩存區(qū)的讀寫地址由地址控制單元產(chǎn)生。
圖2 DFT硬件模塊整體結(jié)構(gòu)圖
狀態(tài)機(jī)負(fù)責(zé)時(shí)序邏輯控制,規(guī)定了35種DFT模式的狀態(tài)跳轉(zhuǎn)行為和每個(gè)狀態(tài)的時(shí)鐘周期數(shù)。表1為根據(jù)式(1)推算出的35種DFT模式的具體參數(shù),主要包括不同模式的DFT點(diǎn)數(shù)、蝶形單元的使用順序和次數(shù)。狀態(tài)控制器定義了6個(gè)運(yùn)算狀態(tài)和1個(gè)輸出狀態(tài),運(yùn)算狀態(tài)按照表1中基4、基2、基5、基3的順序進(jìn)行跳轉(zhuǎn),每個(gè)狀態(tài)的時(shí)鐘周期數(shù)由計(jì)數(shù)器進(jìn)行計(jì)數(shù),從而實(shí)現(xiàn)整個(gè)時(shí)序狀態(tài)的控制。
表1 35種模式的參數(shù)
維諾格蘭傅里葉變換算法(Winograd Fourier Transform Algorithm,WFTA)是一種計(jì)算小點(diǎn)數(shù)DFT 非常有效的方法[11]。WFTA算法將離散傅里葉變換使用矩陣形式進(jìn)行表示,通過矩陣降階最大限度的減少 DFT 的乘法運(yùn)算次數(shù)[12-13]。
N點(diǎn)DFT運(yùn)算使用矩陣乘積形式可以表示為X=Wx,其中
x=[x(0),x(1),…,x(n)]T
X=[X(0),X(1),…,X(n)]T
WFTA算法對矩陣W進(jìn)行分解得到W=SCT。矩陣S和T由0和±1三種元素組成,矩陣C只有對角線上的元素非0,數(shù)據(jù)與矩陣S和T作運(yùn)算時(shí)僅包含加法運(yùn)算,數(shù)據(jù)與矩陣C作運(yùn)算時(shí)僅包含乘法運(yùn)算[14,15]。以點(diǎn)數(shù)N=3為例,W矩陣分解為
上述矩陣乘積展開形式如式(3)所示[16]
(8)
根據(jù)式(8)的計(jì)算過程,3點(diǎn)DFT可以使用如圖3所示的基3蝶形單元實(shí)現(xiàn),
圖3 基3蝶形單元結(jié)構(gòu)圖
為了實(shí)現(xiàn)蝶形單元單流水處理,單個(gè)時(shí)鐘周期需要同時(shí)完成輸入和輸出數(shù)據(jù)的存取,因此需要兩組存儲器分別對蝶形單元輸入和輸出數(shù)據(jù)進(jìn)行緩存。由于隨機(jī)存取存儲器(Random Access Memory,RAM)一個(gè)時(shí)鐘只能寫或讀一個(gè)數(shù)據(jù),同一時(shí)鐘周期的并行數(shù)據(jù)不能存放在同一RAM中,因此需要使用多個(gè)RAM單元對數(shù)據(jù)進(jìn)行緩存?;谏鲜鎏厥庑枨?,本文使用圖2所示的緩存區(qū)進(jìn)行實(shí)現(xiàn)。
根據(jù)大點(diǎn)數(shù)DFT分解為多級小點(diǎn)數(shù)DFT的運(yùn)算流程,上級蝶形單元的輸出數(shù)據(jù)需要按照指數(shù)映射關(guān)系進(jìn)行重新排序才能作為下級蝶形單元的輸入。本文設(shè)計(jì)了一種二維緩存結(jié)構(gòu),對應(yīng)圖2所示的緩存區(qū)RAM_0和RAM_1,使用行序號和列序號對25個(gè)RAM單元進(jìn)行編號,地址控制單元按照圖中的坐標(biāo)(行序號、列序號)對不同RAM單元進(jìn)行讀寫訪問?;谏鲜龆S緩存結(jié)構(gòu),地址控制單元可以借助RAM單元的坐標(biāo)對多級蝶形運(yùn)算之間的數(shù)據(jù)進(jìn)行重排序,在實(shí)現(xiàn)蝶形單元流水處理的同時(shí)簡化地址控制單元的設(shè)計(jì)復(fù)雜度。35種模式的多級蝶形運(yùn)算對同一緩存區(qū)進(jìn)行復(fù)用,保證了系統(tǒng)的存儲資源的高效利用。
60點(diǎn)DFT的數(shù)據(jù)緩存流程如圖4所示。第一級做15次基4蝶形運(yùn)算(R4),在R4輸入端,地址控制單元按照時(shí)間軸T0的順序依次生成緩存區(qū)RAM_in的讀地址;同時(shí)在R4輸出端,地址控制單元按照RAM_0對應(yīng)的緩存序列表依次生成緩存區(qū)RAM_0的寫地址。第二級做12次R5,在R5輸入端,地址控制單元按照時(shí)間軸T1的順序依次生成緩存區(qū)RAM_0的讀地址;同時(shí)在R5輸出端,地址控制單元按照RAM_1對應(yīng)的緩存序列表依次生成緩存區(qū)RAM_1的寫地址。第三級做20次R3,在R3輸入端,地址控制單元按照時(shí)間軸T2的順序依次生成緩存區(qū)RAM_1的讀地址;同時(shí)在R3輸出端,輸出數(shù)據(jù)緩存之后進(jìn)行譯序即可得到正序輸出的結(jié)果。
圖4 60點(diǎn)DFT數(shù)據(jù)緩存流程
表2 35種模式時(shí)鐘周期統(tǒng)計(jì)
圖6 面積與功耗報(bào)告
在時(shí)鐘頻率200 MHz下對35種DFT模式進(jìn)行波形仿真,硬件模塊完成各組DFT處理所需的時(shí)鐘周期數(shù)及處理時(shí)間如表2所示。本文設(shè)計(jì)的DFT硬件加速器完成一組1 296點(diǎn)(耗時(shí)最長的點(diǎn)數(shù))DFT所需時(shí)間為18.5 μs,應(yīng)用于LTE上行鏈路中時(shí)具有較大的時(shí)間余量,能夠較好的滿足LTE系統(tǒng)的實(shí)時(shí)性要求。在SMIC 40 nm工藝、時(shí)鐘頻率200 MHz的條件下,使用Synopsys Design Compiler對RTL代碼進(jìn)行邏輯綜合。綜合報(bào)告如圖6所示,硬件電路的面積為0.87 mm2,功耗為12.5 mW。35種DFT模式對二維緩存結(jié)構(gòu)的存儲區(qū)進(jìn)行復(fù)用,此種設(shè)計(jì)保證了系統(tǒng)存儲資源的高效利用,在實(shí)現(xiàn)高速處理的同時(shí)可有效控制硬件電路的面積,適合LTE工程應(yīng)用。
本文設(shè)計(jì)了一種應(yīng)用于LTE上行鏈路預(yù)編碼的DFT硬件加速器模塊。采用基于WFTA算法的基4/2/5/3蝶形單元實(shí)現(xiàn)35種長度的DFT運(yùn)算,采用二維緩存結(jié)構(gòu)實(shí)現(xiàn)蝶形單元流水處理。此種結(jié)構(gòu)的DFT硬件加速器具有運(yùn)算速度快、存儲資源占用少的優(yōu)點(diǎn),適合LTE工程應(yīng)用。
[1]徐廣麗.LTE物理層上行鏈路關(guān)鍵技術(shù)研究[D]. 西安:西安電子科技大學(xué),2012.
[2]郭寧,彭端,李源.MIMO SC-FDMA定時(shí)同步的并行干擾消除算法[J].電子科技,2014,27(10):87-90.
[3]楊麗花,楊龍祥,朱洪波.LTE上行多用戶SC-FDMA系統(tǒng)中時(shí)變信道估計(jì)方法[J].通信學(xué)報(bào),2014,35(9):91-98.
[4]劉毅.LTE系統(tǒng)中關(guān)鍵算法的研究[D].成都:電子科技大學(xué),2014.
[5]Physical Channels and Modulation.3GPP TS 36.211. Evolved universal terrestrial radio access(E-UTRA)[M].Geneva:Physical Channels and Modulation,2008.
[6]李大習(xí).基于FPGA的可配置FFT IP核實(shí)現(xiàn)研究[J].電子科技,2014,27(6):46-49.
[7]劉倩.高速低成本可重構(gòu)FFT處理器的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2008.
[8]胡廣書.數(shù)字信號處理—理論、算法與實(shí)現(xiàn)[M]. 北京:清華大學(xué)出版社,2003.
[9]李天悅,何晶,許信玉.小點(diǎn)數(shù)Winograd傅里葉變換算法處理器設(shè)計(jì)[J].太赫茲科學(xué)與電子信息學(xué)報(bào),2013,11(2):282-285.
[10] 程志鵬,馬琪,竺紅衛(wèi). 混合基FFT算法運(yùn)算量分析[J].太赫茲科學(xué)與電子信息學(xué)報(bào),2016,14(6):925-928.
[11] 毛俊,張學(xué)智.快速傅立葉變換算法的比較[J].西安工業(yè)學(xué)院學(xué)報(bào),2002(2):106-111.
[12] 蔡偉,閆華光,陳士修.Winograd快速傅立葉變換及其在頻譜分析儀中的應(yīng)用[J].繼電器,2002(4): 32-34.
[13] 趙海舜.基于SoC的LTE物理層設(shè)計(jì)與實(shí)現(xiàn)[D]. 西安:西安電子科技大學(xué),2015.
[14] 解春云,劉光輝,??》?高速3780點(diǎn)FFT處理器的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2012,36(5):1-4.
[15] 孫重磊.基于FPGA的24點(diǎn)離散傅里葉變換結(jié)構(gòu)設(shè)計(jì)[J].電子科技,2012,25(9):132-135.
[16] 馬翠梅.低復(fù)雜度混合基FFT研究與設(shè)計(jì)[D].北京:北京理工大學(xué),2014.