片上系统设计课程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间: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卡读取音频文件并播放音乐,支持W A V格式或MP3格式或其他格式音频文件,所有数字电路设计均采用Verilog HDL语言,软件程序设计采用C语言。
功能要求:(可实现某几项或全部)
1. 支持SD卡文件读取;
2. 支持WA V或MP3或其他格式音频,如为压缩格式则需解压缩;
3. 歌曲名称LCD显示;
4. 支持“播放/暂停”控制功能;
5. 支持“前一首”功能;
6. 支持“下一首”功能;
7. 支持LED灯显示音量功能;
8. 支持复位功能;
9. 支持硬启动,FPGA码流文件和软件二进制文件写入ROM,从ROM启动;
10. 支持总歌曲数和第几首歌曲显示功能,通过LCD或数码管显示。
二、实验原理
实验目的:实现了一个全功能的音乐播放器,打通过Altera DE2 开发板上的音乐文件的能力,可播放实时的SD 卡上W A V 格式音乐文件,同时为用户提供互动的音乐,如暂停,快进等等。熟悉片上系统开发的流程。
设计构思:
按要求看,已给的工程中在播放音乐的时候不可以切换下一首歌曲,只能在选择歌曲的界面选择下一首上一首,这不像我们平时使用的音乐播放器,所以我们试图将音乐播放过程中切换歌曲此功能加到四个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 > SOPC Builder
由于我使用的较高版本软件,这里选择“open in Classic”,以旧版本打开。
3. 去掉程序中不用的模块
也可不去,这样也不影响,只是浪费资源。
4.成功生成软核
选择退出
5.编译工程
6.烧入板子
打开Tools>programmer,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 此图为提示选歌界面