Vivado IP核:FFT实验 本实验的目的是熟练使用vivado中的FFT核,并且为我将来在verilog代码中实现pwelch函数估计功率谱来做铺垫。 实验方法: 第一步:使用matlab产生正弦波,并且导入vivado中作为待FFT处理的信号 需要注意的地方:浮点数运算复杂,因此需要对正弦波进行量化 使用floor函数进行四舍五入取整,考虑到有符号数,只量化为15位,留一位作为符号位。 2. vivado不能直接读取负数,需要将负数转变为对应的有符号数 对于正负数的转化:是在原本15位数据的基础上加上符号位 以3位有符号数据为例,最高位是符号,那么-1就是 111。但如果把111看为无符号数,那么他就是7。 也即,三位符号数中-1就是无符号数中的7(计算过程为-1+2^3) 那么转到16位有符号数来说,也即为原负数加上2的16次方(代码中for循环可以体现)。 3. 如何根据时钟周期,将读取到的数据串行输出? 在testbench文件中读取数据,并且在for循环中依次串行输出 产生正弦波的matlab代码如下:
图:matlab产生正弦波,进行符号转换并做fft 在这第一行第二个图是使用MATLAB进行FFT输出的结果。后续我会使用vivado进行FFT运算,把二者的数据进行对比,如果不出意外的话,二者的数据应该是大致相同的! 第二步,对vivado FFT IP核进行配置 以下是我的配置界面
配置好IP核后,可以在下图的文件中直接复制代码方便例化。
第三步,对FFT的IP核进行封装 说实话,第一次看到fft模块居然有那么多行参数需要设置,我整个人都麻了。。。。。。。。。。相比较matlab只需要设置输入即可,vivado的FFT核模块要复杂的多。 我们庖丁解牛,把他们分开来分析,就会很好理解。
图:整个模块分为四大部分 第一个方框的是配置FFT的信息,我们通过控制这些输入信号,来控制FFT的运作方式。 (1)s_axis_config_tdata:最后一位如果为1则是FFT模式,为0则是IFFT模式,这里我们设置为1 (2)s_axis_config_tvalid:配置信息有效位,恒为1即可 (3)s_axis_config_tready:配置完成标志,不需要的信号我在这里直接设置为空 2. 第二个方框:待FFT信号输入模块 (1)s_axis_data_tdata:待fft信号,需要注意的是,高16位为虚部,低16为是实部。这里我的输入数据全是实数,需要令高16位为0,再把它们拼接起来 (2)s_axis_data_tvalid:输入数据有效位,令该位和输入数据的第一位对齐。当输入信号结束时把它置0即可结束运算。 (3)s_axis_data_tready: 用不到,空置即可 (4)s_axis_data_tlast:当fft计算即将结束(到最后一位数据时),该标志位置1 3. 第三个方框:FFT计算后输出模块 (1)m_axis_data_tdata:这就是我们需要的FFT输出后的信号,仍然是高n位虚部,低n位实部 (2)m_axis_data_tvalid:当FFT开始输出时,该标志位一直置1。计算结束后,该位置0 (3)m_axis_data_tready:一直置1即可 4. 第四个方框:事件模块 由于事件对本次实验参考价值不大,为了简便就不再介绍 这里的bpsk信号就是之前的正弦波(名字忘了改了。。。) 对fft进行模块实例的veirlog代码如下: 第四步:编写 testbench文件 第五步:观察结果 1. 观察vivado是否正确读取正弦波形,符号转换是否正确
将格式调整为unsigned下的曲线
将格式调整为signed下的曲线 2. 观察输入部分波形
可以看出,当正弦波正常输出时(fft输入数据时),dat_valid置1,说明输入有效。当输入最后一个数据后,dat_last置1. 3. 观察输出部分波形
可以看出,当fft输出时,out_valid信号置1,当输出结束后归0。 4. 将reg_out_re,reg_out_im从vivado输出到txt文件中,再使用MATLAB画图,进行对比。
观察二者数据是否大致相同 可以看出,上面是IP核计算的输出,下面是MATLAB计算的输出。波形走向大致相同 5. 观察二者数据是否大致相同
可以看出,第一个都是,第二个数据都是51开头的,后面也都对应的上。 那么由此说明本次FFT实验圆满成功! 完结撒花!
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/56770.html