《友谊地久天长》乐曲演奏电路设计方案_第1页
《友谊地久天长》乐曲演奏电路设计方案_第2页
《友谊地久天长》乐曲演奏电路设计方案_第3页
《友谊地久天长》乐曲演奏电路设计方案_第4页
《友谊地久天长》乐曲演奏电路设计方案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

黑龙江科技学院课程设计任务书、设计题目:、设计的主要内容:指导教师:日期:教师评语:评阅成绩:评阅人:日期:摘要与利用微处理器(CPU或MCU)来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的EDA工具和硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。如何使用EDA工具设计电子系统是人们普遍关心的问题,本设计在美国ALTERA公司MAX+plusII的EDA软件平台上,使用层次化设计方法,实现了乐曲发生器的设计。本系统是利用硬件描述语言VHDL的设计思想设计的一个乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现。系统由音调发生模块和数控分频模块两个部分组成。系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、整合。本系统功能比较齐全,有一定的使用价值。关键词:乐曲;4MHz时钟;VHDL;EDA第1章《友谊地久天长》乐曲演奏电路设

计概述系统设计目的本系统是利用硬件描述语言VHDL的设计思想设计的一个乐曲演奏电路,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现。系统由音调发生模块和数控分频模块两个部分组成。系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、整合,本系统功能比较齐全,有一定的使用价值。设计要求1.2.设计任务

(1)音高与频率的对应关系见下表1_1:1234567低音131147165175196221248中音262294330350393441496高音525589661700786882990音高与频率的对应关系见下表1_1(2)《友谊地久天长》乐谱见图1_2:友谊地久天长苏格兰民歌建分而谱]VTH7.EC4E嚣旧日日日意中凿羹1招追福6想上由e旧费但让日们如掂嚣旧日日日意中凿羹1招追福6想上由e旧费但让日们如掂I诟处总海

3-翥运友2-后*一忱

相昔蓄3意闹临5r盍萋6__•矍土地c.j|5^3SI 12_3IL- 6崎|1・Qi人早林 推优同声歌通忒曲 iXAi长,《友谊地久天长》乐曲演奏电路设计思想1系统设计方案音符与频率的关系我们知道,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的2个基本要素,首先让我们来了解音符与频率的关系。乐曲的12平均率规定:每2个八度音(如简谱中的中音1与高音1)之间的频率相差1倍。在2个八度音之间,又可分为12个半音,每2个半音的频率比为12J2。另外,音符A(简谱中的低音6)的频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音1至高音1之间每个音符的频率,如表1所示:表1篇青中音符与频率的关系者将音符颖率小工皆符*率用士扁1我■冏中音15络£51045.5-0砥青2293.65申晋2■5亩工33离音2低音3329,63中音3市5*?5高青3⑶&51低音4349.53中音4698T6高者413弊92低音5391,93中音57必99]而I照低音G44-0.00中音6ggM高音、】7科M低音了申酒79«7.7«高普丁]975.鹿产生各音符所需的频率可用一分频器实现,由于各音符对应的频率多为非整数,而分频系数又不能为小数,故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低,则由于分频系数过小,四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但会增加分频器的分频级数。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取合适的时钟频率。本文设计的乐曲发生器选取4MHz的基准频率。若无4MHz的时钟频率,则可以先分频得到4MHz或换一个新的基准频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会"走调"。表1_1中的分频系数是从8MHz频率二分频得到的4MHz频率基础上计算得出的。由于最大的分频系数为9101,故采用14位二进制计数器已能满足分频要求。1234567低音131147165175196221248中音262294330350393441496高音525589661700786882990音高与频率的对应关系见下表1_1程序设计原理我们在美国AI.TERA公司MAX+plusII的EDA软件平台上,使用层次化设计手段,实现了《友谊地久天长》乐曲发生器的设计。图2为《友谊地久天长》乐曲发生器的顶层电路EE5.股电祁音符的持续时间需根据乐曲的速度及每个音符的节拍数来确定,TABLE元件首先是为PULSE元件提供决定所发音符的分频预置数,而此数停留的时间即为此音符的节拍值。在TABLE元件中设置了一个8位二进制计数器(计数最大值为138),这个计数器的计数频率选为4Hz,所以每一计数值的停留时间为0.25s,即四四拍的4分音符持续时间。例如,《友谊地久天长》乐曲的第一个音符低音3〃(1拍),停留的时间需用4个计数时钟节拍,即1s。相应地,所对应的〃低音3〃音符分频预置值为9100,其值在AFU3..0]输出端停留了1s。随着TABLE元件中的计数器按4Hz的时钟速率作加法计数时,《友谊地久天长》乐曲就开始连续自然地演奏起来了。2.2各模块功能模块总体框图如下:模块PAIA控制每一个音的长短,送初值给FANA模块,从而控制音高。音符的持续时间必须根据乐曲的速度以及每个音符的节拍数决定,因此此模块的功能也就是为FANA提供决定所发音的分频预置值,而此数在FANA输入口停留时间即为此音节节拍值。模块FANA的功能是根据PAIA送来的初值倒计时,每次计到0时就使信号Q反转,由于初值不同,从而产生不同的音高。所以音符的频率可以由此模块得到。3系统工作原理及其流程本程序设计主要应用了一下知识点:根据本程序的基本要求,设定脉冲上升沿有效;在尽量减小频率误差的前提下取合适的时钟频率,根据音高与频率的对应关系设定程序输入、输出;在元件中设置了一个8位二进制计数器(计数最大值为138),这个计数器的计数频率选为4Hz,所以每一计数值的停留时间为0.25s,即四四拍的4分音符持续时间使CLK6MH2与C10ck9相接(接受6MHz时钟频率),CLK4Hz与Clock2相接(接收4Hz时钟频率),发音输出接SPEAK设计输入根据电路设计所提出的要求,将程序输入到VHDL编辑器中去编辑。(6)功能级模拟用VHDL,模拟器对编辑后的程序进行模拟,如果达不到设计要求,则可以重新修改程序,直到通过功能模拟。逻辑综合与优化将通过功能模拟的程序放到VHDL编译器中,进行逻辑综合与优化。(8)门级模拟对电路用VHDL。仿真器仿真。可对门级电路的延时、定时状态、驱动能力等进行仿真。如不符合要求,可重复步骤(3),再门级模拟,直到符合要求止。第3章系统仿真/硬件验证系统的有关仿真结果:

