ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:278.95KB ,
资源ID:3739992      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3739992.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易电子琴的设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简易电子琴的设计.docx

1、简易电子琴的设计课程设计任务书 电子信息工程专业 课程名称时间学生姓名指导老师题 目简易电子琴的设计主要内容:本课程设计主要是利用硬件描述语言VHDL的设计思想,采用自顶向下的方法,划分模块来设计简易电子琴中的几个模块。通过课程设计深入理解和掌握计算机的基本知识,并且掌握课堂上所学到的理论知识,达到课程设计的目的。要求:(1)通过对相应文献的收集、分析以及总结,给出相应课题的背景、意义及现状研究分析。(2)通过课题设计,掌握计算机组成原理的分析方法和设计方法。(3)学按要求编写课程设计报告书,能正确阐述设计和实验结果。(4)学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应文献以及

2、实现,给出个人分析、设计以及实现。应当提交的文件:(1)课程设计报告。(2)课程设计附件(主要是源程序)。课程设计成绩评定学 院 专 业 班 级 学 号 学生姓名 指导教师 课程成绩 完成日期 指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩 指导教师签字 年 月 日简易电子琴的设计学生姓名: 指导老师:摘 要 本系统是采用EDA技术设计的一个简易的八音符电子琴,该系统基于计算机中时钟分频器的原理,采用自顶向下的设计方法来实现,它可以

3、通过按键输入来控制音响。系统由乐曲自动演奏模块、音调发生模块和数控分频模块三个部分组成。系统实现是用硬件描述语言VHDL按模块化方式进行设计,然后进行编程、时序仿真、整合。本系统功能比较齐全,有一定的使用价值。关键字 电子琴;EDA;VHDL;音调发生; 目录1 引 言 11.1 设计的目的 11.2 设计的基本内容 12 EDA、VHDL简介 12.1 EDA技术 12.2 硬件描述语言VHDL 22.2.1 VHDL的简介 22.2.2 VHDL语言的特点 22.2.3 VHDL的设计流程 33 简易电子琴设计过程 33.1简易电子琴的工作原理 33.2简易电子琴的工作流程图 53.3简易

4、电子琴中各模块的设计 63.3.1 乐曲自动演奏模块 63.3.2 音调发生模块 73.3.3 数控分频模块 83.3.4 顶层设计 94 系统仿真 105 结束语 12致谢 13参考文献 14附录 15 1 引 言我们生活在一个信息时代,各种电子产品层出不穷,作为一个计算机专业的学生,了解这些电子产品的基本组成和设计原理是十分必要的,我们学习的是计算机组成的理论知识,而课程设计正是对我们学习的理论的实践与巩固。本设计主要介绍的是一个用超高速硬件描述语言VHDL设计的一个具有若干功能的简易电子琴,其理论基础来源于计算机组成原理的时钟分频器。1.1 设计的目的本次设计的目的就是在掌握计算机组成原

5、理理论的基础上,了解EDA技术,掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,例如本课程设计就是基于所学的计算机原理中的时钟分频器和定时器的基础之上的,通过本课程设计,达到巩固和综合运用计算机原理中的知识,理论联系实际,巩固所学理论知识,并且提高自己通过所学理论分析、解决计算机实际问题的能力。1.2 设计的基本内容基于MAX+PLUS平台,运用VHDL语言对简易电子琴的各个模块进行设计,并使用EDA 工具对各模块进行仿真验证。本设计包含如下三个模块:乐曲自动演奏模块,音调发生模块,数控分频模块,最后把各个模块整合后,通过

6、电路的输入输出对应关系连接起来。2 EDA、VHDL简介2.1 EDA技术EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事

7、业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。2.2 硬件描述语言VHDL2.2.1 VHDL的简介VHDL是一种用来描述数字逻辑系统的“编程语言”它的全名是Very-High-Speed Integrated Circuit HardwareDescription Language。它源于美国政府于1980年开始启动的超高速集成电路计划,VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法

8、是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的。VHDL的应用必将成为当前以及未来EDA解决方案的核心,更是整个电子逻辑系统设计的核心。2.2.2 VHDL语言的特点(1)VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最

9、佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(3)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,

