vivado FFT的实现
DSP中最常用最基础的FFT运算。
创建FFT核
首先,什么是IP核
在集成电路中,IP(intellectual property)核是指某一方提供的、形式为逻辑单元、芯片设计的可重用模块。
在FPGA的设计中,适当的调用IP核可以提高设计效率,节省设计时间。同时,有些IP核比如 高速接口IP,与FPGA底层的硬件电路资源息息相关。我们在调用IP核时,需要先翻阅IP核的参考资料,了解IP核的结构以及接口定义,方便我们在设计中调用。
可以调用xilinx提供的IP核、第三方的IP核、自己封装的IP核。
配置FFT核:
IP核
只要IP catalog界面中Fast fourier transform 的license状态为“included”即可正常使用。
双击Fast Fourier Transform,选择Customize IP,主界面如下:
vivado的FFT IP核配置起来更加复杂,功能也更加强大。左边是IP核的接口图(IP Symbol)、实现消耗的资源等信息(Implementation Details)、计算FFT所需的时间(Latency);右边是configuration、Implementation和Detailed Implementation三个标签卡。
需要配置的参数有三个标签页,需要一一配置
第一个标签页IP Symbol,主要配置通道数、点数、时钟、吞吐量、可以运行时配置,需要注意的是结构的配置回影响调整因子。
vivado的FFT IP核支持多通道输入(Number of channels)、实时更改FFT的点数(Run time configurable tranform length)、FFT的点数(transform length)、工作时钟(target clock frequency)、选择一种FFT结构,包括pipelined streaming、基4 burst、基2 burst、轻量级基2 burst,计算速度和消耗的资源依次减少。
第二个配置页(implementation),主要是 数据宽度、格式、控制信号、输出方式、可选的控制信号。
implementation标签卡下设置FFT的数据格式为定点fixed point或者浮点float point;设置输入数据的位宽和相位因子位宽(相当于旋转因子);还有一些可选的附件信号;output ordering设置FFT计算结果以自然顺序(nature order)或位/数值反序(bit/digit reversed order)输出。
第三配置页(detailed implementation)主要配置内部数据块的使用和优化方式、存储类型、是否使用DSP单元等于综合、实现有关的信息,比如可以选择复数乘法器和蝶形运算单元的实现结构。
所有这些配置完成后,可以在左侧一列中查看配置的结果,IP symbol中主要查看各种接口;implementation detals中有较多的信息,比如 结构、长度、数据带宽等,需要注的是CONFIG TDATA这一项,与配置接口的参数有关,在使用中需要正确配置。在当前的配置, FWD_INV使用1bit,bit10:bit1用于调整因子,前面已经说过不同的结构调整因子不同,详细的可以参看FFT的核文献;latency显示出计算FFT所需的时间。