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

来源:电子工程世界 作者:—— 时间:2010-06-07 09:58

 3 硬件实现

  在实际应用中,一般由FPGA完成需要快速和较为固定的运算,由DSP完成灵活多变和运算量较大的任务[7]。Xilinx Virtex-5 SXT平台针对具有低功耗串行连接功能的DSP和存储器密集型应用进行了优化,具有硬件结构可重构的特点,适合算法结构固定、运算量大的前端数字信号处理,可以大量卸载这些功能,释放DSP带宽以处理其他功能,所有这一切都使得FPGA在数字信号处理领域显示出自己特有的优势。

  3.1 地址映射

  以1 080点FFT在图2所示系统中的实现过程分析系统工作原理。因为1 080=8×135,且8和135互质,故外层采用Good-Thomas算法。

  输入地址映射:

  FPGA内嵌Block RAM的使用可以大大节省FPGA的可配置逻辑功能块(CLB)资源。Good-Thomas算法需要对输入输出数据进行排序,输入输出端处理方法相同,这里只介绍输入端处理。在输入端,鉴于Block RAM的特征,设置一个ROM和RAM,如图2模块A所示。对于不同长度的FFT,ROM不同,但RAM可以共用。在ROM里预先存放输入数据在RAM1中的位置序号,此位置序号由(1)式得到,在时钟沿到来时,先顺序读出存储在ROM中的位置序号,将此数作为RAM1的地址输入,就能将输入数据存放到RAM1中的不同位置。这样在输入数据的同时完成了数据的排序,一举两得。1 080点FFT的输入和输出端地址索引如图2所示,其逻辑时序图见图3。图3中,RAM_in由测试数据xn_i和xn_r进行位拼接后输入。

  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的结果。

相关文章

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子