已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于VHDL语言的交通灯控制器设计与实现摘要 VHDL是Very High Speed Integrated Circuit Hardware Description Language的缩写,意思是超高速集成电路硬件描述语言。对于复杂的数字系统的设计,它有独特的作用。它的硬件描述能力强,能轻易的描述出硬件的结构和功能。这种语言的应用至少意味着两种重大的改变:电路的设计可以通过文字描述的方式完成;电子电路可以当作文件一样来存储。随着现代技术的发展,这种语言的效益与作用日益明显,每年均能够以超过30%的速度快速成长。交通灯控制系统通常要实现自动控制红绿灯的变化,基于FPGA设计的交通灯控制系统电路简单、可靠性好。本系统可控制2个路口的红、黄、绿三盏交通灯。对于Max+Plus开发工具,它是美国Altera公司自行设计的一种CAE软件工具。他具有全面的逻辑设计能力,设计者可以自由组合文本、图形和波形输入法,建立起层次化的单器件或多器件设计。利用该工具配备的编辑、编译、仿真、综合、芯片编程等功能,将设计的电路图或电路描述程序变成基本的逻辑单元写入到可编程芯片中(如CPLD、FPGA),做成ASIC芯片。仿真实验结果表明了该编解码器的正确性和合理性。关键词:交通灯;控制器;VHDL;MAX+PlusAbstract VHDL is the Very Hight Speed Integrated Circuit Hardware Description Language acronym,meaning that high-speed integrated circuit hardware description language.For complex digital system design,it has a unique role.Its hardware descirption ability,can easily describe the structure and funtion of the hardware.The application of this language implies that at least two kinds of major changes:the design of the circuit can actually be completed by the manner described in the text;electronic circuits can be used as to store the same files.With modern technology,the benefits and role of this language has become more obvious every year to more than 30% of the rate of rapid growth.Traffic light control system is usually to achieve the automatic trafffic light changes,FPGA-based design of a traffic light control system circuit is simplem,and good reliability.The system can control two junctions of red,yellow,green,three traffic lights.For the Max-Plus II development tool,it is United States Alteras own design of a CAE software tools.It has a comprehensive logic design capabilities,designers can freely mix text,graphics,and waveform input method,set up hierarchical design of a single device or multiple devices.The use of the tool is equipped with the editing,compiling,simulation,synthesis,chip programming features such as the design of the circuit or circuit described procedure into the basic logic unit is written into the programmable chip(eg,CPLD,FPGA),made of ASIC chips.The simulation results show that the correct codec and rationality.Keywords: traffic light;controller,VHDL,MAX+PlusII目 录1 引言12 课题背景及相关技术22.1 Max+plusII简介22.2 VHDL语言简介32.3 VHDL设计的优点与设计方法53交通灯控制器分析73.1 分频器73.2 状态机84交通灯控制器的VHDL设计94.1程序流程图94.2交通灯顶层文件和管脚分配104.3分频器和状态机的图示符号114.4仿真波形图12附录13结束语17参考文献181引言在交通发达的当代,交通灯控制器无疑是最实用的的工具。为了使交通行驶有一个很高的效率,人工指挥交通已经显得效率不高,所以一个高智能的交通灯控制器是十分的必要的。交通灯的控制方式,是根据时间来改变状态,产生不同的控制信号以控制红、绿、黄三盏灯的开关,达到控制交通的目的。目前VHDL语言已成为EDA领域首选的硬件设计语言,越来越多的数字系统设计使用 VHDL语言来完成。原因是通过VHDL描述的硬件系统“软核”便于存档,程序模块的移植和ASC设计源程序的交付更为方便。因此,他在IP核的应用等方面担任着不可或缺的角色。在某扩频通信系统中,我们使用VHDL语言设计了交通灯控制器,并经过了在FPGA芯片上的验证实验。2课题背景及相关技术2.1 Max+plusII简介 Max+plusII(或写成Maxplus2或MP2) 是Altera公司推出的的第三代PLD开发系统(Altera第四代PLD开发系统被称为:Quartus,主要用于设计6万-100万门的大规模CPLD/FPGA)。使用MaX+PLUSII的设计者不需精通器件内部的复杂结构。设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语言)建立设计,MaX+PLUSII把这些设计转自动换成最终所需的格式。其设计速度非常快。对于一般几千门的电路设计,使用MaX+PLUSII,从设计输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。设计处理一般在数分钟内内完成。特别是在原理图输入等方面,Maxplus2被公认为是最易使用,人机界面最友善的PLD开发软件,特别适合初学者使用。通常可将Maxplus2设计流程归纳为以下7个步骤:(1)使用文本编辑器输入设计源文件。在传统设计中,设计人员是应用传统的原理图输入方法来开始设计的。自90年代初,Verilog、VHDL、AHDL等硬件描述语言的输入方法在大规模设计中得到了广泛应用。(2)前仿真(功能仿真)。设计的电路必须在布局布线前验证电路功能是否有效。(3)设计编译。设计输入之后就有一个从高层次系统行为设计向门级逻辑电路设转化翻译过程,即把设计输入的某种或某几种数据格式(网表)转化为软件可识别的某种数据格式(网表)。(4)优化。对于上述综合生成的网表,根据布尔方程功能等效的原则,用更小更快的综合结果代替一些复杂的单元,并与指定的库映射生成新的网表,这是减小电路规模的一条必由之路。(5)布局布线。(6)后仿真(时序仿真)需要利用在布局布线中获得的精确参数再次验证电路的时序。(7)生产。布线和后仿真完成之后,就可以开始ASCI或PLD芯片的投产。2.2 VHDL语言简介VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为ANSI/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为ANSI/IEEE的ANSI/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。VHDL的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language,翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。(1) VHDL应用目的VHDL的出现是为了适应电子系统设计的日益复杂性。若以计算机软件的设计与电路设计做个类比,机器码好比晶体管/MOS管;汇编语言好比网表;则VHDL语言就如同高级语言,VHDL在语法和风格上类似与现代高级编程语言,如C语言。但要注意,VHDL描述的是硬件,它包含许多硬件特有的结构。现在VHDL被广泛用于:电路设计的文档记录、设计描述的逻辑综合、电路仿真等。采用VHDL及自顶向下方法在大型数字系统设计中被广泛采用。在设计中你可采用较抽象的语言(行为/算法)来描述系统结构,然后细化成各模块,最后可借助编译器将VHDL描述综合为门级。 VHDL语言设计过程一般如下:a.代码编写;b.由综合器(Synplify,Synopsys等)综合成门级网表;c.前仿真/功能仿真;d.装配、布局/布线至某一类CPLD/FPGA;f.后仿真/时序仿真。 (2)VHDL的基本结构与语法使用库(use)定义区实体(Entity)定义区结构(Architecture)定义区。一个VHDL设计由若干个VHDL文件构成,每个文件主要包含如下三个部分中的一个 或全部: 程序包(Package)、实体(Entity)、构造体(Architecture)。 其各自作用如图2.1所示。图2.1 VHDL的基本结构但对于一个完整的VHDL设计必须包含一个实体和一个与之对应的构造体。一个实体可对应多个构造体,以说明采用不同方法来描述电路。a.实体(Entity)VHDL表达的所有设计均与实体有关,实体是设计中最基本的模块。设计的最顶层是顶层实体。如果设计分层次,那么在顶级实体中将包含较低级别的实体。 实体类似于一个方框图或黑匣子,而可见的是端口或连接的信号线。实体应包含以下信息:实体的名称、端口的模式(或端口的方向),即:in、out、in/out、buffer、端口的数据类型等。b.构造体(Architecture)所有能被仿真的实体都由一个构造体描述,构造体描述实体的行为功能, 即设计实体的内部功能。一个实体可以有多个构造体,构造体可为行为描述,也可为结构化描述或数据流的描述。构造体是VHDL设计中最主要部分,它一般由以下各部分构成,如图2.2所示。图2.2 构造体的结构 构造体的一般格式如下:architectureof is /构造体说明区域、说明构造体所用的内部信号及数据类型、果使用元件例化,则在此声明所用的元件begin /以下开始结构体,用于描述设计的功能current signal assihnments /并行语句信号赋值processes /进程(顺序语句描述设计)component instantiations /元件例化End;构造体(Architecture)描述的是实体中的具体逻辑,采用一些语句来描述设计的具体行为。因为语句中涉及到运算符,数据对象等,所以后面将分别说明。一个完整的、能够被综合实现的VHDL设计必须有一个实体和对应的构造体。一个实体和其对应的构造体可构成一个完整的VHDL设计。一个实体对应一个构造体或多个构造体。2.3 VHDL设计的优点与设计方法与传统的自底向上的设计方法不同,VHDL设计是从系统的总体要求出发,采用自顶向下(toptodown)的设计方法。其程序结构特点是将一项工程设计(或称设计实体),分成外部(即端口)和内部(即功能、算法)。在对一个设计实体定义了外部端口后,一旦内部开发完成,其他的设计就可以直接调用这个实体。本设计所用VHDL设计平台是Altera的MAX+Plus EDA软件。MAX+Plus界面友好,使用便捷;他支持VHDL,原理图,V语言文本文件,以及波形与EDIF等格式的文件作为设计输入;并支持这些文件的任意混合设计;具有门级仿真器,可以进行功能仿真和时序仿真,能够产生精确地仿真结果;支持除APEX20K,APX,Mercury,Excalibur和Stratix系列之外的所有Altera FPGA/CPLD大规模逻辑器件。设计中采用的FPGA器件是Altera的FLEX系列芯片FLEX 10K20。用MAX+Plus软件进行VHDL设计的过程是:(1)用Text Editor编写VHDL程序。(2)用Compiler编译VHDL程序。(3)用Waveform Editor,Simulater仿真验证VHDL程序。(4)用Timing Analyzer进行芯片的时序分析。(5)用Floorplan Editor安排芯片管脚位置。(6)用Programer下载程序至芯片FLEX10K20。 在实际的开发过程中,以上个步骤需反复进行,直至将既定的VHDL设计通过所有的测试为止。3交通灯控制器分析位于十字路口的交通灯,在A方向和B方向各有红、黄、绿三盏灯,按下表所列顺序进行循环。其中1表示灯亮,实验中,假设交通灯按照10s的节拍工作,各个灯亮的时间相等。交通灯的真值表如图3.1: A方向 B方向红灯 黄灯 绿灯 红灯 黄灯 绿灯 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0图3.1 交通灯的真值表交通灯,是当代交通运输中最常用的工具。它把一个输入信号,根据时间片分为三个输出。通常,每个输出信号控制一盏交通灯。A,B两个方向的交通灯相互影响。两个方向上控制绿灯或红灯的信号不能同时为1。当A的红灯信号为1时,B方向的红灯信号一定为0,此时B的绿或黄两灯有且只有一个信号量可以为1,如果是黄灯为1,那么下一跳A方向的路灯一定为1,而B方向的红灯一定为1,各个状态如图3.1。 交通灯控制器的一般结构包括两部分:一个分频器,用一个计数器实现分频,一个计数到5,电平翻转一次实现10分频,一个计数到4,电平翻转一次实现8分频。另一个是状态机,根据分频器提供的两个信号Q1,Q2,进行状态输出,控制交通灯电平。3.1 分频器在本设计中,分频器是一个把时钟信号通过计数器根据时间片段分为几个输出信号的设备。实现分频功能的电路称为分频器。分频器的一般框图如图3.1所示。它的输入信号是一个时钟信号。 CLK Q1 Q2图3.1 分频器的一般框图3.2状态机状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出于对状态机的内在因果关系的考虑。“现态”和“条件”是因,“动作”和“次态”是果。详解如下:现态:是指当前所处的状态。条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。状态机的框架如图3.2所示。 MOORE . . . CLK EN0DIN EN1 DATAOUT5.0图3.2交通灯状态机原理框图:4交通灯控制器的VHDL设计4.1程序流程图交通灯控制器程序流程图如图4.1:时钟信号的输入信号分频状态转移10分频8分频状态输出为011110,A方向红灯亮,B绿灯亮状态输出为011101,A方向红灯亮,B黄灯亮状态输出为101101,A方向黄灯亮,B黄灯亮状态输出为011110,A方向红灯亮,B绿灯亮状态输出为011101,A方向红灯亮,B黄灯亮状态输出为101101,A方向黄灯亮,B黄灯亮状态输出为101011,A方向黄灯亮,B红灯亮状态输出为110011,A方向绿灯亮,B红灯亮图4.1 交通灯控制器程序流程图交通灯分频器程序流程图如图4.2时钟信号CLK的输入temp2电平翻转一次实现10分频temp1计数到5temp4电平翻转一次,实现8分频temp3计数到4temp2信号接到Q1端口temp4信号接到Q2端口图4.2 交通灯分频器程序流程图4.2交通灯顶层文件和管脚分配(1)交通灯顶层文件如图4.3 FENPIN MOORE CLK EN0DIN EN1 DATAOUT5.0 CLK Q1 Q2 EN0 EN1 DATAOUT图4.3 交通灯顶层文件(2)管脚分配如图4.4CLKDATA0DATA1DATA2DATA3DATA4DATA5EN0EN121819172324252122图4.4 管脚分配4.3分频器和状态机的图示符号(1) 用MaX+Plus编译后生成的分频器图形符号如图4.5所示图4.5 分频器图形符号(2)用MaX+Plus编译后生成的状态机图形符号如图4.6所示。图4.6解码器图形符号4.4仿真波形图交通灯分频器VHDL仿真波形如图4.7所示。波形分析图的结果,与理论分析结果一致。图4.7分频器VHDL仿真波形状态机VHDL仿真波形如图4.8所示。状态机输出波形的输出结果,与理论分析结果一致。图4.8交通灯控制器VHDL仿真波形附录:分频器和状态机的VHDL描述和仿真波形图 (1)分频文件的VHDL描述(实现10s一个节拍Q1和状态控制信号Q2)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport(clk:in std_logic;q1,q2:out std_logic);end fenpin;architecture beha of fenpin issignal temp1,temp3:std_logic_vector(2 downto 0);signal temp2,temp4:std_logic;begin process(clk)begin if(clkevent and clk=0)thenif temp1=”100”thentemp2=not temp2; temp1=”000”; else temp1=temp1+1; end if; emd if;end process;process(temp2) beginif temp2event and temp2=0 then if temp3=”001”thentemp4=not temp4;temp3=”000”;else temp3=temp3+1; end if;end if;end process; q1=temp2; q2if din =0thenstateif din=0 thenstate=s3;else stateif din=0 thenstate=s4; else stateif din=0 thenstate=s5;else stateif din=1 thenstate s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 转让货架定金合同范本
- 运维劳务外包合同范本
- 送煤气合同协议书范本
- 速冻食品运输协议合同
- 道路保洁承包合同范本
- 酒吧营业外包合同范本
- 酒店转让意向合同范本
- 酒店饭店转让合同范本
- 上市国企参股协议书
- 实施框架协议
- 光声成像诊断肝脏疾病
- 材料科学与工程导论智慧树知到期末考试答案章节答案2024年华南理工大学
- 《春》说课课件(新)
- 癸酉本石头记
- 人文成都智慧树知到期末考试答案章节答案2024年成都师范学院
- 研学旅行主题活动设计案例
- 《因果推断实用计量方法》大学教学课件-双重差分法
- 无期限的六合公式汇编
- 先张法预应力混凝土管桩基础技术规程
- G50058爆炸危险环境电力装置设计规范新老对比
- 2023年光器件工艺工程师年终总结及下一年展望
评论
0/150
提交评论