eda自动售货机_第1页
eda自动售货机_第2页
eda自动售货机_第3页
eda自动售货机_第4页
eda自动售货机_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

目录1引言22VHDL介绍421VHDL硬件描述语言概述422VHDL语言的特点423VHDL语言的程序结构5231库声明5232实体5233结构体63QUARTUSII软件介绍731QUARTUSII概述732QUARTUSII的应用74系统整体设计941设计的基本内容942状态转换图1043时序仿真结果115引脚锁定及下载1451引脚锁定1452下载1453结果分析1454硬件测试156总结17参考文献18附录191引言EDA技术即电子设计自动化ELECTRONICDESIGNAUTOMATION技术,以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门技术。EDA技术是一种实现电子系统或电子产品自动化设计的技术,与电子技术、微电子技术的发展密切相关。同时它吸收了计算机科学领域的大多数最新研究成果,以计算机作为基本工作平台,利用计算机图形学、拓扑逻辑学、计算数学以至人工智能学等多种计算机应用学科的最新成果而开发出来的一整套电子CAD通用软件工具,是一种帮助电子设计工程师从事电子组件产品和系统设计的综合技术。EDA技术的出现,为电子系统设计带来了一场革命性的变化。没有EDA技术的支持,想要完成上述超大规模集成电路的设计制造是不可想象的。电子设计技术的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。EDA技术已有30年的发展历程,大致可分为三个阶段。70年代为计算机辅助设计CAD阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作。80年代为计算机辅助工程CAE阶段。与CAD相比,CAE除了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计。CAE的主要功能是原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。90年代为电子系统设计自动化EDA阶段。EDA代表了当今电子设计技术的最新发展方向,给电子系统设计带来了革命性的变化,在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断更新、增加,使电子EDA技术得到了更大的发展。它的基本特征是设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子设计方法。2VHDL介绍21VHDL硬件描述语言概述硬件描述语言(HDLHARDWAREDESCRIPTIONLANGUAGE)是一种用于设计硬件电子系统的计算机语言,早期的硬件描述语言,如ABELHDL、AHDL,是由不同的EDA厂商开发的,互相不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上缺陷,1985年美国国防部正式推出VHDLVERYHIGHSPEEDICHARDWAREDESCRIPTIONLANGUAGE语言,1987年IEEE采纳VHDL为硬件描述语言标准(IEEESTD1076)。【2】VHDL用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,即可以利用软件工具将VHDL源码自动地转化为文本方式表达的基本逻辑元件连接图,即网表文件。与传统的门级描述方式相比,它更适合大规模系统的设计,而且VHDL语言可读性强,易于发现和修改错误。例如在智能抢答器的设计中,我们可以用简单的几个语句完成对整个系统的结构组成以及功能的描述及设计,同时,设计采用自顶向下的设计方法,这种模块化、逐步细化的方法有利于系统的分工合作。【3】用VHDL对系统进行设计,可以在电子设计的各个阶段、各个层次对于编辑好的程序,在ALTERA公司提供的QUARTUSII平台上进行编译、仿真,然后通过时序图可以看出了此编程是否符合预想的设计功能,如果不符合,在硬件测试前就可以及早发现各子模块及系统中的错误,这样的设计特点无疑将提高系统设计的效率。除此之外,用VHDL进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。22VHDL语言的特点应用VHDL进行系统设计,有以下几方面的特点。(1)功能强大VHDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。(2)可移植性VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。(3)独立性VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。(4)可操作性由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。(5)灵活性VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。23VHDL语言的程序结构一般而言,一个相对完整的VHDL语言程序(或称为设计实体)至少应三个基本组成部分库声明;实体;结构体。其中,库声明用于调用设计实体将要用到的库、程序包;实体用于描述该设计实体与外界的接口信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系,是不可视部分。在一个实体中,允许含有一个或多个结构体,而在每一个结构体中又可以含有一个或多个进程以及其他的语句。根据需要,实体还可以有配置说明语句。配置说明语句主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体。231库声明库声明的建立和使用有利于设计重用和代码共享,同时可以使代码结构更加清晰。在VHDL设计中也最常用的3个库是IEEE库,STD和WORK库。库的声明方式LIBRARYLIBRARY_NAMEUSELIBRARY_NAMEPACKAGE_NAMEPACKAGEPACKAGE_PARTS注意,STD和WORK库是默认可见的,因此不需要在对其进行声明。232实体实体(ENTITY)是一个设计实体的表层设计单元,其功能是对这个设计实体与外部电路进行接口描述它规定了设计单元的输入输出接口信号和引脚,是设计实体与外界的一个通信界面。实体语句结构ENTITYENTITY_NAMEISPORTPORT_NAMESIGNAL_MODESIGNAL_TYPEEND其中的ENTITY_NAME是设计者自己给设计实体的命名,可供其他设计实体对其进行调用时使用(考虑到QUARTUS要求源程序文件的名字与实体名必须一致,因此建议各个源程序文件的命名均与实体名一致)。233结构体结构体中的代码是用于描述电路行为和实现功能的。结构体包含两个部分声明部分,用于对信号和常量进行声明;代码部分,用来描述电路的行为。结构体的一般语句格式结构体的语句格式如下ARCHITECTUREARCHITECTURE_NAMEOFENTITY_NAMEISDECLARATIONBEGINCODEEND;其中ENTITY_NAME必须与设计实体名一致,而结构体名可以由设计者自己选择,但当一个实体具有多个结构体时,结构体的取名不可重复。3QUARTUSII软件介绍31QUARTUSII概述QUARTUSII是ALTERA公司单芯片可编程系统SOPC设计的综合性环境,也是适合SOPC的最全面的设计环境。它拥有现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD设计的所有阶段的解决方案。QUARTUSII设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与MASKPROGRAMMEDDEVICES开发的统一工作流程。同时,ALTERA的QUARTUSII可编程逻辑软件还属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持VHDL、VERILOG的设计流程,其内部嵌有VHDL、VERILOG逻辑综合器。同样,QUARTUSII具备仿真功能,同时也支持第三方的仿真工具。QUARTUSII支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块进行调用,从而解决了原理图与HDL混合输入设计的问题,并且在设计输入之后,QUARTUSII的编译器将给出设计输入的错误报告。32QUARTUSII的应用利用QUARTUSII软件的开发流程可概括为以下几步设计输入、设计编译、设计定时分析、设计仿真和器件编程。(1)设计输入QUARTUSII软件在FILE菜单中提供“NEWPROJECTWIZARD“向导,引导设计者完成项目的创建。当设计者需要向项目中添加新的VHDL文件时,可以通过“NEW“选项选择添加。(2)设计编译QUARTUSII编译器完成的功能有检查设计错误、对逻辑进行综合、提取定时信息、在指定的ALTERA系列器件中进行适配分割,产生的输出文件将用于设计仿真、定时分析及器件编程。首先确定软件处于COMPILEMODE,可以通过PROCESSING菜单进行选择。在PROCESSING菜单中选择COMPILERSETTINGS项。可以进行器件选择、模式设定、综合和适配选项设定及设计验证等。单击PROCESSING菜单下的“STARTCOMPILATION“项,开始编译过程。查看编译结果,我们可以得到详细的编译报告。(3)设计定时分析单击PROJECT菜单下的“TIMINGSETTINGS“选项,可以方便地完成时间参数的设定。QUARTUSII软件的定时分析功能在编译过程结束之后自动运行,并在编译报告的TIMINGANALYSES文件夹中显示。其中我们可以得到最高频率FMAX、输入寄存器的建立时间TSU、引脚到引脚延迟TPD、输出寄存器时钟到输出的延迟TCO和输入保持时间TH等时间参数的详细报告,从中可以清楚地判定是否达到系统的定时要求。(4)设计仿真QUARTUSII软件允许设计者使用基于文本的向量文件(VEC)作为仿真器的激励,也可以在QUARTUSII软件的波形编辑器中产生向量波形文件(VWF)作为仿真器的激励。波形编辑方式与MAXPLUSII软件的操作相似。在PROCESSING菜单下选择“SIMULATEMODE“选项进入仿真模式,选择“SIMULATORSETTINGS“对话框进行仿真设置。在这里可以选择激励文件、仿真模式(功能仿真或时序仿真)等,单击“RUNSIMULATOR“即开始仿真过程。(5)器件编程设计者可以将配置数据通过MASTERBLASTER或BYTEBLASTERMV通信电缆下载到器件当中,通过被动串行配置模式或JTAG模式对器件进行配置编程,还可以在JTAG模式下给多个器件进行编程。利用QUARTUSII软件给器件编程或配置时,首先需要打开编程器(在NEW菜单选项中选择打开CHAINDESCRIPTIONFILE),在编程器中可以进行编程模式设置(MODE下拉框)、硬件配置(PROGRAMMINGHARDWARE对话框)及编程文件选择(ADDFILE按钮),将以上配置存盘产生CDF文件,其中存储了器件的名称、器件的设计及硬件设置等编程信息。当以上过程正确无误后,单击START按钮即可开始对器件进行编程配置。4系统整体设计41设计的基本内容本文是设计的一个自动售货机控制器设计,利用VHDL设计自动收获机的各个模块,并使用EDA工具对各模块进行仿真验证。设计成一个有如下功能的自动售货机(1)设计一个自动售货机,此机能出售1元、2元、5元、10元的四种商品。出售哪种商品可由顾客按动相应的一个按键即可,并同时用数码管显示出此商品的价格;(2)顾客投入硬(纸)币的钱数也是有1元、2元、5元、10元四种,但每次只能投入其中的一种币,此操作通过按动相应的一个按键来模拟,并同时用数码管将投币额显示出来;(3)顾客投币后,按一次确认键,如果投币额不足时则报警,报警时间3秒。如果投币额足够时自动送出货物(送出的货物用相应不同的指示灯显示来模拟),同时多余的钱应找回,找回的钱数用数码管显示出来;(4)顾客一旦按动确认键3秒后,自动售货机即可自动恢复到初始状态,此时才允许顾客进行下一次购货操作;(5)售货机还应具有供商家使用的累加卖货额的功能,累加的钱数要用数码管显示,显示2位即可。此累加器只有商家可以控制清零;(提高要求)(6)此售货机要设有一个由商家控制的整体复位控制;此售货机要设有一个由商家控制的整体复位控制所以系统顶层框图设计如下图1示图1系统顶层框图设计GOODS1GOODS2GOODS5GOODS10INPUT1INPUT2INPUT5INPUT10SURECLKRSTOUTPUT1OUTPUT2OUTPUT5OUTPUT10PUTGEPUTSHIALARMINPUTGEINPUTSHIUTGEINPUTSHISUM1SUM2OP其中,GOODS1、GOODS2、GOODS5、GOODS10分别控制选择1元、2元、5元、10元四种商品,INPUT1、INPUT2、INPUT5、INPUT10分别是顾客投入硬(纸)币的钱数1元、2元、5元、10元,SURE是确认输入,RST是由商家控制的整体复位控制输入;OUTPUT1、OUTPUT2、OUTPUT5,OUTPUT10分别是1元、2元、5元、10元四种商品输出指示,INPUTGE和INPUTSHI用于显示所选择商品的价格的个位和十位,PUTGE和PUTSHI用于显示顾客投币钱数和找零钱数的的个位和十位,ALARM是警告输出,SUM1和SUM2用于显示累加卖出的钱数的低位和高位。OP是找零指示。42状态转换图根据设计的基本要求,经过分析与讨论可得状态转换图如图2所示,图2状态转换图此状态转换图中共分为37个状态,S0为初始状态,状态S1、S2、S3、S4代表四种商品SEL1、SEL2、SEL5、SEL10;状态S5、S9、S13、S17都代表购物时投入了1元钱;状态S6、S10、S14、S18都代表购物时投入了2元钱;状态S7、S11、S15、S19都代表购物时投入了5元钱;状态S8、S12、S16、S20都代表购物时投入了10元钱;状态S21S36代表按下确认键后的状态。当顾客选择1元、2元、5元或10元四种商品时分别跳转至S1、S2、S3、S4状态,否则停留在S0状态。并将所选商品的价格显示出来。若当前为S1状态,当顾客投币为1元、2元、5元、10元时则分别跳转至S5、S6、S7、S8四种状态,投币钱数显示在数码管上,否则停留在S1状态。若当前为S2状态,当顾客投币为1元、2元、5元、10元时则分别跳转至S9、S10、S11、S12四种状态,投币钱数显示在数码管上,否则停留在S2状态。若当前为S3状态,当顾客投币为1元、2元、5元、10元时则分别跳转至S13、S14、S15、S16四种状态,投币钱数显示在数码管上,否则停留在S3状态。若当前为S4状态,当顾客投币为1元、2元、5元、10元时则分别跳转至S17、S18、S19、S20四种状态,投币钱数显示在数码管上,否则停留在S4状态。当按下确认键时,则按状态转移图跳到相应的下一个状态,否则停留在当前状态,执行售货、找钱、警告、3秒后复位等功能。43时序仿真结果1当所选货物价格比投币钱数低时波形仿真结果图如图3所示。图3投币富余波形仿真图由波形仿真结果可以看到当按下选择10元货物时,当投币为2元时,PUTSHI输出为0,PUTGE输出为2;当按下确认后PUTSHI输出为0,PUTGE输出为2,发出报警,SUM2输出为0,SUM1输出为0,无商品输出,OP亮,将投入的2元钱找回。三个上升沿即3秒后回到初始状态即除SUM1、SUM2以外的所有输出均变为0。2当所选货物钱数与投币钱数相等时波形仿真结果图如图4所示。图4投币正好波形仿真图由波形仿真结果可以看到当按下选择10元货物时,当投币为10元时,PUTSHI输出为0,PUTGE输出为2;当按下确认后PUTSHI输出为0,PUTGE输出为0,SUM2输出为1,SUM1输出为0,并且显示10元商品输出,三个上升沿即3秒后回到初始状态即除SUM1、SUM2以外的所有输出均变为0。3当所选货物钱数比投币钱数多时波形仿真结果图如图5所示。图5投币不足波形仿真图由波形仿真结果可以看到当按下选择2元货物时,当投币为5元时,PUTSHI输出为0,PUTGE输出为2;当按下确认后PUTSHI输出为0,PUTGE输出为2,SUM2输出为0,SUM1输出为2,并且显示2元商品输出,同时OP亮找回零钱,三个上升沿即3秒后回到初始状态即除SUM1、SUM2以外的所有输出均变为0。5引脚锁定及下载51引脚锁定选择ASSIGNMENTS菜单下的PINS命令,引脚锁定图如图6所示。图6引脚锁定图52下载选择TOOLS菜单下的PROGRAMMER命令,然后点击“HARDWARESETUP“并选择USB口,最后点“START”按钮开始下载,“PROGRESS”进度条显示下载进度。下载完后就可以在实验箱上查看并验证结果。53结果分析自动售货机能出售1元、2元、5元、10元四种商品。出售哪种商品可由顾客按动相应的一个按键即可,并同时用数码管显示出此商品的价格;顾客投入硬(纸)币的钱数也是有1元、2元、5元、10元四种,但每次只能投入其中的一种币,此操作通过按动相应的一个按键来模拟,并同时用数码管将投币额显示出来;顾客投币后,按一次确认键,如果投币额不足时则报警,报警时间3秒。如果投币额足够时自动送出货物(送出的货物用相应不同的指示灯显示来模拟),同时多余的钱应找回,找回的钱数用数码管显示出来;顾客一旦按动确认键3秒后,自动售货机即可自动恢复到初始状态,此时才允许顾客进行下一次购货操作;此售货机还可以将收获额进行累加,并且设有一个由商家控制的整体复位控制,当整体复位信号有效时,所有输出均为零,整体软件仿真图如图7所示54硬件测试根据设计要求写出程序后,可在EDA实验室进行硬件连接,连接完成后可得图8硬件连线图。通过上面的步骤将程序代码下载到实验箱的FPGA芯片中,并验证了在仿真图7软件仿真结果图图8硬件连线图中的结果的正确性。如图,按钮1至4依次为选取1元,2元,5元,10元的商品;按钮5至8为投币1元,2元,5元,10元;开关K7为确定投币;K1为异步复位。D6,D5,D4,D3显示1元,2元,5元,10元的商品输出;D8为警告显示灯。D7为找零指示灯,脉冲接1HZ,,数码管前两位显示商品价格,中间两位显示投币和找回的钱数;最后两位显示累积利润。此图表示选取5元商品,投币10元,且售货额已经为2元时的状态,等待下一步操作;如果拨动开关K7即确定投币后,投入的10元会变为5元作为找零显示,同时累加的2元变为7元,D4亮指示有5元商品输出,D7亮指示有零钱找回。实验运行与此一致。6总结通过本次课程设计的学习,我深深的体会到课程设计的重要性,不仅将我们所学的理论付诸于实践,而且锻炼了我们思考与合作的能力,一个人的能力毕竟有限,在设计方面难免会出现这样那样的错误,但正是这些错误促进了我的进步。根据电路的特点,我用层次化结构化设计概念,将此项设计任务分成若干模块,然后再将各模块合起来联试,这培养了我们合作的精神,同时加深了层次化设计的概念。在这次课程设计中,我真正体会到了知识的重要性。在设计的过程中,遇到问题我会先独立思考,到自己不能解决的时候我就会和同学讨论,实在解决不了我就会向指导老师请教,从程序的编写到程序的检查,从程序的调试到实验报告的写作,其间每一个过程都凝聚着大家对我的帮助。最后,在设计的过程中我进一步养成了软件设计的方法,完成一个项目的的程序,进一步了解了设计的步骤,进一步加深了对EDA技术的理解,增强了以后学习的兴趣,为以后的工作积累了一定的经验。参考文献1VOKNEIAPEDRONIVHDL数字电路设计教程电子工业出版社,200852潘松,黄继业EDA技术实用教程(第二版)科学出版社,200523焦素敏EDA应用技术清华大学出版社,200244曹昕燕,周凤臣,聂春燕EDA技术实验与课程设计清华大学出版社5谭会生,张昌凡EDA技术及应用(第二版)西安电子

温馨提示

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

评论

0/150

提交评论