LTE上行DFT/IDFT的一种设计实现

2011-02-28 05:10刘少雄林平分
网络安全与数据管理 2011年12期
关键词:浮点时钟运算

刘少雄,林平分

(北京工业大学 北京市嵌入式系统重点实验室,北京100122)

为了降低手机终端的功率损耗[1],LTE上行链路采用基于DFT扩频OFDM(DFTS_OFDM)的单载波传输,又称为单载波FDMA(SC_FDMA)。DFTS_OFDM方案的基本结构如图1所示。3GPP协议规定[2]上行PUSCH信道产生SC_FDMA符号要求DFT点数满足式(1)。

由几个参数的变化可以得到最小12点、最大1 296点共35种模式的DFT[3]。现在已有的研究方法(如质因子分解结合 WFTA算法)解决非 2n点 DFT,但此法不够灵活,不适合长度可变的DFT。在数字电视DTMB系统中,3 780点FFT的处理采用分裂基与质因子分解结合WFTA算法实现,但对于LTE上行可配置长度DFT的实现还没有一个成熟有效的方法。

根据LTE实时系统需求采用pipeline流水线结构实现高速可配置的DFT设计,同时在结构和资源利用上进行优化,最后给出仿真图形以及综合结果,为上行LTE设计提供一种参考。

1 算法推导

由 3GPP协议可以看出,LTE中的DFT点数由 4、2、5、3小因子构成,可以将其分解成如式(2)形式:

对于LTE系统来说最多的级数是1 200点,N=1200=4×4×5×5×3=r1r2r3r4r5, 所以这里以一个 5 级的分而治之DFT推导为例,采用正位序进倒位序出的方式对参数k、n进行重新组织:

2 总体结构及技术实现

2.1 整体结构框图

LTE DFT的模块化总体结构如图3所示,根据算法分析可以知道LTE DFT的分而治之需要几个阶段才能完成,每个阶段需要做多次小因子点的DFT,所以图示是一个循环的形式。由状态机控制这些阶段的完成,直到最后一个循环结束输出数据。

其中前处理进入WFTA模块的包括对4个双端口RAM的读取控制以及对旋转因子ROM的读取,还有旋转因子地址的计算。饱和操作根据系统的最大bit数限定,对经过WFTA计算后的数据进行饱和处理,超过的bit数直接截取掉。

2.2 技术实现

2.2.1 4 个双端口RAM的数据存储

为保证pipeline地处理每次循环的数据,这里采用4个双端口RAM对数据进行存取。对4、2、5、3四种小因子的WFTA计算来说,选4个RAM最方便,如果需要进行4点的WFTA计算,则从每个RAM中读出一个数据,这仅需要一个时钟就可读出4个数据。对2点的WFTA计算,则可以一个时钟读出两组的2点WFTA进行计算。对3点的用一个时钟,对于5点的用两个时钟读取。

在基于原位计算的基础上进行改进,加入旋转数据模块,是为了将本来是在一个RAM中的数据在填入RAM前进行旋转,使其在不同的RAM中便于下一阶段pipeline读取。图4展示了一个最简单的12点的填写RAM实例,在开始第一阶段前先将12点的输入数通过载入buffer模块用12个clk按图3顺序载入4个RAM中,也就是将数据倒位序放入4个RAM中。将倒位序之后的数据重新标号,即1对应载入buffer的3,2对应6等。这样做的目的是为了方便计算地址。例如,在第一阶段读的过程中,0、1、2、3通过右移 2 bit, 即除以 4可以算出地址为0,它们分别对应4个RAM的第0地址;同理 4、5、6、7除以 4可以得到 1,即对应 1地址,依此类推。

根据公式4的推导可知在第一阶段DFT的处理中不需要乘以旋转因子,所以旋转因子为0,在第一阶段和第二阶段中需要先乘以旋转因子,旋转因子按照公式推导处理列出在表中。在第一阶段先处理 0、1、2、3四点的WFTA,然后按原位顺序填入 4个RAM,接着处理4、5、6、7四点的 WFTA,本来应该也按原位填入 RAM中,但是注意到在第二阶段需要处理 0、4、8三点的WFTA,如果还按照原位填入,则0、4、8三个数据在同一个RAM中,要读取这3个数需要3个clk,显然不适应pipeline的处理。 所以在做完 4、5、6、7四点的 WFTA之后将数据旋转再写入 4个RAM中,同样将 8、9、10、11四点的结果也旋转,如图4所示。这样的读写RAM操作可以保证pipeline的处理。

2.2.2 旋转因子的存取

根据式(4)的推导,每一级之间需要先乘以旋转因子,对于旋转因子的地址计算依据式(4)的推导。由于要实现35种可配置模式的DFT设计,所以在实现时要尽可能地考虑旋转因子的共享存储,从而尽可能地减少存储这些旋转因子的ROM大小。

(1)根据 2的幂次方关系特性,将 35种模式的 DFT旋转因子分成10组,并存储这10组中最大的点的八分之一构成一个ROM。对于N点(对应组中最大的点),只存储「N/8⏋个地址数据;

