欢迎来到天天文库
浏览记录
ID:40524059
大小:538.21 KB
页数:6页
时间:2019-08-04
《音乐播放器设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告课程名称:数字系统设计实验指导老师:成绩:_____________实验名称:音乐播放器设计实验实验类型:设计型一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得一、实验目的和要求实验目的:(1)掌握音符产生的方法,了解DDS技术的应用;(2)了解AC97音频接口电路的应用;(3)掌握系统“自顶而下”的设计方法。实验要求:(1)可以播放四首乐曲,设置play、next、reset三个按键。按
2、play键播放当前乐曲,按键next播放下一首乐曲。(2)LED0指示播放情况(播放时点亮),LED2和LED3指示当前乐曲序号。2、个性化要求(1)用键盘上的三个按键P、N、Esc控制乐曲的播放。(2)用SVGA显示乐曲的播放波形。二、实验内容和原理本次实验共可分成mcu、song_reader、note_player、codec_conditioner和ac97_if五个子模块。如下图:1、mcu模块接受按键信息,通知song_reader模块是否要播放(play)及播放哪首乐曲(song)。2、son
3、g_reader模块根据mcu的要求,逐个取出音符{note,duration}送给note_player模块播放,当一首乐曲播放完毕,回复mcu模块乐曲播放结束信号(song_done)。3、note_player模块接收到需播放的音符,在音符的持续时间内,以48Hz速率送出该音符的正弦波样品给AC97音频接口模块。当一个音符播放结束,向song_reader模块发送一个note_done脉冲索取新的音符。4、codec_conditioner、ac97_if模块负责与AC97音频系统接口工作。另外,按键
4、处理模块完成输入同步化、防颤动和脉宽变换等功能。设计原理:1、主控制模块mcu的设计根据设计要求,模块mcu的工作流程图如下图所示。系统复位后经RESET状态初始化后进入WAIT状态等待按键输入或乐曲播放结束应答,若有按键输入则转入相应的按键处理状态(NEXT或PLAY),若一曲播放结束则进入结束播放END状态。2、乐曲读取模块song_reader的设计结构框图如下图所示,地址计数器为5位二进制计数器,其中note_done为计数允许输入,状态q为song_rom的低5位地址,song[1:0]为song
5、_rom高两位地址。当地址计数器出现进位或duration为0时,表示乐曲结束,应输出一个时钟周期宽度的高电平脉冲信号song_done。song_reader控制器的算法流程图暂略。由于从song_rom中读取数据需要一个数据周期,所以在流程图中插入NEXT_NOTE转态,目的是延迟一个时钟周期输出new_note信号,以配合song_rom的读取要求。3、音符播放模块note_player的设计note_player的结构框图如下图所示:note_player控制器负责与song_reader模块接口,
6、读取音符信息,并根据音符信息从FrequencyROM中读取相位增量step_size送给DDS子模块sine_reader。另外,note_player控制器还需要控制音符播放时间。音符定时器为6位二进制计数器,beat、time_clear分别为使能、清0信号,均为高电平有效。定时时间为音符的长短(duration_to_load个beat周期),timer_done为定时结束标志。子模块sine_reader的功能及就是利用DDS技术产生正弦样品,其原理框图如下所示:由于SineROM只给出四分之一周
7、期的正弦样品,所以地址或数据也需要进行相应的处理,可以直接根据下图设计地址处理器和数据处理器。三、主要仪器设备XUPVirtex-IIPro开发系统、ISE9.2、ModelSim6.0C四、实验数据记录与处理各模块仿真结果如下所示:1、mcu:RESET:000WAIT:001END:010NEXT:011PLAY:100以state为核心综合分析,首先置为RESET状态,下个时钟周期置为WAIT,play_button置0后状态变为PLAY,之后又是WAIT……按照波形分析过去,发现和流程图是一致的,仿
8、真正确。2、song_reader:先观察整体,再取几小段观察,着重分析state、new_note、song_done等波形,可以发现是符合要求的。3、sine_reader:首先观察曲线是否是和step_size有关的正弦曲线,这一点是满足的。然后将uut中的信号也添加进去,从中抽查一些小段,看sample、sample_out、rom_addr是否满足要求。这才能够初步判断波形正确。4、note_playe
此文档下载收益归作者所有