基于FPGA的数字系统设计—三层电梯控制器_第1页
基于FPGA的数字系统设计—三层电梯控制器_第2页
基于FPGA的数字系统设计—三层电梯控制器_第3页
基于FPGA的数字系统设计—三层电梯控制器_第4页
基于FPGA的数字系统设计—三层电梯控制器_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、 论文题目: 基于fpga的数字系统设计 三层电梯控制器 摘 要介绍了基于vhdl语言设计的电梯控制器,并进行了电路综合和仿真。该控制器遵循方向优先的原则,提供3个楼层多用户的载客服务并指示电梯的运行情况。eda技术不是某一学科的分支,或某种新的技能技术,它是一们综合性学科,融合多学科于一体,打破了软件和硬件间的壁垒,使计算机的软件与硬件实现、设计效率和产品性能合二为一,它代表了电子设计技术和应用技术的发展方向。vhdl具有与具体硬件电路无关和设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。eda是指以计算机为

2、工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的字自动设计。关键词:vhdl、控制器、eda、电梯abstractintroduced based on the vhdl language design elevator controller, and has carried on the electric circuit synthesis and the simulation. this controller follows the direction first principle, provides 3 floors multiuser to c

3、arry passengers to serve and to instruct the elevator the movement situation. the eda technology is not some discipline branch, or some kind of new of skill technology, it is a comprehensive discipline, fuses multily-disciplinary in a body, has broken barrier between the software and the hardware, c

4、auses the computer the software and the hardware realization, the rated capacity and the product performance combines, it has represented the electronic design technology and the application technology development direction. vhdl has with the concrete hardware electric circuit has nothing to do with

5、 and designs the characteristic which the platform has nothing to dowith, and has the good electric circuit behavior description and the system description ability, and in language legible and has orderliness the structurization design aspect, has displayed the formidable vitality and the applicatio

6、n potential. eda is refers take the computer as the working platform, fused the application electronic technology, computer technology, the information processing and the intellectualized technology newest achievement, carries on the electronic products automatic to design.key word: vhdl, controller

7、, eda, elevator目 录第1章 引言.11.1设计内容简介.11.2选题背景.2第2章 vhdl、eda语言分析.32.1 vhdl的基本技术特征.32.2 eda概况.42.3当今eda技术综述.5第3章 电梯控制器的具体设计. 83.1简要说明 . 83.2电梯控制器的任务和要求 83.3电梯控制器的设计 .83.4模块、模块功能及相应程序 123.5仿真结果 . 20第4章 硬件连线及管脚设置 4.1 简要说明 .4.2 8位数字开关组的设置与连接 4.3 7段数码管电路连线与使用(动态方式) 总结.32 致谢.33参考文献 33第1章 引言11设计内容简介 现代硬件设计运用

