新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于FPGA的LTE系统中转换预编码的设计

基于FPGA的LTE系统中转换预编码的设计

作者: 时间:2011-01-19 来源:网络 收藏

  3.2 内部FFT处理单元

  当进行图2模块B中的操作时,内部FFT模块先单独生成。Xilinx提供的FFT IP核适用于基2点的FFT变换,其所采用的算法为Cooley-Tukey算法,变换长度为N=pow2(m),m=3~16,数据采样精度和旋转因子精度都为8~24,故模块B的8、16、32、64、128及256点FFT都可用IP核生成。选择“Pipelined,streaming I/O”生成基2点FFT模块,可以减少整体处理时间。15、45、75、135、225点FFT模块的外层算法是Good-Thomas算法,其余采用Cooley-Tukey算法实现。

  具体到1 080点FFT,将RAM1中的数据顺序读出,由MUX1选择进行8点FFT变换,完成第一级操作后,所得中间结果顺序存储在RAM2中;然后再将RAM2中的中间结果取出,由MUX2选择进行135点FFT变换,共操作8次,完成第二级操作,所得结果按模块C中ROM指示的顺序存储在RAM1中;最后顺序输出RAM1中的内容就是1 080点FFT的结果。

3.3 乘法器设计

  量化效应在数字信号处理技术实现时是很重要的问题,主要包括运算量化效应、系数量化效应等,前者的影响大于后者[5]。运算中还可能出现溢出,造成更大的误差。上述问题对乘法器的设计提出了要求,由上文知,基2 FFT由IP核生成,故此处的乘法器设计只针对非基2 FFT有效。

  Xilinx的XC5VSX95T内部共有640个DSP48E,每个DSP48E包含一个25×18 乘法器。在调用乘法器IP时,将乘数设为宽度为25和18的signed型(旋转因子位宽为18),输出截取结果的[41:17]共25 bit,乘法器输入输出宽度相等,在结果输出的同时对结果进行缩放,这样利于程序模块化,但前提是要保证数据不溢出。由于输入采样数据宽度只有16 bit,而转换预编码输入数据最大长度只有1 200点,再考虑旋转因子系数小于1,可以断定25 bit位宽可使乘法器结果不溢出,且运算精度也可满足要求。

  4 性能分析

  程序利用Verilog HDL硬件描述语言编写,在Xilinx公司的高性能设计开发工具ISE10.1i中编译成功。当FPGA芯片选为XC5VSX95T时,在Synplify Pro 9.6.1中进行逻辑优化与综合后显示其最大时钟频率为105.6 MHz,FFs耗用29 150/58 880,LUTs耗用37 625/58 880,乘法器耗用414/640,Block Ram耗用176/488,各项指标都合符要求。布局布线成功后,在Matlab中产生一实正弦测试信号,经采样量化成1 200点数据后输入Modelsim SE 6.1d对程序进行后仿真,然后输出结果回送至Matlab,得到仿真图如图4。

  由图4可以看出FFT处理器处理后的结果和Matlab计算的理论结果基本一致,都在频率为15 Hz和335 Hz处取得最大FFT绝对值,两者之间的误差正是数字信号处理量化效应的体现。从整体看,这些误差是数据在经过采样量化和截断处理后不可避免的且是可以容忍的,因此可以判断测试结果符合精度指标。

  本文讨论了应用在LTE上行转换预编码中的多种FFT的软硬件实现。与各种FFT单独处理或只采用Cooley-Tukey算法的方法相比,本设计巧妙地将Good-Thomas算法与Cooley-Tukey算法结合起来,在硬件资源和成本消耗上都有很大的节省,速度上也能满足要求,而且这种结构很容易进行功能扩展,只需要调整内部FFT单元的种类和数目即可。这种大规模混合基FFT的实现方法对其他场合的大规模FFT有一定的普适性。


上一页 1 2 3 下一页

关键词:

评论


相关推荐

技术专区

关闭