EDA乐曲播放器设计(新).docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EDA乐曲播放器设计(新)

《在系统编程技术》项目设计报告 课程名称 在系统编程技术 任课教师 设计题目 乐曲硬件演奏电路 班 级 09电子信息工程(1)班 姓名学号 成 绩 日 期 2012年6月6日 目 录 1题目分析 1 2设计方案 1 2.1顶层实体描述 1 2.2模块划分 2 2.3模块描述 2 2.3.1音乐节拍和音调发生器模块:noteabs 2 2.3.2音乐谱对应分频预制数查表电路模块:tonetaba 4 2.3.2音乐符数控11分频电路模块:SPEAKERA 4 2.4顶层电路图 5 3方案实现 6 3.1模块仿真及实现 6 3.1.1 tonetaba模块 6 3.1.2 speakera模块 6 3.1.3 noteaba模块 7 3.2顶层电路仿真及实现 7 4硬件测试及说明 7 5结论 8 6课程总结 8 7附录:程序代码 9 乐曲硬件演奏电路 1题目分析 本设计要求完成简单乐曲的播放,同时可以实现对乐曲播放的播放及暂停控制,以及歌曲选择的控制。为了达到以上要求,本设计选择了FPGA来实现。乐曲播放的基本要素就是节拍和音阶,而音阶对应不同的频率,节拍对应音阶的持续时间。本设计通过定制LPM-ROM在不同的地址段存储两首不同音乐数据,通过按键切换歌曲。ROM中的数据,以一定的时间(即节拍)读出,用数控分频的原理得出相应频率,驱动扬声器发出对应的音阶,从而来实现完整乐曲的播放。 2设计方案 2.1顶层实体描述 乐曲播放器顶层实体songer由4个输入、3个输出组成。其中len使能信号输入端,具有播放停止功能:当len输入高电平时顺序播放音乐,输入低电平时停止;lxz是选择信号输入端,在使能信号len输入高电平时,根据lxz输入的高低电平播放不同的音乐。CLK8HZ输入端输入8HZ的时钟信号,用于产生节拍基准,CLK12MHZ输入端输入12MHZ的时钟信号,用于实现分频音阶;CODE1[3..0]输出端输出与演奏发音相对应的简谱码;HIGH1是高八度音指示信号输出端,SPKOUT是声音输出端口,驱动扬声器播放音乐。 图1 顶层实体 2.2模块划分 按照顶层实体描述,本设计将乐曲播放器系统分为三个模块:ROM地址发生器,分频查找表和数控分频器。由自顶向下设计思想设计如下图: 图2 模块划分 2.3模块描述 2.3.1音乐节拍和音调发生器模块:noteabs noteabs地址发生器模块中包含有一个4位二进制计数器(计数最大值为256)的ROM,其作为音符数据ROM的地址发生器。每来一个时钟脉冲信号(clk),4位二进制计数器就计数一次,ROM文件中的地址也就随着递增,音符数据ROM中的音符也就一个接一个连续的取出来了。 在地址发生器的VHDL设计中,这个计数器的计数频率选为4Hz,即每一计数值的停留时间为0.25秒,恰为当全音符设为1秒,四四拍的4分音符持续时间。例如,地址发生器在以下的VHDL逻辑描述中,“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒时间。那么相应随着程序[4]中的计数器按4Hz的时钟频率作加法计数时,即随地址递增时,将从音符数据ROM中将连续取出4个音符“3”通过toneindex[3..0]端口输向分频预置数模块。这样梁祝乐曲中的音符就一个接一个的通过toneindex[3..0]端口输向分频预置数模块。 en为noteabs模块的使能端,当en为高电平时,noteabs开始工作;xz为歌曲选择端,当xz为高电平时,选择歌曲2,反之,选择歌曲1;歌曲选择的原理即是,在ROM中不同的地址段存储不同的歌曲,当播放歌曲时选择相应的地址段;在本设计中,前138中存储的为《梁祝》,后117存储的为《送别》。 ROM的定制: 在QUARTUS||中编辑.mif文件。首先在File菜单下的New菜单上选择Text Editor File命令,进入文本编辑器,然后输入以上格式的数据文件。文件中的关键词WIDTH设置ROM的数据宽度;DEPTH设置ROM数据的深度,即4位数据的数量,文件中设置的256等效于8位地址线宽度;ADDRESS-RADIX=DEC和DATA-RADIX=DEC表示设置地址和数据的表达式格式都是十进制;地址/数据表以CONTENT BEGIN开始,以END结束;其中的地址/数据表达方式是冒号左边写ROM地址值,冒号右边写对应此地址放置的十进制数据,如46:9,表示46为地址,9为该地址中的数据。这样每读到一个地址,即可输出其相应的数据。文件编辑好后,保存时取文件名为“MUSIC.mif”,存盘

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档