乐曲演奏硬件电路设计报告.doc

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

乐曲硬件演奏电路设计 一、设计任务要求 在EDA开发平台上利用VHDL语言设计数控分频器电路,利用数控分频的原理设计乐曲硬件演奏电路,并定制LPM-ROM存储音乐数据,以古典名曲“梁祝”乐曲为例,将音乐数据存储到LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。与利用微处理器来实现乐曲演奏相比,一纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的EDA工具和硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。 二、系统设计总述 系统设计由以下五个部分组成,分别是乐曲演奏电路基本原理,音符频率的获得,乐曲节奏的控制,乐谱发生器,乐曲演奏电路总体设计流程这五个部分。 乐曲演奏电路基本原理 硬件电路的发声原理是,因为声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。乐曲中的每一音符对应着一个确定的频率,要想FPGA发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。不过要准确地演奏出一首乐曲,仅仅让扬声器能够发生还是不够的,还必须准确地控制乐曲的演奏节奏,就是指乐曲能够连续演奏的两个关键因素:乐曲中每个音符的发声频率及其持续时间。 音符频率的获得 多个不同频率的信号可通过对某个基准频率进行分频获得。由于各个音符的频率多为非整数,而分频系数又不能为小数,故必须将计算机得到的分频系数四舍五入取整。若基准频率过低,则分频系数过小,四舍五入取整后的误差较大。若基准频率过高,虽然可以减少频率的相对误差,但分频结构将变大。实际上应该综合考虑这两个方面的因素,在尽量减少误差的前提下,选取合适的基准频率。本设计中选取750KHz的基准频率。由于现有的高频时钟脉冲信号的频率为12MHz,故需先对其进行16分频,才能获得750KHz的基准频率。对基准频率分频后的输出信号是一些脉宽极窄的尖脉冲信号(占空比=1/分频系数)。为提高输出信号的驱动能力,以使扬声器有足够的功率发音,需要再通过一个分频器将原来的分频器的输出脉冲均衡为对称方波(占空比=1/2),但这时的频率将是原来的1/2。各音符的分频系数是从750KHz的基准频率二分频得到的375KHz频率基础上计算得到的。由于最大分频系数是1274,故分频器采用的二进制计数器能满足要求,乐曲中的休止符,只要将分频系数设为0,即初始值=211-1=2047,此时扬声器不会发声。 乐曲节奏的控制 本设计中的乐曲“梁祝”,最小节拍为1/4拍,若将1拍的时间定为1秒,则只需要提供一个4Hz的时钟频率即可产生1/4拍的时长(0.25秒),对于其它占用时间较长的节拍(必为1/4拍的整数倍)则只需要将该音符连续输出相应的次数就可以了。计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也相应的快,时钟慢时输出节拍的速度就慢,演奏的速度自然也相应的降低。 乐谱发生器 乐谱中的音符数据存储在LPM-ROM中,比如“梁祝”乐曲中的一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒的时间,相应地,音符“3”就要在LPM-ROM中连续的四个地址上都存储。当一个4Hz的时钟来时,相应地就从LPM-ROM中输出一个音符数据。 乐曲演奏电路总体设计流程 当一个4Hz的时钟脉冲来到时,乐谱发生器模块输出一个音符数据给分频系数模块,分频系数模块输出此音符相应的分频系数,将分频系数送给数控分频器模块,当12MHz的时钟脉冲来到时,数控分频器就根据分频系数输出相应的频率(即此音符所对应的发生频率)给扬声器,扬声器就可发出对应音符的声音来.连续的4Hz的时钟脉冲就将乐谱发生器里所存储的音符数据一个接一个的送给了分频系数模块,再经过数控分频模块,最后扬声器一个接一个的发出音符数据所对应的声音来,曲子也就流畅的播放出来。 三、总体程序设计 总体系统框图 该系统主要由三个部分组成,顶层设计文件,其内部有三个功能模块:TONETABA.VHD、NOTATABS.VHD、和SPEAKERA.VHD。首先定制TONETABA.VHD、模块一类似于弹琴人的手指,模块二类似于琴键,模块三类似于琴弦或音调发生器。模块中的音符数据ROM“music”。然后根据给出的乘法器逻辑原理图及其模块的VHDL描述在 QuartusⅡ上完成设计。最后完成编译,综合,仿真,管脚锁定,编程下载。 音符的频率可由Speakera获得,这是一个数控分频器。由其clk端输入一个具有较高频率的信号,通过Speakera分频后由SPKOUT输出,由于直接数控分频器出来的输出信号是脉宽极窄的脉

文档评论(0)

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

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

1亿VIP精品文档

相关文档