Verilog_HDL的交通灯控制器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

交通信号灯控制器

课程设计报告

2015-2016学年第2学期

课程设计名称:电子综合设计EDA课程设计

院(系):电子信息学院

专业:电子信息工程班级:电子1313 姓名: xx 学号: 1310034303xx

综合实验时间: 2016/7/11-2016/7/15

指导教师:钟旭

提交时间: 2016/7/15

上海电机学院课程设计任务书

目录

第一章设计原理 (4)

1.1设计要求 (4)

1.2设计思路和原理 (4)

1.3实现方法 (4)

第二章Verilog HDL程序设计 (6)

2.1整体设计 (6)

2.2 具体设计 (7)

第三章仿真测试 (7)

3.1 波形仿真 (8)

第四章设计总结 (11)

第一章设计原理

1.1设计要求

设计一个交通控制器,用LED显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s,支干道每次放行25s。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s。能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。用LED灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。能实现特殊状态的功能显示。[1]

1.2设计思路和原理

(1) 主、支干道用传感器检测车辆到来情况,实验电路用逻辑开关代替。

(2) 选择1HZ时钟脉冲作为系统时钟。

(3) 45s、25s、5s定时信号可用顺计时,也可用倒计时,计时起始信号由主控电路给出,每当计满所需时间,启、闭三色信号灯,并启动另一计时电路。

(4) 交通灯状态变化如表1及图1所示:

表1 交通灯状态图

检测到支状态2

状态1

状态0

Emergency

路无行人和车辆

图1 交通灯状态图

(5) 交通灯设计输入信号4个:CLK(时钟),EN(使能),EMERGENCY(紧急),BCHECK(检测) ;输出信号4个:LAMPA(主干道信号灯),LAMPB(支干道信号灯),ACOUNT(主干道计数器),BCOUNT(支干道计数器)。交通灯控制原理如图2所示。

图2 交通灯原理图

1.3实现方法

本次采用文本编辑法,即利用Verilog HDL 语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。设计中用两组红黄绿LED 模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。[2]

第二章 Verilog HDL 程序设计

2.1整体设计

根据上章设计原理,交通灯控制的关键是各个状态之间的转换和进行适当的时间延时,根据状态机的设计规范,本次设计了三个状态之间的循环转化,其真值表及状态转化图如下所示:

状状状状状状状状状状状状00

状状10

状状11状状01状状状状状状状状状状状状状状状

状状状状状状状状状状

状状状状状状状状状状状状状状状001100010

010001010

100010

图2 交通灯控制状态转化

说明:该状态图为交通灯在正常情况下的状态转化图,进入控制后,状态00时主干道绿灯及支干道红灯亮起,进入状态01后两路黄灯亮起,状态11时主干道红灯及支干道绿灯亮起。进入10状态两路黄灯亮起。结束一个循环,从00状态重新开始循环。

为实现控制与显示的功能,需要设计交通灯点亮顺序控制程序,倒数计时程序,七段数码管显示程序,数码管显示扫描程序,其系统结构图如下所示:

图3 交通灯控制系统结构图

其中rst为复位信号,clk为时钟信号,hold为特殊情况控制信号,输入hold时两个方向红灯无条件亮起。

2.2 具体设计

根据整体设计要求,编写各个功能部分Verilog HDL程序,设置各输入输出变量说明如下

clk:为计数时钟;

qclk:为扫描显示时钟;

en:使能信号,为1 的话,则控制器开始工作;

rst:复位信号,为1的话,控制及技术回到初始状态;

hoid:特殊情况控制信号,为1的话,则两个方向无条件显示为红灯;

light1:控制主干道方向四盏灯的亮灭;其中,light1[0]~light[2],分别控制主干道方向的

绿灯、黄灯和红灯;

light2:控制支干道方向四盏灯的亮灭;其中,light2[0] ~ light2[2],分别控制支干道方向的

绿灯、黄灯和红灯;

num1:用于主干道方向灯的时间显示,8 位,可驱动两个数码管;

num2:用于支干道方向灯的时间显示,8 位,可驱动两个数码管;

counter:用于数码管的译码输出;

st1,st2:数码管扫描信号。

详细设计步骤:

(1) 确定4个输入信号与4个输出信号,具体见图2;

(2) 将50MHZ时钟分频为1MHZ;

(3) 设计红黄绿3中信号灯切换的时间及顺序;

(4) 设计支路检测状态下的信号灯切换;

(5) 设计紧急(EMERGENCY)状态下信号灯的切换;

(6) 程序使用3always块[1],详细代码如下:

总体程序见程序清单所示

第三章仿真测试

3.1 波形仿真

在仿真软件下创建工程,新建编辑设计文件,将程序输入,整体编译后,新建波形仿真文件。设置仿真时间,时钟周期,输入输出端口,进行波形仿真。具体仿真波形图及说明如下所示:

仿真截止时间:100us;

时钟:clk 1us,qclk 0.1us

3.1.1 正常工作时波形仿真图

图4没有紧急情况时主干道和支干道的信号灯的显示状态

图5没有紧急情况时主干道和支干道的信号灯的显示状态

相关文档
最新文档