1、交通灯控制系统基于VHDL的描述 与仿真课程设计报告题 目: 交通灯系统的VHDL的描述与仿真学生姓名: XX 学生学号: 100XXXXX 系 别: 电气信XXXXXXXX 专 业: 电子信息科学与技术 届 别: 2014届 指导教师: XXX 电气信息工程学院制2013年5月目录1 课程设计的任务与要求 11.1课程设计的任务 11.2课程设计的要求 11.3 课程设计的研究基础 12 maxplus2软件介绍 22.1 maxpuls2概述 22.2 maxplus2 特点 22.3 Maxplus2 使用介绍 33 交通灯系统仿真和调试 43.1系统设计要求 43.2 系统整体设计 5
2、3.3 主要功能模块设计及仿真 63.4 仿真结果总结 134 总结 144.1 设计小结 144,2 收获体会 14参考文献 14交通灯控制系统的VHDL描述与仿真学生:XX指导教师:XX电气信息工程学院 XXXXX与技术专业1 课程设计的任务与要求1.1课程设计的任务设计一个十字路口的交通灯控制系统,交通灯控制系统输入信号为时钟CLK和复位信号RESET。输出端为1。1.2课程设计的要求本文设计的交通方向红灯、绿灯时间由系统设定值。交通灯控制器控制两个方向交叉路口的交通,以秒为单位,采用倒计时的方式显示通行或者禁止通行的剩余时间。系统设置外部输入复位信号,复位信号有效时,控制信号处于东西方
3、向绿灯状态,并读取设定输入值,再将复位信号返回无效状态后,绿灯变至红灯时,黄灯亮,以便于车辆能停在停车线内。1.3 课程设计的研究基础用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。现代的数字电路半导体工艺制成的若干数字集成器件构造而成。逻辑门是数字逻辑电路的基本单元。存储器是用来存储二进制数据的数字电路。从整体上看,数字电路可以分为组合逻辑电路和时序逻辑电路两大类。EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅
4、助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作VHDL的出现是为了适应电子系统设计的日益复杂性。若以计算机软件的设计与电路设计做个类比,机器码好比晶体管/MOS管;汇编语言好比网表;则VHDL语言就如同高级语言,VHDL在语法和风格上类似与现代高级编程语言,如C语言。但要注意,VHDL描述的是硬件,它包含许多硬件特有的结构。现在VHDL
5、被广泛用于:电路设计的文档记录、设计描述的逻辑综合、电路仿真等11。2 maxplus2软件介绍2.1 maxpuls2概述Max+plusII(或写成Maxplus2,或MP2) 是Altera公司推出的的第三代PLD开发系统(Altera第四代PLD开发系统被称为:QuartusII,主要用于设计新器件和大规模CPLD/FPGA).使用MAX+PLUSII的设计者不需精通器件内部的复杂结构。设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语言)建立设计,MAX+PLUSII把这些设计转自动换成最终所需的格式。其设计速度非常快。对于一般几千门的电路设计,使用MAX+PLUSII,从设计
6、输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。设计处理一般在数分钟内内完成。特别是在原理图输入等方面,人机界面最友善的PLD开发软件12。2.2 maxplus2 特点1、开放的界面Max+plus支持与Cadence,Exemplarlogic,Mentor Graphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。2、与结构无关Max+plus系统的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件,提供了世界上唯一真正与结
7、构无关的可编程逻辑设计环境。3、完全集成化Max+plus II的设计输入、处理与较验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。4、丰富的设计库Max+plus II提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function)。5、模块化工具设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化。6、硬件描述语言(HDL)Max+plus II软件支持各种HDL设计输入选项,包括VHDL、Verilog HDL和Altera自己的硬件描述语言AHDL
8、。7、Opencore特征Max+plus 软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。2.3 Maxplus2 使用介绍MAX+plus2硬件平台的微机最好配置512MB内存、4,3GMB硬盘,可以在Windows XP等操作系统支持下工作。在进行了MAX+plus2的系统安装和系统启动后,对于所要设计和仿真的系统需要进行如下基本步骤:(1) VHDL语言工程文件的建立和编辑;文件的建立:新建文件(file/new/text editor file)、输入文本(text editor)、保存文件(file/save);文件的修改:打开需修改文件(file/open/*.vh
9、d)、修改(text editor)、保存 (file/save);(2) 电路图的建立和编辑建立文件打开图形编辑器,选择file/save as建立.gdf文件、输入所需元件及电路模块、编辑端口名称、对各电路块及输入/输出端口进行连线、在设计过程中,可以随时对已进行工作进行保存;(3) VHDL语言程序的编译编译的目的:生成可以进行仿真、定时分析及下载到可编程器件的相关文件。编译的步骤:打开需编译源程序(file/open)、编译(MAX+ plus II/compiler)、为当前文件建立项目(file/project/set project to current file);(4) VH
10、DL语言程序的仿真VHDL程序的仿真过程大致可以分为三个步骤:生成波形文件、仿真、定时分析。生成仿真波形文件:打开波形编辑器(MAX+ plus II/waveform editor)、确定波形编辑的信号持续时间(file/end time)、输入所设计电路的端口名称,并指定端口模式(时钟信号的编辑)、信号波形编辑(高低电平的编辑、Count value的设置、group value的设置)、完成所有输入信号的设定后,保存文件(*.scf);仿真:打开仿真器(MAX+ plus II/simulator),进行功能仿真,得到仿真结果;定时分析:MAX+ plus II/Timing Analy
11、zer,提供三种定时分析模块:(1)延迟时间分析:模拟信号从源传递到目的地,最坏情况下的延迟时间;(2)寄存器性能分析:分析设计中用到的寄存器正常存储所需要的最小时钟周期和最大时钟频率;(3)建立和保持时间分析:分析系统中使用的寄存器和锁存器,给出正常寄存输出时输入端必需的最小建立和保持时间。VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构
12、特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。一个VHDL设计由若干个VHDL文件构成,每个文件主要包含如下三个部分中的一个 或全部: 程序包(Package)、实体(Entity)、构造体(Architecture)8。采用VHDL及自顶向下方法在大型数字系统设计中被广泛采用。在设计中你可采用较抽象的语言(行为/算法)来描
13、述系统结构,然后细化成各模块,最后可借助编译器将VHDL描述综合为门级7。VHDL语言的特点包括:1.用VHDL代码而不是用原理图进行设计,意味着整个电路板的模型及性能可用计算机模拟进行验证。 2.VHDL元件的设计与工艺无关,与工艺独立,方便工艺转换。 3.VHDL支持各种设计方法,自顶向下、自底向上或者混合的都可以。 4.可以进行从系统级到逻辑级的描述,即混合描述。 5.VHDL区别于其他的HDL,已形成标准,其代码在不同的系统中可交换建模。3 交通灯系统仿真和调试3.1系统设计要求交通信号灯控制系统,主要适用于在两条干道汇合点形成的十字交叉路口 ,路口设计两组红绿灯分别对两个方向上的交通
14、运行状态进行管理。交通灯的持续闪亮时间由键盘输入控制。灯亮时序如图 3.1 所示 ,当 B 方向的红灯亮时 ,A 方向对应绿灯亮 ,由绿灯转换成红灯的过渡阶段黄灯亮,即 B 方向红灯亮的时间等于 A 方向绿灯和黄灯亮的时间之和。同理 ,当 A方向的红灯变亮时 ,B 方向的交通灯也遵循此规则。各干道上安装有数码管 ,以倒计时的形式显示本道各信号灯闪亮的时间。当出现特殊情况时 ,各方向上均亮红灯 ,倒计时停止。特殊运行状态结束后 ,控制器恢复原来的状态 ,继续运行。图 3.1 系统原理图3.2 系统整体设计整个系统设计如图 3.2 所示 ,该系统主要由计数模块、控制模块、分频模块、分位模块以及显示
15、电路构成。其中分频模块主要将系统输入的基准时钟信号转换为1 Hz的激励信号 ,驱动计数模块和控制模块工作。控制模块根据计数器的计数情况对交通灯的亮灭及持续时间进行控制 ,并通过分位电路将灯亮时间以倒计时的形式通过数码管显示出来。图中 Reset 是复位信号 ,高电平有效 ,可以实现对计数器的异步清零。Hold 为保持信号 ,当 Hold 为“1”,计数器暂停计数 ,表示出现特殊情况 ,各方向车辆都处于禁行状态。图 3.2 系统设计框图3.3 主要功能模块设计及仿真3.3.1 计数模块设计计数模块主要实现累加循环计数 ,计数的最大值由键盘输入控制 ,输出的计数值为控制模块的灯控提供参考 ,计数器
16、的主程序设计如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter is port (clock:in std_logic; reset:in std_logic; hold:in std_logic; A,B,C:in std_logic_vector(3 downto 0); key:out integer range 0 to 255; countnum:buffer integer range 0 to 255);end;architecture beha
17、vior of counter is signal keyin: integer range 0 to 255;begin keyin=conv_integer(A)*100+conv_integer(B)*10+conv_integer(C);process(reset,clock)beginif reset=1then countnum=0; elsif rising_edge(clock)then if hold=1then countnum=countnum; else if countnum=keyin then countnum=0; else countnum=countnum+
18、1; end if; end if;end if;end process;key=keyin;end;再maxplus2中输入该程序 见图3.3图3.3计数器程序计数模块的仿真如图 3.4 所示 ,从图中可以看出 ,在时钟的驱动下 ,计数值不断自加 ,当计数值 countnum等于设定值时 , 计数返回到 0 ,开始下一轮计数。当 Hold 检测到特殊情况时置1,使计数器暂停计数。图 3.4计数器仿真图3.3.2 控制器模块的仿真设计在控制器模块中 ,红、绿、黄三盏灯工作的总时间为设定值32s ,各交通灯时间分配规则如下 :红灯时间占总时间的 1/ 2 ,绿灯时间占 3/ 8 ,黄灯时间占 1
19、/ 8 ,正常情况下红灯亮16 s , 绿灯亮 12 s ,黄灯亮 4 s。控制器模块程序如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity controller is port (clock:in std_logic; hold:in std_logic; key:in integer range 0 to 255; countnum:in integer range 0 to 255; reda:out std_lo
20、gic; yellowa:out std_logic; greena:out std_logic; redb:out std_logic; yellowb:out std_logic; greenb:out std_logic);end;architecture behavior of controller is begin process(hold,clock,key,countnum)beginif hold=1then reda=1;redb=1; greena=0; greenb=0; yellowa=0; yellowb=0;elsif rising_edge(clock)then
21、if countnum(key/8)*3 then reda=0;redb=1; greena=1; greenb=0; yellowa=0; yellowb(key/8)*3 and countnum (key/8)*4 then reda=0;redb=1; greena=0; greenb=0; yellowa=1; yellowb(key/8)*4 and countnum (key/8)*7 then reda=1;redb=0; greena=0; greenb=1; yellowa=0; yellowb(key/8)*7 and countnum key then reda=1;
22、redb=0; greena=0; greenb=0; yellowa=0; yellowb=1; end if;end if;end process;end;在maxplus2 输入该程序,见图3.5图3.5控制器程序控制器仿真情况如图 3.6所示 ,当 hold 为低电平 ,计数值 countnum 12 时 ,greenA 输出高电平 ,A 东西方向绿灯亮起车辆通行 ,此时与之相对应的 redB 输出高电平 ,B 方向红灯亮起车辆禁行。A 方向显示交通灯闪烁持续时间的数码管 numA 从 12 开始递减 ,同时 B 方向显示交通灯闪烁持续时间的数码管 numB 从 16 开始递减。当 1
23、2 countnum 16 ,redA 输出高电平 ,A 方向红灯亮起车辆禁行 ,numA 从数值 16开始倒计时 ,此时 greenB 输出高电平 ,B 方向绿灯亮起车辆通行 ,numB 从数值 12 开始递减。当 16 count2num 28 时 ,redA 继续处于高电平状态 ,numA 继续倒计时 ,A 方向车辆禁行 ,而此时 yellowB 输出高电平 ,B 方向黄灯亮起 ,numB 从数值 4 开始递减。当 hold 为1时 ,表示进入紧急状态 ,FLASH 置1,各方向的红灯均亮起 ,所有机动车禁行。控制器仿真图见图3.6图3.6控制器仿真3.4 仿真结果总结本系统的主要逻辑设
24、计由编写的 VHDL 源程序在 maxplus2下经过编译和功能仿真测试后 ,得出仿真波形图 ,观察对应的输入和输出波形,和预定设计目标进行比较。比较结果可以总结出仿真波形实现了东西和南北方向两个状态的转换,从而完成了仿真。4 总结4.1 设计小结本课程设计要求采用VHDL硬件描述语言进行模块化编程,并且使用maxplus2软件进行硬件仿真。在使用maxplus2软件时,经仿真验证发现电路基本比较准确,也存在一定的延时,说明采用maxplus2模拟一些精度要求不高的数字电路还是可但对那些要求较高的电路就应该用精度更高的一些软件来模拟,以免造成错误的结果。4,2 收获体会这次课程设计是在韩老师的
25、的亲切关怀和悉心指导下完成的。她带领我们学习了本次课程,对我们给予了悉心的教导,她认真严谨的科学态度也深深影响了我;韩老师,她给了我学习软件的不少宝贵意见。以及老师教会我们使用MAX+plusII同时,我要感谢班上的同学们,在做课程设计的过程中是我们探讨了不少问题,互相帮助,克服困难,可以说课程设计的顺利进行离不开他们的帮助。资料的查阅能力在这次设计中得到了很大的提高,学会了从不同的渠道,用不同的方法去查找,包括网络上,图书馆,书店等。在系统设计阶段和论文写作期间,老师给予的意见给了我很大的帮助。使我不仅学到了知识,而且也开阔了视野。提高了我自身解决问题的能力,更为重要的是指导老师严谨的治学态
26、度深深的影响着我,在此,我对我对指导老师的精心培养表示深深的谢意!并且感谢在课程设计期间帮助我、鼓励我的同学们!可以说这次设计的顺利完成与老师和大家是分不开的,在老师与同学的耐心讲解和帮助下,使我拥有了那种克服困难、勇往直前的决心,正是这种决心使我在后来的设计中培养了独立思考并解决问题的能力,这种潜移默化的影响并非只局限于这次课程设计,而是会使我收益终生的。再次衷心的向所有指导、关心、照顾和帮助我的老师、同学们表示最衷心的感谢!参考文献1 张明. VHDL 实用教程 M . 成都 : 电子科技大学出版社 ,1999.2 谭会生 ,张昌凡. EDA 技术及应用M.西安 :西安电子科技大学出版社
27、,2001.3 潘松 ,王国栋. VHDL 实用教程M. 西安 :西安电子科技大学出版社 ,2000.4 张顺兴. 数字电路与系统设计 M . 南京 :东南大学出版社 ,2004.5 徐志军 ,徐光辉. CPLD / FPGA 的开发与应用M. 北京 :电子工业出版社 ,2002.6 蒋璇 ,臧春华.数字系统设计与 PLD 应用技术M.北京 :电子工业出版社 ,2006.7 王永华.现代电气控制及 PLC 技术M. 北京 :北京航空航天大学出版社 ,2005.8 王成勇.智能交通灯控制系统J . 广东技术师范学院学报 ,2006(4) :92294.9 张海英 ,余臻 ,陈燕萍. 模糊控制在智
28、能交通灯监控系统中的应用J .计算机技术与发展 ,2008 ,18(3) :1812183.10 胡开明 ,金解云 ,王怀平. 基于 PLC 顺序控制的交通灯控制系统设计J .科技广场 ,2008(1) :2172218.11 康华光等 电子技术基础(数字部分)m.高等教育出版社200612谢维成 杨家国等 单片机原理与应用及c51程序设计(第二版)m.清华大学出版社2009.713周荣福 曾技 电子线路CADm 北京大学出版社 2011.114康光华 电子技术基础(数字部分)m. 高等教育出版社 2006.115谢佳奎 电子线路(非线性部分)m. 高等教育出版社 2010指导教师评语成绩评定指导教师签字:年 月 日答辩小组评语成绩评定答辩小组签字:年 月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1