片上系统设计课程实验报告.docx

上传人:b****5 文档编号:3791407 上传时间:2022-11-25 格式:DOCX 页数:13 大小:1.90MB
下载 相关 举报
片上系统设计课程实验报告.docx_第1页
第1页 / 共13页
片上系统设计课程实验报告.docx_第2页
第2页 / 共13页
片上系统设计课程实验报告.docx_第3页
第3页 / 共13页
片上系统设计课程实验报告.docx_第4页
第4页 / 共13页
片上系统设计课程实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

片上系统设计课程实验报告.docx

《片上系统设计课程实验报告.docx》由会员分享,可在线阅读,更多相关《片上系统设计课程实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

片上系统设计课程实验报告.docx

片上系统设计课程实验报告

中国地质大学(武汉)

课程:

片上系统设计课程实验报告

姓号:

学号:

班级:

指导老师:

王家豪

一、题目及要求:

题目:

基于FPGA的音乐播放器设计,要求:

FPGA开发板上从SD卡读取音频文件并播放音乐,支持WAV格式或MP3格式或其他格式音频文件,所有数字电路设计均采用VerilogHDL语言,软件程序设计采用C语言。

功能要求:

(可实现某几项或全数)

1.支持SD卡文件读取;

2.支持WAV或MP3或其他格式音频,如为紧缩格式则需解紧缩;

3.歌曲名称LCD显示;

4.支持“播放/暂停”控制功能;

5.支持“前一首”功能;

6.支持“下一首”功能;

7.支持LED灯显示音量功能;

8.支持复位功能;

9.支持硬启动,FPGA码流文件和软件二进制文件写入ROM,从ROM启动;

10.支持总歌曲数和第几首歌曲显示功能,通过LCD或数码管显示。

 

二、实验原理

实验目的:

实现了一个全功能的音乐播放器,打通过AlteraDE2开发板上的音乐文件的能力,可播放实时的SD卡上WAV格式音乐文件,同时为用户提供互动的音乐,如暂停,快进等等。

熟悉片上系统开发的流程。

设计构思:

按要求看,已给的工程中在播放音乐的时候不能够切换下一首歌曲,只能在选择歌曲的界面选择下一首上一首,这不像咱们平时利用的音乐播放器,所以咱们试图将音乐播放进程中切换歌曲此功能加到四个key上去。

这里利用的大体内存是SD卡。

板子上有一个SD卡插槽,将其插入SD卡。

SD卡控制器的设计提供的SD记忆的彼此作用。

为了找到最佳的方式,界面与DE2开发板的SD卡,咱们碰到了各类现有的IP可用于控制在HAL的抽象级别或物理实现SD卡的核心。

SD卡的文件系统必需符合下列要求:

-FAT16文件格式,意味着最小的数据单元是16位长。

-另外,在FAT16格式的分区将整个内存的数据块,每块512个字节组成。

其中文件系统的FAT16:

为FAT16系统需要由SD卡控制器侦测到该卡。

该系统分区成块,其中分区进行。

在按键的控制上面:

具体实现了SW[4],SW[5]和SW[6]用于快进,暂停去扭转和歌曲别离。

另外,SW[3]选择随机模式KEY[2]和KEY[3]用于通过播放列表进行阅读以选择一个特定的歌曲。

系统框架

NIOSII,SD卡和其他外设都是通过Avalon总线相连接的。

Avalon总线是一种协议较为简单的片内总线,Nios通过Avalon总线与外界进行数据互换。

实验主要的工作就是通过NiosII来控制各个设备的工作。

其中外设有VGA(视频图形阵列)控制器、内存、LCD显示控制器、LED灯、按键和开关控制。

音频数据通过总线存入输入输出缓存器中,然后通过音频编解码器,通过扬声器输出。

软件控制的框架

具体内容能够分解为下

1.检测插入的SD卡,若是SD卡不存在就继续检测,若是存在就跳到2

2.找到根目录下的所有波形文件

3.然后设置SD卡第一个文件作为当前的文件

4.读取文件头找到采样率。

5.设置音频芯片的采样率。

