EDA课设电子琴设计说明.docx
《EDA课设电子琴设计说明.docx》由会员分享,可在线阅读,更多相关《EDA课设电子琴设计说明.docx(13页珍藏版)》请在冰点文库上搜索。
EDA课设电子琴设计说明
理工大学《电子线路EDA》课程设计
课程设计任务书
学生:
-专业班级:
电子科学与技术0903班指导教师:
成军工作单位:
信息工程学院题目:
简易电子琴设计
初始条件:
QUARTUS软件,微机,EDA-IV型实验箱。
课题要求:
结合所学的知识,利用QUARTUS采用VHDL语言设计乐曲演奏电路,可以演奏8个音符:
1、2、3、4、5、6、7、1。
课题容:
时间安排:
1、2011年6月11日集中,听老师作课设安排与报告格式要求说明。
2、2012年6月12日至6月16日,选好课题,学习相关资料,开始课
设。
3、2012年6月17日至6月19日,进行硬件调试。
4、2012年6月20至6月21日,撰写实验报告。
5、2012年6月22日,检查硬件,进行答辩,提交设计报告。
设计一个简易的八音符电子琴,可以通过按键输入来控制蜂鸣器输出不同音调。
指导教师签名:
2012年月日系主任(或责任教师)签名:
2012年月日
理工大学《电子线路EDA》课程设计
摘要................................................................................................................................3
Abstract..........................................................................................................................4
绪论................................................................................................................................5
1设计简介.....................................................................................................................6
1.1课程设计的目的..............................................................................................6
1.2课程设计的容..............................................................................................6
2.VHDL简介.................................................................................................................7
2.1VHDL的特点...................................................................................................7
2.2VHDL特点........................................................................................................8
2.3VHDL设计流程...............................................................................................8
3程序过程.....................................................................................................................9
3.1设计总体模块...................................................................................................9
3.2模块原理及程序...............................................................................................9
4波形仿真...................................................................................................................12
5总结体会...................................................................................................................13
参考文献......................................................................................................................14
附录源程序................................................................................................................15
理工大学《电子线路EDA》课程设计
摘要
随着基于CPLD的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制用计算机等领域的重要性日益突出。
作为一个学电子信息专业的学生,我们必须不断地了解更多的新产品信息,这就更加要求我们对EDA有个全面的认识。
本程序设计的是简易电子琴的设计。
采用EDA作为开发工具,VHDL语言为硬件描述语言,QUARTUS作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标。
本程序使用的硬件描述语言VHDL,可以大大降低了硬件数字系统设计的入门级别,让人感觉就是C语言的近亲。
通过老师的指导和自己的学习完成了预想的功能。
关键词:
电子琴;quartus;EDA;VHDL语言
理工大学《电子线路EDA》课程设计
Abstract
WiththeexpansionanddeepeningofCPLDEDAtechnologydevelopmentandapplications,EDAtechnologyintheelectronicinformation,communication,automaticcontrolcomputersandotherareasofimportancehavebecomeincreasinglyprominent.Asanelectronicinformationofprofessionalstudents,wemustcontinuetolearnmoreaboutthenewproductinformation,itisevenmorewehaveacomprehensiveunderstandingofEDA.Theprogramdesignisthedesignofsimplekeyboard.UsingEDAasadevelopmenttool,VHDLlanguageforhardwaredescriptionlanguage,QUARTUSrunasaprogramplatform,thedevelopmentofprogramdebuggingandrunning,thewaveformsimulation,theinitialrealizationofthedesigngoals.ThisprogramusesthehardwaredescriptionlanguageVHDL,cangreatlyreducetheentrylevelofthehardwaredesignofdigitalsystems,andcloserelativesofpeoplefeelistheClanguage.Throughtheguidanceoftheirteachersandtheirownlearningtocompletethedesiredfunction.
Keywords:
electronicorgan;thequartus;theEDA;VHDLlanguage
理工大学《电子线路EDA》课程设计
绪论
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写。
EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言
HDL(HardwareDescriptionLanguage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
EDA技术使设计者的工作仅局限于利用软件的方式来完成对系统硬件功能的实现,可以说EDA技术的产生与发展是电子设计技术的一个巨大进步。
EDA技术融合了众多电子设计技术和计算机辅助技术,使得它在现代电子学方面的应用越来越广泛,也成为电子、电气类大学生必须熟练掌握的一种设计工具。
硬件描述性语言HDL是EDA技术的重要组成部分,常见HDL的有VHDL、HDL、ABEL、Verilog、AHDL、SystemC等。
其中VHDL、Verilog在现在的EDA设计中使用的最多,也拥有了几乎所有主流EDA工具的支持,而相对于其他语言VHDL更加完善。
VHDL是英文全名是VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage,是硬件描述语言的业界标准之一。
它作为一个规语言和建模语言,具有与具体硬件电路无关及设计平台无关的特性,而且还有很强的电路行为描述和建模能力,能从多个层次的数字系统进行建模和描述,从而大大简化了硬件设计的任务,提高了设计效率和可靠性。
理工大学《电子线路EDA》课程设计
1设计简介
1.1课程设计的目的
巩固和运用所学课程,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力,通过对一个简易的八音符电子琴的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。
巩固所学课堂知识,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。
为了进一步了解计算机组成原理与系统结构,深入学习EDA技术,用VHDL语言去控制将会使我们对本专业知识可以更好地掌握。
1.2课程设计的容
设计一个简易的八音符电子琴,它可通过按键输入来控制音响。
当按下不同按键时,蜂鸣器发出不同频率声响,来实现简易电子琴功能。
理工大学《电子线路EDA》课程设计
2.VHDL简介
2.1VHDL的特点
VHDL语言功能强大、设计灵活。
VHDL语言可以用简洁明确的源代码来描述复杂的逻辑控制,它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。
VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。
VHDL还支持多种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。
由于VHDL已经成为IEEE标准所规定的硬件描述性语言,目前大多数EDA工具几乎都支持VHDL。
因为VHDL易读和结构化且易于修改设计所以在硬件电路设计过程中,VHDL语言得到广泛应用。
VHDL语言独立于器件的设计与工艺无关。
因而设计人员用VHDL进行设计时,不需要考虑选择器件得问题,就可以集中精力进行设计的优化。
当设计描述完成后,可以用多种不同的器件结构来实现其功能。
VHDL语言易于共享和复用。
VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。
这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。
VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。
这个特点很好的符合了市场需求。
对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述的设计转变成门级网表。
总之,由于VHDL语言有的这些优良的特点,它被广泛的应用在电子线路和电子系统的设计中。
理工大学《电子线路EDA》课程设计
2.2VHDL优点
(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。
符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。
(4)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
2.3VHDL设计流程
(1)设计输入根据电路设计所提出的要求,将程序输入到VHDL编辑器中去编辑。
(2)功能级模拟用VHDL,模拟器对编辑后的程序进行模拟,如果达不到设计要求,则可以重新修改程序,直到通过功能模拟。
(3)逻辑综合与优化将通过功能模拟的程序放到VHDL编译器中,进行逻辑综合与优化。
(4)门级模拟对电路用VHDL。
仿真器仿真。
可对门级电路的延时、定时状态、驱动能力等进行仿真。
如不符合要求,可重复步骤(3),再门级模拟,直到符合要求止。
(5)版图生成用相应的软件处理后,就可以拿去制版。
理工大学《电子线路EDA》课程设计
3程序过程
3.1设计总体模块
图3-1电子琴总体模块
Clk为实验板时钟输入,key[7..0]分别对应八个按键输入,buz为输出端,连接蜂鸣器。
3.2模块原理及程序
1、2、3、4、5、6、7、1分别对应的频率分别为2616HZ、2936HZ、3295HZ、
3490HZ、3920HZ、4399HZ、4940HZ、5232HZ。
在程序里可以对20M时钟频率进行分频来得到所需频率而发出不同音调。
20M时钟要得到上面所需频率需要进行分频,分频系数分别为3822、3405、3034、2865、2551、2273、2024、1911,可以令时钟计数一定次数后反向从而达到分频的效果得到所需不同音调对应的频率。
程序中定义8个常数来作为计数对应值:
constantduo:
std_logic_vector(12downto0):
="10";constantlai:
std_logic_vector(12downto0):
="01";
constantmi:
std_logic_vector(12downto0):
="10";constantfa:
std_logic_vector(12downto0):
="01";constantsuo:
std_logic_vector(12downto0):
="11";constantla:
std_logic_vector(12downto0):
="01";constantxi:
std_logic_vector(12downto0):
="00";
理工大学《电子线路EDA》课程设计
constantduo1:
std_logic_vector(12downto0):
="11";8个按键分别对应8个频率的脉冲,当一个按键按下去后此时该按键对应引脚输入高电平,故可利用“01000000”这种形式来表示哪个按键按下,而不同按键对应不同频率输出。
对应关系分别为:
“10000000”对应1的频率;
“01000000”对应2的频率;
“00100000”对应3的频率;
“00010000”对应4的频率;
“00001000”对应5的频率;
“00000100”对应6的频率;
“00000010”对应7的频率;
“00000001”对应1的频率;
故可用以下程序来实现不同按键对应不同频率的要求:
when"10000000"=>if(clk1/=duo)then
clk1<=clk1+"01";elseclk1<="00";buzz<=notbuzz;endif;when"01000000"=>if(clk1/=lai)thenclk1<=clk1+"01";elseclk1<="00";buzz<=notbuzz;endif;when"00100000"=>if(clk1/=mi)thenclk1<=clk1+"01";elseclk1<="00";buzz<=notbuzz;endif;
理工大学《电子线路EDA》课程设计
when"00010000"=>if(clk1/=fa)thenclk1<=clk1+"01";elseclk1<="00";buzz<=notbuzz;endif;when"00001000"=>if(clk1/=suo)thenclk1<=clk1+"01";elseclk1<="00";buzz<=notbuzz;endif;when"00000100"=>if(clk1/=la)thenclk1<=clk1+"01";elseclk1<="00";buzz<=notbuzz;endif;when"00000010"=>if(clk1/=xi)thenclk1<=clk1+"01";elseclk1<="00";buzz<=notbuzz;endif;when"00000001"=>if(clk1/=duo1)thenclk1<=clk1+"01";elseclk1<="00";buzz<=notbuzz;endif;whenothers=>null;
理工大学《电子线路EDA》课程设计
4波形仿真
图4-1波形仿真图
由仿真波形可以看到,当按键输入不同值时,蜂鸣器也将发出不同频率声响。
理工大学《电子线路EDA》课程设计
5总结体会
经过努力,简易电子琴的设计基本上完成了。
在整个设计过程中,包括前期中期和后期,我都有着许多不同的体会:
1)这个设计的基本是接触一门新的语言并加以应用,对于我来说,没有想到的是入手的速度比我的预料快,在以前编程的基础上,从接触到开始动手编程的时间得到了很大的缩短。
知识的接收速度在很大的程度上决定了动手的时间。
2)VHDL的编程与C语言的编程有着本质的不同,然而以往形成的旧编程习惯在VHDL编程中依然起着很大的作用。
一通百通,不是没有道理的。
对于学习新的知识并予以应用的信心,显得更足了。
3)VHDL的设计关键是电路逻辑设计,而一个程序的关键是总体设计。
对于硬件设计接触不多的我们清楚这一点也许不无好处。
4)通过这个程序设计让我学会一种新的语言,对数字系统结构也有了更进一步的了解和认识,对我以后的学习有很大的帮助。
希望其他人在看再做类似设计时有所借鉴。
通过几天的课程设计,我对数据库软件EDA技术、VHDL、等系列知识都有了一定的了解。
使用EDA技术开发页面的能力也有了很大提高。
理工大学《电子线路EDA》课程设计
参考文献
[1]松黄继业.EDA技术与VHDL(第二版).:
清华大学,2005.7
[2]康华光.电子技术基础.:
高等教育.2006.1
[3]付家才.EDA工程实践技术.:
化学工业,2007.1
[4]汉泽西.EDA技术及其应用.:
航空航天大学,2004.5
[5]刚.EDA技术简明教程.:
大学,2004.6
[6]章彬宏周正林.EDA应用技术.:
理工大学,2007.7
[7]艳萍高振斌志平.EDA实用技术及应用.:
国防工业,2006.1
理工大学《电子线路EDA》课程设计
附录源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entitymusicis
port(clk:
instd_logic;
key:
instd_logic_vector(7downto0);
buz:
outstd_logic);
endmusic;
architecturebehofmusicis
signalclk1:
std_logic_vector(12downto0);
constantduo:
std_logic_vector(12downto0):
="10";constantlai:
std_logic_vector(12downto0):
="01";constantmi:
std_logic_vector(12downto0):
="10";constantfa:
std_logic_vector(12downto0):
="11";constantsuo:
std_logic_vector(12downto0):
="10";constantla:
std_logic_vector(12downto0):
="01";constantxi:
std_logic_vector(12downto0):
="00";constantduo1:
std_logic_vector(12downto0):
="11";signalbuzz:
std_logic;
signalkey_out:
std_logic_vector(7downto0);
begin
buz<=buzz;
key_out<=key;
process(clk)
begin
ifclk'ev