eda创新性验--梁祝音乐发生器.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
eda创新性验--梁祝音乐发生器

学年_ _学期 创新性实验研究报告 实验项目名称_乐曲硬件演奏电路设计 --“梁祝”音乐发生器设计 组长姓名 学号 联系电话 E-mail 成员姓名 学号 专 业 班级 导教师及职称 年 月 日 一、实验摘要 乐曲演奏广泛用于自动答录装置、手机铃声、集团电话及智能仪器仪表设备。实现方法有很多,随着EDA设计工具更新换代,功能日益普及与流行,使这种方案应用越来越多。 本次创新性实验在EDA开发平台上利用VHDL语言设计数控分频器电路,利用数控分频的原理设计乐曲硬件演奏电路,就达到了以纯硬件的手段来实现乐曲的演奏效果。 二、实验目的 深入理解数控分频器的设计原理,学会采用QuartusII工具,利用VHDL语言实现一 个乐曲硬件演奏电路,并且在试验箱上进行验证,综合实验系统的使用方法,熟悉创新性实验报告的撰写方法。 三、实验场地及仪器、设备和材料: 实验场地:DSP实验室 实验仪器、设备:计算机、QuartusII软件、EDA试验箱 四、实验内容 1、实验原理 1.1实验总体结构框图 图1-1 总体框图 1.2总体硬件乐曲演奏电路结构 图1-2 硬件乐曲演奏电路结构 该主系统由3个模块组成: 分别是NoteTabs模块,ToneTaba模块,Speakera模块。 音符控制输出模块NoteTabs的功能描述:该模块的功能就是定义音符数据ROM“music”随着该模块中的计数器控制时钟频率速率作加法计数时,即地址值递增时,音符数据ROM中的音符数据将从ROM中通过ToneIndex[3..0]端口输向ToneTaba模块,演奏《梁祝》。在该模块中设置了一个8位二进制计数器(计数最大值为138),作为音符数据ROM的地址发生器。这个计数器的计数频率为4Hz,即每一计数值的停留时间为0.25秒,恰为当全音符设为1秒时,四四拍的4分音符持续时间。 音符译码模块ToneTaba,是乐曲简谱码对应的分频预置数查找表电路,其中设置了乐曲的全部音符所对应的分频置数,每一音符的停留时间由音乐节拍和音调发生器模块NoteTabs的CLK的输入频率决定,这些值由对应于ToneTaba的4位输入值Index[3..0]确定,最多有16种可选值。输向ToneTaba中Index[3..0]的值ToneIndex[3..0]的输出值与持续的时间由模块NoteTabs决定。 模块Speakera是一个数控分频器,音符的频率可由此模块获得。由CLK端输入一具有较高频率的信号,通过Speakera分频后由SPKOUT输出。由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号。为了利用驱动扬声器,需加一个D触发器以均衡其占空比,频率将是原来的1/2。Speakera对CLK输入信号的分频比由预置数Tone决定。SPKOUT的输出频率将决定每一音符的音调。 2、实验内容 音乐硬件演奏电路主要是用VHDL语言来设计,并利用QuartusII软件工具来编译、测试和仿真。下面为在软件QuartusII中创建的各个硬件演奏电路模块介绍。 2.1地址发生器模块NOTETABS 地址发生器模块设置了一个8位二进制计数器(计数器最大值为138),作为音符数据ROM的地址发生器。每来一个时钟脉冲信号(Clk),8位二进制计数器就计数一次,ROM文件中的地址也随着递增,音符数据ROM中音符也就一个接一个连续的取出来了。 2.2音乐谱分频预置数模块TONETABA   分频预置数模块是“梁祝”乐曲简谱码对应的分频预置数查表电路。它提供了每个音符所对应的分频预置数,即给数控分频模块提供了计数初值。 2.3数控分频模块 音符的频率有数控分频模块获得,这是一个数控分频电路,它是由一个初值可变的假发计数器构成。 2.4音符数据文件 《梁祝》乐曲简谱如下:      图2-1《梁祝》乐曲简谱 3、实验步骤 使用VHDL语言来设计,在QuartusII软件工具中依次完成各个模块的程序编写、编译以及生成相应的子模块器件,最后创建顶层文件并将各个子模块连接在一起,编译成功后定义引脚,并下载到EDA实验箱里进行测试,发现问题,然后解决问题,最后调试直到达到此次创新性实验的设计要求

文档评论(0)

aww4466 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档