6.然后读取512字节的数据,若是读取发生错误则跳到1若是没有读取错误,就播放读取的512字节的数据而且更新LED

7.随后就更新播放时刻并检测文件是不是读完。

若是不是就再次回到6,并重复以上步骤;若是读取完毕,就把下一个文件设置为当前文件,然后再继续设置音频芯片的采样率并回到4。

三、实验操作

实验代码和大体工程文件已经从老师那里取得。

1.感动工程

2.启动Tools>SOPCBuilder

由于我利用的较高版本软件,这里选择“openinClassic”,以旧版本打开。

3.去掉程序中不用的模块

也可不去,如此也不影响,只是浪费资源。

4.成功生成软核

选择退出

5.编译工程

6.烧入板子

打开Tools>programmer,add.soffiles后,添加硬件开始。

7.打开NiosIIIDE,成立Niosc/c++Application

8.转移代码

将已给工程中hello_led_0文件夹下的.代码考到刚成立的wav_player目录下的wav_player内,在回到软件右键点击refresh。

9.编译工程后运行

成功后RunasNIOSⅡhardware

四、实验结果

1此图为提示选歌界面

2.第二幅图为播放第一首歌曲,歌名为dawn。

 

3.此图为播放第2首歌,歌名为CountingStars,刚开始播放第00秒。

 

4.此图为加载歌曲的界面,显示loading。

实验其他操作描述:

1.选歌界面:

key2为移动下一首,key3为移到上一首,key1确认播放。

2.播放歌曲的时候:

key0复位退回到选歌,key1为播放下一首,key2为播放上一首,长按key3暂停。

3.其他:

前两个数码管先当前播放第几首歌,接下来两个显示总曲目,最后四个显示歌曲的时刻进度。

swi[4]开关快进,swi[5]开关快退,swi[6]开关暂停。

只保留顺序播放swi[0]开关。

其他的随机循环播放功能删除,显示歌词也删除。

 

五、实验代码(附加)

简单说明,老师提供的工程中是一个主函数,我在里面添加了一个子函数用于自身嵌套实此刻播放歌曲时切换歌曲,退出播放等操作。

文件中挪用各个子函数,具体实现办法要看分散在各个.c源文件中的子函数,比如LCD显示控制,数码管显示控制,LED等显示控制。

下载地址:

六、设计小结

在本次实验的进程中,主如果进行了QuartusⅡ与NIOSⅡIDE的软件操作进程,并对所提供的代码进行运行以后对所出现的问题进行相关的调试。

碰到的问题:

1.利用老师所提供的工程文件和代码进行修改,对工程进行编译和运行会碰到各类错误,通过上网查询是自己笔记本的软件版本太新的原因,通过从头编译或新建工程解决问题。

2.在想要规则的显示音量的问题上。

咱们在网上找到了另外一个人自己设计的方案。

重现他的实验进程时,可是在把程序下载的板子中去的时候出现Error:

Can’tconfiguredevice.ExpectedJTAGIDcode0x020820DDfordevice1,butfoundJTAGIDcode0x020830DD。

编译是通过的。

后来上网查找才发觉是开发板的型号不对。

最后无奈仍是回到了老师提供的工程方案当中。

3.其他一些零碎的软件操作小问题,向他人请教解决。

那个实验让我们熟练的利用quartus2与nios2,收获颇丰。

软核设计提供了例子,所以其中代码的理解占那个实验专门大的一块:

中包括主函数,再挪用其它源文件中概念好的子函数,很方便。

那个只是包括主程序,具体实现了什么功能还得看各个子程序的功能在具体实验中,咱们删除一些代码,比如歌词的显示,循环和随机播放模式。

总之,感触颇多。

有时候感觉已经摸到成功的门坎了碰到不可解决的问题致使不能不从头再来的失望。

可是每次解决问题的时候的喜悦和快乐也不时伴随着咱们。

老师有一次说过:

你的尽力和你的付出不必然是线性关系。

可是只要你再多尽力一点,你就可能达到你的目标了。

七、实验分工

●对代码整体架构的理解和修改:

XXX

●查找相关资料解决问题,预备SD卡等材料:

XXX

●软件操作及硬件调试:

XXX

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1