基于eda技术的乐曲演奏电路的设计

上传人:wm****3 文档编号:41177396 上传时间:2018-05-28 格式:DOC 页数:15 大小:255.50KB
返回 下载 相关 举报
基于eda技术的乐曲演奏电路的设计_第1页
第1页 / 共15页
基于eda技术的乐曲演奏电路的设计_第2页
第2页 / 共15页
基于eda技术的乐曲演奏电路的设计_第3页
第3页 / 共15页
基于eda技术的乐曲演奏电路的设计_第4页
第4页 / 共15页
基于eda技术的乐曲演奏电路的设计_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《基于eda技术的乐曲演奏电路的设计》由会员分享,可在线阅读,更多相关《基于eda技术的乐曲演奏电路的设计(15页珍藏版)》请在金锄头文库上搜索。

1、EDA 技术与实验课程设计题 目:基于 EDA 技术的乐曲演奏电路的设计姓 名: 院 系: 电子信息工程系 专 业: 通信工程 班 级: 通信 102 学 号: 指导教师: 2012 年 12 月成 绩 指导教师:成 绩指导教师:2基于 EDA 技术的乐曲演奏电路的设计摘要:此次设基于 EDA 技术,通过对输入脉冲的分对不同音符(高、中、低音)的控制,通过计数来实现对不同音符所持续时间长短的控制;通过 Verilog 语言来编程来实现乐曲演奏电路及扬声器的模拟,最后利用对 Max+plus软件的仿真的时序波形图的额分析来完成“欢乐颂”片段的演奏。关键字:EDA ;乐曲演奏;Verilog 语言

2、;Max+plus软件 前言EDA 是英文“Electronics Design Automation (电子设计自动化)”的缩写。EDA 技术是近几年迅速发展起来的计算机软件、硬件和微电子交叉的现代电子设计学科,是现代电子工程领域的一门新技术。它是以可编程逻辑器件(PLD)为物质基础,以计算机为工作平台,以 EDA 工具软件为开发环境,以硬件描述语言(HDL)作为电子系统功能描述的主要方式,以电子系统设计为应用方向的电子产品自动化设计过程。【1】 目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设

3、计验证的技术主流。【2】超高速集成电路硬件描述语言 VHDL 是 HDL 的一种,是一种标准化程度较高的硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口。进入到 21 世纪后,EDA 技术得到了更快的发展,开始步入了一个新的时期,突出地表现在以下几个方面:电子技术各个领域全方位融入 EDA 技术,除了日益成熟的数字技术外,可编程模拟器件的设计技术也有了很大的进步。EDA 技术使得电子领域各学科的界限更加模糊,它们相互渗透和包容,如模拟与数字、软件和硬件、系统和器件、ASIC 与 FPGA、行为与结构等,软、硬协同设计技术也成为 EDA 技术的一个发展方向。IP 核在电子设计领域得到了

4、广泛的应用,基于 IP 核的 SOC 设计技术趋向成熟,电子设计成果的可重用性进一步提高。嵌入式微处理器软核的出现,更大规模的 FPGA/CPLD 器件的不断推出,使得可编程芯片系统步入实用化阶段,在一片 FPGA 芯片中实现一个完备的系统已成为可能。用 FPGA 器件实现完备硬件的数字信号处理成为可能,用纯数字逻辑进行DSP 模块的设计,使得高速 DSP 实现成为现实,并有力地推动了软件无线电技术的实用化。基于 FPGA 的 DSP 技术为高速数字信号处理算法提供了实现途径。在设计和仿真两方面支持标准硬件描述语言的 EDA 软件不断推出,系统级、行为验证级硬件描述语言的出现使得复3杂电子系统

5、的设计和验证更加高效。在一些大型的系统设计中,设计验证工作非常艰巨,这些高效的 EDA 工具的出现减轻了开发人员的工作量。Max+plus是 Altera 公司提供的 FPGA/CPLD 开发集成环境,Altera 是世界上最大可编程逻辑器件的供应商之一。Max+plus界面友好,使用便捷,被誉为业界最易用易学的EDA 软件。在 Max+plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。【3】Max+plus提供丰富的库单元供设计者调用,其中包括 74 系列的全部器件和多种特殊的逻辑功

