欢迎来到天天文库
浏览记录
ID:18743696
大小:280.00 KB
页数:8页
时间:2018-09-22
《eda课程设计报告(交通信号控制器的vhdl的设计)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、交通信号控制器的VHDL的设计一、设计任务模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。能达到的要求:(1)交通灯从绿变红时,有4秒黄灯亮的间隔时间;(2)交通灯红变绿是直接进行的,没有间隔时间;(3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;(4)在任意时间,显示每个状态到该状态结束所需的时间。支干道主干道图1路口交通管理示意图ABCD主干道交通灯绿(40秒)黄(4秒)红(20秒)红(4秒)支干道交通灯红红绿黄表1交通信号灯的4种状态二、设计
2、原理1、设计目的:学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制2、设计说明(1)第一模块:clk时钟秒脉冲发生电路在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。模块说明:系统输入信号:Clk:由外接信号发生器提供256的时钟信号;系统输出信号:full:产生每秒一个脉冲的信号;(2)第二模块:计数秒数选
3、择电路计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。模块说明:系统输入:full:接收由clk电路的提供的1hz的时钟脉冲信号;系统输出信号:tm:产生显示电路状态转换信号tl:倒计数值秒数个位变化控制信号th:倒计数值秒数十位变化控制信号(3)第三模块:红绿灯状态转换电路本电路负责红绿灯的转换。模块说明:系统输入信号:full:接收由clk电路的提供的1hz的时钟脉冲信号;tm:接收计数秒数选择电路状态转换信号;系统输出信号:comb_out:负责红绿灯的状态显示。(4)第四模块:时
4、间显示电路本电路负责红绿灯的计数时间的显示。模块说明:系统输入信号:tl:倒计数值秒数个位变化控制信号;th:倒计数值秒数十位变化控制信号;系统输出信号:led7s1:负责红绿灯的显示秒数个位。led7s2:负责红绿灯的显示秒数十位。三、设计方案定时时间到检测电路计时器预置数产生电路状态发生器(两位二进制计数器)时间显示数据输出红黄绿灯输出控制电路(RYG)红黄绿灯信号输出1秒时钟脉冲信号发生器图2交通信号灯控制器的原理框图采用VHDL语言输入的方式实现交通信号灯控制器秒脉冲信号发生器(进程P1和P2)状态寄存器(进程
5、P6)计数器(进程P3、P4和P5)CLK时间显示数据输出次态发生器信号灯输出信号(进程P7)信号灯输出图3交通信号灯控制器程序原理框图该程序由7个进程组成,进程P1和P2将CLK信号分频后产生1秒信号,进程P3、P4、P5构成两个带有预置数功能的十进制计数器,其中P4产生允许十位计数器计数的控制信号。进程P6实现状态转换和产生状态转换的控制信号,进程P7产生次态信号和信号灯输出信号,以及每一个状态的时间值。四、VHDL程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.
6、STD_LOGIC_UNSIGNED.ALL;ENTITYtrafficISPORT(clk:instd_logic;led7s1:outstd_logic_vector(6downto0);led7s2:outstd_logic_vector(6downto0);comb_out:outstd_logic_vector(5downto0));END;ARCHITECTUREoneOFtrafficISTYPEdmIS(s0,s1,s2,s3);SIgnalcurrent_state,next_state:dm;SIG
7、NALFULL:STD_LOGIC;SIGNALtl:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALth:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALtm:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALTIME:STD_LOGIC_VECTOR(6DOWNTO0);BEGINP_REG:PROCESS(CLK)VARIABLECNT8:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFCLK'EVENTANDCLK='1'THENIFCNT
8、8="11111111"THENCNT8:="01111111";FULL<='1';ELSECNT8:=CNT8+1;FULL<='0';ENDIF;ENDIF;ENDPROCESSP_REG;PROCESS(full)BEGINIFfull'EVENTANDfull='1'THENIFTIME<"1000011"THENTIM
此文档下载收益归作者所有