基于VHDL的交通灯设计 毕业论文.doc

上传人:来看看 文档编号:3922310 上传时间:2019-10-10 格式:DOC 页数:40 大小:345.52KB
返回 下载 相关 举报
基于VHDL的交通灯设计 毕业论文.doc_第1页
第1页 / 共40页
基于VHDL的交通灯设计 毕业论文.doc_第2页
第2页 / 共40页
基于VHDL的交通灯设计 毕业论文.doc_第3页
第3页 / 共40页
基于VHDL的交通灯设计 毕业论文.doc_第4页
第4页 / 共40页
基于VHDL的交通灯设计 毕业论文.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《基于VHDL的交通灯设计 毕业论文.doc》由会员分享,可在线阅读,更多相关《基于VHDL的交通灯设计 毕业论文.doc(40页珍藏版)》请在三一文库上搜索。

1、 毕业设计(论文)报告 题 目 基于VHDL的交通灯设计 系 别 尚德光伏学院 专 业 应用电子技术(设备与运行管理)班 级 1001 学生姓名 学 号 100206 指导教师 2013年 4 月基于VHDL的交通灯设计摘要:传统的交通灯控制系统多数由单片机或PLC实现,本文介绍的是基于EDA技术设计交通灯系统的一种思路和方法。通过用数字信号自动控制十字路口交通灯状态转换的方法,指挥车辆和行人安全通行,实现十字路口交通管理的自动化。本设计利用VHDL语言来实现交通灯控制器。通过对系统进行结构分析,采用自顶向下的层次化设计方法,给出了各个模块的VHDL程序,并且利用Quartus对应用程序进行了

2、仿真,得出了相应的仿真结果。在用VHDL语言进行电路设计时,应充分认识到VHDL语言的特点,从设计思想、语句运用及描述方法上等多方面对电路进行优化设计。通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。关键词:交通信号灯、VHDL 、仿真The design of traffic lights based on VHDLAbstract:Most traditional traffic light control system implemented by a single-chip computer or PLC, this article describes the d

3、esign of a traffic light system is based on EDA technology ideas and methods.By using digital methods of signal control intersection traffic signal state transition, command vehicles and pedestrians safe passage, implementation of intersection traffic management automation.Design and implementation

4、of traffic light controller with VHDL language.Through the system for structural analysis, using top-down hierarchical design method, gives a VHDL program modules, and applications using Quartus II simulation, have come to the corresponding simulation results.Circuit design with VHDL language, shoul

5、d be fully aware of the features of VHDL language, from the design, use statement, and description of the superior aspects of optimized circuit design.Through optimization design of circuits, programmable logic chip can use smaller, thus reducing system costs.Keywords: traffic light 、VHDL、 simulatio

6、n目录前言1第一章 EDA技术31.1 EDA技术及其发展31.2 EDA与传统电子设计方法的比较及优点5第二章 VHDL语言62.1 VHDL系统概述62.2 VHDL语句的描述82.2.1 实体82.2.2 结构体82.2.3 块、子程序和进程92.2.4 库和程序包102.2.5 默认配置112.3 VHDL最基本的描述方法122.3.1 结构体的行为描述法122.3.2 结构体的数据流描述法12第三章 交通灯系统的设计133.1 红绿灯交通信号系统功能描述133.2 系统的模块设计143.2.1 时钟脉冲发生电路143.2.2 计数秒数选择电路153.2.3 倒计时控制电路163.2.

7、4 红绿灯信号控制电路183.2.5 交通灯系统描述19致谢22参考文献23附 录2436前言一、研究背景 自从1858年英国人发明了原始的机械扳手交通灯之后,随后的一百多年里,交通灯改变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加,经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效管制,对于交通疏导,提高道路导通能力,减少交通事故起到了显著的效果。 近年来,随着汽车数量的猛增,我国大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行