6、能(Macro-Function)以及新型的参数化的兆功能(Mage-Function) 。Max+plus软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。 1 设计原理本设计是在 EDA 的技术上,通过 Verilog 语句的编程来实现对输入脉冲的分频。使音调和频率具有一一对应的关系。为此,本设计将以利用数控分频器对一具有较高频率的信号进行分频来产生相应的频率。 对欢乐颂这首乐曲进行高、中、低音的代码编写和计数脉冲(音频的持续时间)的控制。最后通过 Max+plus软件进行仿真,通过分析仿真的时序波形图来验证设计的正确性。 2 方案设计2.1 设计内容要求设计一个乐曲演奏电路,

7、用 FPGA 器件驱动小扬声器演奏“欢乐颂”片段。按照图一乐谱,设计相应电路控制 speaker 信号的方波频率,某一频率持续时间长短,各频率间间隔大小,就可以推动小扬声器演奏乐曲。图一 “欢乐颂”乐谱片段2.2 设计方案比较方案一:由单片机 MSP430F149 来实现乐曲演奏电路的设计,外围电源采用+3V 电源供电,时钟有 8MHz 的晶振产生,中央处理器由 MS430F149 单片机来完成,乐曲演奏状态由七段数码管来模拟。这种方案,结构简单容易掌握,各部分电路实现起来都非常容易,在传统的乐曲演奏设计中也应用得较为广泛,技术成熟。其原理框图见图二。4图二 单片机原理实现框图方案二:基于现场

8、可编程门阵列 FPGA,通过 EDA 技术。采用 VHDL 超高速集成电路硬件描述语言实现乐曲演奏电路设计。 3 程序设计思想程序设计思想3.1 分频电路产生不同频率方波;3.2 利用计数器实现 speaker 信号频率选择,某一频率持续时间长短,各频率间间隔大小,其原理框图见图三。图三 乐曲演奏电路原理框图通过方案一二的比较,可以看出方案一的设计使用分立元件电路较为多,因此会增加电路调试难度,且电路的不稳定性也会随之增加,而采用 FPGA 芯片实现的电路,由于在整体性上较好,在信号处理和整个系统的控制中,FPGA 的方案能大大缩减电路的体积,提高电路的稳定性。此外其先进的开发工具使整个系统的

9、设计调试周期大大缩短,一般来讲,同样的逻辑,基于 FPGA 要比基于单片机要快很多,因为它们工作的原理是完全不同的。单片机是基于指令工作的,同样的激励到达单片机后,单片机首先要判断,然后读取相应的指令,最后做出响应,每一步都是需要在单片机的时钟驱动下一步步的进行。而基于 FPGA 则是把相应的逻辑“暂时”固化为硬件电路,它对激励作出的响应速度是电信号从 FPGA 的一个管脚传播到另一个管脚的传播速度,当然这指的是异步逻辑,同时电信号也要在芯片内进行一些栅电容的充放电动作,但这些动作都是非常非常快的。结合本设计的要求及综合以上比较的情况,我们选择了基于 FPGA 的乐曲演奏电路的方案。 4 设计

10、过程4.1 乐曲演奏的原理组成乐曲的每个音符的频率值(音调)及其持续的时间(音长)是乐曲能持续演奏所需的两个基本数据,因此只要控制输出到扬声器的激励信号的频率高低和持续时间,就可以5使扬声器发出连续的乐曲声。首先来看怎样控制音调的高低变化。4.2 音调的控制频率的高低决定了音调的高低。音乐的十二平均率规定:每两个八度音之间的频率相差一倍。在两个八度音之间,又可分为 12 个半音,每两个半音的频率比为。另外,1212音名 A 的频率为 440HZ,音名 B 和 C 之间、E 和 F 之间为半音,其余为全音。由此可以计算出简谱中从低音 1 到高音 1 之间每个音名对应的频率如表 1 所示。表 1