10、也不必管理最终设计实现的目标器件是什么,而进行独立的设计。2.2.3 VHDL的设计流程用VHDL语言设计电路的流程:在用VHDL语言来设计电路时,主要的过程是这样的:(1)使用文本编辑器输入设计源文件。(2)使用编译工具编译源文件。VHDL的编译器有很多,ACTIVE公司,MODELSIM公司,SYNPLICITY公司,SYNOPSYS公司,VERIBEST公司等都有自己的编译器。(3)功能仿真。对于某些人而言,仿真这一步似乎是可有可无的。但是对于一个可靠的设计而言,任何设计最好都进行仿真,以保证设计的可靠性。另外,对于作为一个独立的设计项目而言,仿真文件的提供足可以证明你设计的完整性。 (

11、4)综合。综合的目的是在于将设计的源文件由语言转换为实际的电路。这一部分的最终目的是生成门电路级的网表(Netlist)。(5)布局、布线。这一步的目的是生成用于烧写的编程文件。在这一步,将用到第(4)步生成的网表并根据CPLD/FPG厂商的器件容量,结构等进行布局、布线。这就好像在设计PCB时的布局布线一样。先将各个设计中的门根据网表的内容和器件的结构放在器件的特定部位。然后,在根据网表中提供的各门的连接,把各个门的输入输出连接起来。(6)后仿真。这一步主要是为了确定你的设计在经过布局布线之后,是不是还满足你的设计要求。3 简易电子琴设计过程3.1简易电子琴的工作原理音乐产生原理及硬件设计由

12、于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T= 216-5105/相应的频率 ,那么根据不同的频率计算出应该赋给定时器的计数值,电子琴的具体工作原理图如图3.1所示。 图3.1简易电子琴的工作原理图3.2简易电子琴的工作流程图 图3.2 简易电子琴的工作流程图3.3简易

13、电子琴中各模块的设计为了更清楚的了解电子琴的工作过程,我们利用EDA工具(本课程设计Max+plus)对各个模块实施时序仿真(Timing Simulation),由自顶向下的设计方式,最后将三个模块进行整合,做出简易电子琴整个系统的时序仿真图。3.3.1 乐曲自动演奏模块乐曲自动演奏模块的作用是产生8位发声控制输入信号。当进行自动演奏时,由存储在此模块中的8位二进制作为发声控制输入,从而自动演奏乐曲。这段模块的原理图如图3.3所示:3.3 乐曲自动演奏模块原理图乐曲自动演奏模块可以由VHDL语言来实现,下面是一段主要代码:BEGIN IF AUTO=0THEN CASE COUNT IS W

14、HEN 0=INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0=00000010; -2 END CASE; ELSE INDEX0TONE0=773;CODE=1001111;HIGHTONE0=912;CODE=0010010;HIGHTONE0=1036;CODE=0000110;HIGHTONE0=1116;CODE=1001100;HIGHTONE0=1197;CODE=0100100;HIGHTONE0=1290;CODE=0100000;HIGHTONE0=1372;CODE=0001111;HIGHTONE0=1410;CODE=0000000

15、;HIGHTONE=2047;CODE=0000001;HIGH=0; END CASE; END PROCESS; 3.3.3 数控分频模块在对计算机组成原理的学习中,我们知道数控分频器的功能是在输入端输入不同数据时,对输入时钟产生不同的分频比,输出不同频率的时钟,以改变输出信号的频率。本设计中数控分频模块是利用并行预置数的减法计数器对时基脉冲进行分频,得到与1、2、3、4、5、6、7七个音符相对应的频率。数控分频模块原理图如图3.7所示: 图3.7 数控分频模块原理图其主要VHDL代码如下所示: BEGINPROCESS(CLK1) VARIABLE COUNT:INTEGER RANGE

16、 0 TO 8;BEGIN IF(CLKEVENT AND CLK1=1)THEN COUTNT:=COUNT +1; IF COUNT=2 THEN PRECLK=1; ELSE COUNT=4 THEN PRECLK=0;COUTN:=0; END IF; END IF;END PROCESS;PROCESS(PRECLK,TONE1) VARIABLE COUNT11:INTEGER RANGE 0 TO 2047; BEGIN IF(PRECLKEVENT AND PRECLK=1)THEN IF COUNT11TONE1 THEN COUNT11:=COUNT11 +1;FULLSP