(2)对于计算出的旋转因子地址K,根据它所处的DFT 模式,选择它所属的组,10 组分别用{R0,R1,R2,…,R9}表示;

(3)如果 K在 R5,则 R0+R1+R2+R3+R4为它的偏移地址offset;

(4)12点的DFT需要用此组中最大的768点ROM表来找数,则地址K有可能是[0,…,11]×768/12中的一个作为有效地址eff_dft_addr;

(5)对 于 算 出 的 eff_dft_addr,根 据 对 「N×1/8⏋,… ,「N×7/8⏋的比较找出它处于 768点中的哪个位置(此处N为 768),即哪个 1/8象限;

(6)找出所处的象限后,再找出其在第一个1/8对称的位置值 dft_8_addr,计算出 dft_addr=offset+dft_8_addr,然后在ROM表中找出对应的值,再根据对称性还原其原来的所属象限的值。如图5所示,展示一个点的查找方式。通过查找A″的值来得到A的值。

2.2.3 WFTA的运算单元

WFTA 算 法 对 2、3、4、5、7、8、9、16 等 小 N 点有 较快速处理能力,它将小N点DFT转换为循环卷积,利用多项式理论使卷积计算尽可能减少乘法。

一个 N点的 DFT可以表示为 X=Wx,W为 N×N的旋转因子矩阵,Winograd证明那几个小N点的W矩阵可以表示为 W=CGB,C表示为 N×J的矩阵,G表示为J×J的对角矩阵,B表示为J×N的矩阵。CB矩阵的元素都是比较简单的数(0、±1、±2等),G矩阵元素一般为实数或纯虚数。LTE只用到 4、2、5、3四点,下面给出 3点的WFTA算法[5]:

由图6所示3点的WFTA信号流图可知,用了6个加减法,通过化简并移位,实际只用了一个乘法。

2.2.4 块浮点的数据处理

定点运算的特点是速度快但动态范围小。浮点运算的特点则是动态范围大但占用资源大。块浮点具有两种运算的优点,是两种运算的折中,让一组数具有共同的阶码,这个阶码是同组数中最大的那个数的阶码,简化系统资源提高运算的精度[6]。

表1 块浮点处理

如表1所示,因为每次WFTA运算后都有数据位宽的扩展,本结构具有3 bit的扩展。为保持输入wfta_top的模块数据始终为18 bit,这里用块浮点动态截取的方法对每一级的WFTA结果进行处理,动态截取的位宽决定下一级的数据宽度,同时循环累加每个阶段的阶码,在数据输出时进行还原操作。

3 仿真综合

图7所示为12点DFT的仿真图形,dft模式是第一种,首先data_in_vld为高时开始数据输入,然后用12个clk将数据读入4个RAM,之后计算第一级RAM读取地址将数据读出,处理3次4点的 DFT,处理后将数据写入RAM,需要3个clk;再后读出数据做4次3点的DFT,处理后将数据写入 RAM,需 4个 clk;最后将数据读出做压缩还原处理,data_out_vld为高后pipeline出数,需要 12个clk。理论上需要31个 clk,但是在处理中需要处理与其他模式的共享,还要有打拍延时等操作,实际用掉 98个 clk。120点的 DFT实际用 502个 clk,理论上是 120×2+30+30+24+40=364个 clk,说明处理的点数越多冗余clk比例越小。

使用stratix III EP3SL340F1517I3芯片,运用Quartus II综合后的结果为:7 824个组合 ALUT,0个内存 ALUT,8 699个逻辑寄存器,可达到时钟 124.64 MHz,满足 LTE系统时钟122.88 MHz的要求。

文章在介绍LTE上行SC_FDMA的基础上,对35种模式的DFT预编码进行算法分析,提出并用FPGA实现了一种高速可配置的方案。文中对数据存储、WFTA运算单元和块浮点处理进行简单表述,根据旋转因子特性,详细介绍了旋转因子的优化,大大降低了35种模式旋转因子的存储大小。最后给出的仿真综合结果表明该方案具有较好的性能。

[1]DAHLMAN E.3G evolution:HSPA and LTE for mobile broadband.Published by Elsevier Ltd.2007:75-81.

[2]3GPP TS 36.211.Evolved universal terrestrial radio access(E-UTRA).Physical channels and modulation.

[3]Xilinx.LogiCORE IP discrete fourier transform v3.1.DS615.2009.

[4]何小敏.LTE系统中DFT快速算法研究[DB/OL].(2009-12-24).中国科技论文在线.http://www.paper.edu.cn/paper.php?serial_number=2009/2-937.

[5]胡广书.数字信号处理——理论、算法与实现[M].北京:清华大学出版社,2003.

[6]陈丽安,张培铭.定点 DSP块浮点算法及其实现技术[J].福州大学学报,2004,32(6):689-693.

猜你喜欢
浮点时钟运算
重视运算与推理,解决数列求和题
LEO星座增强GNSS PPP模糊度浮点解与固定解性能评估
别样的“时钟”
古代的时钟
有趣的运算
基于Simulink浮点模型和定点模型的问题研究
基于浮点DSP的铁路FSK信号检测
“整式的乘法与因式分解”知识归纳
有趣的时钟
时钟会开“花”