




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京师范大学本科生毕业论文PAGE 北京师范大学成人(chng rn)高等教育2013届本科生毕业论文(b y ln wn)(设计)论文(lnwn)题目基于可编程逻辑器件CPLD的交通控制系统 学生姓名: 专业名称: 电子信息科学与技术学 号: 201113210005指导教师: 完成时间: 2013-07-27摘 要本设计是采用(ciyng)可编程逻辑器件CPLD为核心,结合VHDL语言和Altera公司开发的MAX+PLUS软件实现交通信号灯的控制。本系统除了交通灯的基本功能外,还具有时间显示倒计时和紧急情况处理(chl)功能。在程序的设计中,分析控制交通的多种原理,用传统的方法去实现难度
2、较大,因此,采用可编程逻辑器件为核心器件,用硬件语言(yyn)编程对交通信号灯功能进行描述。可编程逻辑器件CPLD往往作为一个核心器件,是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。本系统的控制功能由4个模块组成,分别对各模块进行功能描述分析和仿真,在仿真结果正确后,生成综合文件,对综合文件仿真、分析,最终实现交通信号灯的控制。此系统是采用层次化设计,利用层次化设计方法实现自顶向下的设计,先组建底层文件,然后进行顶层设计,思路明确,过程简单明了。关键词:EDA,CPLD,VHDL语言目 录 TOC o 1-3 h z u HYPERLINK I:07本电辛刚002辛刚 毕业设计(b
3、y sh j).doc l _Toc229930656#_Toc229930656 前 言 PAGEREF _Toc229930656 h 1 HYPERLINK I:07本电辛刚002辛刚 毕业设计(b y sh j).doc l _Toc229930657#_Toc229930657 第1章 交通灯控制器的设计方案 2 HYPERLINK I:07本电辛刚002辛刚 毕业设计(b y sh j).doc l _Toc229930658#_Toc229930658 1.1设计要求 2 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930659#_Toc2
4、29930659 1.2设计过程 3 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930660#_Toc229930660 第2章 可编程逻辑器件CPLD的简介及EDA概述 4 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930661#_Toc229930661 2.1 CPLD器件特点及结构 4 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930666#_Toc229930666 2.2 EDA技术 4 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l
5、_Toc229930668#_Toc229930668 第3章 VHDL语言及交通灯控制器的源程序 5 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930669#_Toc229930669 3.1 VHDL硬件语言的基本结构 5 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930670#_Toc229930670 3.2交通灯控制器的源程序 5 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930671#_Toc229930671 3.2.1设计说明 5 HYPERLINK I
6、:07本电辛刚002辛刚 毕业设计.doc l _Toc229930672#_Toc229930672 3.2.2各模块的源程序 6 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930673#_Toc229930673 第4章 MAX+PLUS系统下交通灯的功能实现 7 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930675#_Toc229930675 4.1 MAX+PLUS的设计过程 7 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930676#_Toc22993067
7、6 4.2交通灯控制器的功能实现 8 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930677#_Toc229930677 4.2.1控制模块的功能实现 PAGEREF _Toc229930677 h 8 HYPERLINK I:07本电辛刚002辛刚 毕业设计(b y sh j).doc l _Toc229930678#_Toc229930678 4.2.2分频(fn pn)、提取显示值、显示器译码模块的功能实现 13 HYPERLINK I:07本电辛刚002辛刚 毕业设计(b y sh j).doc l _Toc229930679#_Toc2299
8、30679 4.2.3层次化设计 15 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930680#_Toc229930680 第5章 结 论 18参考文献 HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930680#_Toc229930680 19 附 录 A HYPERLINK I:07本电辛刚002辛刚 毕业设计.doc l _Toc229930680#_Toc229930680 20前 言 1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用以指挥(zhhu)马车通行。这是世界上
9、最早的交通信号灯。1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止(tngzh)”,绿灯(ldng)亮表示“通行”。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,红灯是禁行信号,黄灯是警告信号。删除空行如今十字路口车辆穿梭,车辆与行人各行其道,有条不紊,秩序井然,靠的正是交通信号灯的自动指挥系统。它的出现使交通得以有效管制,对于疏导交通流量、提高道路通行能力、减少交通事故都有明显效果。随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。道路拥挤现象日趋严重。现在交
10、通系统已不能满足经济发展的需求。由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。在交通管理中引入可编程逻辑芯片控制电路,替代了交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。 中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市的交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。 第1章 交通灯
11、控制器的设计方案本项(bn xin)设计是围绕电子设计自动化(EDA)为核心展开的数字系统设计。实施的方案是基于可编程逻辑(lu j)器件CPLD的交通控制系统,采用硬件语言VHDL进行编程,选用Altera公司开发的MAX+PLUS软件对硬件语言(yyn)编译、综合、仿真,最终实现对交通信号灯的控制。1.1 设计要求显示十字路口东西、南北2个方向的红、黄、绿灯的指示状态。交通灯示意图如图1-1所示标点符号图1-1 交通灯现场示意图 实现正常的倒计时功能。用两组数码管作为东西和南北方向的倒计时显示,显示时间为红灯25s、绿灯20s、黄灯5s。交通灯状态变化如表1-1所示。表1-1交通灯的状态变
12、化计数状态东西A路口显示灯状态南北B路口显示灯状态1-20s绿灯亮红灯亮21-25s黄灯亮红灯亮26-45s红灯亮绿灯亮46-50s红灯亮黄灯亮交通灯控制时序(sh x)图。根据交通灯状态变化可画出如图1-2所示的时序图。图1-2 时序(sh x)图1.2 设计(shj)过程根据设计任务系统共分为四个模块:分频模块、控制模块、提取显视值模块、显视器译码模块。其中分频模块对20M晶振输出的脉冲进行分频得到10Hz和1Hz的脉冲;控制模块是整个设计的核心,实现逻辑和时序控制对输入的脉冲进行,当交通灯的四个状态循环一次后为一个计数周期50S,每个计数周期完成后进行清零,当遇到紧急情况时,应对系统进行
13、特殊控制,输入一个控制信号,计数状态保持,四个路口均显示红灯,控制信号取消后,系统进入正常状态,计数器继续计数;提取显示值模块对控制模块的计数值输出进行分析提取两种信号,一种信号供给译码器显示十位数,另一种信号供给译码器显示个位数;显示模块将提取显示值模块输出的信号进行译码,在显示器上显示计数值。交通信号灯的设计流程如图1-3所示:该为句号分频模块硬件语言描述编译、仿真对仿真图分析控制模块硬件语言描述提取显视值模块硬件语言描述显示器译码模块硬件语言描述编译、仿真编译、仿真编译、仿真生成顶层文件 图形输入编译、仿真对仿真图分析得出结论图1-3 交通(jiotng)信号灯的设计流程图第2章 可编程
14、逻辑器件CPLD的简介(jin ji)及EDA概述改为“CPLD简洁以及EDA概述”CPLD(用中文标点符号Complex Programmable Logic Device)用中文标点符号复杂可编程逻辑器件,是从PAL和GAL器件发展出来(ch li)的器件,相对而言规模大结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆将代码传送到目标芯片中,实现设计的数字系统。2.1 CPLD器件特点及结构CPLD具有编程灵活、集成度高、设计开发周期短、适用范围宽、
15、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件,CPLD器件已成为电子产品不可缺少的组成部分。CPLD是结构比较复杂的可编程逻辑器件,逻辑宏单元内部主要包括与或阵列、可编程触发器和多路选择器等电路,能独立地配置为时序或组合逻辑工作方式。CPLD器件的宏单元在内部,称为内部逻辑宏单元。CPLD除了密度高之外,许多优点都反映在逻辑单元上。2.2 EDA技术进入20世纪90年代后,电子
16、系统已经从电路板级系统集成发展成为包括ASIC、FPGA和嵌入系统的多种模式,EDA产业已经成为电子信息类产品的支柱产业。EDA的蓬勃发展离不开设计方法学的进步,是以计算机硬件和软件为基本工作平台,集数据库、图形学、图论与拓扑逻辑、计算数学、优化理论等多学科最新成果研制的计算机辅助设计通用软件工具,过去几十年内IC设计方法主要包括以下几个阶段。(1)手工设计(Hand Design):手工设计的上标主要是进行组合逻辑的优化和简化。(2)电路仿真(Circuit Simulation):这里的电路指IC中的晶体管电路。在20世纪70年代早期,像Calma这样(zhyng)的公司就把数学化系统推向
17、了市场,并采用Spice来进行电路仿真。(3)原理图输入和逻辑仿真(Schematic Capture and Logic Simulation):工作站技术与图形用户界面的结合让电路设计师能够直接用原理图输入工具来描述(mio sh)他们的设计。(4)布局和布线(PlacementRouting):从20世纪80年代开始,功能强大的IC布局工具开始出现,包括自动布局布线、设计规则检查、布局与原理图一致性检查等。同时,VerilogHDL和VHDL等硬件描述语言的诞生促进了逻辑(lu j)和寄存器传输级仿真器的发展。(5)综合(Synthesis):在1987年发布了商用的逻辑综合工具,这款工
18、具帮助设计师自动将网表映射到各个不同单元库上。第3章 VHDL语言及交通灯控制器的源程序3.1 VHDL硬件语言的基本结构一般来讲一个完整的VHDL语言程序通常包括实体声明(Entity Declaration)、结构体 (Architecture Body)、配置(Configuration)、程序包(Package)和库(Library)五个组成部分。在VHDL语言程序上述五部分中,实体和结构体是VHDL语言程序的基本结构。本章将对VHDL语言程序的基本结构实体说明和结构体进行详细介绍,关于库、程序包和配置的知识也进行了简单介绍。VHDL语言程序是对一个设计单元的基本描述,通常把这个设计单
19、元称为设计实体。VHDL语言把这个设计单元作为一个设计实体来处理,一个设计实体只能唯一地对应一个设计单元。一个基本设计单元或者说是设计实体,可以是一个复杂的数字电子系统,也可以是一个数字单元或芯片,甚至还可以是一个简单的基本门电路。但是,不管是复杂的数字电子系统还是简单的门电路,它体现的基本构成都是一样的。它们都是由实体说明和结构体两部分组成的。虽然说一个实体说明可以对应多个结构体,但是通常要求一个独立的VHDL语言程序文件只能由一个实体和一个结构体组成,成为实体结构体对,设计时必须完全适应VHDL综合器的要求,使VHDL程序牢固根植于可行的硬件实现中。3.2交通灯控制器的源程序本设计共包含了
20、四个模块:控制模块(controller)、分频模块(frenquency10hz和frenquency)、提取显示值模块(fenwei)和显示器译码模块(display)。其中controller是整个设计的核心,实现逻辑和时序控制;时钟控制模块对系统进行分频,得到10hz和1hz的时钟;提取显示值模块对控制模块输出的计数值进行分解,得到两个路口倒计时时间显示的十位和个位的信号;显示模块对输入进行译码得到七段显示器的驱动信号。各个子模块用独立的实体构成,独自完成各自功能,下面给出各个模块的VHDL源程序。3.2.1设计说明本设计(shj)采用从上而下的层次化设计风格。下面(xi mian)是
21、端口说明:CLK20M:输入,系统(xtng)输入时钟,来自于石英晶体振荡器;Hold:输入,功能键,保持;Reset:输入,功能键,复位;Flash:输出,转换期间的闪烁信号;RedA:输出,A路口显示红灯信号,高电平有效;GreenA:输出,A路口显示绿灯信号,高电平有效;YellowA:输出,A路口显示黄灯信号,高电平有效;RedB:输出,B路口显示红灯信号,高电平有效;GreenB:输出,B路口显示绿灯信号,高电平有效;YellowB:输出,B路口显示黄灯信号,高电平有效;DisplayA:A路口倒数时间显示十位数;DisplayB:A路口倒数时间显示个位数;DisplayC:B路口倒
22、数时间显示个位数;DisplayD:B路口倒数时间显示个位数;3.2.2各模块的源程序程序添加程序功能描述文字以及程序功能框图见附录A第4章 MAX+PLUS系统(xtng)删除“系统”下交通灯的功能(gngnng)改为“功能的”实现(shxin)4.1 MAX+PLUS的设计过程MAX+PLUS的设计可用图4-1表示,其中各方框图标明了所完成的功能。设计输入项目编译功能/时序仿真项目校验编程/配置项目编程图4-1 MAX+PLUS的设计(shj)流程1. 设计(shj)输入有段文字描述输入什么2. 项目(xingm)编译为完成对设计的处理,MAX+PLUS提供了一个完全集成的编译器(Comp
23、iler),它可以直接完成从网表提取到最后编程文件的生成。在编译过程中其生成一系列可进行时序模拟、适配的标准文件。若在编译的某个环节出错,编译器会停止编译,并告知错误的原因及位置。图4-2即为MAX+PLUS编译器编译的过程。图4-2 MAX+PLUS编译器编译过程3项目校验对设计项目功能、时序进行仿真和时序分析,判断输入输出间的延迟。4项目编程将你的设计下载/配置到你所选的器件中去。4.2交通灯控制器的功能实现本项设计共包含了四个模块,上一章已对各个模块的功能用硬件语言进行了描述,下面就对各模块进行编译、仿真等过程来实现其功能。底层文件采用文本输入方式,顶层文件采用波形图输入方式。由于MAX
24、+PLUS软件的局限性,在仿真过程中输入脉冲信号的频率与实际的频率不符,在仿真时的脉冲信号只起参考作用,以其为基准,而得出相应的结论。4.2.1控制模块的功能实现1项目(xingm)建立与文本输入(1)项目(xingm)建立启动(qdng)MAX+PLUS软件选择File|Project|Name命令, 在directories选项区选中刚才为项目所建的目录;在Project Name文本框中键入项目名,此处为controller。单击OK按钮,确定。(2)文本输入建立文本输入文件:选择File|New命令。单击Text Editor file单选按钮后,单击OK按钮,即可开始建立文本输入文件
25、。(3)保存文件选择File|Save命令,在File Name后填写文件名controller,扩展名为“.vhd”,单击OK按钮。 文件保存后,执行File|Create Default Symbol命令,可生成符号controller,即将已设计的控制模块编译成库中的一个元件。2项目编译完成设计文件输入后,可开始对其进行编译。选择MAX+PLUS|Compiler命令,即可打开编译器。单击Star按钮,就可开始编译。编译成功后可生成时序模拟文件及器件编程文件。若有错误,编译器将停止编译,并在下面的信息框中给出错误信息,双击错误信 息条,一般可给出错误之处。3项目校验编译器通过Timing
26、 SNF Extractor后就可进行时序模拟了,其步骤如下:(1)建立波形输入文件(也称模拟器通道文件SCF)。选择File|New命令,打开新建文件类型对话框,选择Waveform Editor File(.scf)选项后单击OK按钮。在波形编辑器窗口的Name下空白处单击鼠标右键,出现浮动菜单。选择Enter Nodes from SNF选项,可打开Enter Nodes from SNF(从SNF文件输入观测节点)对话框。在Type选项区域选择Inputs和Outputs复选框,默认情况下已选中。单击List按钮,可在Available Nodes Groups列表框中看到在我们设计中
27、的输入、输出信号,这些信号为蓝色高亮,表示被选中。单击 可将 这些信号选择到Selected Nodes Groups列表框中,表示可对这些信号进行观测。图4-1 列出输入/输出信号单击OK按钮,关闭(gunb)图4-1的对话框。窗口变为如图4-2。图4-2 波形文件中的输入/输出(shch)信号选择File|Save选项,将此波形(b xn)文件保存为默认名controller.scf,扩展名“.scf”表示模拟通道文件。(2)编辑输入节点波形,即为输入信号建立输入波形。在波形文件中添加好输入/输出信号后,就可开始为输入信号建立输入波形。在建立输入波形之前,先浏览一下与此操作相关的菜单选项及
28、工具条。如图4-3和图4-4所示。 图4-3 绘图网格设置菜单条 图4-4 网格大小设置对话框此外(cwi),在默认情况下,模拟时间为1s。可选择File|End Time选项来设置模拟(mn)时间的长短。为信号(xnho)reset和hold信号赋值。选中reset信号从500ns到700ns赋值1,hold信号从150ns到300ns赋值1,即用鼠标左键单击 即可图跑了;其余时间段软件将默认为低电平,赋值0。为时钟信号clk赋周期为50ns的时钟信号。选中信号clk,设置信号周期。用鼠标左键单击工具条中 按钮,可打开如图4-5所示的对话框;单击OK按钮,关闭此对话框即可生成所需时钟。图4-
29、5 时钟周期设置对话框选择File|Save命令,存盘。到此完成波形输入,得到如图4-6所示图形。图4-6 建好的输入波形图(3)运行模拟器,进行时序模拟。选择MAX+PLUS|Simulator命令,即可打开模拟器,如图4-7所示。单击Start按钮,即可开始模拟。模拟完毕后,单击Open Scf按钮,可找开刚才编辑的波形文件,就可开始对模拟结果进行检查。图4-7 模拟器仿真完成后波形(b xn)模拟文件如图4-8所示。图4-8 控制模块(m kui)仿真模拟结果(4)为观测(gunc)方便,可将计数输出numa4、3、2、1、0作为一个组来观测,步骤如下:将鼠标移到Name选项区的numa
30、4上,按下鼠标左键并往下拖动鼠标至numa0处。松开鼠标左键,可选中信号numa4、3、2、1、0;在选中区(黑色)上单击鼠标右键,打开一个浮动菜单,选择Enter Group选项,出现图4-9所示的对话框;图4-9 设置组的对话框单击OK按钮,关闭此对话框,可得到(d do)如图4-10所示的波形图文件。现在观测就容易了。 图4-10 控制模块(m kui)仿真结果(以组的方式显示)图4-10所示的波形图即为控制模块仿真通过后的结果,通过上图体现了控制模块的功能。numa和numb分别为A、B路口(lku)的计数值,redb与 greena对应,reda 与greenb对应。从仿真图中可以看
31、到:当reset,hold信号为低电平时,且第一个脉冲的上升沿到来时,计数器countnum开始计数,A路口绿灯亮,开始20s的倒计时,B路口红灯亮,开始25s的倒计时,numa,numb分别为A路口绿灯和B路口红灯燃亮时间计时。当reset信号为高电平时,计数器清零,A、B路口回到初始状态;当hold信号输入为高电平时,A、B路口的红灯显示,并且闪烁,计数器停止计数,保留原状态,hold信号取消后,继续前一状态工作。4.2.2分频、提取显示值、显示器译码模块的功能实现1分频模块frequency分频模块的模拟过程与控制模块的模拟过程一样,仿真完成后,得到图4-11所示波形图。图4-11 分频
32、(fn pn)模块仿真结果图4-21所示的波形图即为分频模块(m kui)仿真通过后的结果,起到了分频的作用,得到1hz的时钟信号。从仿真图中可以看到输入脉冲的频率为10hz,当上升沿到来之后开始计数,第十个脉冲到来时,输出翻转一次,输出脉冲的频率为1hz。仿真出的结果符合设计要求。2提取(tq)显示值模块fenwei提取显示值模块仿真后得到图4-12所示波形图:图4-12 提取显示值模块仿真结果仿真后得到时间显示的十位数和个位数,numin为计数值,numa为译码器的十位显示,numb为译码器的个位显示。当脉冲上升沿到来时,numa(十位数)、numb(个位数)开始分新numin的计数值,当
33、计数值大于20时,十位数为2,个位数为:计数值减20;当计数值大于10时,十位数为1,个位数为:计数值减20;当计数值小于10时,十位数为0,个位数为:计数值。从仿真图中可以看到分位后的数值如表4-1所示。表4-1 分位后的显示数值numin计数值numa十位数numb个位数H142 0H13H0A190H09H05095通过表4-1的数值分析,仿真结果符合设计要求。3显示器译码模块display显示器译码模块仿真后得到图4-13所示波形图:图4-13 显示器译码模块(m kui)仿真结果 (1)在时钟信号上升沿到来时,译码器开始对显示器译码模块输出的分位信号进行(jnxng)译码。七段译码器
34、结构如图4-14所示。当abcdefg为高电平时数码管发光。图4-14 七段译码器结构图(2)七段译码器的真值表H0H9的二进制输入(shr)经译码后得出的输出值如表4-2所示。表4-2 七段译码器的真值表输 入输 出 输 出四位二进制码abcdef用十六进制表示00001111110H7E00010110000H3000101101101H6D00111111001H7901000110011H3301011011011H5B01100011111H1F01111110000H7010001111111H7F10011110011H73从仿真图中可以看到:A. flash信号为高电平有效,当
35、输入为高电平时,等第十个脉冲到来后显示器闪烁一次。B. H0H9经译码后分别为7E,30,6D,79,33,5B,1F,70,7F,73与设计要求符合。4.2.3层次化设计数字系统设计(shj)的一般方法是采用自顶向下的层次化设计。在MAX+PLUS软件中,可利用层次化设计方法来实现自顶向下的设计。一般在电路的具体(jt)实现时先组建底层设计,然后进行顶层设计。1层次(cngc)设计过程以图形输入为例,看一下层次设计的过程。前面已经完成了底层设计,对交通灯的各个模块进行了编译、仿真的模拟过程,下面来完成顶层设计。(1)建立一个新的图形文件,保存为light.gdf。(2)选择File|Proj
36、ect/Set project to Current File选项,将其指定为项目文件。(3)打开Enter symbol对话框,调入controller、 frequency、frequency10hz各一次,fenwei两次,display四次,经适当连接构成顶层设计文件,如图4-25所示,在图中,双击各个元件,可打开各元件的底层文件。(4)对顶层文件light.gdf构成的项目light进行编译,仿真,最后配置完成此设计。图4-15 light.gdf文件(5)顶层文件light.gdf仿真后的波形分析仿真波形如图4-16所示。图4-16 顶层文件(wnjin)的仿真波形从仿真(fn z
37、hn)图上可以看到:(1)当hold信号为高电平时,A、B路口(lku)的红灯为高电平,并且闪烁,黄灯、绿灯无效,时间显示无效。(2)当hold信号取消后,即为低电平时,系统进入正常状态开始计数,第一个脉冲上升沿到来时,A路口绿灯为高电平,B路口红灯为高电平,此时显示器开始时间倒计时。(3)display a display b 分别为A路口的十位和个位显示, display c display d 分别为B路口的十位和个位显示。(4)A路口绿灯亮从20开始倒计时,绿灯亮的时间为20s, B路口红灯亮从25开始倒计时,红灯亮的时间为25s。通过上述仿真,结果表明了,本设计达到了预期的目的,实现
38、了交通信号灯基本功能。现在完成了整个设计,此时可单击工具条中 按钮或选择MAX+PLUS|Hierarchy display 选项,打开一个窗口,如图4-17所示。在其中可看到最顶层light.gdf调用了一个controller、 frequency和frequency10hz,两个fenwei,四个display。双击任何一个小图标,可打开相应文件。 图4-17 项目(xingm)light的层次结构2. 层次化设计(shj)的指导思想(1)同一(tngy)设计项目中,顶层设计文件名及各底层符号所对应的设计文件名必须是唯一的,不允许有重名的文件。(2)计时自动地将当前设计项目文件定为顶层设
39、计文件。(3)顶层设计文件可通过的符号所代表的文件为底层设计文件。(4)顶层设计文件可通过创建默认符号(打包)的方法降为底层设计文件,供其他顶层文件调用。(5)在同一设计项目中,不允许出现顶层文件或符号文件自身递归调用,允许顶层及顶层文件单向调用底层设计符号,不允许出现顶层文件与符号文件之间及符号文件之间的直接相互调用或间接相互调用。(6)硬件描述语言的设计文件可通过调用包含文件的方法实现层次设计输入。此时,应通过建立默认符号的方法形成底层设计文件。第5章 结 论本项(bn xin)设计是基于可编程逻辑器件CPLD的交通控制系统,充分体现了CPLD编程灵活、集成度高、对设计者的硬件(yn ji
40、n)经验要求低、开发工具先进等特点(tdin),利用了硬件语言VHDL进行编程,选用Altera公司开发的MAX+PLUS软件对硬件语言编译、综合、仿真来实现交通灯控制器,实现了设置红、绿灯燃亮时间的功能;红绿灯循环点亮,红绿灯时间可通过双位数码管显示。系统不足之处在于不能控制车的左转、右转、以及自动根据车流改变红绿灯时间等。如果有需要可以设计扩充原系统来实现。参考文献1刘婷婷(tn tn) 李军电子设计自动化(EDA)北京师范大学出版社20072李国洪 沈明山可编程器件EDA技术与实践机械(jxi)工业出版社20043阎石数字(shz)电子技术基础高等教育出版社19974刘明生信息技术基础河
41、北大学出版社20025任晓东 文博CPLD/FPGA高级应用开发指南北京:电子工业出版社20036甘历VHDL应用与开发实践北京:科学出版社20037侯伯亭 顾新VHDL硬件描述语言与数字逻辑电路设计西安:西安电子科技大学19978宋俊德 辛德禄可编程逻辑器件CPLD原理及应用北京:电子工业出版社20029齐清喜 陆颖VHDL电路设计实用教程北京:清华大学出版社200410曾繁泰 陈美金VHDL程序设计北京:清华大学出版社200011林明权等VHDL数字控制系统设计范例北京:电子工业出版社2003附 录 A各模块(m kui)的源程序1. 控制(kngzh)模块(controller)libr
42、ary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity controller isport(clock:in std_logic; reset:in std_logic; hold:in std_logic; flash:out std_logic; numa,numb:out integer range 0 to 25; -注释的符号不对,是/ 整数(zhngsh)范围0到25 reda,greena,yellowa:out std_logic; redb,greenb,yellowb:out s
43、td_logic);end;architecture control of controller issignal countnum:integer range 0 to 50;begin process(clock)begin if reset=1 then -复位信号,将计数器清零所有注释对齐 countnum=0; elsif rising_edge(clock) then -上升沿有效 if hold=1 then flash=1; else flash=0; if countnum=49 then -计数到50时计数器清零 countnum=0; else countnum=coun
44、tnum+1; -正常计数,计脉冲上升沿 end if; end if; end if;end process;process(clock)begin if rising_edge(clock) then if hold=1 then -hold信号(xnho)有效期间,两组路灯都为红灯 reda=1; redb=1; greena=0; greenb=0; yellowa=0; yellowb=0; else -hold无效(wxio)期间,系统行为:按照一个计数周期50s描述路灯的动作 if countnum=19 then -前20s,a灯为绿 numa=20-countnum; red
45、a=0; greena=1; yellowa=0; elsif (countnum=24) then -21到25s,a灯为黄 numa=25-countnum; reda=0; greena=0; yellowa=1; else numa=50-countnum; -26到50s,a灯为红 reda=1; greena=0; yellowa=0; end if; if countnum=24 then -0到25s(a灯为绿、黄期间(qjin)),b灯为红 numb=25-countnum; redb=1; greenb=0; yellowb=0; elsif countnum=44 the
46、n -26到45s,b灯为绿 numb=45-countnum; redb=0; greenb=1; yellowb=0; else numb=50-countnum; -46到50s期间,b灯为黄 redb=0; greenb=0; yellowb=1; end if; end if; end if; end process;end;程序说明:控制模块描述了功能(gngnng)键hold和reset的功能;同时对1hz的时钟进行计数,通过计数值,对各个时间段内交通信号灯进行描述;给出了下一步用于倒计时的信号numa和numb。2分频(fn pn)模块 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity frequency10hz isport (clk20m:in std_logic; clk10hz:out std_logic );end;architecture count of frequency10h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年辽宁省大连市庄河市数学三年级第一学期期末监测模拟试题含解析
- 2024年娄底市冷水江市三年级数学第一学期期末统考试题含解析
- 2024年吉林省长春汽车经济技术开发区第五学校数学三上期末质量检测试题含解析
- 2025年执业护士考试趋势及试题答案
- 主管护师信心提升的试题及答案
- 药师职业道德与试题及答案
- 2025年药师考试考场应对策略试题及答案
- 2025年执业医师考试真题预测试题及答案
- 护理教育改革的方向试题及答案
- 行政法学对于青年法律人才培养的影响试题及答案
- 渣土公司运输车辆管理制度
- 2025-2030中国电力薄膜电容器行业市场发展趋势与前景展望战略研究报告
- 中石化员工合同范例
- 2025中考语文常考作文押题(10大主题+10篇范文)
- YY频道模板文档
- 汽车营销专业毕业论文
- 2025年安全带考试题及答案
- 2025年中国VOC治理市场深度评估研究报告
- TCHSA 090-2024 年轻恒牙根尖诱导成形术操作专家共识
- 2025年农业合作社廉政风险点及防控措施
- 20以内乘法除法口算练习卷1000道可打印
评论
0/150
提交评论