fifo的ip核_fpga除法器ip核使用

fifo的ip核_fpga除法器ip核使用Vivado IP核:FFT实验本实验的目的是熟练使用vivado中的FFT核,并且为我将来在verilog代码中实现pwelch函数估计功率谱来做铺垫。实验方法:第一步:使用matlab产生正弦波,并且导入vivado中作为

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代码如下:   
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用图:matlab产生正弦波,进行符号转换并做fft   在这第一行第二个图是使用MATLAB进行FFT输出的结果。后续我会使用vivado进行FFT运算,把二者的数据进行对比,如果不出意外的话,二者的数据应该是大致相同的!   第二步,对vivado FFT IP核进行配置   以下是我的配置界面
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用   配置好IP核后,可以在下图的文件中直接复制代码方便例化。
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用   第三步,对FFT的IP核进行封装   说实话,第一次看到fft模块居然有那么多行参数需要设置,我整个人都麻了。。。。。。。。。。相比较matlab只需要设置输入即可,vivado的FFT核模块要复杂的多。   我们庖丁解牛,把他们分开来分析,就会很好理解。
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用图:整个模块分为四大部分   第一个方框的是配置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是否正确读取正弦波形,符号转换是否正确   
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用将格式调整为unsigned下的曲线
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用将格式调整为signed下的曲线   2. 观察输入部分波形   
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用   可以看出,当正弦波正常输出时(fft输入数据时),dat_valid置1,说明输入有效。当输入最后一个数据后,dat_last置1.   3. 观察输出部分波形   
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用   可以看出,当fft输出时,out_valid信号置1,当输出结束后归0。   4. 将reg_out_re,reg_out_im从vivado输出到txt文件中,再使用MATLAB画图,进行对比。   
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用   观察二者数据是否大致相同   可以看出,上面是IP核计算的输出,下面是MATLAB计算的输出。波形走向大致相同   5. 观察二者数据是否大致相同   
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用
fifo的ip核_fpga除法器ip核使用   可以看出,第一个都是,第二个数据都是51开头的,后面也都对应的上。   那么由此说明本次FFT实验圆满成功!   完结撒花!

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/41769.html

(0)
上一篇 2024年 9月 7日
下一篇 2024年 9月 7日

相关推荐

关注微信