17、KS=1; ELSE COUNT11:=0;FULLSPKS=0; END IF; END IF; END PROCESS;3.3.4 顶层设计把以上设计的各个模块进行整合,最后我们得到了系统的整个工作原理图,如图3.10:310 简易电子琴的工作原理图完成整个系统顶层设计的主要VHDL代码如下: ARCHITECTURE ART OF DIANZIQIN IS COMPONENT AUTO PORT(CLK: IN STD_LOGIC; AUTO: IN STD_LOGIC; INDEX2:IN STD_LOGIC_VECTOR(7 DOWNTO 0); INDEX0:OUT STD_LOG

18、IC_VECTOR(7 DOWNTO 0); END COMPONENT; COMPONENT TONE PORT ( INDEX: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CODE: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HIGH: OUT STD_LOGIC; TONE0:OUT INTEGER RANGE 0 TO 2047); END COMPONENT; COMPONENT FENPIN PORT(CLK1: IN STD_LOGIC; TONE1: IN INTEGER RANGE 0 TO 2047; SPKS: OUT S

19、TD_LOGIC); END COMPONET; 4 系统仿真乐曲自动演奏模块由VHDL语言实现后,其仿真图如图3.4所示。图3.4 乐曲自动演奏模块的仿真音调发生模块由VHDL实现后,其仿真图如图3.6所示。图3.6 音调发生模块仿真图数控分频模块由VHDL程序实现后,其仿真图如图3.8所示。 图3.8 数控分频模块仿真图最后进一步利用VHDL完成对整个系统的顶层设计,其仿真图如3.9所示: 图3.9 简易电子琴整个系统的仿真图 5 结束语通过两个多周的紧张工作,终于完成了简易电子琴的设计,这个课程设计使我受益匪浅,他使我了解了硬件设计的整个流程,并且加深了我对计算机组成原理这门的课内容的理

20、解,通过这个课程设计,不仅使我了解了组成原理的脊髓,而且使我对VHDL语言从陌生到初步理解,扩充的我的知识面。这个课程设计也培养了我们的耐心和毅力,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,由于这个课程设计也使我积累了一些经验,相信这些经验在我以后的学习工作中会有很大的作用。此课程设计也使我了解了VHDL设计的方便灵活性,这是我们跨入计算机硬件行业很好的一次锻炼。在课程设计的整个过程中,得到了肖晓丽老师的大力支持,在此感谢肖老师的精心指点。致谢此课程设计从构思到最后完成的这两个周内,周围的很多同学和朋友给予了我善意的帮助,还有肖晓丽老师对我的不厌其烦的指导,使我对

21、此类课程设计的设计流程以及脊髓有了很深的了解,通过你们的帮助,我把从计算机组成原理这门课上学到的理论第一次用到了实际设计上。在此,我深深的表示感谢,没有你们,我无法完成此课程设计。参考文献1 曹昕燕,周凤臣.EDA技术实验与课程设计.北京:清华大学出版社,20062 张亦华,延明. 数字电路EDA入门.北京:北京邮电大学出版社,20033王爱英.计算机组成与结构.北京:清华大学出版社,20074 杨刚,龙海燕.现代电子技术VHDL与数字系统设计.北京:电子工业出版社,2004附录1. 乐曲自动演奏模块的源程序如下所示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.A

22、LL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY AUTO IS PORT ( CLK: INSTD_LOGIC;-系统时钟控制信号 AUTO: INSTD_LOGIC; CLK2: BUFFER STD_LOGIC; INDEX2: INSTD_LOGIC)VECTOR( 7 DOWNTO 0 ); INDEX0: OUTSTD_LOGIC_VECTOR( 7 DOWNTO 0 );END AUTO;ARCHITECTURE BEHAVIORAL OF AUTO IS SIGNAL COUTTO:INTEGER RANGE 0 TO 31; BEGIN PU

23、LSEO:PROCESS(CLK,AUTO) VARIABLE COUNT:INTEGER RANGE 0 T0 8; BEGIN IF AUTO = 1 THEN COUNT: = 0;CLK2 =0; ESLE(CLKEVENT AND CLD = 1)THEN COUTN:=COUTN+1; IF COUTN = 4 THEN CLK2=1; ELSIF COUNT =8 THEN CLK2=0;COUNT:=0; END IF; END IF;END PROCESS;MUSIC:PROCESS(CLK2) BEGIN IF(CLK2EVENT AND CLK2=1)THEN IF(CO

24、UNT0 =31)THEN COUNT=0; ELSE COUNTINDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0INDEX0=00000010; -2 END CASE; ELSE INDEX0=INDEX2; END IF; END PROCESS; END BEHAVI

25、ORAL;2. 音调发生模块的源程序如下所示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TONE IS PORT(INDEX: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CODE: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HIGH: OUT STD_LOGIC; TONE0: OUT INTEGER RANGE 0 TO 2047);END TONE;ARCHITECTURE ART OF TONE IS BEGIN SEARCH:PR

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1