8、时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。日常的交通堵塞成为人们司空见惯而又不得不忍受的问题。在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。 和谐的城市交通具有很重要的现实意义。城市交通是城市经济生活的命脉,是衡量一个城市文明进步的标志,对于城市经济的发展和人民生活水平的提高起着十分重要的作用。作为城市交通网的重要组成部分, 交叉口是道路通行能力的瓶颈和交通阻塞及事故的多发地。城市的交通拥堵,大部分是由于交叉口的通行能力不足或没有充分利用造成的,这导致车流中断、事故增多、延误严重。对交叉口实行科学的管理与控制

9、是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市交通问题的有效途径。所以,改变和完善我国现有的交通系统已成为当务之急。二、国内外研究现状 在国外,英国,澳大利亚,日本和美国等国家均在交通控制系统上日益完善。如以澳大利亚悉尼为背景开发的交通自适应协调系统SCATS (Sydney Coordinated Adaptive Traffic System),英国的运输和道路研究所(TRRL)研制的SCOOT(Split Cycle Offset Optimization Technique )系统,日本的京三(Kyosan)系统等。这些系统,大都是

10、在各路口附近安装磁性环路监控器,由各路口的控制设备、人员将交通控制参数通过通讯网络输入微处理器,用小型计算机进行集中处理1。 目前国内己有一些自主开发的城市交通控制系统,如公安部交通科学研究所研制开发的HT-UTCS系统,但它在整体性能上比国外同类系统仍有较大差距,只在一些中小城市得到一些应用。国内城市尤其是大城市引进的交通控制系统大部分为进口的SCOOT和SCATS以及京三系统等,这些系统皆是建立在机动车为主的道路交通条件基础之上的被动型控制系统上的.由于我国交通流是混合交通流,和国外的交通流大不相同,因此,国外的这些交通控制系统在国内的使用效果不尽人意。所以国内的科研人员也在孜孜不倦的研究

11、着更好的交通灯控制系统,大致研究可以分为两类,其一是按固定配时方案运行,其二是由车辆检测器提供的实时交通信息控制信号机运行的。如,基于时间分布的交通控制系统设计,它将一天分为N个不同的时间区间,应用计算机算出各个交通路口各时间段信号灯的最佳周期,在不同的时间区间赋予交通信号控制器不同的周期,以对应交通流量随时间的分布2。但在现实应用中,这种固定周期的交通信号灯的周期只在一天交通流量变化不大的路口可以得到较理想的效果,而交通流量呈周期变化的路口则无法两者兼顾,其只能使某个时段达到较好的效果,在另外一个时刻则需要人工干预,不然可能产生交通堵塞。再如基于模糊逻辑的智能交通灯控制系统,是从禁行车辆等待

12、时间的角度出发,综合了各个方向车辆密度的因素,模仿交通带察的行为而设计的。其控制器采用三变量输入,输出不再是时间变量,而是车辆通行的权限3。第一章 EDA技术1.1 EDA技术及其发展现代电子设计技术的核心是EDA(Electronic Design Automation)技术。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,它能自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术

13、使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。EDA技术在进入21世纪后,得到了更大的发展。在仿真和设计两方面支持标准硬件描述语言的功能越来越强大,软硬件技术也进一步得到了融合,在电子行业的产业领域、技术领域和设计应用领域得到了进一步的肯定,使得复杂电子系统的设计和验证趋于简单化。随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升;电子类的高新技术项目的开发也逾益依赖于EDA技术的应用。即使是普通的电子产品的开发,EDA技术常

14、常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性能价格比大幅提高2。不言而喻,EDA技术将迅速成为电子设计领域中的极其重要的组成部分。EDA( Electronic Design Automation,电子系统设计自动化)技术是20世纪90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造),CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。现代EDA技术就是以让算机为工具,在EDA软件平台上,根据硬件描述语言HDL完成的设计文件,能自动地完成用软件方式描述的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、布局布线、逻辑仿真,直至完

15、成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在EDA工具的帮助下和应用相应的FPGA/CPLD器件,就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。可见 , 利 用EDA技术进行电子系统的设计,具有以下几个特点: (1)用软件的方式设计硬件; (2)用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;(3)采用自顶向下(top-down)的设计方法;(4)设计过程中可用有关软件进行各种仿真;EDA技术涉及面很广,内容丰富,从教学和实用的角度看,主要应掌握如下四