_J1n.IIff 11^0Onp I:AniKDtatNDni Qtl UQddriiil)SPMii^i%・rlT,-□sLr.1.u'iiij.nHffiOCii1■3;If4IrnGiaSu'uu.uIJU_J1n.IIff 11^0Onp I:AniKDtatNDni Qtl UQddriiil)SPMii^i%・rlT,-□sLr.1.u'iiij.nHffiOCii1■3;If4IrnGiaSu'uu.uIJU丫涵:mU.UUU'.U..LIII砚山mJrlhilHtil限J0W匕r二二二二二4模块PAIA控制每一个音的长短,此模块输出Q送初值给FANA模块,从而控制音高。音符的持续时间必须根据乐曲的速度以及每个音符的节拍数决定,因此此模块的功能也就是为FANA提供决定所发音的分频预置值,而此数在FANA输入口停留时间即为此音节节拍值即为图中q值。模块FANA的功能是根据PAIA送来的初值倒计时,每次计到0时就使信号Q反转,由于初值不同,从而产第牙章课。程设计总结与分析在完成此次课程设计后,我发现自己还有很多不足,所学到的知识还远不够,以至于还有一些功能被动完成。但通过学习一次实践,增强了我的动手能力,提高和巩固了VHDL语言方面的知识,特别是对程序的总体熟练程度。从中增强了我们的团队合作精神,并让我们认识到吧理论联系实际中式那么的重要。经过努力,《友谊地久天长》乐曲演奏电路的设计基本上完成了。在整个设计过程中,我收获了很多,现总结如下:1)这个设计的基本是接触一门新的语言并加以应用,对于我来说,没有想到的是入手的速度比我的预料快,在以前编程的基础上,从接触到开始动手编程的时间得到了很大的缩短。知识的接收速度在很大的程度上决定了动手的时间。VHDL的编程与C语言的编程有着本质的不同,然而以往形成的旧编程习惯在VHDL编程中依然起着很大的作用。一通百通,不是没有道理的。对于学习新的知识并予以应用的信心,显得更足了。VHDL的设计关键是电路逻辑设计,而一个程序的关键是总体设计。对于硬件设计接触不多的我们清楚这一点也许不无好处。4)通过这个程序设计让我学会一种新的语言,对数字系统结构也有了更进一步的了解和认识,对我以后的学习有很大的帮助。希望其他人在看再做类似设计时有所借鉴。通过几天的课程设计,我对数据库软件EDA技术、VHDL、等系列知识都有了一定的了解。使用EDA技术开发页面的能力也有了很大提高。在整个设计过程中,有很多人对任务的完成给予了重要的支持和帮助。感谢老师给了我本次设计的机会并提供指导;感谢许多同学在我此课程设计遇到问题时给我的帮助使我能够顺利地进行设计的工作;论坛中有很多认识不认识的朋友也都为我的设计提出了很宝贵的建议,同样在这里感谢他们。参考文献[l][16]付家才,EDA原理与应用,化学工业出版社,2000年[2]黄仁欣,EDA技术使用教程,清化大学出版社,2006年[3]潘松,王国栋,VHDL使用教,电子科技大学出版社,2005年[4]孙国丽,朱维勇,栾铭,EDA与数字系统设计,机械工业出版社,2004年[5]李国洪,沈明山.可编程器件EDA技术与实践.北京机械工业出版社,2004年程序清单:cnt1:integercnt2:integerntegerrangeandclk='11500000cnt1:integercnt2:integerntegerrangeandclk='11500000。LIBRARYieee。USEieee.std_logic_1164.all。entitypaiaisport(clk:instd_logic。q:outintegerrange0to10204)。endpaia。architecturepai_arcofpaiaisbeginprocess(clk)variablerange0tovariablerange0to8。variablen:i0to45。beginifclk'eventthenifcnt1<1500000thencnt1:=cnt1+1。elsecnt1:=0。caseniswhen 0>q<=10204。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=1。endif。when1=>q<=7634。ifcnt2<6thencnt2:=cnt2+1。elsecnt2:=0。n:=2。endif。when2=>q<=6061。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=3。endif。when3=>q<=6803。ifcnt2<3thencnt2:=cnt2+1。elsecnt2:=0。n:=4。endif。when4=>q<=7634。n:=5。when5=>q<=6803ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=6。endif。when6=>q<=6061。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=7。endif。when7=>q<=7634。ifcnt2<4thencnt2:=cnt2+1。elsecnt2:=0。n:=8。endif。when8=>q<=6061。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=9。endif。when9=>q<=5089。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=10。endif。when10=>q<=4534。ifcnt2<9thencnt2:=cnt2+1。elsecnt2:=0。n:=11。endif。when11=>q<=5089。ifcnt2<3thencnt2:=cnt2+1。elsecnt2:=0。n:=12。endif。when12=>q<=6061。ifcnt2<2thencnt2:=cnt2+1。elsecnt2:=0。n:=13。endif。when13=>q<=7634。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=14。endif。when14=>q<=6803。ifcnt2<3thencnt2:=cnt2+1。elsecnt2:=0。n:=15。endif。when15=>q<=7634。n:=16。when16=>q<=6803。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=17。endif。when 17=>q<=6061。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=8。endif。when 18=>q<=7634。ifcnt2<3thencnt2:=cnt2+1。elsecnt2:=0。n:=19。endif。when 19=>q<=9050。ifcnt2<2thencnt2:=cnt2+1。elseelseelsecnt2:=0。n:=20。endif。when 20=>q<=10204。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=21。endif。when 21=>q<=7634。ifcnt2<7thencnt2:=cnt2+1。elsecnt2:=0。n:=22。endif。when 22=>q<=4534。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=23。endif。when 23=>q<=5089。ifcnt2<3thencnt2:=cnt2+1。cnt2:=0。n:=24。endif。when 24=>q<=6061。ifcnt2<2thencnt2:=cnt2+1。elsecnt2:=0。n:=25。endif。when25=>q<=7634。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=26。endif。when 26=>q<=6834。ifcnt2<3thencnt2:=cnt2+1。elsecnt2:=0。n:=27。endif。when 27=>q<=7634。n:=28。when28=>q<=6803。ifcnt2<1thencnt2:=cnt2+1cnt2:=cnt2+1。 elsecnt2:=cnt2+1。elsecnt2:=0。n:=29。endif。when 29>q<=4534。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=30。endif。when 30>q<=5089。ifcnt2<3thencnt2:=cnt2+1。elsecnt2:=0。n:=31。endif。when 31>q<=6061。ifcnt2<2thencnt2:=cnt2+1。elsecnt2:=0。n:=32。endif。when 32>q<=5089。ifcnt2<1thenelsecnt2:=0。n:=33。endif。when 33=>q<=4534。ifcnt2<7thencnt2:=cnt2+1。elsecnt2:=0。n:=34。endif。when 34=>q<=3809。ifcnt2<1thencnt2:=cnt2+1。elsecnt2:=0。n:=35。endif。when 35=>q<=5089。ifcnt2<3thencnt2:=cnt2+1。elsecnt2:=0。n:=36。endif。when 36=>q<=6061。ifcnt2<2thencnt2:=cnt2+1。cnt2:=0。cnt2:=cnt2+1。n:=37。elseendif。cnt2:=0。when 37n:=42。=>q<=7634。endif。ifcnt2<1thenwhen 42cnt2:=cnt2+1。=>q<=7634。elseifcnt2<3thencnt2:=0。cnt2:=cnt2+1。n:=38。elseendif。cnt2:=0。when 38n:=43。=>q<=6803。endif。ifcnt2<3thenwhen 43cnt2:=cnt2+1。=>q<=9050。elseifcnt2<2thencnt2:=0。cnt2:=cnt2+1。n:=39。elseendif。cnt2:=0。when 39n:=44。=>q<=6803。endif。n:=40。when 44when 40=>q<=10204。=>q<=6803。ifcnt2<1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论