一、基本原理
FFT是DFT的一种快速实现算法,主要是为了减少DFT的计算量,FFT和DFT的公式相似:
FFT傅里叶变换
IFFT逆傅里叶变换
二、xilinx FFT IP
2.1 IP基本配置
(1)基本配置参数:
- FFT通道数:可同时进行多个通道的FFT运算,设置为多通道后数据流不支持Pilelined模式
- FFT点数:进行一次FFT运算需要的点数,即FFT/IFFT变换公式种的N
- 处理时钟:根据设计设置处理时钟
- 工作模式:共4种工作模式可选择:
* Pilelined:流水线工作模式,支持数据流水输入输出,资源消耗大,转换时间短
* Radix4 Burst:基4 突发模式,使用基4迭代方法分别加载和处理数据。使用资源大小比流水线解决方案小,但转换时间较长。
* Radix2 Burst:基2 突发模式,使用基-2迭代方法。使用资源比基-4更少,但转换时间更长。
* Radix2 Lite Burst:简化基2 突发模式,基于基2体系结构,使用时间复用方法使用更小的内核执行蝶形运算,转换时间更长。
(2)实现参数
- Data Format:数据格式,可选择为定点类型和浮点类型
- Scaling Options :缩放选择,可选择块浮点缩放、缩放、不缩放
- Rounding Modes:截位选择,Truncation为直接截位,convergent rounding为4舍5入截位
- Precision Options:数据长度选择,长度决定数据精度
- Output Ordering Options:输出模式选择,可选择自然序输出或bit逆序输出,主要是蝶形运算 - 后输出数据为bit逆序,选择为自然序输出会增加FIFO消耗
- CP Insertion:选择自然序输出IP可提供增加CP功能,主要用于OFDM系统
- 其它复制事测选择:数据输出索引和溢出标志等
- Throttle Scheme :节流方案,主要用于平衡性能和处理时间
(3)实现结果
- Memory Option:存储资源选择,可选择bram dram等
- Optimize Option:优化选择资源选择,可选择乘法器的类型及资源
配置完成后可再左侧的implementation Details窗口种查询所有的配置信号,并能查询定点量、bram消耗、处理时延等
2.2 IP接口说明
参照Xilinx IP FFT/IFFT配置接口如下,该IP主要采用AXIS接口:
主要接口有:
(1)时钟及复位接口
- aclk:处理时钟
- aclken:时钟使能
- aresetn:复位
(2)输入配置AXIS接口,主要实现IP的初始配置或动态配置
- s_axis_config_tdata:24bit配置数据接口
- s_axis_config_tready:配置准备好标志
- s_axis_config_tvalid:配置数据有效标志
(3)输入数据AXIS接口,按IQ数据输入,高Q低I
- s_axis_data_tdata:输入数据接口,数据位宽与通道数及数据精度有关,如通道16bit精度数据,则数据位宽为32bit,高16bit为Q,低16bit为I
- s_axis_data_tready:输入数据准备好标志
- s_axis_data_tvalid:输入数据有效标志
- s_axis_data_tlast:输入数据结束标志,在数据结束时置1
(4)数据输出AXIS接口,按IQ数据输入,高Q低I,其中tuser为输出输出索引,在bit倒序输出时可使用
- m_axis_data_tdata:输出数据接口,数据位宽与通道数及数据精度有关,如通道16bit精度数据,则数据位宽为32bit,高16bit为Q,低16bit为I
- m_axis_data_tready:输出数据准备好标志
- m_axis_data_tvalid:输出数据有效标志
- m_axis_data_tlast:输出数据结束标志,在数据结束时置1
- m_axis_data_tuser:输出数据拍索引,长度为log2(N)
(5)状态监控接口
主要为异常事件监控,具体可参照Xilinx官网pg109
其中配置AXIS接口定义如下:
共24bit数据,主要接口定义为:
- NFFT:FFT点数配置,可选项,在勾选run time configurable transform length时有效,否则该部分长度为0
- CP_LEN: CP长度,在选择了CP补偿后该部分有效,否则该部分长度为0
- FWD/INV:3个通道FFT/IFFT配置,1-FFT,0-IFFT
参考资料:pg109-xfft