16、个方面的内容: (1)大规模可编程逻辑器件;(2)硬件描述语言;(3)软件开发工具;(4)实验开发系统。其中,大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体,硬件描述语言是利用EDA技术进行电子系统设计的主要表达手段,软件开发工具是利用EDA技术进行电子系统设计的智能化的自动设计工具,实验开发系统则是利用EDA技术进行电子系统设计的下载工具及硬件验证工具8。 PLD( Porgrammable Logic Device,可编程逻辑器件)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。FPGA和CPLD分别是现场可编程门阵列和复杂可编程逻辑器件的简称,两者的功能基本相同,只是实现原

17、理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/FPGA. PLD是电子设计领域中最具活力和发展前途的一项技术,PLD能完成任何数字器件的功能3。PLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统,通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用PLD的在线修改能力,随时修改设计而不必改动硬件电路。使用PLD来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。PLD的这些优点使得PLD技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(

18、HDL)的进步9。硬件描述语言(HDL)是相对于一般的计算机软件语言如C、Pascal而言的。HDL是用于设计硬件电子系统的计算机语言,它描述电子系统的逻辑功能、电路结构和连接方式。HDL具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。用HDL进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。 1.2 EDA与传统电子设计方法的比较及优点与传统的电子设计方法相比,EDA技术对于复杂电路的设计和调试都比较简单,

19、如果某一过程存在错误,查找和修改起来比较方便,而且EDA技术的可移植性很强。与世界各知名高校相比,我国高等院校在EDA及微电子方面的教学和科研工作有着明显的差距,我们的学生现在做的课程实验普遍陈旧,动手能力较差。从某种意义上来说,EDA教学科研情况如何,代表着一个学校电类专业教学及科研水平的高低,而EDA教学科研工作开展起来后,还会对微电子类、计算机类学科产生积极的影响,从而带动各高校相应学科的同步发展10。由于可编程逻辑器件性能价格比的不断提高,开发软件功能的不断完善,而且由于用EDA技术设计电子系统具有用软件的方式设计硬件;设计过程中可用有关软件进行各种仿真;系统可现场编程,在线升级;整个

20、系统可集成在一个芯片上等特点,使其将广泛应用于专用集成电路和机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域新产品的开发研制中4。传统机电设备的电器控制系统,如果利用EDA技术进行重新设计或进行技术改造,不但设计周期短、设计成本低,而且将提高产品或设备的性能,缩小产品体积,提高产品的技术含量,提高产品的附加值。EDA技术是电子设计领域的一场革命,目前正处于高速发展阶段,每年都有新的EDA工具问世,我国EDA技术的应用水平长期落后于发达国家,如果说用于民品的核心集成电路芯片还可以从国外买的到的话,那么军用集成电路就必须依靠自己的力量研制开发,因为用钱是买不到国防现代化的,特别是

21、中国作为一支稳定世界的重要力量,更要走自主开发的道路5。强大的现代国防必须建立在自主开发的基础上,因此,广大电子工程技术人员应该尽早掌握这一先进技术,这不仅是提高设计效率和我国电子工业在世界市场上生存、竟争与发展的需要,更是建立强大现代国防的需要6。第二章 VHDL语言2.1 VHDL系统概述VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设

22、计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。硬件描述语言的主要优点: VHDL 是一种全

23、方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为 3 种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用 VHDL 来完成。VHDL在电子设计中具有以下优点:(1)全方位硬件描述从系统到电路。VHDL具有功能强大的语言结构,可以用简洁明确的代码描述来进行复杂控制逻辑的设计,而且覆盖面广,方法灵活。 (2)多种描述方式适应层次化设计。VHDL具有多层次描述系统硬件功能的能力。 能进行系统级的硬件描述这是它最突出的优点。 (3)VHDL语言的数据类型丰富语法严格清晰,串行和并行通用,物理

