毕业设计(论文)—乐曲硬件演奏电路的EDA设计_第1页
毕业设计(论文)—乐曲硬件演奏电路的EDA设计_第2页
毕业设计(论文)—乐曲硬件演奏电路的EDA设计_第3页
毕业设计(论文)—乐曲硬件演奏电路的EDA设计_第4页
毕业设计(论文)—乐曲硬件演奏电路的EDA设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、- -I 沈沈 阳阳 工工 程程 学学 院院课 程 设 计 设计题目:设计题目: 乐曲硬件演奏电路的 EDA 设计 系系 别别 自控系自控系 班级班级 电子本电子本 072072 学生姓名学生姓名 陈勇冰陈勇冰 学号学号 20073102272007310227 指导教师指导教师 尹常永尹常永 起止日期:起止日期: 20102010 年年 0606 月月 2121 日日 起起至至 20102010 年年 0707 月月 0202 日止日止设计地点:教学楼设计地点:教学楼 F213F213沈阳工程学院课程设计(论文)- -II沈沈 阳阳 工工 程程 学学 院院课程设计任务书课程设计题目:课程设计

2、题目:乐曲硬件演奏电路的 EDA 设计 系系 别别 自控系自控系 班级班级 电子本电子本 072072 班班 学生姓名学生姓名 陈勇冰陈勇冰 学号学号 20073102272007310227 指导教师指导教师 尹常永尹常永 起止日期:起止日期: 20102010 年年 0606 月月 2121 日日 起起20102010 年年 0707 月月 0202 日止日止教研室主任教研室主任 田田 景景 贺贺 20102010 年年 0606 月月 1717 日日- -III1.设计主要内容及要求乐曲硬件演奏电路 EDA 设计1)简要说明 利用 FPGA,设计一个乐曲硬件演奏电路。演奏时可选择键盘输入

3、乐曲或者已存入的乐曲,并配以一个小扬声器。任务和要求:乐曲的 12 平均率规定:每 2 个八度音(如简谱中的中音 1 与高音 1)之间的频率相差 1倍。在 2 个八度音之间,又可分为 12 个半音,每 2 个半音的频率比为 122。另外,音符 A(简谱中的低音 6)的频率为 440Hz,音符 B 到 C 之间、E 到 F 之间为半音,其余为全音。由此可以计算出简谱中从低音 l 至高音 1 之间每个音符的频率。设计音符查找表电路模块,时钟模块,数控分频器模块,音乐节拍产生模块电路。任意选择歌曲进行设计,但歌曲前奏必须是中音 5353222。3)训练目标具备硬件编程语言 VHDL 设计数字系统的初

4、步能力,熟悉开发环境和流程,掌握技术方法。2.对设计说明书、论文撰写内容、格式、字数的要求1)课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于 3000字。2)学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。课程设计说明书(论文)的结构及各部分内容要求可参照沈阳工程学院毕业设计(论文)撰写规范执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。3)说明书(论文)手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按沈阳工程学院毕业设计(论文)撰写规范的要求进行打印。4)课程设计说明书(论文)装订顺序为:封面、任务书、成绩评审意见表、

5、中文摘要和关键词、目录、正文、参考文献。3.时间进度安排;顺序阶段日期计 划 完 成 内 容备注106.2106.23选题,搜集资料,熟悉设计环境206.2406.28调试程序306.28-06.29仿真程序406.30-07.01撰写课程设计说明书(论文)507.02答辩沈阳工程学院课程设计(论文)- -IV沈沈 阳阳 工工 程程 学学 院院VHDLVHDL与可编程逻辑器件应用与可编程逻辑器件应用 课程设计成绩评定表课程设计成绩评定表系(部):系(部): 自动控制工程系自动控制工程系 班级:班级: 电子本电子本072072班班 学生姓名:学生姓名: 陈勇冰陈勇冰 指指 导导 教教 师师 评评

