全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 可编程逻辑 >

ROM_IP的调用 用蜂鸣器播放歌曲

时间:2023-07-19 16:44

人气:

作者:admin

标签: 调用  蜂鸣器  ROM  播放     

导读:查看生成的文件,上部分是注释,中间会显示单元个数和位宽,下部分是存储的数据。...

1.新建一个存储文件(mif文件)。

图片

2.设定为256个存储单元,每个单元8位宽。

图片

3.自行往每个单元中填充自己需要的数值。

图片

4.保存到文件夹中。

图片

5.查看生成的文件,上部分是注释,中间会显示单元个数和位宽,下部分是存储的数据。

图片

6.调用ROM_IP核,按下图箭头顺序保存。

图片

7.基本使用默认设置就行,注意单元个数和位宽与之前设定的要一样。

图片

8.在初始化选项栏中,选择最初生成的mif文件,然后和之前PLL的调用一样,选择生成inst文件,点击finish,rom的调用到此结束。

图片

9.下图是野火FPGA给的电路框图,用了两个按键,电路的效果为从1到256读取对应单元存储的数据并通过数码管显示出来,两个按键按下后,会分别从99和199开始往后读取,具体参考野火教程,这里不详细展开。

图片

10.我这里选择通过在rom中存储《恭喜发财》的乐谱频率,使蜂鸣器播放歌曲。下面是网上找到的音调和频率的对应关系,我先是使用了野火给的蜂鸣器例程(例程是循环播放七个音节),只需要在原有基础上加一个rom就行,但是他给定的是0.5秒一个音调,播放恭喜发财就有点拖沓,修改成0.5秒又会有明显的停顿,至今没搞清楚为啥,所以我换成之前FPGA实验课上做的程序。

图片

12.这是之前程序的顶层,由于器件不同,需要把调用的ip核都换掉。(需要程序的,拿到手,可以按以下流程操作)

图片

13.首先新建一个工程,选定自己的器件,将这四个文件复制到自己的工程文件夹下。

图片

14.按照上文给出的rom_ip调用,还有之前一篇pll_ip调用的方法,各自重新生成一个放到文件夹中,其中pll输出的时钟要改为12Mhz,并且在最后输出的选项卡中要勾选bsf文件,之后的顶层文件中要用,两个ip核的名字就按之前给出的写就行,否则自己还要到程序里再改一下,如下。

图片

图片

图片

图片

15.新建一个顶层的bdf文件。

图片

16.在bdf文件的空白处双击,打开symbol栏,点击下方三个点,跳转到自己的文件夹,将复制的song.bsf,ctclk.bsf,还有新生成的pll.bsf都添加进来,然后按下图连线,此时编译成功就没问题了。

图片

图片

17.最后,按照自己的板子,搞定引脚,程序完成。

图片

18.之后,只需要修改mif文件,就能播放自己要的歌曲,不过因为速度和音调会有些问题,有些效果可能不好。具体mif修改如下,以恭喜发财为例:

图片

这里的11~17是七个音节,5,6,7是三个低音音节,如果需要其它的音节,需要自己计算。

图片

根据乐谱画线的这一段,编出来的mif文件应该是下面这样的:

图片

然后复制到mif文件中

图片

重新编译并下载就可以了,其它歌曲一样的操作。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信