24、过程清楚。 (4)VHDL的设计不依赖于特定的器件,方便了工艺的转换。 (5)VHDL是一个标准语言,它的设计描述可以被不同的EDA工具所支持,可移植性强,易于共享和复用11。同时,与其他的硬件描述语言相比,VHDL还具有以下特点: (1) VHDL具有更强的行为描述能力。强大的行为描述能力避开了具体的器件结构, 是在逻辑行为上描述和设计大规模电子系统的重要保证。VHDL 的宽范围描述能力使它成为高层次设计的核心,从而决定了它成为系统设计领域最佳的硬件描述语言,并可进行系统的早期仿真以保证设计的正确性。 (2) VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统功能的可

25、行性,随时可对设计进行仿真模拟。 (3) VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。 (4) 对于用 VHDL 完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地把 VHDL 描述设计转变成门级网表。 (5) VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构, 也不必管理最终设计实现的目标器件是什么,而进行独立的设计。 (6) 用 VHDL 语言编写的源程序便于文档管理,用源代码描述来进行复杂控制逻辑的设计,既灵活方便,又便于设计结果的交流、保存和重用13。电子系统利用VHDL 设计时,设计方法有系统行为级描述算

26、法,寄存器传输级算法和结构级描述;VHDL源代码是作为EDA综合工具的输入代码,因此有效的VHDL建模风格是控制综合结果的最为有效的手段。要建立VHDL源代码,设计者必须了解 VHDL与综合结果的关系。 综合算法不同,对于同样的硬件描述,可能会得到不同的综合结果。 即使最后综合出的电路都能实现相同的逻辑功能,其电路的复杂程度和时延特性都会有很大的差别,甚至某些额外的电路还使得系统运行效率达不到要求。为此,下面列举出了利用VHDL进行程序设计时的一些重要的、典型的优化方法12。描述方法的合理选用用 VHDL进行设计,其最终综合出的电路的复杂程度除取决于设计要求实现的功能的难度外,还受设计工程师对

27、电路的描述方法的影响。最常见的使电路复杂化的原因之一是设计中存在许多本不必要的类似 LATCH的结构。而且由于这些结构通常都由大量的触发器组成,不仅使电路更复杂,工作速度降低,而且由于时序配合的原因可能导致不好的结果。2.2 VHDL语句的描述一个完整的VHDL程序,或者说设计实体,通常要求最低能为VHDL综合器所支持,并能作为一个独立的设计单元,即元件的形式而存在的VHDL程序。在VHDL程序中,通常包含实体(ENTITY)、结构体(ARCHITECTURE)、配置(CONFIGURATION)、包集合(PACKAGE)和库(LIBRARY)5个部分。其中实体和结构体这两个基本结构是必需的,

28、他们可以构成最简单的VHDL程序。2.2.1 实体设计实体是VHDL语言设计的基本单元,简单的可以是一个与门,复杂的可以是一个微处理器或一个数字系统,其结构基本是一致的,都是由实体说明和结构体两部分组成。实体说明是对这个设计实体与外部电路进行接口的描述,它规定了设计单元的输入输出接口信号或引脚,是设计实体对外的一个通信界面。结构体用于描述此设计实体的逻辑结构和逻辑功能。实体语句结构如下:ENTITY 实体名 IS GENERIC(类属表); PORT(端口表);END ENTITY 实体名; 2.2.2 结构体结构体也叫构造体,结构体描述了基本设计单元(实体)的结构、行为、元件及内部连接关系,

29、也就是说它定义了设计实体的功能,规定了设计实体的数据流程,制定了实体内部元件的连接关系。结构体对其基本设计单元的输入和输出关系可用以下三种方式进行描述,即行为描述(基本设计单元的数学模型描述)、寄存器传输描述(数据流描述)和结构描述(逻辑元件连接描述)。结构体是对实体功能的具体描述,因此它一定要跟在实体的后面。图2-1: 结构体构造图2.2.3 块、子程序和进程块语句(BLOCK):在较大规模的电子系统设计中,传统的硬件电路设计通常包括一张系统总电路原理图和若干张子原理图。在VHDL程序设计中,结构体是由多个BLOCK块构成的,如果将结构体比做总电路原理图,那么,每个BLOCK块则相当于一张子

