文档详情

基于VHDL语言的交通信号灯设计.doc

发布:2019-06-09约1.21万字共18页下载文档
文本预览下载声明
交通信号控制器的VHDL的设计 设计任务 模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器,示意图如图1-1所示。要求: 交通灯从绿变红时,有4秒黄灯亮的间隔时间; 交通灯红变绿是直接进行的,没有间隔时间; 主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒; 在任意时间,显示每个状态到该状态结束所需的时间。 支干道 主干道 图1-1 路口交通管理示意图 表1-1 交通信号灯的4种状态 A B C D 主干道交通灯 绿(40秒) 黄(4秒) 红(20秒) 红(4秒) 支干道交通灯 红 红 绿 黄 2.设计要求 采用VHDL语言编写程序,并在QuartusII工具平台中进行开发,下载到EDA实验箱进行验证。 编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。 3.设计方案 状态寄存器秒脉冲信号发生器计数器CLK 状态寄存器 秒脉冲信号发生器 计数器 时间显示数据输出 次态发生器 次态发生器 信号灯输出信号 信号灯输出 图3-1 交通信号灯控制器程序原理框图 进程将CLK信号分频后产生1秒信号,然后构成两个带有预置数功能的十进制计数器,并产生允许十位计数器计数的控制信号。状态寄存器实现状态转换和产生状态转换的控制信号,下个模块产生次态信号和信号灯输出信号,以及每一个状态的时间值。经过五个模块的处理,使时间计数、红绿灯显示能够正常运行。程序原理图如图3-1所示。 4.各模块具体设计 4.1顶层文件的设计 顶层文件的原理图可以依据系统的框图进行,由控制模块JTD_CTRL、计时模块JTD_TIME、译码驱动模块JTD_LIGHT、显示模块JTD_DIS和分频模块JTD_FQU五部分组成,其顶层原理图文件如图3-1所示。 图4-1交通灯顶层文件原理图 顶层模块的程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY TRAFFIC IS PORT( CLK1K,CLR:IN STD_LOGIC; M:IN STD_LOGIC_VECTOR(2 DOWNTO 0); LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); ABL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END TRAFFIC; ARCHITECTURE BEHAVE OF TRAFFIC IS COMPONENT JTD_FQU IS --分频器元件的例化 PORT( CLK1K:IN STD_LOGIC; CLK:OUT STD_LOGIC ); END COMPONENT; COMPONENT JTD_DIS IS --数码显示的元件例化 PORT( CLK1K,CLK,CLR:IN STD_LOGIC; M:IN STD_LOGIC_VECTOR(2 DOWNTO 0); AT,BT:IN STD_LOGIC_VECTOR(7 DOWNTO 0); LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0) ); END COMPONENT; COMPONENT JTD_LIGHT I
显示全部
相似文档