6、 审审 意意 见见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15 54 43 32 2工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25 54 43 32 2工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25 54 43 32 2说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55 54 43 32 2指导教师评审成绩指导教师评审成绩(加权分合计乘以(加权分合计乘以 1212) 分分加权分合计加权分合计指指

7、 导导 教教 师师 签签 名:名: 年年 月月 日日评评 阅阅 教教 师师 评评 审审 意意 见见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25 54 43 32 2工作量工作量饱满,难度适中。0.55 54 43 32 2说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35 54 43 32 2评阅教师评审成绩评阅教师评审成绩(加权分合计乘以(加权分合计乘以 8 8)分分加权分合计加权分合计评评 阅阅 教教 师师 签签 名:名: 年年 月月 日日课课 程程 设设 计计

8、 总总 评评 成成 绩绩分分- -V摘 要乐曲演奏广泛用于自动答录装置、手机铃声、集团电话、及智能仪器仪表设备。实现方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏,随着 FPGA 集成度的提高,价格下降,EDA 设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。如今的数字逻辑设计者面临日益缩短的上市时间的压力,不得不进行上万门的设计,同时设计者不允许以牺牲硅的效率达到保持结构的独特性。使用现今的 EDA 软件工具来应付这些问题,并不是一件简单的事情。FPGA 预装了很多已构造好的参数化库单元 LPM器件。通过引入支持 LPM 的 EDA 软件工具,可以设计出结构独立而且硅

9、片的使用效率非常高的产品。本文分析了乐曲演奏设计中音符、频率、节拍与编码的相互关系,并在 EDA 开发工具 MAX-plus II 平台上,采用 VHDL 语言及原理图的设计方法,实现了基于 FPGA 片上系统动态显示可选择多首乐曲的乐曲演奏器的设计,使乐曲演奏数字电路的设计得到了更好的优化,提高了设计的灵活性。关键词 FPGA,EDA,VHDL,数控分频器沈阳工程学院课程设计(论文)- -VIAbstractMusic performances are widely used in automatic answering devices, cell phone ring tones, the

10、 Group phones, smart instrumentation and equipment。There are several ways to achieve, in many ways to achieve, pure hardware to complete the music performances, along with the improvement of FPGA integration, Lower prices, EDA design tool replacement, with the growing popularity of functional fashio

11、n, the application of such a programe so that more and more. Todays digital logic designers face increasingly shorter time to market pressure, had to 10,000 on the design, designers are not allowed to sacrifice the efficiency of silicon to maintain the uniqueness of the structure. The use of the cur

12、rent EDA software tools to tackle these problems, is not a simple matter. Pre-installed FPGA has a lot of good structural parameters of the unit LPM devices. By introducing support for the LPM EDA software tools, you can design a structure independent of silicon and a very high efficiency in the use

13、 of the product.This paper analyzes the correlation between the coding with the note,frequency and rhythm in musical performante,Based on MAX-plus IIthe EDA development tool,this design has adopted the method of classification of VHDL and principle picture design proceduresAnd the design of dynamic

14、displayfing music player has been achieved on the basic of FPGA to much music,the design making music perform the figure circuit has got the much better optimization , has improved the flexibility designing that.Keywords FPGA, EDA,VHDL,digital frequency multiplex system沈阳工程学院课程设计(论文)- -VII目 录 摘摘 要要

15、.VAbstract.VI第第 1 章章 引引 言言 .11.1 EDA 技术的概念及发展趋势.1第第 2 章章 VHDL 语言语言.22.1 VHDL 简介.22.2 VHDL 语言的特点及应用.3第第 3 章章 乐曲硬件演奏电路乐曲硬件演奏电路 .73.1 基本要求 .73.2 乐曲演奏原理 .73.3 乐曲硬件演奏电路的层次化设计方案 .93.3.1 音乐节拍发生器 NoteTabs.93.3.2 音符译码电路 ToneTaba 模块.143.3.3 数控分频模块(Speakera)设计.163.3.4 乐曲硬件演奏电路的顶层设计和仿真 .19结结 论论 .21致致 谢谢 .22参考文献

16、参考文献 .23附附录录 .24沈阳工程学院课程设计(论文)- -1第 1 章 引 言1.1 EDA 技术的概念及发展趋势EDA 是电子设计自动化(Electronic Design Automation)的缩写,在 20 世纪 90 年代初从计算机辅助设计(CAD) 、计算机辅助制造(CAM) 、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA 技术就是以计算机为工具,设计者在 EDA 软件平台上,用硬件描述语言 HDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

17、EDA 技术的出现,极大地提高了电路设计的效率和可靠性,减轻了设计者的劳动强度。现在 EDA 技术应用广泛,包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有 EDA 的应用。目前 EDA 技术已在各大公司、科研和教学部门广泛使用。在产品设计与制造方面,EDA 技术可实现前期的计算机仿真、系统级模拟及测试环境的仿真、PCB 的制作、电路板的焊接、ASIC 的设计等。在教学方面,我国高校是从九十年代中期开始 EDA 教育的,现在几乎所有理工科类高校都开设了 EDA 课程。这些课程主要是让学生了解 EDA 的基本概念和原理,使用 EDA 软件进行电子电路课程的实验及从事

18、简单系统的设计。 沈阳工程学院课程设计(论文)- -2第 2 章 VHDL 语言2.1 VHDL 简介VHDL 的英文全名是 Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于 1982 年。1987 年底,VHDL 被 IEEE 和美国国防部确认为标准硬件描述语言 。自 IEEE 公布了 VHDL 的标准版本,IEEE-1076(简称 87 版)之后,各 EDA 公司相继推出了自己的 VHDL 设计环境,或宣布自己的设计工具可以和 VHDL 接口。此后 VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原

19、有的非标准的硬件描述语言。1993 年,IEEE 对 VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL 的内容,公布了新版本的VHDL,即 IEEE 标准的 1076-1993 版本,(简称 93 版)。现在,VHDL 和Verilog 作为 IEEE 的工业标准硬件描述语言,又得到众多 EDA 公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL 于 Verilog 语言将承担起大部分的数字系统设计任务。 随着 VLSI、EDA( Electronic Design Automation )工具的迅速发展,用户系统的设计从单纯的

20、ASIC(Application Specific Integrated Circuit)设计向着系统单片化 SOC(System On a Chip)设计的方向发展。同时网络技术的发展,共享 IP 知识产权的开放式系统设计成为新模式,芯片工艺物理设计与系统设计相分离,使用户系统设计人员可直接从事芯片设计。多种技术的融合,系统的功能复合化程度越来越高;对系统设计方法学和工具的要求更高;系统设计日趋软件硬化、硬件软化,并使两者得到了有机的融合,形成了更为强大的ESDA( Electronic System Design Automation )。VHDL(Very High Speed Inte

21、grated Circuit Hardware Description Language)是 IEEE(Institute of Electrical and Electronics Engineers)标准的硬件描述语言,是现代电子系统设计的首选硬件设计计算机语言。本篇介绍 VHDL 的语法基础、用 VHDL 进行系统设计的基本方法、以及 VHDL 的设计实例等。从宏观的角度看,VHDL 的语法构成了程序的各组成部分;微观上看VHDL 的语法是各种语句的运用细节。本章在 VHDL 的特性之后,从这两个角度简要介绍 VHDL 的语法基础。硬件描述语言 HDL(Hardware Descript

22、ion Language)诞生于 1962 年。HDL 是用形式化的方法描述数字电路和设计数字逻辑系统的语言。主要用于描述离散电子系统的结构和行为。与 SDL(Software Description Language)相似,经历了从机器码(晶体管和焊接)、汇编(网表)、到高级语言(HDL)的过程。20 世纪 80 年代美国国防部开发 Very High Speed Integrated CircuitVHSIC,用于描述集成电路的结构和功能。此后,硬件描述语言向标准化方向沈阳工程学院课程设计(论文)- -3发展,1987 年成为 IEEE Standard 1076,称为 VHDL 语言。它

23、也是美国国防部标准(MIL-STD-454L)。1993 年该标准增修为 IEEE1164 标准。1996 年,再次加入电路合成的标准程序和规格,成为 IEEE1076.3 标准。2.2 VHDL 语言的特点及应用应用 VHDL 进行系统设计,有以下几方面的特点。(1) 功能强大。VHDL 具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL 是一种设计、仿真和综合的标准硬件描述语言。(2)可移植性。VHDL 语言是一个标准语言,其设计描述可以为不同的EDA 工具支持。它可以从一个仿真工具移植到另一个仿真工具

24、,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为 ASIC 设计。(3)独立性。VHDL 的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA 及各种门阵列器件。(4)可操作性。由于 VHDL 具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。(5)灵活性。VHDL 最初是作为一种仿真标准格式出现的,有

25、着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成

26、后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。VHDL 是一种标准的硬件电路设计语言,目前已成为广大电路设计人员设计数字系统首选的开发工具。基于 VHDL 硬件电路语言的编程与实际应用技巧,VHDL 硬件电路语言在微机、通信、编码、存储器以及电子电路等方面的具体设计应用,具有实际的指导意义。VHDL 语言是一种用于电路设计的高级语言。它在 80 年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一沈阳工程学院课程设计(论文)- -4种使用范围较小的设计语言 。但是,由于它在一定程度上满足了当时的设计需求,

27、于是他在 1987 年成为 ANSI/IEEE 的标准(IEEE STD 1076-1987) 。1993 年更进一步修订,变得更加完备,成为 ANSI/IEEE 的 ANSI/IEEE STD 1076-1993标准。目前,大多数的 CAD 厂商出品的 EDA 软件都兼容了这种标准。 VHDL 的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在 FPGA/CPLD/EPLD

28、 的设计中。当然在一些实力较为雄厚的单位,它也被用来设计 ASIC。 关于用 VHDL 和原理图输入进行 CPLD/FPGA 设计的粗略比较:在设计中,如果采用原理图输入的设计方式是比较直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比较符合人们的习惯。但是这样做需要设计人员要在两方面有较高的素质: 对电路的知识要比较丰富;对 CPLD/FPGA 的结构比较熟悉。有了这两个条件才能在设计的过程中选用适当的器件从而提高设计的可靠性、提高器件的利用率及缩短设计的周期。但是有一个重大的问题是在于,如果你的产品有所改动,需要采用另外的 CPLD/FPGA 时,你将需要重新输入原理图。 (改

29、用不同的器件在今天这种竞争环境下是会经常发生的。头儿们为了提高产品的性能或者是降低产品的造价,提高保密性等等,都会考虑选用不同的器件。对他们而言只是做出一个决定,对我们而言却是要我们付出更多的心血) 。 但是当你采用 VHDL 等高级语言来设计时这些问题都会得到较好的解决。由于在使用 VHDL 等高级语言时,有专用的工具来实现将语言描述的电路功能转换为实际的电路所以你就用不着对底层的电路很熟悉,也用不着对CPLD/FPGA 的结构很熟悉(因为有专用的工具针对你的描述采用相应的器件哦) 。当你要换器件时,你只需要将原来设计好的 VDHL 文件在新器件的设计工具中再次实现就行了。在用高级语言来设计

30、电路时,主要的过程是这样的: (1) 使用文本编辑器输入设计源文件(你可以使用任何一种文本编辑器。但是,为了提高输入的效率,你可以用某些专用的编辑器,如:Hdl Editor,Tubor Writer 或者一些 EDA 工具软件集成的 HDL 编辑器)。 (2)使用编译工具编译源文件。VHDL 的编译器有很多,ACTIVE 公司,MODELSIM 公司,SYNPLICITY 公司,SYNOPSYS 公司,VERIBEST 公司等都有自己的编译器。 (3)(可选步骤)功能仿真。对于某些人而言,仿真这一步似乎是可有可无的。但是对于一个可靠的设计而言,任何设计最好都进行仿真,以保证设计的可靠性。另外

31、,对于作为一个独立的设计项目而言,仿真文件的提供足可以证明你设计的完整性。 沈阳工程学院课程设计(论文)- -5(4)综合。综合的目的是在于将设计的源文件由语言转换为实际的电路。(但是此时还没有在芯片中形成真正的电路。这一步就好像是把人的脑海中的电路画成原理图。-这是我的个人观点,似乎在好多文献中都没有提到“综合”的准确定义。至少,我读过的几本书中就没有。 )这一部的最终目的是生成门电路级的网表(Netlist) 。 (5)布局、布线。这一步的目的是生成用于烧写(编程 Programming)的编程文件。在这一步,将用到第 4 步生成的网表并根据 CPLD/FPG 厂商的器件容量,结构等进行布

32、局、布线。这就好像在设计 PCB 时的布局布线一样。先将各个设计中的门根据网表的内容和器件的结构放在器件的特定部位。然后,在根据网表中提供的各门的连接,把各个门的输入输出连接起来。最后,生成一个供编程的文件。这一步同时还会加一些时序信息(Timing)到你的设计项目中去,以便与你做后仿真。 (6)后仿真。这一步主要是为了确定你的设计在经过布局布线之后,是不是还满足你的设计要求。 (7)烧写器件(编程) 。 随着 EDA 技术的发展,使用硬件语言设计PLD/FPGA 成为一种趋势。目前最主要的硬件描述语言是 VHDL 和 Verilog HDL。 VHDL 发展的较早,语法严格,而 Verilo

33、g HDL 是在 C 语言的基础上发展起来的一种硬件描述语言,语法较自由。 VHDL 和 Verilog HDL 两者相比,VHDL 的书写规则比 Verilog 烦琐一些,但 verilog 自由的语法也容易让少数初学者出错。 国外电子专业很多会在本科阶段教授 VHDL,在研究生阶段教授verilog。从国内来看,VHDL 的参考书很多,便于查找资料,而 Verilog HDL的参考书相对较少,这给学习 Verilog HDL 带来一些困难。 从 EDA 技术的发展上看,已出现用于 CPLD/FPGA 设计的硬件 C 语言编译软件,虽然还不成熟,应用极少,但它有可能会成为继 VHDL 和 V

34、erilog 之后,设计大规模CPLD/FPGA 的又一种手段。应用 VHDL 进行工程设计的优点是多方面的:(1) 与其他的硬件描述语言相比,VHDL 具有更强的行为描述能力,从而决定他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2) VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(3) VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发

35、组共同并行工作才能实现。(4) 对于用 VHDL 完成的一个确定的设计,可以利用 EDA 工具进行逻辑综合和优化,并自动的把 VHDL 描述设计转变成门级网表。(5) VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计.沈阳工程学院课程设计(论文)- -6任何新生事物的产生都有它的历史沿革,早期的硬件描述语言是以一种高级语言为基础,加上一些特殊的约定而产生的,目的是为了实现 RTL 级仿真,用以验证设计的正确性,而不必像在传统的手工设计过程中那样,必须等到完成样机后才能进行实测和调试。VHDL 就是在用用最广泛的 C 语言的

36、基础上发展起来的一种件描述语言,它是由 GDA(Gateway Design Automation)公司的 PhilMoorby 在 1983 年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985 年 Moorby 推出它的第三个商用仿真器 Verilog-XL,获得了巨大的成功,从而使得 Verilog HDL 迅速得到推广应用。1989 年 CADENCE 公司收购了 GDA 公司,使得 VerilogHDL 成为了该公司的独家专利。1990 年CADENCE 公司公开发表了 Verilog HDL,并成立 LVI 组织以促进 Verilog

37、HDL成为 IEEE 标准,即 IEEE Standard 1364-1995。VHDL 的最大特点就是易学易用,如果有 C 语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把 Verilog HDL 内容安排在与 ASIC设计等相关课程内部进行讲授,由于 HDL 语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。与之相比,VHDL 的学习要困难一些。但 Verilog HDL 较自由的语法,也容易造成初学者犯一些错误,这一点要注意。 沈阳工程学院课程设计(论文)- -7第 3 章 乐曲硬件演奏电路乐曲硬件演奏电路3.1 基本要求利用 FPG

38、A,设计一个乐曲硬件演奏电路。乐曲的 12 平均率规定:每 2 个八度(如简谱中的中音 1 与高音 1)之间的频率相差 1 倍。在 2 个八度音之间,又可分为 12 个半音,每 2 个半音的频率比为 122。另外,音符 A 的频率为440HZ,音符 B 到 C 之间,E 到 F 之间为半音,其余为全音。由此可以计算出简谱中从低音 l 至高音 1 之间每个音符的频率。设计音符查找表电路模块,时钟模块,数控分频器模块,音乐节拍产生模块电路。任意选择歌曲进行设计,但是歌曲前奏必须是中音 53532223.2 乐曲演奏原理声音的频谱范围一般在几十到几千赫兹,利用程序来控制 FPGA 芯片某个引脚输出一

39、定频率的矩形波,接上扬声器就能发出相应频率的声音。乐曲中的每个音符对应着一定的频率,因此,想要发出不同音符的音调,只要能控制输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以往扬声器上连续地发出各个音符的音调。音乐频率和音乐的持续时间是音乐演奏的两个关键因素,以纯硬件完成演奏电路比利用微处理器来实现乐曲演奏要复杂的多,如果不凭借 EDA 工具和硬件描述语言,凭借传统的数字逻辑技术,即使最简单的演奏电路也难以实现。乐曲硬件演奏电路系统主要有数控分频器和乐曲存储模块组成。数控分频器对 FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。

40、乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。乐曲演奏电路的结构框图如下:图 3.2.1 乐曲演奏电路结构框图沈阳工程学院课程设计(论文)- -8(1) 音名与频率的关系乐曲的 12 平均率规定:每 2 个八度(如简谱中的中音 1 与高音 1)之间的频率相差 1 倍。在 2 个八度音之间,又可分为 12 个半音,每 2 个半音的频率比为 122。另外,音符 A 的频率为 440HZ,音符 B 到 C 之间,E 到 F 之间为半音,其余为全音。由此可以计算出简谱中从低音 l 至高音 1

41、 之间每个音符的频率。如表 3.2.1 所示: 表 3.2.1 简谱中的音名与频率的关系音名频率/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由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频系数四舍五入取整。若基准频率过低,则

42、由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差变小,但是分频结构将变大。实际的设计应综合考虑两方面的因素,在尽量减小频率误差的前提下取舍合适的基准频率。本例中选取 4MHZ 的基准频率。各音阶频率计相应的分频系数如表 3.2.2 所示。为了减少输出的偶次谐波分量,最后输出到扬声器的波形应为对称方波,因此在到达扬声器之前,又经过一个 2 分频的分频器。表 3.2.2 的分频系数就是从 4MHZ 频率 2 分频得到的2MHZ 频率基础上计算得出的。 表 3.2.2 各音阶频率对应的分频表音名分频系数初始值音名分频系数初始值音名分频系数初始值低音 17644547中音 138

43、224369高音 119116280低音 268101381中音 234054786高音 212706921低音 360672124中音 330345157高音 315176674低音 457272464中音 428645327高音 414326759低音 551023089中音 525515640高音 512566935低音 645453646中音 622735918高音 611377054低音 740504141中音 720256166高音 710137178由于最大分频系数是 7644,故采用 13 位二进制计数器已能满足分频的要求。在表 3.2.2 中,除了给出了分频比例外,还给出了对

44、应于各个音阶频率时计数器不同的初始值,对于乐曲中的休止符,要将分频系数设为 0,即初始值位 8191即可,此时扬声器将不会发声。对于不同的分频系数,加载不同的初始值即可。沈阳工程学院课程设计(论文)- -9用加载初始值而不是将分频输出译码反馈,可以有效地减少成本设计占用可编程逻辑器件的资源,也是同步计数器一个常用设计技巧。(2)控制音长的节拍发生器该演奏电路演奏的乐曲是“梁祝”片段,其最小的节拍是 1 拍。将 1 拍的时间定为 0.25S,则只需要再提供一个 4HZ 的时钟频率即可产生 1 拍的时长,演奏的时间控制通过 ROM 查表得方式完成。对于占用时间较长的节拍(一定是拍的整数倍) ,如全

45、音符为 4 拍(重复 4 次),2/4 音符为 2 拍(重复 2 次) ,1/4 音符为 1 拍(重复 1 次) 。要求演奏时能循环进行,因此需要另外设置一个时长计数器,当乐曲演奏完成时,保证能自动从头开始演奏。该计数器控制真值表按顺序输出简谱。3.3 乐曲硬件演奏电路的层次化设计方案乐曲硬件演奏电路的层次化设计方案根据层次化的设计思路,可把乐曲硬件演奏电路分为 3 个模块,音乐节拍发生器 NoteTabs 模块,音符译码电路 ToneTaba 模块,数控分频模块(Speakera) 。3.3.1 音乐节拍发生器音乐节拍发生器 NoteTabs该模块将利用 FPGA 的片内 POM 存放乐曲简

46、谱真值表,该计数器的计数频率为 4HZ,即每一个数值的停留时间为 0.25S,随着 NoteTabs 中计数器按 4HZ 的时钟频率做加法计数时,乐符数据转向音符译码电路 ToneTaba,所以所存的乐曲就自然的演奏起来。其 VHDL 源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY NoteTabs IS PORT ( clk : IN STD_LOGIC; ToneIndex : OUT INTEGER RANG

47、E 0 TO 15 );END;ARCHITECTURE one OF NoteTabs IS SIGNAL Counter : INTEGER RANGE 0 TO 145;BEGIN CNT8 : PROCESS(clk) BEGIN IF Counter = 138 THEN Counter = 0;沈阳工程学院课程设计(论文)- -10 ELSIF (clkEVENT AND clk = 1) THEN Counter ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex Tone

48、Index ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex Tone

49、Index ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex Tone

50、Index ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex Tone

51、Index ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex Tone

52、Index ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex ToneIndex NULL; END CASE; END PROCESS;END;沈阳工程学院课程设计(论文)- -14仿真波形如下:图 3.3 音乐节拍发生器仿真波形原器件符号:图 3.4 音乐发生器元件符号3.3.2 音符译码电路 ToneTaba 模块音符译码电路即音调发生器实际上是一个翻译电路,根据输入为数控分频模块提供所发音符频率的初始值,而此数控分频模块入口的停留时间即为此音符的节拍数,以

53、VHDL 程序中仅设置了“梁祝”乐曲全部音符所对应的音符频率的初始值。/CLK_4HZ: 用于控制音长(节拍)的时钟频率;/CLK_6MHZ:用于产生各种音阶频率的基准频率;/SPEAKER: 用于激励扬声器的输出信号,本例中为方波信号;/HIGH, MED, LOW:分别用于显示高音、中音和低音音符,各驱动一个数码来显示。其 VHDL 源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ToneTaba IS PORT ( Index : IN INTEGER RANGE 0 TO 15; CODE : OUT INTEGER RANG

54、E 0 TO 15; HIGH : OUT STD_LOGIC; Tone : OUT INTEGER RANGE 0 TO 16#7FF# );沈阳工程学院课程设计(论文)- -15END;ARCHITECTURE one OF ToneTaba ISBEGIN Search : PROCESS(Index) BEGIN CASE Index IS - 译码电路,查表方式,控制音调的预置数 WHEN 0 = Tone = 2047; CODE = 0; HIGH Tone = 773; CODE = 1; HIGH Tone = 912; CODE = 2; HIGH Tone = 1036

55、; CODE = 3; HIGH Tone = 1197; CODE = 5; HIGH Tone = 1290; CODE = 6; HIGH Tone = 1372; CODE = 7; HIGH Tone = 1410; CODE = 1; HIGH Tone = 1480; CODE = 2; HIGH Tone = 1542; CODE = 3; HIGH Tone = 1622; CODE = 5; HIGH Tone = 1668; CODE = 6; HIGH Tone = 1728; CODE = 7; HIGH NULL; END CASE; END PROCESS;END

56、;在源程序中 Index 是音乐节拍发生器输出的音符数据;TONE 是为数控分频模块提供的音符频率的初始值,为方便测试,特设置了一个音名代码显示输出CODE 和音高指示信号 HUGH 可以通过数码管或 LED 来显示乐曲演奏时对应的音符和高音名。CODE 输出对应该音阶简谱的显示数码 1,HIGH 输出为高电平,指示音阶为高,HIGH 输出为低电平时,则指示音阶为中音。低音时,Tone 值小,分频比大,进位信号 SPKS 的周期长。仿真波形如下:沈阳工程学院课程设计(论文)- -16图 3.5 音符译码器的仿真输出波形图 3.6 音符译码器的元件符号图3.3.3 数控分频模块(Speakera

57、)设计数控分频器对 FPGA 的基准频率进行分频,得到与各个音阶对应的频率输出。数控分频模块是 13 位的加法计数器构成。当计数器计满是,产生一个进位信号FULLSPKS,该信号就是用作发音的频率信号。在即使器的预置端给定不同的初始值,其输出将产生不同的频率信号,频率信号初值 Tone 就是前级音符译码电路的输出。低音时,Tone 值小,分频比大,进位信号 SPKS 的周期长,扬声器发出的声音低,Tone 随音乐的乐谱而变化,自动控制分频比,从而实现数控分频,发生信号的频率与 Tone 成正比,这就是利用数控分频器演奏音乐的原理。通过分频后其进位信号 FULLSPJKS 是一周期脉冲信号,为有

58、利于驱动扬声器,在音调输出时再进行 2 分频,将脉冲展宽,使之占空比为 50%,扬声器这样就有足够的发声功率。其 VHDL 源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Speakera IS沈阳工程学院课程设计(论文)- -17 PORT ( clk : IN STD_LOGIC; Tone : IN INTEGER RANGE 0 TO 16#1FFF#; SpkS : OUT STD_LOGIC );END;ARCHITECTURE one OF Speakera IS SIGNAL PreCLK : STD_LOGIC; S

59、IGNAL FullSpkS : STD_LOGIC;BEGIN DivideCLK : PROCESS(clk) VARIABLE Count4 : INTEGER RANGE 0 TO 15; BEGIN PreCLK 11 THEN PreCLK = 1; Count4 := 0; ELSIF clkEVENT AND clk = 1 THEN Count4 := Count4 + 1; END IF; END PROCESS; GenSpkS : PROCESS(PreCLK, Tone) VARIABLE Count13: INTEGER RANGE 0 TO 16#1FFF#;BE

60、GIN - 13 位可预置计数器 IF PreCLKEVENT AND PreCLK = 1 THEN IF Count13 = 16#1FFF# THEN Count13 := Tone; FullSpkS = 1; ELSE Count13 := Count13 + 1; FullSpkS = 0; END IF; END IF; END PROCESS; DelaySpkS : PROCESS(FullSpkS) VARIABLE Count2 : STD_LOGIC;BEGIN - 将输出再进行 2 分频,将脉冲展宽,以使扬声器有足够沈阳工程学院课程设计(论文)- -18功率发音 IF

温馨提示

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

评论

0/150

提交评论