30、原理图。BLOCK块语句的结构: 块标号:BLOCK 接口说明 类属说明 BEGIN 并行块语句 END BLOCK(块标号);进程(PROCESS):PROCESS结构是最能体现VHDL语言特色的语句。与BLOCK语句一样,利用PROCESS语句结构可以描述一个功能独立的电路。与BLOCK语句不同之处是,在系统仿真时,PROCESS结构中的语句是按顺序逐条向下执行的,而不像BLOCK语句那样并发执行。一个结构体中可以有多个并行运行的进程结构,每一个进程内部是由一系列顺序语句来构成的。PROCESS语句的结构进程标号 PROCESS (敏感信号表) IS进程说明语句BEGIN 顺序描述语句EN

31、D PROCESS 进程标号;子程序(SUBPROGRAM):VHDL程序与其他软件语言程序中应用子程序的目的是相似的,即能够更有效地完成重复性的工作。子程序模块是利用顺序语句定义和完成算法的,但子程序不能像进程那样可以从本结构体的其他块或进程结构中读取信号值或向信号赋值,只能通过子程序调用与子程序的界面端口进行通信12。子程序被调用时,首先要初始化,执行处理功能后,将处理结果传递给主程序。子程序内部的值不能保持,子程序返回后才能被再次调用并初始化。子程序有两种类型:过程(PROCEDURE)和函数(FUNCTION)。1过程(PROCEDURE)过程语句的书写格式为:PROCEDURE 过程

32、名(参数表)IS 说明部分 BEGIN 过程语句部分 END PROCEDURE 过程名;2.函数函数的语言书写格式为: FUNCTION 函数名 (参数表) RETURN 数据类型 IS 说明部分; BEGIN 顺序语句; RETURN 返回变量名; END RETURN 函数名;2.2.4 库和程序包库和程序包用来描述和保留元件、类型说明函数、子程序等,以便在其它设计中可以随时引用这些信息,提高设计效率。库(LIBRARY):库是经编译后的数据的集合,它存放包集合定义、实体定义、结构定义和配置定义。库语句的格式为: LIBRARY 库名; 程序包(package):程序包也叫包集合,主要用

33、来存放各个设计都能共享的数据类型、子程序说明、属性说明和元件说明等部分。设计者使用时只要用USE子句进行说明即可。程序包由两部分组成:程序包首和程序包体。程序包的一般书写格式如下:PACKAGE 程序包名 ISEND PACKAGE 程序包名; -程序包首PACKAGE BODY 程序包名 IS -程序包体 END PACKAGE BODY 程序包名;2.2.5 默认配置配置语句描述了层与层之间的连接关系,以及实体与构造体之间的连接关系。(一个实体(ENTITY)可以有多个构造体)设计者可以利用配置语句选择不同的构造体,使其与要设计的实体相对应;在仿真某一个实体时,可以利用配置选择不同的构造体

34、进行性能对比实验,以得到性能最佳的构造体。在用VHDL描述硬件电路时,常常采用结构描述方式和混合描述方式。在这两种描述方式中,常常需要将其他设计实体作为元件进行引用,这时就需要将不同元件通过配置安装到不同的设计实体中。VHDL提供了配置语句用于描述各种设计实体和元件之间连接关系以及设计实体和结构体之间的连接关系13。默认配置语句的基本格式为:CONFIGURATION 配置名 OF 实体名 IS FOR 选配结构体名 END FOREND 配置名;2.3 VHDL最基本的描述方法2.3.1 结构体的行为描述法所谓结构体的行为描述(behavioral descriptions),即对设计实体按

