首先在ip catalog里直接搜fft,选中快速傅里叶变换的ip核
然后通道数根据你需要进行fft运算的数据数量进行选择,length选择你数据的点数,进行1024点的fft,时钟自由填写,这里250M就可以测出125M以内的频率,data throughput是数据吞吐量的意思,保持默认即可,下面可以自由选择fft运行的架构,有流水线、基2、基4等,大家在左边的latency可以看到运行时间
然后选择implementation配置
Implementation
Fixed Point 定点全精度
Floating Point 定点缩减位宽
Block Floating Point 不管输入的格式如何,FFT变化内部都采用浮点,会根据每一级的数据情况自动缩放。 这个模式的输入输出位宽一致,便于调用
Rounding 采用四舍五入输出数据(会使用更多的位宽来实现,增加转换速度和使用资源)
Trancation 采用截位输出数据
Input Data Width 输入数据的位宽
Phase Factor Width 输入数据宽度
ACLKEN 时钟使能
ARESETn(active low) 复位信号
Bit/Digit ReversedOrder 逆序输出
Natural Order 顺序输出
XK_INDEX 勾选表示给出输出索引 很有用 建议勾选,可以帮助看出频率大小
然后点击生成之后来编辑fft ip核的原语,这里解释我直接写在注释里了
m_axis_data_tuser可以输出fft的地址,也就是我们添加的index,根据index,和你的采样时钟频率,以及fft运算点数就可以算出你想要的信号的频率了