verilog课程设计—交通灯1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
课程名称__EDA技术综合设计与实践__ 题目名称交通灯控制系统
学生学院信息工程学院
专业班级通信工程08(4)
学号 **********
学生姓名高高
指导教师李学易
2011 年12 月26 日
基于FPGA 的交通灯控制器的设计
摘要:Verilog 是广泛应用的硬件描述语言,可以用在硬件设计流程的建模、综合和模拟等多个阶段。随着硬件设计规模的不断扩大,应用硬件描述语言进行描述的CPLD 结构,成为设计专用集成电路和其他集成电路的主流。现代城市在日常运行控制中,越来越多的使用红绿灯对交通进行指挥和管理。而一套完整的交通灯控制系统通常要实现自动控制和手动控制去实现其红绿灯的转换。
基于FPGA 设计的交通灯控制系统电路简单、可靠性好。本设计利用Verilog HDL 语言、采用层次化混合输入方式,可控制4个路口的红、黄、绿、左转四盏信号灯,让其按特定的规律进行变化。在QUARTUSⅡ下对系统进行了综合与仿真。仿真结果表明系统可实现十字路口红绿灯及左转弯控制和倒计时显示,并能够自动控制交通灯转变。通过应用Verilog HDL 对交通灯控制器的设计,达到对Verilog HDL 的理解
关键词:FPGA ;交通灯自动控制;Verilog HDL;Quartus Ⅱ
1.交通信号控制器设计要求与思路
1.1设计要求
在交通灯系统中(图1),路口1、2、3、4均需要红、黄、绿、左转四盏灯(用RYGL分别表示) ,并且每个路口都需要一个倒数的计时器,假设绿灯每次维持的时间是40 s ,黄灯为5 s ,左转灯10s,红灯60s,黄灯亮时以一定的频率闪动。交通灯系统大多是自动控制来指挥交通的,但有时需要由交警手动控制红绿灯,所以要求设
计的该交通信号系统需要具有该功能。
实现设计目标如下:
(1)设计一个十字路口的交通灯控制电路,每条路配有红、黄、绿交通信号灯,通过电路对十字路口的两组交通灯的状态实现自动循环控制;
(2)实现东西车道和南北车道上的车辆交替运行,绿灯每次维持的时间是40 s ,黄灯为5 s ,左转灯10s,红灯60s;
(3)要求黄灯亮5 秒后,红灯才能转为绿灯,黄灯亮时以一定的频率闪动;
(4)东西车道和南北车道每次通行的时间不同且可调;
图1 交通灯系统示意图
1.2设计思路
为了便于讨论,我们只讨论路口1(用A表示)和路口4(用B表示)。此交通灯控制系统一共设计有5种工作模式。分别为:方式1 :A 向绿灯长亮,B 向红灯亮。方式2 :A 向左转灯长亮,B 向红灯亮。方式3 :B 向绿灯长亮,A 向红灯亮。方式4 :B 向左转灯长亮,A 向红灯亮。方式5 :自动工作方式,两个方向的灯按照显示的顺序,交替循环显示。系统设有总复位开关,可在任意时间内对系统进行复位。
利用M2M1M0对系统工作的状态进行控制(见表1)。A路口和B路口均需要红黄绿加左转四盏灯。所以输出显示可以用8个LED灯代替。又因为最大显示时间为60s,故用两个数码管即可承担显示一个倒数计时器的任务。
由以上分析可知,系统的输入确定为CLK、RST、M2、M1、M0,输出确定为8个LED灯和4个数码管。在这种情况下,设AB方向状态转换如表2。
S1: M2=1,M1=X,M0=X A绿B红。
S2: M2=1,M1=X,M0=X A黄B红
S3: M2=1,M1=X,M0=X, A左转B红
S4: M2=1,M1=X,M0=X, A黄B红
S5: M2=1,M1=X,M0=X, A红B绿
S6: M2=1,M1=X,M0=X, A红B黄
S7: M2=1,M1=X,M0=X, A红B左转
S8: M2=1,M1=X,M0=X, A红B黄
S9: M2=0,M1=0,M0=0, A长绿B长红
S10: M2=0,M1=0,M0=1, A长左转B长红
S11: M2=0,M1=1,M0=0, A长红B长绿
S12: M2=0,M1=1,M0=1, A长红B长左转
1.3系统设计框图
系统采用的时钟频率为10KHZ ,经分频为1HZ 后送入控制计时电路,同时送入控制计时电路的还有控制信号M2M1M0以及复位信号RST ,控制交通灯的运行状态。经处理后输出LED 灯以及数码管显示电路的控制信号,从而完成整个电路的控制与实现。
图3 系统设计示意图
2.交通信号控制器具体模块设计 2.1时钟分频模块设计
系统的时钟输入为10KHZ 的脉冲,而系统时钟计时模块需要1HZ 的脉冲。分
频模块主要为系统提供所需的时钟计时脉冲。该模块将10KHZ 的脉冲信号进行分频,产生1S 的方波(占空比为50%),作为系统时钟计时信号。计时模块用来设定路口计时器的初值,并为扫描显示译码模块提供倒计时时间。
2.2控制模块设计
控制模块根据外部输入信号,产生系统的状态机,控制其他部分协调工作。控制模块采用状态机进行设计,可定义出5种工作方式。当进入自动工作方式时,一共有8种状态。
2.3扫描显示译码模块设计
扫描显示译码模块可以根据控制信号,驱动交通信号灯以及倒计时数码管的显示,其中数码管的显示采用动态扫描显示。
2.4.顶层文件设计
交通灯的顶层文件是一个原理图文件,它包含3个元件,每一个元件均是由一个模块程序生成。3个元件分别为:fenpinqi模块、control模块、xianshi模块。这些模块均经过设计、编译、仿真,结果正确。最后生成可视化元件。然后将各个模块用具体电气性质的导线连接起来,这样原理图文件就建好了。保存编译。在建立一个vwf波形文件,保存并仿真。实验证明,仿真结果正确,符合预期
3.交通信号控制器功能仿真与测试
利用QUARTUSⅡ仿真测试,结果显示,当rst=1时,此时状态led显示为00100100,意思是A向绿灯亮,B向红灯亮数码管输出均为39(图5)。