11、简谱中的音名与频率的关系音 名频率/Hz音 名频率/Hz音 名频率/Hz低音 1261.6中音 1523.3高音 11046.5低音 2293.7中音 2587.3高音 21174.7低音 3329.6中音 3659.3高音 31318.5低音 4349.2中音 4698.5高音 41396.9低音 5392中音 5784高音 51568低音 6440中音 6880高音 61760低音 7493.9中音 7987.8高音 71975.5所有不同频率的信号都是从同一个基准频率分频得到的。由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若基准频率过低,则由于分

12、频比太小,四舍五入取整后的误差较大。若基准频率过高,虽然误差变小,但分频数将变大。实际的设计中应综合考虑这两个方面的因素,在尽量减小频率误差的前提下取合适的基准频率。本例中选取 6MHz 为基准频率。若无 6MHz 的时钟频率,则可以先分频得到 6MHz 或换一个新的基准频率。实际上只要各个音名间的相对频率关系不变,C 作1 与 D 作 1 演奏出的音乐听起来都不会“走调” 。表2 各音阶频率对应的分频比及预置数音 名分频比预置数音 名分频比预置数低音 576538730中音 3455211831低音 668189565中音 5382712556中音 1573610647中音 63409129

13、74中音 2511111272高音 1286713516这里需要演奏的是“欢乐颂”乐曲,该乐曲各音阶频率及相应的分频比如表 2 所示,为了减少输出的偶次谐波分量,最后输出到扬声器的波形应为对称方波,因此在到达扬声器之前,有一个二分频的分频器。表 2 中的分频比就是从 6MHz 频率二分频得到的 3MHz 频率基础上计算得出的。如果用正弦波代替对称方波来驱动扬声器将会有更好的效果。从表 2 可以看出,最大的分频系数 7653,故采用 14 位二进制计数器分频可满足需要。在表 2 中,除了给出了分频比以外,还给出了对应于各个音阶频率时计数器不同的预置数。对于不同的分频系数,只要加载不同的预置数即可

14、。采用加载预置数实现分频的方法比采用反馈复零法节省资源,实现起来也容易一些。此外,对于乐曲中的休止符,只要将分频系数设为 0,即初始值为即可,此时扬声器将不会发声。142 -1=1638364.3 音长的控制音符的持续时间应根据乐曲的速度及每个音符的节拍数来确定。设计中演奏的欢乐颂片段,最短的音符为四分音符,在我的设计中则只需要再提供一个 4MHz 的时钟频率即可产生四分音符的时长。图三所示的乐曲演奏电路的原理框图,其中,乐谱产生电路用来控制音乐的音调和音长。控制音调通过设置计数器的预置数来实现,预置不同的数值就可以使计数器产生不同频率的信号,从而产生不同的音调。控制音长是通过控制计数器预置数

15、的停留时间来实现的,预置数停留的时间越长,则该音符演奏的时间越长。每个音符的演奏时间都是 0.25us 的整数倍,对于节拍较长的音符,如二分音符,在记谱时将该音名连续记录两次即可。音名显示电路用来显示乐曲演奏时应的音符。可以用三个数码管分别显示高、中、低音名,实现演奏的动态显示,十分直观。在本设计中,HIGH3:0、MID3:0、LOW3:0等信号分别用于显示高音、中音和低音音符。为了使演奏能循环进行,需另外设置一个时长计数器,当乐曲演奏完成时,保证能自动从头开始演奏。4.4 程序代码module huanlesong(clk_6MHz,clk_4MHz,speaker,high,mid,lo

16、w);input clk_6MHz,clk_4MHz; /clk_4MHz: 用于控制音长(节拍)的时钟频率;/clk_6MHz:用于产生各种音阶频率的基准频率;output speaker; /speaker:用于扬声器的输出信号,在此设计中为方波信号output3:0 high,mid,low; /high,med,low: 分别用于显示高音、中音和低音音符,各驱动一个数码管来显示reg speaker;reg3:0 high,mid,low;reg7:0 counter;reg13:0 divider,origin;wire carry;assign carry=(divider=16383);always (posedge c

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号