8、eda(electronic desion automation)技术采用并行工程和“自顶向下”的设计方法,从系统设计入手,在顶层进行层次划分和结构设计。在功能模块一级进行方针、纠错,并用vhdl、veriloghdl等硬件描述语言对高层次的系统行为进行描述。在系统一级进行验证,最后用逻辑综合优化工具生成门级逻辑电路网表,其对应的物理实现可以是印刷电路板或专用集成电路。eda技术就是依赖功能强大的计算机,在eda工具软件平台上,对以硬件描述语言hdl(hardware description language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编辑、逻辑化简、逻辑分割、逻辑综合、

9、结构综合(布局布线),以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。eda技术使得设计者工作仅限于利用软件的方式,即利用硬件描述语言和eda软件来完成对系统硬件功能的实现。 eda技术在硬件实现方面融合了大规模集成电路制造技术,ic版图设计技术、asic测试和封装技术、fpga/cpld编程下载技术、自动测试技术等;在计算机辅助工程方面融合了计算机辅助设计(cad)、计算机辅助制造(cam)、计算机辅助测试(cat)、计算机辅助工程(cae)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及长线技术理

10、论等等。因此eda技术为现代电力理论和设计的表达与实现提供了可能性。eda技术不是某一学科的分支,或某种新的技能技术,它是一们综合性学科,融合多学科于一体,打破了软件和硬件间的壁垒,使计算机的软件与硬件实现、设计效率和产品性能合二为一,它代表了电子设计技术和应用技术的发展方向。利用eda技术进行电子系统的设计,最后目标是完成专用继承电路asic的设计和实现,asic作为最终的物理平台,集中容纳了用户通过eda技术将电子应用系统的既定功能和技术指标具体实现的硬件实体。vhdl(very high speed integrated circuit hardware description lang

11、uage)即超高速集成电路硬件描述语言,主要用于描述数字系统的行为、结构、功能和接口。vhdl不仅可以作为系统模拟的建模工具,而且可以作为电路系统的设计工具;可以利用软件工具将vhdl源码自动地转化为文本方式表达的基本逻辑元件连接图,即网表文件。vhdl语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。vhdl具有与具体硬件电路无关和设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。vhdl在支持各种模式的设计方法、自顶向下与自底向上或混合

12、方法方面,在面对当今许多电子产品生命周期的缩短,需要多次重新设计以溶入最新技术,改变工艺等方面都表现了良好的适应性。用vhdl进行电子系统的设计的一个很大的特点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。本文采用vhdl语言来设计实用电梯控制器,其代码具有良好的可读性和易理解性。目标器件选用fpga器件。1.2 选题背景随着科学技术的发展、近年来,我国的电梯生产技术得到了迅速发展一些电梯厂也在不断改进设计、修改工艺。更新换代生产更新型的电梯,电梯主要分为机械系统与控制系统两大部份,随着自动控制理论与微电子技术的发展,电梯的拖动方式与控制手段均

13、发生了很大的变化,交流调速是当前电梯拖动的主要发展方向。目前电梯控制系统主要有三种控制方式:继电路控制系统(早期安装的电梯多位继电器控制系统)、fpga/cpld控制系统、微机控制系统。继电器控制系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等缺点,目前已逐渐被淘汰。微机控制系统虽在智能控制方面有较强的功能,但也存在抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷。而fpga/cpld控制系统由于运行可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点,倍受人们重视等优点,已成为目前在电梯控制系统中使用最多的控制方式,目前也广泛用于传统继电器控制系统的技术改造。目

14、前国内七八十年代安装的许多电梯电气部分用继电器接触器控制系统,线路复杂,接线多,故障率高,维修保养难,许多已处于闲置状态,其拽引系统多采用交流双速电机系统换速,效率低,调速性能指标较差,严重影响电梯运行质量。由于这些电梯交流调压调速系统,交流双速电机拖动系统性能及乘坐舒适感较差,交流调压调速系统属能耗型调速的机械部分无大问题,为节约资金,大部分老式电梯用户希望对电梯的电气控制系统进行改造,提高电梯的运行性能。因此对电梯控制技术进行研究,寻找适合我国老式电梯的改造方法具有十分重要的意义。电梯作为高层建筑物的重要交通工具与人们的工作和生活日益紧密联系。fpga/cpld作为新一代工业控制器,以其高

15、可靠性和技术先进性,在电梯控制中得到广泛应用,从而使电梯由传统的继电器控制方式发展为计算机控制的一个重要方向,成为当前电梯控制和技术改造的热点之一。fpga/cpld是一种专门从事逻辑控制的微型计算机系统。由于fpga/cpld具有性能稳定、抗干扰能力强、设计配置灵活等特点。因此在工业控制方面得到了广泛应用。自90年代后期fpga/cpld引入我国电梯行业以来,由fpga/cpld组成的电梯控制系统被许多电梯制造厂家普遍采用。并形成了一系列的定型产品。在传统继电器系统的改造工程中,fpga/cpld系统一直是主流控制系统。电梯控制系统分为调速部分和逻辑控制部分。调速部分的性能对电梯运行是乘客的

16、舒适感有着重要影响,而逻辑控制部分则是电梯安全可靠运行的关键。为了改善电梯的舒适感和运行的可靠性,现在都改为用fpga/cpld来控制电梯的运行,这样大大提高了电梯的性能。fpga(fiela programmable gates array,现场可编程门阵列)与cpld (cornplex programmable logic device ,复杂可编程逻辑器件)都是可编程逻辑器件,它们是在pal、gal等逻辑器件的基础之上发展起来的。同以往的pal, gal.等相比较,fpga/cpld的规模比较大,适合于时序、组合等逻辑电路应用场合,它可以替代几十甚至上百块通用ic芯片。这样的fpga/

17、cpld实际上就是一个子系统部件。这种芯片具有可编程性和实现方案容易改动的特点。由于芯片内部硬件连接关系的描述可以存放在磁盘、rom , prom或eprom中,因而在可编程门阵列芯片及外围电路保持不动的情况下,换一块eprom芯片,就能实现一种新的功能。fpga芯片及其开发系统问世不久,就受到世界范围内电子工程设汁人员的广泛关注和普遍欢迎。所以,综上所述,本设计就以fpga/cpld作为工具对升降电梯的各种操作进行控制。我打算先对六层电梯的硬件部分作分析,看需要什么样的开关,电机,信号灯等。,然后在软件设计,写出流程图,写出语句。最后是进行调试,看看此程序是否可行。第2章 vhdl、eda语

18、言简介vhdl语言产生于80年代,它的全称是“超高速集成电路硬件描述语言(vhsic hardware description language), vhdl的结构和方法受到da语言的影响,吸收了其它硬件描述语言的某些优点,1986年3月,iee开始致力于vhdl的标准化工作,为此,成立了审查和完善vhdl的标准化小组。1987年12月,ieee推出了ieee std1076-1987. vhdl语言成为iee标准以后,很快在世界各地得到广泛应用。1995年,中国国家技术监督局组织编撰并出版了cad通用技术规范,推荐vhdl作为我国电子设计自动化(eda)硬件描述语言的国家标准。为了增强vhd

19、l语言的描述能力,方便设计应用,ieee在广泛征集各方面意见的基础上,对ieee std 1076-1987进行了改进和扩充。修订版与1993年4月成为美国国家标准局(ansi)标准。并于同年9月被ieee认可为标准,即ieee std 1076-1993.vhdl己经作为最重要的一种描述和验证硬件的标准被广泛接受,并逐步取代了原有的非标准硬件描述语言。多数电子设计自动化厂商都提供了支持标准vhdl综合和验证环境。现在,vhdl和verilog作为iee工业标准硬件描述语言,得到了众多eda公司的持,已经成为了事实上的通用硬件描述语言。2.1 vhdl的基本技术特征vhdl是一种独立于实现技术

20、的语言,它不受某一种特定工艺的束缚,允许使用者在其范围内选择工艺和方法,为了适应未来的数字硬件技术,vhdl还提供将新技术引入现有设计的潜力。vhdl是一个在程序设计语言的意义上全类型化的语言,即所有硬件部件和元件的描述必须给出明确的类型。语言的语法分析程序可以检查描述的类型的一致性。支持硬件设计的层次设计方法,支持从抽象的系统规范到详细的门级描述,支持以模拟为主的验证过程。它具有丰富的数据类型、并发和顺序的语言构件,它不受某一特定工艺的束缚,允许设计者在其使用范围内选择工艺和方法。vhdl语言的最大特点是描述能力极强,覆盖了逻辑设计的诸多领域和层次,并支持众多的硬件模型。具体而言,vhdl较

21、其他的硬件描述语言有如下优越之处1.描述方式上,支持从系统级到门级电路的描述,同时也支持多层次的混合描述;描述形式可以是结构描述,也可以是行为描述,或者二者兼而有之;2.设计方法上,既支持自底向上(botom-up)的设计,也支持自顶向下(top-down)的设计;既支持模块化设计,也支持层次化设计;支持大规模设计的分解和设计重用;3.既支持同步电路,也支持异步电路;既支持同步方式,也支持异步方式;4.既支持传输延迟,也支持惯性延迟,可以更准确地建立复杂的电路硬件模型;5.数据类型丰富,既支持预定义的数据类型,又支持自定义的数据类型;vhdl是强类型语言,设计电路的安全性好;6.支持过程与函数

22、的概念,有助于设计者组织描述,对行为功能进一步分类:7.提供了将独立的工艺集中于一个设计包的方法,便于作为标准的设计文档保存,也便于设计资源的重用。8. vhdl的类属提供了向设计实体传送环境信息的能力;9. vhdl的断言语句可用来描述设计实体本身的约束信息,支持设计直接在描述中书写错误和约束条件,不仅便于模拟调试,而且为综合化简提供了重要信息。2.2 eda概况eda(electronic design automatic)技术是在电子cad (computer aided design)技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及

23、智能化技术的最新成果,进行电子产品的自动设计。利用eda工具,可以将电子产品从电路设计、性能分析到计出集成电路(ic:integrated circuits)版图或印刷电路板(pcb: printedcircuit board)制图的整个过程都在计算机上自动处理完成。在机械、电子、通信、空航天、化工.矿产、生物、医学、军事等各个领域,eda技术都得到广泛应用。当前eda技术的发展趋势是政府重视、使用普及、应用广泛、品种多样、eda工具软件功能强大。为了迅速推动中国eda产业的迅速发展,中国自1995年以来加速发展半导体产业,尤其是在近几年更是加大了对此行业的扶持力度,建立了多个国家级集成电路设

24、计产业化基地,推动系列设计活动以应对亚太地区其它eda市场的竞争。当前中国eda市场已渐趋成熟,据最新统计显示,中国止在成为电子设计自动化领域发展最快的市场,年复合增民率达到了50%.不过大部分设计ivy.师面向的是pc主板和小型asic领域,仅有小部分(约11%)的设计人员开发复杂芯片上系统器件。为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍迫切需要应用最新的eda具产品,参与和完成大规模,深层次的研发工作。2.3当今eda技术综述随着众多先进的技术和工艺,尤其是数字信号处理(dsi)技术和集成电路(ic)工艺,在电子技术中的广泛应用,当今所有的电子工程技术都在向着高速度、大容

25、量、小型化、模块化的方向发展,力求以最少量的元器件、最小的体积重量来完成更强、更多的功能,并尽可能地缩短产品从概念提出、系统设计到投人使用的时间,这样才会有市场竞争力.由于电子技术逐渐深人到工业农业、国防军事、家庭生活等各个领域,要求各种工程技术人员都能熟悉微电子技术和半导体工艺是不可能的;并且由于电子技术领域本身各项关键技术和先进工艺的迅速推广使用,电子工程师用传统的方法设计产品也将显得力不从心,电子设计自动化(electronic designautomation-eda)技术正是为了适应这一需要而在近几年中发展起来的全新的设计方法.电子设计自动化(eda)技术是计算机辅助设计与制造(ca

26、d/cam)技术在电子系统与设备中应用的一个崭新阶段。它是以高性能的计算机为工作平台,综合了计算机图形学、逻辑拓扑学、计算数学、人工智能、电子线路和微电子技术等许多学科领域的最新成就和发展而形成的一整套软件工具,用来帮助工程技术人员从事电子系统、电子线路和电子元器件设计的一门范围涉及到有关电子学各个领域的综合性边缘技术。当今的eda技术是以系统级的仿真与综合,vhdl语言描述,自顶向下(top-down)的设计方法,集成的并行设计环境,以及图形化的编程方式为特征的。具体地说,它有以下特点:(l)从概念提出,系统划分,到电路设计,物理实现的全过程自动化设计成为现实。设计本身与工艺脱离,最后的物理

27、实现可以根据不同的需要采取多种方式来完成. (2)采用自顶向下的设计流程和不同层次间的并行设计,以确保设计一次成功,而设计人员只要把精力集中在系统概念和方案的优化上。(3)所有不同层次的设计、仿真、测试和接口工具都集中在统一的开放环境之中,它们都有统一的原始模型、统一的数据格式与数据库管理直至统一的人机界面,使得不同专业、不同厂家的工程设计人员的劳动成果,可以在各个层次上相互调用.(4)所有的设计结果都以符合ieee 1076标准的vhdl语言存档,使成果的存贮、共享、转化、改进都得以方便地进行。(5)在设计时就考虑到成果的测试与验证,在eda设计中一般需要四级验证:功能验证、逻辑验证、时序验

28、证和故障验证.每一个设计过程都能产生出完整的测试代码,为设计结果的测试检验提供了极大的方便.超级计算机的c代码图 2-2采用eda技术进行设计的总体流程图2-2采用eda技术进行设计的总体流程eda技术依托于各类通用的集成电路制造工艺和高性能的数字信号处理专用片,各种全定制、半定制集成电路技术,使系统的设计考虑独立于生产工艺成为现实,把设计人员从繁重的手工编程、印制板(pcb)布线或系统测试(联调)等重复劳动中解放出来,使他们集中精力于系统的概念设计和方案优化上.图1-1给出了采用eda技术进行系统设计的总体流程.从图中可以看出,eda技术为设计人供了从算法描述、系统仿真、指标优化、电路仿真直

29、到物理实现等各个层次的一整套集成设计工具和环境。设计者根据系统的各项指标和功能建立系统模型,以框图或语言的形式给出算法描述后,软件工具自动进行系统功能仿真,并优化指标。在完成高层次仿真之后,软件工具可以进人电路级仿真.其间也可以人为地进行多层次的修改和反馈.最后软件工具以图形、文本等多种方式给出设计结果。这时设计者可以根据自己的需要,利用与物理实现的接口工,选择多种不同的实现方法.软件实现如直接生成dsp芯片的汇编代、c语言代码,或以pcb , asic或fpgaiepld等硬件的方法来实具码现目前世界上主要的eda厂商有cadence design system inc. ,mentor g

30、raphics inc.,synopsysinc,dazix-intergraph inc等.第3章 电梯控制器的具体设计3.1简要说明利用vhdl语言完成一个多层自动升降的电梯的控制电路,控制电路遵循方向优先原则控制电梯完成多层楼的载客服务,同时指示电梯运行情况和电梯内外请求信息。3.2电梯控制器的任务和要求(1)每层电梯入口处设有上下请求开关,电梯内设有乘客到达层次的停站请求开关。(2)设有电梯所处位置指示装置级电梯运行模式(上升或下降)指示装置。(3)电梯每秒升(降)一层楼。(4)电梯到达停站请求的楼层后,经过1s电梯门打开,开门指示灯亮,开门4s后,电梯门关闭(开门指示灯灭),电梯继续

31、运行,直至执行完最后一个请求信号后停在当前层。(5)能记忆电梯内外的所有请求信号,并按照电梯运行规则次序响应,每个请求信号保留至执行后消除。(6)电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,有下而上逐个执行,直到最后一个上楼请求执行完毕,如更高层有下楼请求,则直接升到有下楼请求的最高楼接客,然后便进入下降模式。当电梯处于下降模式时,则与上升模式相反。(7)电梯初始状态为一层开门。3.3电梯控制器的设计控制器的功能模块如图1所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,同过主控制器的处理,电梯开始运行,状态

32、显示器显示电梯的运行状态。电梯所在的楼层数通过译码器译码从而在楼层显示器中显示。分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在的楼层数。由于控制器相对简单很多,所以主控制器是核心部分。楼层显示器楼层显示器译码器状态显示器主控制器分控制器 图1 电梯控制器原理框图主控制器系统由vhdl语言实现,其输入输出端口定义如下:library ieeeuse ieee std_loigic_unsigned.allentity ladder 3 isporl(clk,switch,close,delay:std_logic; /时钟、开关、提前开门、延时关门 dir: in s

33、td_logic_vector(2 down to 0); /所选的楼层 up lift、down lift : in std_logic_vector(3 down to 0); /分控制器上升、下降请求qout : out std_logic_vector(3 down to 0); /所到达的楼层lamp : out std_logic_vector(1 down to 0); /电梯运行状态end ladder 3结构体分为3个进程,分别完成寄存器的置位复位、电梯运行状态判断、时序电路及电梯运行楼层变化和响应提前延时请求。程序中定义urr(3b上升寄存器),drr(3b的下降寄存器),

34、ur(上升寄存器各位相或),dr(下降寄存器各位相或),let(判断状态的使能信号),输出端口qout, lamp的内部信号lift、ladd, 时序内部信号time。楼层请求寄存器的复位和置位。如果乘客进入电梯后所选的楼层大于所在的楼层,而且电梯处于上升或者是ladd为“01”的等待状态,则给上升请求寄存器urr相应的为置位。当电梯运行到所在的楼层,在time等于“110”时给该位复位。如果有多个请求则urr响应的位都置位。下降请求寄存器drr原理相似。寄存器urr和drr的各位相或后得到ur和dr信号作为状态变化的条件信号。电梯运行状态的判断 分为3个状态 wait, upper, dow

35、n。状态图如图2所示。 wait(等待)switch=1down(下降)upper(上升) ur=1 ur=0,dr=0 ur=0,dr=0 ur =1 dr=1ur=1 图2 电梯控制器的状态转换图当电梯开关switch为“0”时,为等待状态,状态指示信号ladd为“00”。switch为“1”时,time为“101”而且使能信号let有效时,进行状态确定。没有上升下降请求时也为等待状态。状态信号ladd为“01”;上升状态时信号ladd为“11”;下降状态时状态信号为“10”。时序电路及电梯运行时楼层变化和提前延时关门功能:根据ladd状态对所到达的楼层数信号lift做相应的增减。电梯在t

36、ime信号跳变到“110”时关门,此时设置使能信号let为“1”,当time信号跳变到“010”时,如果电梯状态信号ladd为“11”,而且使能信号let有效时,电梯层数指示器就增加,如果电梯达到了所选择的楼层,则使能信号复位。电梯门打开。下降原理类似。当电梯处于上升状态时,如果有上升请求的分控制器所在楼层数大于电梯所在的楼层数,当电梯运行到相应的楼层数时,电梯开门,让有请求的乘客进入电梯。分控制器下降请求的原理类似。如果提前开门有效,则等待时间缩短,如果延时信号有效,则等待时间加长。电梯控制器通过乘客在电梯内外的请求信号控制上升和下降,而楼层信号由电梯本身的装置触发,从而确定电梯处在哪个楼层

37、,乘客在电梯中选择所要到达的楼层通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在的楼层数通过led数码管显示,系统结构框图如下:电梯状态显示信号存储电梯外请求主控制器电梯内请求楼层显示关门控制到达楼层信号电梯门的状态分为开门,关门和正在关门3种状态,并通过开门信号,上升预操作和下降预操作来控制。这里可设为“00”表示门已关闭,“10”表示门已开启,“01”表示正在关门。总体框图如下图所示: 3.4 模块、模块功能及相应程序模块threeflift见图3。该模块是整个程序的核心。图3 threefliftlibrary ieee;use ieee.std_logic_11

38、64.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity threeflift is port(buttonclk:in std_logic; liftclk:in std_logic; reset:in std_logic; f1upbutton:in std_logic; f2upbutton:in std_logic; f2dnbutton:in std_logic; f3dnbutton:in std_logic; fuplight:buffer std_logic_vector(3 downt

39、o 1); fdnlight:buffer std_logic_vector(3 downto 1); stop1button,stop2button,stop3button:in std_logic; stoplight:buffer std_logic_vector(3 downto 1); position:buffer integer range 1 to 3; doorlight:out std_logic; udsig:buffer std_logic);end threeflift;architecture a of threeflift istype lift_state is

40、(stopon1,dooropen,doorclose,doorwait1,doorwait2,doorwait3,doorwait4,up,down,stop);signal mylift:lift_state;signal clearup:std_logic;signal cleardn:std_logic;beginctrlift:process(reset,liftclk)variable pos:integer range 3 downto 1; begin if reset=1then mylift=stopon1; clearup=0; cleardn doorlight=1;

41、position=1; pos:=1; mylift mylift clearup=0; cleardn=0; mylift mylift mylift doorlight=0; if udsig=0then if position=3 then if stoplight=000 and fuplight=000and fdnlight=000then udsig=1; mylift=doorclose; else udsig=1; mylift=down; end if; elsif position=2 then if stoplight=000 and fuplight=000 and

42、fdnlight=000then udsig=0; mylift=doorclose; elsif stoplight(3)=1 or (stoplight(3)=0 and fdnlight(3)=1) then udsig=0; mylift=up; else udsig=1; mylift=down; end if; elsif position=1 then if stoplight=000 and fuplight=000 and fdnlight=000 then udsig=0; mylift=doorclose; else udsig=0; mylift=up; end if;

43、 end if; elsif udsig=1 then if position=1 then if stoplight=000 and fuplight=000 and fdnlight=000 then udsig=0; mylift=doorclose; else udsig=0; mylift=up; end if; elsif position=2 then if stoplight=000 and fuplight=000 and fdnlight=000 then udsig=1; mylift=doorclose; elsif stoplight(1)=1 or (stoplig

44、ht(1)=0 and fuplight(1)=1) then udsig=1; mylift=down; else udsig=0; mylift=up; end if; elsif position=3 then if stoplight=000 and fuplight=000 and fdnlight=000 then udsig=1; mylift=doorclose; else udsig=1; mylift position=position+1; pos:=pos+1; if pos3 and (stoplight(pos)=1 or fdnlight(pos)=1) then

45、 mylift=stop; elsif pos=3 and (stoplight(pos)=1 or fdnlight(pos)=1) then mylift=stop; else mylift position1 and (stoplight(pos)=1 or fdnlight(pos)=1) then mylift=stop; elsif pos=1 and (stoplight(pos)=1 or fuplight(pos)=1) then mylift=stop; else mylift mylift doorlight=1; if udsig=0then if position=2

46、 and (stoplight(position)=1 or fuplight(position)=1)then clearup=1; else clearup=1; cleardn=1; end if; elsif udsig=1then if position=2 and (stoplight(position)=1 or fdnlight(position)=1)then clearup=1; else clearup=1; cleardn=1; end if; end if; mylift=doorwait1; end case; end if; end if;end process ctrlift;ctrlight:process(reset,buttonclk)begin if reset=1 then stoplight=000; fuplight=000; fdnlight=000; else if buttonclkevent and buttonclk=1then if clearup=1then stoplight(position)=0; fuplight(position)=0; else if f1upbutton=1then fuplight(1)=1; elsif f2upbutton=1then fuplight(2)=1;

温馨提示

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

评论

0/150

提交评论