打印
[Quartus]

基于FPGA的可配置FFT_IFFT处理器的设计与实现

[复制链接]
1391|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaochy1126|  楼主 | 2012-9-15 18:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前,正交频分复用OFDM(OrthogonalFrequencyDivisionMultiplexing)技术已经成为未来宽带无线接入系统的基本实现技术之一,其抗多径衰落和高频带利用率的优点被广泛应用于无线通信系统中,是解决高速数据在无线信道中传输的首选方案[1]。

式(4)表明首先对X[k]取共轭,然后对其进行FFT变换,对其结果再取一次共轭,乘因子1/N,这样就实现了IFFT与FFT处理模块的复用。

2可配置FFT/IFFT处理器设计

2.1FFT/IFFT处理器整体结构

可配置FFT/IFFT处理器整体结构如图1所示。图中,基4蝶形单元主要完成输入的4路并行计算。OFDM数字基带数据流需要高速连续处理[3],故FFT处理系统在输入、输出均采用了乒乓处理,共需要4组存储单元,一组存储单元需要4块RAM;RAM地址产生单元主要
生成存储单元写入及读出数据的地址,数据选择模块主要完成了乒乓操作RAM的数据选择;ROM及其地址产生单元主要在控制单元的控制下将旋转因子送入蝶形单元,配置单元控制不同点数的数据流操作及其相应地址配置。

FFT_IFFT处理器是OFDM系统中数据处理的核心单元,是OFDM系统中数据正交调制和解调的关键。本文设计实现了一种用于P2P移动无线通信手持终端产品,采用单碟形4路并行结构,兼容802.11g协议,可配置FFT_IFFT处理器,在处理速度、实现面积、功耗方面均满足802.11g系统及手持移动无线通信终端的要求。

2.2FFT/IFFT可配置方案
由基4算法分析可知,要分别完成1024、256、64点的FFT计算,需要的迭代级数分别为5、4、3级。由于1024点的FFT运算可分解为4个256点的FFT运算,而256点的FFT运算又可分为4个64点的FFT运算,64点的FFT运算经过3级迭代就可求出。可以通过简单的模式控制实现多点数的配置,如图2所示。其中5级蝶形计算单元,每级蝶形单元结构一致,采用顺序蝶形计算,当选择模式0时,数据直接送入第一级,进行1024点的5级运算;选择模式1时,数据通过选择器跳过第1级,数据送入第2级,从而完成256点的4级迭代运算;选择模式2时,数据通过选择器跳过第1级和第2级,数据送入第3级,从而完成64点的三级迭代运算。这样就可以正确简单地实现系统要求的配置要求。

相关帖子

沙发
gaochy1126|  楼主 | 2012-9-15 18:42 | 只看该作者
蝶形运算单元的设计是整个FFT/IFFT处理器设计的关键。完成蝶形运算的一次复数乘法包含4次实数乘法和2次实数加、减法,如果将乘数扩大1位,可将计算化简为3次实数乘和5次实数加/减法。为了提高处理速度,本设计采用四级流水线处理方式,有效地减小了关键路径时延。蝶形单元的数据从RAM输入及输出到RAM需要2个时钟周期,这里引入2级流水;对输入数据的实部和虚部分开并行计算,一次复数乘法只需3个乘法累加器即可完成,用4个加法器及4个减法器即可完成基4蝶形单元后续数据处理,再次引入二级流水。整个蝶形单元处理时间为4个周期,采用四级流水线结构后,以较小的资源代价有效提高了处理器的时钟频率。

2.4乒乓RAM设计

为了满足无线移动通信要求,实现对连续数据流和突发数据流的处理,本文设计的FFT/IFFT处理器采用了输入、输出双乒乓结构,保证了系统高吞吐率的要求。设计共使用4组RAM(RAM0~RAM3),每组RAM划分为4块存储器。输入数据写入RAM0组中的4块存储器,写完后开始写入RAM1,与此同时,从RAM0组中读出数据送入蝶形单元进行计算,其结果按照同址计算规则写回相应的地址,直到M级蝶形运算完成后,最终的计算结果写入RAM2。RAM2写满后,即可从RAM2读出计算结果,同时RAM1组中的数据将被读出送入蝶形单元进行运算,其运算结果按照同址运算规律送回RAM1存储,M级蝶形运算完成后,最终结果写入RAM3组,RAM3写满后即可从中读出运算结果。

2.5无冲突并行地址设计[4]

4路并行数据处理结构需要保证每次读取的一组数据分别存储在不同的RAM中,否则在数据读取时会产生地址冲突[5]。本设计中RAM地址采用二维地址,其中地址x表示每块RAM中数据地址,y表示数据来自RAM块的标号。


3FPGA实现及测试分析

本文FFT/IFFT处理器采用Verilg硬件语言描述,在Mentor公司的Modelsim仿真平台上进行了RTL功能仿真及时序仿真,其结果与Matlab仿真结果进行比较显示正确。处理器采用了Xilinx公司Virtex-Ⅱxc22v500芯片进行了验证,在SMICCOMS0.18?滋m工艺下对设计的处理器进行了综合仿真。结果显示:完成64点16bit符号数复数FFT运算只需要50个时钟周期,完成256点FFT运算需要256个时钟周期,最大时钟频率可以达到167MHz,处理器的单元核心面积为1.4mm2。设计完全满足了无线移动手持终端设备高速小面积的设计要求。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1050

主题

11299

帖子

26

粉丝