基于VHDL的智能交通灯控制系统的设计.doc_第1页
基于VHDL的智能交通灯控制系统的设计.doc_第2页
基于VHDL的智能交通灯控制系统的设计.doc_第3页
基于VHDL的智能交通灯控制系统的设计.doc_第4页
基于VHDL的智能交通灯控制系统的设计.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

摘要摘要EDA技术的一个重要特征就是使用硬件描述语言(HDL)来完成系统的设计文件,应用VHDL的数字电路实验降低了数字系统的设计难度,这在电子设计领域已得到设计者的广泛采用。本设计就是针对交通信号灯控制器的设计问题,提出了基于VHDL语言的交通信号灯系统的硬件实现方法。通过对系统进行结构分析,采用了层次化的设计方法,给出了各个模块的VHDL程序,并且利用Quartus 对应用程序进行了仿真,并给出了相应的仿真结果。通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。关键词:交通信号灯;VHDL;仿真33AbstractABSTRACTOne important characteristic of the EDA is that the design documents should be completed by the HDL, the digital circuit experiment utilized very-high-speed integrated circuit hardware description language(VHDL) may reduce the difficulties of digital system designing, and it is widely used by electronic designer now. Aiming at the design problem of traffic light controller, this paper puts forward a hardware realization method of traffic light system with VHDL. By analyzing the architecture of system, it gives the program of each module with VHDL using hierarchical design means. It also gives the simulation results by Quartus. Optimizes the design through the electric circuit, may use the scale smaller programmable logic chip, thus reduces the system cost. Key word: Street-traffic control lights; VHDL; Simulation目录目录第1章引言1第2章EDA技术概述22.1 EDA技术及其发展22.2 EDA与传统电子设计方法的比较22.3 EDA的工程设计流程2第3章可编程技术简介43.1 可编程逻辑器件概述43.2 FPGA/CPLD概述43.3 硬件描述语言介绍53.4 选择VHDL硬件描述语言设计的优势63.5 软件开发工具Quartus II 简介6第4章智能交通控制系统的设计84.1 系统功能分析84.2 系统结构设计94.3 系统程序实现104.3.1 分频计数电路104.3.2 交通信号控制器电路124.3.3 动态数码管扫描电路154.3.4 194.3.5 建立程序包224.3.6 连接各个模块234.3.7 状态机的优势24 4.4仿真及仿真结果分析结束语26参考文献27致谢28附录291.时钟发生电路程序代码292.计数秒数选择电路程序代码313.倒计时控制电路程序代码324.红绿灯信号控制电路程序代码345.连接各个模块的程序代码38外文资料原文41翻译文稿55第1章 引言第1章 引言不同的城市存在着不同的城市问题,但其中有一个共同的问题就是城市交通。在交叉路口如何解决混合交通流中的相互影响,就是解决问题的关键所在!随着我国经济的稳步发展,人民生活水平的日渐提高,越来越多的汽车进入寻常百姓的家庭,再加上政府大力地发展公交、出租车行业,道路上的车辆越来越多,使得城市的交通成为了一个主要的问题。严重的拥堵现象,逐渐恶化的城市环境,都给广大市民带来了许多困扰。要解决这些问题不仅要求道路越来越宽阔,而且更需要有新的交通管理模式出台。实现路口交通灯系统的控制方法很多,可以用标准逻辑器件、可编程序控制器PLC、单片机等方案来实现。但是这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难。交通系统未来的发展趋势就是要提高通行能力,加强环境保护,开展智能化运输和环保专项技术的研究,并且要做到以人为本,重点开展交通安全技术的研究,在这个过程中要确定经济合理的目标,促进新材料的广泛应用和开发。EDA 技术是用于电子产品设计中比较先进的技术,可以代替设计者完成电子系统设计中的大部分工作,而且可以直接从程序中修改错误及系统功能而不需要硬件电路的支持,既缩短了研发周期,又大大节约了成本,受到了电子工程师的青睐。因此,本设计中采用EDA 技术,应用目前广泛应用的VHDL 硬件电路描述语言,实现交通灯系统控制器的设计, 利用Quartus 集成开发环境进行综合、仿真,完成系统的控制作用。第2章 EDA技术概述第2章 EDA技术概述2.1 EDA技术及其发展现代电子设计技术的核心是EDA(Electronic Design Automation)技术。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,它能自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合(布局 布线),以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。利用EDA技术(特指IES/ASIC自动设计技术)进行电子系统的设计,具有以下几个特点: 用软件的方式设计硬件; 用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的; 设计过程中可用有关软件进行各种仿真; 系统可现场编程,在线升级; 整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。EDA技术在进入21世纪后,得到了更大的发展。在仿真和设计两方面支持标准硬件描述语言的功能越来越强大,软硬件技术也进一步得到了融合,在电子行业的产业领域、技术领域和设计应用领域得到了进一步的肯定,使得复杂电子系统的设计和验证趋于简单化。2.2 EDA与传统电子设计方法的比较与传统的电子设计方法相比,EDA技术对于复杂电路的设计和调试都比较简单,如果某一过程存在错误,查找和修改起来比较方便,而且EDA技术的可移植性很强。2.3 EDA的工程设计流程假设我们需要建造一栋楼房,第一,我们需要进行“建筑设计”用各种设计图纸把我们的建筑设想表示出来;第二,我们要进行“建筑预算”根据投资规模、拟建楼房的结构及有关建房的经验数据等计算需要多少基本的建筑材料(如砖、水泥、预制块、门、窗户等); 第三,根据建筑设计和建筑预算进行“施工设计”这些砖、水泥、预制块、门、窗户等具体砌在房子的什么部位,相互之间怎样连接;第四,根据施工图进行“建筑施工”将这些砖、水泥、预制块、门、窗户等按照规定施工建成一栋楼房;最后,施工完毕后,还要进行“建筑验收”检验所建楼房是否符合设计要求。同时,在整个建设过程中,我们可能需要做出某些“建筑模型”或进行某些“建筑实验”。那么,对于目标器件为FPGA和CPL D的VHD 设计,其工程设计步骤如何呢?EDA的工程设计流程与上面所描述的基建流程类似:第一需要进行“源程序的编辑和编译”用一定的逻辑表达手段将设计表达出来;第二要进行“逻辑综合”将用一定的逻辑表达手段表达出来的设计,经过一系列的操作,分解成一系列的基本逻辑电路及对应关系(电路分解);第三要进行“目标器件的布线/适配”在选定的目标器件中建立这些基本逻辑电路及对应关系(逻辑实现);第四,目标器件的编程/下载将前面的软件设计经过编程变成具体的设计系统(物理实现);最后,要进行硬件仿真/硬件测试验证所设计的系统是否符合设计要求。同时,在设计过程中要进行有关“仿真”模拟有关设计结果与设计构想是否相符。综上所述,EDA的工程设计的基本流程如图2.1所示 图2-1 EDA工程设计第3章 可编程技术简介第3章 可编程技术简介3.1 可编程逻辑器件概述可编程逻辑器件(简称PLD)是允许用户编程(配置)实现所需逻辑功能的电路,一般可利用计算机辅助设计,即用原理图、状态机、硬件描述语言(VHDL)等方法来表示设计思想,经过一系列编译或装换程序,生成相应的目标文件,再由编程器或下载电缆将设计文件配置到目标器件中,这时的可编程逻辑器件就可作为满足用户需求的专用集成电路使用了。可编程逻辑器件,不仅速度快、集成度高,并且能随心所欲地完成用户定义的逻辑功能,还可以加密和重新编程,其编程次数最大可达1万次以上。使用可编程逻辑器件可以大大简化硬件系统、降低成本、提高系统的可靠性、灵活性和保密性。PLD的出现,打破了由中小规模通用型集成电路和大规模专用集成电路垄断的局面,在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到广泛应用,可以预见,不久的将来,PLD将在集成电路市场占统治地位。3.2 FPGA/CPLD概述FPGA(现场可编程门阵列)和CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,他们是在PAL,GAL等逻辑器件的基础上发展起来的。同以往的PAL,GAL相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。这样的FPGA/CPLD实际上就是一个子系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。比较典型的就是Altera公司和Xilinx公司的CPLD器件系列和FPGA器件系列,他们开发较早,占用了较大的PLD市场。对用户而言,虽然FPGA/CPLD的内部结构稍有不同,但其用法都一样,所以大多数情况下,不加以区分。FPGA/CPLD芯片都是特殊的ASIC芯片,除了具有ASIC的特点外,还具有以下几个优点:(1) 随着VLSI(Very Large Scale IC,超大集成电路)工艺的不断提高单一芯片内部可以容纳上百万个晶体管,FPGA/CPLD芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它所实现的功能也越来越强,同时也可以实现系统集成,即片上系统SOC.(2) FPGA/CPLD芯片在出厂之前都做过百分之百的测试,不需要设计人员承担芯片风险和费用,设计人员只需在自己的实验室就可以通过相关的软硬件环境来完成芯片的最终功能设计。所以,FPGA/CPLD的资金投入就小,减少了潜在的花费。(3) 用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。FPGA/CPLD软件包中有各种输入工具和仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化。仿真,直至最后芯片的制作。当电路有少量的改动,更能显示FPGA/CPLD的优势。电路设计人员在使用FPGA/CPLD进行电路设计时,不需要具有专门的IC(集成电路)深层次的知识,FPGA/CPLD软件易学易用,能使设计人员更能集中精力进行电路设计,快速将产品推向市场。(4) 在线可编程技术(ISP)使得使用FPGA/CPLD的产品可以做到远程升级。3.3 硬件描述语言介绍 常用的硬件描述语言有VHDL、Verilog、ABEL。 VHDL:作为IEEE的工业标准硬件描述语言,在电子工程领域,已成为事实上的通用硬件描述语言。 Verilog:支持的EDA工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,但其在高级描述方面不如VHDL。ABEL:一种支持各种不同输入方式的HDL,被广泛用于各种可编程逻辑器件的逻辑功能设计,由于其语言描述的独立性,因而适用于各种不同规模的可编程器件的设计。有专家认为,在新世纪中,VHDL与Verilog语言将承担几乎全部的数字系统设计任务。3.4 选择VHDL硬件描述语言设计的优势首先,简单地介绍一下什么是VHDL硬件描述语言。VHDL的英文全称是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language。是EDA设计中使用最多的语言之一,它具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大地简化了硬件设计任务,提高了设计效率和可靠性。其次,这次设计选用VHDL硬件描述语言的优势就在于传统的用原理图设计电路的方法具有直观形象的优点,但如果所设计系统的规模比较大,或者设计软件不能提供设计者所需的库单元时,这种方法就显得很受限制了。而且用原理图表示的设计,通用性、可移植性也比较弱,所以在现代的设计中,越来越多地采用了基于硬件描述语言的设计方式。利用硬件描述语言来设计电路,使探测各种设计方案变成一件很容易的事,因为只需要对描述语言进行修改,这比更改电路原理图要容易实现得多。3.5 软件开发工具Quartus II 简介Altera的Quartus II 设计软件提供了完整的多平台设计环境,它可以轻易满足各种特定设计的需要,也是单芯片可编程系统 (SOPC) 设计的综合性环境和SOPC开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成综合环境。Quartus II设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。Quartus II 包括模块化的编译器。编译器包括的功能模块有分析/综合器(AnalysisSynthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)等。可以通过选择 Start Compilation (Processing 菜单)来运行所有的编译器模块。 若要单独运行各个模块,可以通过选择 Start(Processing 菜单),然后从 Start 子菜单中为模块选择相应的指令。此外,还可以通过选择 Compiler Tool (Tools 菜单)并在 Compiler Tool窗口中运行该模块来启动编译器模块。 在 Compiler Tool 窗口中,可以打开该模块的设置文件或报告文件,还可以打开其它相关窗口。Quartus II支持层次化的设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块进行调试,从而解决原理图与HDL混合输入设计的问题。在设计输入之后,Quartus II的编译器将给出设计输入的错误报告。可以使用Quartus II带有的RTL Viewer观察综合后的RTL图。设计输入综合或编译适配器件下载图形或HDL编译AnalysisSynthesis(分析与综合)Fitter(适配器)Assembler(编程文件汇编)编程器Timing Analyzer(时序分析器)仿真图3-1 Quartus II设计流程上图显示的是Quartus II编译设计主控界面,显示了Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编译文件汇编(装配)、时序参数提取以及编程下载几个步骤。第4章 交通灯控制系统的设计第4章 智能交通控制系统的设计4.1 系统功能分析在交通信号灯的设计中,外部硬件电路方面主要包括:两组红绿灯、两组LED显示器(见图1,说明:图1中只画出了东西、南北方向的红绿灯及南北方向的LED显示器,东西方向的LED显示器与南北方向的相同)。软件方面包括:(1)电路合成模块的概念:将交通灯信号系统划分成若干个小电路,编写每一个模块的VHDL程序代码,并将各个小电路相连接。这样可以增加程序的调试速度,同时也能够将工作细分,以提高编程速度(见图2)北(主)北东(支)南LED显示器红黄绿信号灯红黄绿信号灯 图4-1 十字路口示意图分频计数器模块 CLK 1kHZ 1HZ CAR支干道车辆检测交通信号控制器模块 1kHZ动态数码管扫描模块交通信号灯LED显示 LED显示图4-2 交通信号灯系统结构图4.2 系统结构设计由交通信号灯控制系统的功能可知,该系统由3个子电路组成,如图2所示,其中包括:(1) 分频计数器电路;(2) 交通信号控制器电路;(3) 动态数码管扫描电路。由图2可以看出系统大体的工作程序是:首先由时钟发生电路产生稳定的时钟信号,为下面三个子电路提供同步工作信号。接收到时钟信号的红绿灯信号控制电路开始工作,并将产生的重新计数的输出使能控制信号发送给计数秒数选择电路和倒计时控制电路,同时还会将目前电路产生的状态信号发送给前者。接收到重新计数的信号后计数秒数选择电路就会负责产生计数器所需要的计数值,并将这一数值发送给倒计时控制电路,由它利用发光二极管显示倒计时的状态。当计数器计时完毕,倒计时控制器就会负责产生一个脉冲信号发送给红绿灯信号控制电路进入下一个状态,之后循环这一过程。4.3 系统程序实现4.3.1 分频计数电路在红绿灯交通信号系统中,大多数的情况是通过自动控制的方式指挥交通的。因此,为了避免意外事件的发生,电路必须给出一个稳定的时钟(clock)才能让系统正常的工作。分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。该分频器实现的是一千分频,将一千赫兹的时钟信号分频成一赫兹的时钟信号。因此,clkgen分频电路(见图3)最主要的功能就是产生稳定的1赫兹输出信号,用做下一级电路的同步信号。图4-3 时钟发生电路模块图系统输入信号:clk:由外部信号发生器提供1kHZ的时钟信号;系统输出信号:newclk1:产生每秒一个脉冲的时钟信号。经仿真后得到的时序图(见图4、图5)图4-4 将clk经分频处理后得到的ena_scan信号图4-5 时钟发生电路时序图4.3.2 交通信号控制器S=0立刻转换下一状态S=1S=1S=0S=0S=1STEP 0 系统下载,主干道开始60s倒计时,不论S有无信号,皆为MGCR状态。判断SSTEP 1 保持MGCR状态,显示保持4秒。STEP 2 转入MYCR状态,开始4s倒计时STEP 3 转入MRCG状态,开始20s倒计时判断SSTEP 4 转入MRCY状态,开始4s倒计时图4-6 交通控制器的状态转换图上图为交通控制器的状态转换图,平时系统停留在MGCR(主干道通行)状态,一旦S信号有效,经MYCR(黄灯状态)转入MRCG(乡间公路通行)状态。控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给动态数码管电路。 图4-7 交通信号控制器模块图系统输入信号:clk:由外部信号发生器提供1HZ的时钟信号;ena:使能信号;s: 支路请求信号;系统输出信号:mql、mqh、cql、cqh:计数显示信号;mr:主干道红灯输出信号;my:主干道黄灯输出信号;mg:主干道绿灯输出信号;cr:支路红灯输出信号;cy:支路黄灯输出信号;cg:支路绿灯输出信号。经仿真后得到的时序图(见图7):图4-7 计数秒数选择电路时序图由计数描述选择电路的时序图(见图7)可以看出这段程序中定义了在正常车流量情况下,东西及南北方向红灯、黄灯和绿灯需要维持的秒数分别是15s、5s和25s4.3.3 动态数码管扫描电路通过日常生活中的观察,我发现在一些交通路口已经开始使用倒计时显示器,它们的作用就是用来提示车辆行人目前还有多长时间信号灯会发生变化,这样车辆行人就可以提前判断是否有足够的时间通过路口,进而就可以避免很多意外事故的发生。例如:南北方向绿灯,车辆处于正常行驶中,东西方向红灯,车辆处于等待中,若南北方向行驶的车辆看到倒计时显示器上可以通行的时间很短,可能就会放慢速度等待下一次通行,这样在东西方向绿灯时,车辆就能够正常行驶,不会为等待南北方向强行的车辆而耽误更多的时间。如此循环下去,道路就会畅通无阻了。考虑到有些路口的交通拥堵现象较为严重,车辆会在道路上排成很长的一队,这样排在较远距离的司机就很难看清楚倒计时显示器上变化的数字,有可能会影响到车辆之间的正常行驶。因此,如果采用发光二极管作为倒计时的显示装置就会使司机和行人一目了然,同样也能够起到很好的提示作用。动态数码管扫描电路是为了让数码管显示倒数计时计数,所以,scan动态数码管扫描电路(见图8)最主要的功能就是负责接收hld2电路输出的值,然后将其转换成BCD码,并利用发光二极管显示出来,让车辆行人能够清楚地知道再过多久信号灯就会发生变化。图4-8 倒计时控制电路系统输入信号:clk:由外部信号发生器提供1kHz的时钟信号;num1:接收系统主干道低电平信号;num2:接收系统主干道高电平信号;num7:接收系统支路低电平信号;num8:接收系统支路高电平信号。系统输出信号:sel:负责将计数数值转换成BCD码,并利用发光二极管显示倒计时状态;next_state:当计数器计时完毕后,负责产生一个脉冲信号,作为下一个状态的触发信号。经仿真后得到的时序图(见图9):图4-9 倒计时控制电路时序图由倒计时控制电路的时序图(见图9)可以看出,当clk时钟信号来临后,在ena_1hz脉冲信号的同时激励下,led会按照预先设置好的时间开始逐1递减,进行倒计时显示。这段程序是采用的就是查表的方法并且利用发光二极管进行倒计时显示,如图9所示:当绿灯点亮开始计数后,load就会将减1后的值赋给cnt_ff,之后cnt_ff又会从case语句中查找到相对应的值再赋给led显示所剩余的时间。在程序编写过程中运用到了conv_integer()语句,它可以将cnt_ff所赋的值转换成整数。由图可知led是25位的系统输出信号,负责控制发光二极管的输出,所以25位的输出信号可以分成七组控制发光二极管的显示,其中“1”为点亮,“0”为熄灭。程序代码见附录3倒计时控制电路。 4.3.4 建立程序包在程序设计语言中,程序的开始总会调用库(library)来提供设计程序时所需要的基本命令。但是,如果要进一步设计较为复杂的程序时,库中的命令可能就无法支持了。因此,可以设计一个子程序来满足程序设计的需求。上述问题在硬件描述语言的设计中也存在,在VHDL程序中的第一行(library ieee;)就是要使用IEEE设计好的库文件,但如果需要使用的元器件并不在库中时,就只能自己定义了。一个程序包中至少应该包含以下结构中的一种:u 常数说明:如定义系统数据总线通道的宽度。u VHDL数据类型说明:主要用于在整个设计中通用的数据类型。u 元件定义:元件定义主要规定在VHDL设计中参与文件例化的文件接 口界面。u 子程序:并入程序包的子程序有利于在设计中任一处进行方便地调 用。例如,时钟发生电路的组件代码为: component hld1port(reset:in std_logic; clk:in std_logic; ena_scan:out std_logic; ena_1hz:out std_logic; flash_1hz:out std_logic);end component;4.3.5 连接各个模块light电路的工作就是将所有的子电路全部连接起来,进行时序分析,当程序完成后,再下载到FPGA,以便硬件电路的验证工作。经仿真后得到的时序图(见图12):图4-10 连接各个模块后的时序图从上图可以看出南北方向:绿灯25s黄灯5s东西方向:绿灯25s黄灯5s状态转换图如下:有效状态转换如下:东西方向:红灯绿灯黄灯南北方向:绿灯黄灯红灯4.3.6 状态机的优势通过上面图形的展示,状态机有着难以超越的优越性,主要表现在一下几方面:(1) 状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。(2) 由于状态机的结构相对简单,设计方案相对固定,特别是可以定义符号化枚举类型的状态,这一切都为VHDL综合器尽可能发挥其骐达的优化功能提供了有利条件。而且,性能良好的综合器都具有许多可控或自动的优化状态机的功能。(3) 状态机容易构成性能良好的同步时序逻辑模块,这对于大规模逻辑电路设计中令人深感棘手的竞争冒险现象无疑是一个上佳的选择。(4) 与VHDL的其他描述方式相比,状态机的VHDL描述丰富多样、程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有独到的好处。(5) 在高速运算和控制方面,状态机更有其巨大的优势。在VHDL中,一个状态机可以由多个进程构成,一个结构体中可以包含多个状态机,而一个单独的状态机以顺序方式所能完成的运算和控制方面的工作与一个CPU的功能类似。(6) 高可靠性。结束语结束语本设计采用了VHDL硬件描述语言文本输入方式,在确立总体预期实现功能的前提下,分层次进行设计。实现了三种颜色交通信号灯的交替点亮,以及时间的倒计时显示,指挥行人和车辆安全通行。程序中所用到的数据均可以根据实际情况进行设置,修改灵活方便。通过此次设计,我对于VHDL硬件描述语言有了更深入地了解,也在原来所学的理论基础上得到了进一步地应用。但由于经验上的不足,有些地方还需要做进一步地改善,如可通过FPGA/CPLD开发套件验证。数字化时代的到来给人们的生活水平带来了极大的改变,我们有理由相信,随着数字化的深入,交通灯控制器的功能将日趋完善。而且,VHDL语言对EDA技术产生的影响也是深远的,它缩短了电子产品的设计周期,为设计者提供了方便。在今后的电子产品研究开发过程中,EDA技术将会具有更好的开发手段和更高的性价比,并且将拥有更为广阔的市场应用前景。参考文献参考文献1 元红妍、张鑫主编:电子综合设计实验教程,第一版,山东:山东大学出版社,2005年,第111-113页。2 杨晓慧、许红梅、杨会玲编著:电子技术EDA实践教程,第一版,北京:国防工业出版社,2005年,第235-240页。3 杨恒、李爱国、王辉、王新安编著:FPGA/CPLD最新实用技术指南,第一版,北京:清华大学出版社,2005年,第242-244页。4 孙芹芝、张瑾、苏晓鹭:基于EDA的交通灯控制系统,应用天地,2005年第五期,第66-68页。5 林明权等编著:VHDL数字控制系统设计范例,第一版,北京:电子工业出版社,2003年,第115-126页。6 潘松、黄继业编著:EDA技术实用教程,第二版,北京:科学出版社,2005年,第1-3页。7 杨恒新:自顶向下法设计交通灯控制系统,电气电子教学学报,2006年第四期,第40-41页。 8 曾素琼:EDA技术在数字电路中的探讨,实验科学与技术,2005年第一期,第22-25页。9 徐志军、徐光辉编著:CPLD/FPGA的开发与应用,第一版,北京:电子工业出版社,2002年,第176-185页。翻译文稿致谢附录红绿灯交通信号系统的VHDL程序代码:1.时钟发生电路程序代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity hld1 isport(reset:in std_logic; clk:in std_logic; ena_scan:out std_logic; ena_1hz:out std_logic; flash_1hz:out std_logic);end;architecture bhv of hld1 isconstant scan_bit:positive:=2;constant scan_val:positive:=4;constant two_hz_bit:positive:=7;constant two_hz_val:positive:=125;signal clk_scan_ff:std_logic_vector(scan_bit-1 downto 0);signal clk_2hz_ff:std_logic_vector(two_hz_bit-1 downto 0);signal ena_s:std_logic;signal ena_one:std_logic;signal ena_two:std_logic;beginprocess(reset,clk)begin if reset=1 then clk_scan_ff=00; ena_s=scan_val-1 then clk_scan_ff=00; ena_s=1; else clk_scan_ff=clk_scan_ff+1; ena_s=0; end if; end if;end process;ena_scan=ena_s;process(reset,clk,ena_s)begin if reset=1 then ena_one=0; ena_two=0; clk_2hz_ff=two_hz_val-1 then clk_2hz_ff=0000000; ena_two=1; ena_one=not ena_one; else clk_2hz_ff=clk_2hz_ff+1; ena_two=0; ena_one=ena_one; end if; end if; end if;end process;ena_1hz=ena_one and ena_two and ena_s;flash_1hz=ena_one;end;2.计数秒数选择电路程序代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity hld2 isport(reset:in std_logic; clk:in std_logic; ena_scan:in std_logic; recount:in std_logic; sign_state:in std_logic_vector(2 downto 0); load:out std_logic_vector(7 downto 0);end;architecture bhv of hld2 isconstant redew_time:integer:=15;constant yellowew_time:integer:=5;constant greenew_time:integer:=25;constant redsn_time:integer:=15;constant yellowsn_time:integer:=5;constant greensn_time:integer:=25;beginprocess(reset,clk)begin if reset=1 then loadloadloadloadloadloadloadload=conv_std_logic_vector(yellowsn_time,8); end case; end if; end if; end process;end;3.倒计时控制电路程序代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity hld3 isport(reset:in std_logic; clk:in std_logic; ena_1hz:in std_logic; recount:in std_logic; load:in std_logic_vector(7 downto 0); led:out std_logic_vector(24 downto 0); next_state:out std_logic);end;architecture bhv of hld3 issignal cnt_ff:std_logic_vector(7 downto 0);beginprocess(clk,reset)beginif (reset=1) then cnt_ff=00000000; led=0000000000000000000000000;elsif (clkevent and clk=1) then if ena_1hz=1 then if (recount=1) then cnt_ff=load-1; else cnt_ffled(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24

温馨提示

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

评论

0/150

提交评论