交通灯控制系统基于VHDL的描述与仿真Word格式.docx
《交通灯控制系统基于VHDL的描述与仿真Word格式.docx》由会员分享,可在线阅读,更多相关《交通灯控制系统基于VHDL的描述与仿真Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
3.2系统整体设计5
3.3主要功能模块设计及仿真6
3.4仿真结果总结13
4总结14
4.1设计小结14
4,2收获体会14
参考文献14
交通灯控制系统的VHDL描述与仿真
学生:
XX
电气信息工程学院XXXXX与技术专业
1课程设计的任务与要求
1.1课程设计的任务
设计一个十字路口的交通灯控制系统,交通灯控制系统输入信号为时钟CLK和复位信号RESET。
输出端为[1]。
1.2课程设计的要求
本文设计的交通方向红灯、绿灯时间由系统设定值。
交通灯控制器控制两个方向交叉路口的交通,以秒为单位,采用倒计时的方式显示通行或者禁止通行的剩余时间。
系统设置外部输入复位信号,复位信号有效时,控制信号处于东西方向绿灯状态,并读取设定输入值,再将复位信号返回无效状态后,绿灯变至红灯时,黄灯亮,以便于车辆能停在停车线内。
1.3课程设计的研究基础
用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。
由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。
现代的数字电路半导体工艺制成的若干数字集成器件构造而成。
逻辑门是数字逻辑电路的基本单元。
存储器是用来存储二进制数据的数字电路。
从整体上看,数字电路可以分为组合逻辑电路和时序逻辑电路两大类。
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作
VHDL的出现是为了适应电子系统设计的日益复杂性。
若以计算机软件的设计与电路设计做个类比,机器码好比晶体管/MOS管;
汇编语言好比网表;
则VHDL语言就如同高级语言,VHDL在语法和风格上类似与现代高级编程语言,如C语言。
但要注意,VHDL描述的是硬件,它包含许多硬件特有的结构。
现在VHDL被广泛用于:
电路设计的文档记录、设计描述的逻辑综合、电路仿真等[11]。
2maxplus2软件介绍
2.1maxpuls2概述
Max+plusII(或写成Maxplus2,或MP2)是Altera公司推出的的第三代PLD开发系统(Altera第四代PLD开发系统被称为:
QuartusII,主要用于设计新器件和大规模CPLD/FPGA).使用MAX+PLUSII的设计者不需精通器件内部的复杂结构。
设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语言)建立设计,MAX+PLUSII把这些设计转自动换成最终所需的格式。
其设计速度非常快。
对于一般几千门的电路设计,使用MAX+PLUSII,从设计输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。
设计处理一般在数分钟内内完成。
特别是在原理图输入等方面,人机界面最友善的PLD开发软件[12]。
2.2maxplus2特点
1、开放的界面
Max+plusⅡ支持与Cadence,Exemplarlogic,MentorGraphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。
2、与结构无关
Max+plusⅡ系统的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。
3、完全集成化
Max+plusII的设计输入、处理与较验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。
4、丰富的设计库
Max+plusII提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function)。
5、模块化工具
设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化。
6、硬件描述语言(HDL)
Max+plusII软件支持各种HDL设计输入选项,包括VHDL、VerilogHDL和Altera自己的硬件描述语言AHDL。
7、Opencore特征
Max+plusⅡ软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。
2.3Maxplus2使用介绍
MAX+plus2硬件平台的微机最好配置512MB内存、4,3GMB硬盘,可以在WindowsXP等操作系统支持下工作。
在进行了MAX+plus2的系统安装和系统启动后,对于所要设计和仿真的系统需要进行如下基本步骤:
(1)VHDL语言工程文件的建立和编辑;
文件的建立:
新建文件(file/new/texteditorfile)、输入文本(texteditor)、保存文件(file/save);
文件的修改:
打开需修改文件(file/open/*.vhd)、修改(texteditor)、保存(file/save);
(2)电路图的建立和编辑
建立文件打开图形编辑器,选择file/saveas建立.gdf文件、输入所需元件及电路模块、编辑端口名称、对各电路块及输入/输出端口进行连线、在设计过程中,可以随时对已进行工作进行保存;
(3)VHDL语言程序的编译
编译的目的:
生成可以进行仿真、定时分析及下载到可编程器件的相关文件。
编译的步骤:
打开需编译源程序(file/open)、编译(MAX+plusII/compiler)、为当前文件建立项目(file/project/setprojecttocurrentfile);
(4)VHDL语言程序的仿真
VHDL程序的仿真过程大致可以分为三个步骤:
生成波形文件、仿真、定时分析。
①生成仿真波形文件:
打开波形编辑器(MAX+plusII/waveformeditor)、确定波形编辑的信号持续时间(file/endtime)、输入所设计电路的端口名称,并指定端口模式(时钟信号的编辑)、信号波形编辑(高低电平的编辑、Countvalue的设置、groupvalue的设置)、完成所有输入信号的设定后,保存文件(*.scf);
②仿真:
打开仿真器(MAX+plusII/simulator),进行功能仿真,得到仿真结果;
③定时分析:
MAX+plusII/TimingAnalyzer,提供三种定时分析模块:
(1)延迟时间分析:
模拟信号从源传递到目的地,最坏情况下的延迟时间;
(2)寄存器性能分析:
分析设计中用到的寄存器正常存储所需要的最小时钟周期和最大时钟频率;
(3)建立和保持时间分析:
分析系统中使用的寄存器和锁存器,给出正常寄存输出时输入端必需的最小建立和保持时间。
VHDL(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
一个VHDL设计由若干个VHDL文件构成,每个文件主要包含如下三个部分中的一个或全部:
程序包(Package)、实体(Entity)、构造体(Architecture)[8]。
采用VHDL及自顶向下方法在大型数字系统设计中被广泛采用。
在设计中你可采用较抽象的语言(行为/算法)来描述系统结构,然后细化成各模块,最后可借助编译器将VHDL描述综合为门级[7]。
VHDL语言的特点包括:
1.用VHDL代码而不是用原理图进行设计,意味着整个电路板的模型及性能可用计算机模拟进行验证。
2.VHDL元件的设计与工艺无关,与工艺独立,方便工艺转换。
3.VHDL支持各种设计方法,自顶向下、自底向上或者混合的都可以。
4.可以进行从系统级到逻辑级的描述,即混合描述。
5.VHDL区别于其他的HDL,已形成标准,其代码在不同的系统中可交换建模。
3交通灯系统仿真和调试
3.1系统设计要求
交通信号灯控制系统,主要适用于在两条干道汇合点形成的十字交叉路口,路口设计两组红绿灯分别对两个方向上的交通运行状态进行管理。
交通灯的持续闪亮时间由键盘输入控制。
灯亮时序如图3.1所示,当B方向的红灯亮时,A方向对应绿灯亮,由绿灯转换成红灯的过渡阶段黄灯亮,即B方向红灯亮的时间等于A方向绿灯和黄灯亮的时间之和。
同理,当A方向的红灯变亮时,B方向的交通灯也遵循此规则。
各干道上安装有数码管,以倒计时的形式显示本道各信号灯闪亮的时间。
当出现特殊情况时,各方向上均亮红灯,倒计时停止。
特殊运行状态结束后,控制器恢复原来的状态,继续运行。
图3.1系统原理图
3.2系统整体设计
整个系统设计如图3.2所示,该系统主要由计数模块、控制模块、分频模块、分位模块以及显示电路构成。
其中分频模块主要将系统输入的基准时钟信号转换为1Hz的激励信号,驱动计数模块和控制模块工作。
控制模块根据计数器的计数情况对交通灯的亮灭及持续时间进行控制,并通过分位电路将灯亮时间以倒计时的形式通过数码管显示出来。
图中Reset是复位信号,高电平有效,可以实现对计数器的异步清零。
Hold为保持信号,当Hold为“1”,计数器暂停计数,表示出现特殊情况,各方向车辆都处于禁行状态。
图3.2系统设计框图
3.3主要功能模块设计及仿真
3.3.1计数模块设计
计数模块主要实现累加循环计数,计数的最大值由键盘输入控制,输出的计数值为控制模块的灯控提供参考,计数器的主程序设计如下:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycounteris
port(clock:
instd_logic;
reset:
hold:
A,B,C:
instd_logic_vector(3downto0);
key:
outintegerrange0to255;
countnum:
bufferintegerrange0to255);
end;
architecturebehaviorofcounteris
signalkeyin:
integerrange0to255;
begin
keyin<
=conv_integer(A)*100+conv_integer(B)*10+conv_integer(C);
process(reset,clock)
ifreset='
1'
then
countnum<
=0;
elsifrising_edge(clock)then
ifhold='
then
=countnum;
else
ifcountnum=keyinthen
else
=countnum+1;
endif;
endif;
endprocess;
key<
=keyin;
再maxplus2中输入该程序见图3.3
图3.3计数器程序
计数模块的仿真如图3.4所示,从图中可以看出,在时钟的驱动下,计数值不断自加,当计数值countnum等于设定值时,计数返回到0,开始下一轮计数。
当Hold检测到特殊情况时置‘1’,使计数器暂停计数。
图3.4计数器仿真图
3.3.2控制器模块的仿真设计
在控制器模块中,红、绿、黄三盏灯工作的总时间为设定值32s,各交通灯时间分配规则如下:
红灯时间占总时间的1/2,绿灯时间占3/8,黄灯时间占1/8,正常情况下红灯亮16s,绿灯亮12s,黄灯亮4s。
控制器模块程序如下:
useieee.std_logic_arith.all;
entitycontrolleris
inintegerrange0to255;
reda:
outstd_logic;
yellowa:
greena:
redb:
yellowb:
greenb:
outstd_logic);
architecturebehaviorofcontrolleris
begin
process(hold,clock,key,countnum)
ifhold='
reda<
='
;
redb<
greena<
0'
greenb<
yellowa<
yellowb<
ifcountnum<
(key/8)*3then
elsifcountnum>
(key/8)*3andcountnum<
(key/8)*4then
(key/8)*4andcountnum<
(key/8)*7then
(key/8)*7andcountnum<
keythen
在maxplus2输入该程序,见图3.5
图3.5控制器程序
控制器仿真情况如图3.6所示,当hold为低电平,计数值countnum<
12时,greenA输出高电平,A东西方向绿灯亮起车辆通行,此时与之相对应的redB输出高电平,B方向红灯亮起车辆禁行。
A方向显示交通灯闪烁持续时间的数码管numA从12开始递减,同时B方向显示交通灯闪烁持续时间的数码管numB从16开始递减。
当12<
countnum<
16时,yellowA输出高电平,A方向黄灯亮起,numA从数值4开始倒计时,此时greenB仍处于低电平,numB继续倒计时,B方向红灯闪亮车辆仍处于禁行状态。
当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仿真结果总结
本系统的主要逻辑设计由编写的VHDL源程序在maxplus2下经过编译和功能仿真测试后,得出仿真波形图,观察对应的输入和输出波形,和预定设计目标进行比较。
比较结果可以总结出仿真波形实现了东西和南北方向两个状态的转换,从而完成了仿真。
4总结
4.1设计小结
本课程设计要求采用VHDL硬件描述语言进行模块化编程,并且使用maxplus2软件进行硬件仿真。
在使用maxplus2软件时,经仿真验证发现电路基本比较准确,也存在一定的延时,说明采用maxplus2模拟一些精度要求不高的数字电路还是可但对那些要求较高的电路就应该用精度更高的一些软件来模拟,以免造成错误的结果。
4,2收获体会
这次课程设计是在韩老师的的亲切关怀和悉心指导下完成的。
她带领我们学习了本次课程,对我们给予了悉心的教导,她认真严谨的科学态度也深深影响了我;
韩老师,她给了我学习软件的不少宝贵意见。
以及老师教会我们使用MAX+plusII同时,我要感谢班上的同学们,在做课程设计的过程中是我们探讨了不少问题,互相帮助,克服困难,可以说课程设计的顺利进行离不开他们的帮助。
资料的查阅能力在这次设计中得到了很大的提高,学会了从不同的渠道,用不同的方法去查找,包括网络上,图书馆,书店等。
在系统设计阶段和论文写作期间,老师给予的意见给了我很大的帮助。
使我不仅学到了知识,而且也开阔了视野。
提高了我自身解决问题的能力,更为重要的是指导老师严谨的治学态度深深的影响着我,在此,我对我对指导老师的精心培养表示深深的谢意!
并且感谢在课程设计期间帮助我、鼓励我的同学们!
可以说这次设计的顺利完成与老师和大家是分不开的,在老师与同学的耐心讲解和帮助下,使我拥有了那种克服困难、勇往直前的决心,正是这种决心使我在后来的设计中培养了独立思考并解决问题的能力,这种潜移默化的影响并非只局限于这次课程设计,而是会使我收益终生的。
再次衷心的向所有指导、关心、照顾和帮助我的老师、同学们表示最衷心的感谢!
参考文献
[1]张明.VHDL实用教程[M].成都:
电子科技大学出版社,1999.
[2]谭会生,张昌凡.EDA技术及应用[M].西安:
西安电子科技大学出版社,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]张海英,余臻,陈燕萍.模糊控制在智能交通灯监控系统中的应用[J].计算机技术与发展,2008,18(3):
1812183.
[10]胡开明,金解云,王怀平.基于PLC顺序控制的交通灯控制系统设计[J].科技广场,2008
(1):
2172218.
[11]康华光等电子技术基础(数字部分)[m].高等教育出版社2006
[12]谢维成杨家国等单片机原理与应用及c51程序设计(第二版)[m].清华大学出版社2009.7
[13]周荣福曾技电子线路CAD[m]北京大学出版社2011.1
[14]康光华电子技术基础(数字部分)[m].高等教育出版社2006.1
[15]谢佳奎电子线路(非线性部分)[m].高等教育出版社2010
指导教师评语
成绩
评定
指导教师签字:
年月日
答辩小组评语
答辩小组签字: