完整版verilog课程设计—交通灯.doc
文本预览下载声明
verilog课程设计—交通灯
PAGE
第 PAGE \* Arabic \* MERGEFORMAT 15 页
CPLD课程设计
基于FPGA 的交通灯控制器的设计
姓 名:
学 号:
专 业:
2011.01.06
基于FPGA 的交通灯控制器的设计
摘要:现代城市在日常运行控制中,越来越多的使用红绿灯对交通进行指挥和管理。而一套完整的交通灯控制系统通常要实现自动控制和手动控制去实现其红绿灯的转换。基于FPGA 设计的交通灯控制系统电路简单、可靠性好。本设计利用Verilog HDL 语言、采用层次化混合输入方式,可控制4个路口的红、黄、绿、左转四盏信号灯,让其按特定的规律进行变化。在QUARTUSⅡ下对系统进行了综合与仿真。仿真结果表明系统可实现十字路口红绿灯及左转弯控制和倒计时显示,并能够自动控制交通灯转变。
关键词:FPGA ;交通灯自动控制; Verilog HDL; Quartus Ⅱ
1.交通信号控制器设计要求与思路
1.1设计要求
在交通灯系统中(图1),路口1、2、3、4均需要红、黄、绿、左转四盏灯(用RYGL分别表示) ,并且每个路口都需要一个倒数的计时器,假设绿灯每次维持的时间是40 s ,黄灯为5 s ,左转灯10s,红灯60s,黄灯亮时以一定的频率闪动。交通灯系统大多是自动控制来指挥交通的,但有时需要由交警手动控制红绿灯,所以要求设计的该交通信号系统需要具有该功能。
图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。
S3
S3
S9
S4S10S2
S4
S10
S2
S1
S1
S5S11
S5
S11
S12
S12
S8S6
S8
S6
S7
S7
图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
A组信号灯
A组信号灯
AL
AR
AY
AG
分 频
分 频 电 路
控制
计时
电路
时钟CLK10K 分频CLK1
复位RST M2
M1
M0
B组信号灯BLBRBYBG 复位RST
B组信号灯
BL
BR
BY
BG
数码管显示电路
数码管显示电路
复位RST
时钟CLK10K
图3 系统设计示意图
2.交通信号控制器具体模块设计
2.1时钟分频模块设计
系统的时钟输入为10KHZ的脉冲,而系统时钟计时模块需要1HZ的脉冲。分频模块主要为系统提供所需的时钟计时脉冲。该模块将10KHZ的脉冲信号进行分频,产生1S的方波(占空比为50%),作为系统时钟计时信号。计时模块用来设定路口计时器的初值,并为扫描显示译码模块提供倒计时时间。
表3 I/O管脚描述(一)
名称
方向
位宽
功能
C
显示全部