在VIVADO中建立一个FFT核,只要依下图步骤就可以开始配置一个FFT核:
需要配置的参数有三个标签页,需要一一配置
第一个标签页里主要配置通道数,点数,时钟,吞吐量,结构,以及是否可以运行时配置,需要注意的是结构的配置会影响调整因子。
第二配置页主要是数据宽度,格式,控制信号,输出方式,和可选的控制信号。需要注意的是输据的输入是自然方式(Natural Order),输出可以是自然方式也可以是倒序方式(Reversed Order),如果选用倒序方式输出,在后面处理中就要注意这一特性。
第三配置页主要配置内部数据块的使用和优化的方式
所有这些配置完成后,可以左侧一列中察看配置的结果,IP Symbol中主要察看各种接口,Implementation Detals 中有较多的信息,比如结构,长度,数据宽度等,需要注的是CONFIG TDATA这一项,与配置接口的参数有关,在使用中需要正确配置。在当前的配置, FWD_INV使用1bit,bit10:bit1用于调整因子,前面已经说过不同的结构调整因子不同,详细的可以参看FFT的核文献。
之后点击OK就可以完成配置,并生成FFT核,并在Project Manager的source中找IP Sources的资源,核的模板就是xfft_0.veo
我们就用这个模板创造我们的实例
有一些接口是不需要的,对它进行重新封装,配置参数是固定的,直接设成固定值,需要注意的是当前配置参数中,调整因子是0,即不调整,这在数据比较小的时候,不会出现问题,当输入数据比较大时,需要适当的设置,以免在进行蝶形运算时出现溢出的情况。
//
module fft_core_test(
clk,