35、算法的路径来描述。行为描述在EDA工程中称为高层次描述或高级描述,原因有以下两点:(1)实体的行为描述是一种抽象描述,而不是某一个器件,对电子设计而言,是高层次的概括,是整体设计功能的定义,所以称为高层次描述。(2)从计算机领域而言,行为描述和高级编程语言类似,所以计算机业内人士通常称之为高级描述。当用顺序执行结构体的行为描述时,设计工程师可为实体定义一组状态时序机制,不需要互连表,无须关注实体的电路组织和门级实现,这些完全由EDA工具综合生成,设计工程师只需注意正确的实体行为、准确的函数模型和精确的输出结果。2.3.2 结构体的数据流描述法数据流描述(dataflow description

36、)是结构体描述方法之一,它描述了数据流程的运动路径、运动方向和运动结果。数据流描述法采用并发信号赋值语句,而不是进程顺序语句。一个结构体可以有多重信号赋值语句,且语句可以并发执行。第三章 交通灯系统的设计3.1 红绿灯交通信号系统功能描述在交通信号灯的设计中,系统功能设计要求主干道各设有一个绿、黄、红指示灯。主干道绿灯亮时,支干道红灯亮,反之亦然,两者交替允许通行。主干道每次放行25s,支干道每次放行15s。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s。 能实现正常的倒计时显示功能。能实现总体清理功能,计数器由初始状态开始计数,对应状态的指示灯亮。外部硬件电路方面主要包括:

37、两组红绿灯、两组LED显示器。软件方面包括:(1)电路合成模块的概念:将交通灯信号系统划分成若干个小电路,编写每一个模块的VHDL程序代码,并将各个小电路相连接。这样可以增加程序的调试速度,同时也能够将工作细分,以提高编程速度(见图3-1)。(2)参数化的概念:针对不同时段的交通流量,可以调整红绿灯电路(增加或者减少电路的计数时间),以增加程序的灵活性。时钟发生电路计数秒数选择电路 红绿灯信号控制电路倒计时控制电路时钟输入端东西及南北方向信号灯系统复位端 东西及南北方向倒计时 图3-1 交通信号灯系统结构图由交通信号灯系统结构图(见图3-1)可知,该系统由4个子电路组成。其中包括:(1)时钟发

38、生电路;(2)计数秒数选择电路;(3)倒计时控制电路;(4)红绿灯信号控制电路。3.2 系统的模块设计3.2.1 时钟脉冲发生电路在红绿灯交通信号系统中,大多数的情况是通过自动控制的方式指挥交通的。因此,为了避免意外事件的发生,电路必须给出一个稳定的时钟(clock)才能让系统正常的工作。因此,hld1时钟发生电路最主要的功能就是产生一些稳定的输出信号,并将其用做后面几个电路的使能控制与同步信号。程序如下(见附录)图3-2是时钟脉冲发生电路的元件模块图。 图3-2: 时钟发生电路模块图 系统输入信号:clk:由外部信号发生器提供1kHZ的时钟信号;reset:系统内部自复位信号。系统输出信号:

39、ena_scan:将外部的时钟信号进行分频处理;ena_1hz:产生每秒一个的脉冲信号;flash_1hz:产生每秒一个脉冲的时钟信号。 图3-3是时钟脉冲发生电路通过Quartus II软件仿真得到的仿真波形图。 图3-3: 时钟发生电路时序图从图3-3可以看出,当加入1kHZ的时钟信号后,ena_1hz产生了周期为一秒的脉冲信号,flash_1hz产生了周期为一秒的脉冲时钟信号。在这段程序的设计过程中最大的特点就是引用了参数化的概念,即使用了常数(constant)。常数的定义和设置主要是为了使程序更容易阅读和修改,只要改变了常量的数值,使用到该常数的地方都会随着更新而使用新的常数值。这就

40、使设计的灵活性增强了。例如程序中用到的:constant scan_bit:positive:=2;signal clk_scan_ff:std_logic_vector(scan_bit-1 downto 0);第一句就是将scan_bit设为常数2,这个数值是可以根据设计的需要任意设定的。第二句是定义一个信号,它的位数就是(scan_bit-1),因为之前scan_bit设定的值为2,所以信号的位数就是2位。如果想增减信号的位数,只需要改动常数的赋值就可以了。3.2.2 计数秒数选择电路当通过交通路口时,如果能在一个方向增添一个倒计时显示器对车辆、行人加以提示,可能会有更好的效果。因此,计

