- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中国地质大学(武汉)
课 程: 片上系统设计课程实验报告
姓 号:
学 号:
班 级:
指导老师: 王家豪
目录
一、题目及要求: 3
题目: 3
功能要求: 3
二、实验原理 4
设计构思: 4
三、实验操作 6
1.打开工程 6
2.启动Tools SOPC Builder 6
3. 去掉程序中不用的模块 7
4. 成功生成软核 7
5.编译工程 8
6.烧入板子 8
7.打开 Nios II IDE,建立 Nios c/c++ Application 9
8.转移代码 9
9.编译工程后运行 11
四、实验结果 11
实验其他操作描述: 13
五、实验代码(附加) 14
六、设计小结 14
七、实验分工 14
一、题目及要求:
题目:
FPGA的音乐播放器设计,要求:FPGA开发板上从SD卡读取音频文件并播放音乐,支持WAV格式或MP3格式或其他格式音频文件,所有数字电路设计均采用Verilog HDL语言,软件程序设计采用C语言。
功能要求:(可实现某几项或全部)
1. 支持SD卡文件读取;
2. 支持WAV或MP3或其他格式音频,如为压缩格式则需解压缩;
3. 歌曲名称LCD显示;
4. 支持“播放/暂停”控制功能;
5. 支持“前一首”功能;
6. 支持“下一首”功能;
7. 支持LED灯显示音量功能;
8. 支持复位功能;
9. 支持硬启动,FPGA码流文件和软件二进制文件写入ROM,从ROM启动;
10. 支持总歌曲数和第几首歌曲显示功能,通过LCD或数码管显示。
二、实验原理
实验目的:实现了一个全功能的音乐播放器,打通过 Altera DE2 开发板上的音乐文件的能力,可播放实时的 SD 卡上 WAV 格式音乐文件,同时为用户提供互动的音乐,如暂停,快进等等。 熟悉片上系统开发的流程。
设计构思:
按要求看,已给的工程中在播放音乐的时候不可以切换下一首歌曲,只能在选择歌曲的界面选择下一首上一首,这不像我们平时使用的音乐播放器,所以我们试图将音乐播放过程中切换歌曲此功能加到四个key上去。
系统框架NIOSII ,SD 卡以及其他外设都是通过 Avalon 总线相连接的。Avalon 总线是一种协议较为简单的片内总线,Nios 通过 Avalon 总线与外界进行数据交换。
实验主要的工作就是通过 NiosII 来控制各个设备的工作。其中外设有 VGA(视频图形阵列)控制器、内存、LCD 显示控制器、LED 灯、按键和开关控制。
音频数据通过总线存入输入输出缓存器中,然后经过音频编解码器,通过扬声器输出。
软件控制的框架
。
三实验操作
实验代码和基本工程文件已经从老师那里得到。
1.打开工程
由于我使用的较高版本软件,这里选择“open in Classic”,以旧版本打开。
3. 去掉程序中不用的模块
也可不去,这样也不影响,只是浪费资源。
4. 成功生成软核
选择退出
5.编译工程
6.烧入板子
打开Toolsprogrammer,add .sof files后,添加硬件开始。
7.打开 Nios II IDE,建立 Nios c/c++ Application
8.转移代码
将已给工程中hello_led_0文件夹下的.h.c代码考到刚建立的 wav_player目录下的wav_player内,在回到软件右键点击 refresh。
9.编译工程后运行
成功后Run as NIOS Ⅱhardware
四、实验结果
1 此图为提示选歌界面
2.第二幅图为播放第一首歌曲,歌名为dawn。
3.此图为播放第2首歌,歌名为 Counting Stars,刚开始播放第 00 秒。
4.此图为加载歌曲的界面,显示loading。
实验其他操作描述:
1选歌界面:key2为移动下一首,key3为移到上一首,key1确认播放。
播放歌曲的时候:key0复位退回到选歌,key1为播放下一首,key2为播放上一首,长按key3暂停。3.其他: 前两个数码管先当前播放第几首歌,接下来两个显示总曲目,最后四个显示歌曲的时间进度。swi[4]开关快进,swi[5]开关快退,swi[6]开关暂停。只保留顺序播放swi[0]开关。其他的随机循环播放功能删除了,显示歌词也删除了。
五实验代码(附加)
_led.c中是一个主函数,我在里面添加了一个子函数用于自身嵌套实现在_led.c文件中
文档评论(0)