41、数秒数选择电路最主要的功能就是负责输出显示器需要的数值(即倒数的秒数值),作为倒计时显示器电路的计数秒数。程序如下(见附录) 图3-4是计数秒数选择电路的元件模块图。图3-4: 计数秒数选择电路模块图系统输入信号:clk:由外部信号发生器提供1kHz的时钟信号;reset:系统内部自复位信号;ena_scan:接收由时钟发生电路提供的250Hz的时钟脉冲信号;recount:接收由交通灯信号控制电路产生的重新计数的使能控制信号;sign_state:接收由交通灯信号控制电路产生的状态信号。系统输出信号:load:负责产生计数器所需要的计数数值。 图3-5是计数秒数选择电路通过Quartus I

42、I软件仿真得到的仿真波形图。图3-5: 计数秒数选择电路时序图由计数描述选择电路的时序图(见图3-5)可以看出这段程序中定义了在正常车流量情况下,东西及南北方向红灯、黄灯和绿灯需要维持的秒数分别是15s、5s和25s。当外部信号发生器提供了1kHZ的时钟信号,并且重新计数信号(recount)为“1”时,load信号就会按照预先设置的数值逐1递减,直至减到零为止,当下一个重新计数信号(recount)再次为“1”时,会重复此过程。3.2.3 倒计时控制电路通过日常生活中的观察,我发现在一些交通路口已经开始使用倒计时显示器,它们的作用就是用来提示车辆行人目前还有多长时间信号灯会发生变化,这样车辆

43、行人就可以提前判断是否有足够的时间通过路口,进而就可以避免很多意外事故的发生。例如:南北方向绿灯,车辆处于正常行驶中,东西方向红灯,车辆处于等待中,若南北方向行驶的车辆看到倒计时显示器上可以通行的时间很短,可能就会放慢速度等待下一次通行,这样在东西方向绿灯时,车辆就能够正常行驶,不会为等待南北方向强行的车辆而耽误更多的时间。如此循环下去,道路就会畅通无阻了。考虑到有些路口的交通拥堵现象较为严重,车辆会在道路上排成很长的一队,这样排在较远距离的司机就很难看清楚倒计时显示器上变化的数字,有可能会影响到车辆之间的正常行驶。因此,如果采用发光二极管作为倒计时的显示装置就会使司机和行人一目了然,同样也能

44、够起到很好的提示作用。所以,倒计时控制电路最主要的功能就是负责接收hld2电路输出的值,然后将其转换成BCD码,并利用发光二极管显示出来,让车辆行人能够清楚地知道再过多久信号灯就会发生变化。程序如下(见附录) 图3-6是倒计时控制电路元件模块图。图3-6: 倒计时控制电路模块图系统输入信号:clk:由外部信号发生器提供1kHz的时钟信号;reset:系统内部自复位信号;ena_1hz:接收由时钟发生电路提供的1Hz的脉冲信号;recount:重新计数的使能控制信号;load:负责接收计数器所需要的计数数值。系统输出信号:led:负责将计数数值转换成BCD码,并利用发光二极管显示倒计时状态;ne

45、xt_state:当计数器计时完毕后,负责产生一个脉冲信号,作为下一个状态的触发信号。 图3-7是倒计时控制电路通过Quartus II软件仿真得到的仿真波形图。图3-7: 倒计时控制电路时序图这段程序是采用的就是查表的方法并且利用发光二极管进行倒计时显示,如图3-7所示:当绿灯点亮开始计数后,load就会将减1后的值赋给cnt_ff,之后cnt_ff又会从case语句中查找到相对应的值再赋给led显示所剩余的时间。在程序编写过程中运用到了conv_integer()语句,它可以将cnt_ff所赋的值转换成整数。由图可知led是25位的系统输出信号,负责控制发光二极管的输出,所以25位的输出信号可以分成七组控制发光二极管的显示,其中“1”为点亮,“0”为熄灭。3.2.4 红绿灯信号控制电路在红绿灯交通信号系统中,大多数的情况是通过自动控制的方式指挥交通。但为了配合高峰时段,防止交通拥挤,有时还必须使用手动控制,即让交通警察自行指挥交通。因此,红绿灯信号控制电路除了负责监控路口红绿灯之外,最主要的功能就是能够利用开关来切换手动与自动的模式,让交通警察能够通过外部

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1