EDA课程设计报告--交通信号控制器的VHDL设计.doc
文本预览下载声明
EDA 课题设计报告
题 目:交通信号控制器的VHDL设计
指 导 老 师 :
学 院 :
班 级 :08级电子信息工程
学 号 :
姓 名 :
交通灯信号控制器的VHDL设计
一、设计任务及要求:
设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。要求:
交通灯从绿变红时,有4秒黄灯亮的间隔时间;
交通灯红变绿是直接进行的,没有间隔时间;
主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;
在任意时间,显示每个状态到该状态结束所需的时间。
支干道
主干道
图1 路口交通管理示意图
A B C D 主干道交通灯 绿(40秒) 黄(4秒) 红(20秒) 红(4秒) 支干道交通灯 红 红 绿 黄 表1 交通信号灯的4种状态
设计要求:
采用VHDL语言编写程序,并在QUARTUSII工具平台中进行仿真,下载到EDA实验箱进行验证。
编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。
设计时间和地点:两个星期,信息楼4楼EDA实验室。
2、参考设计方案
时间显示数据输出
红黄绿灯信号输出
图2 交通信号灯控制器的原理框图
3、采用VHDL语言输入的方式实现交通信号灯控制器
CLK
时间显示数据输出
信号灯输出
图3 交通信号灯控制器程序原理框图
该程序由7个进程组成,进程P1和P2将CLK信号分频后产生1秒信号,进程P3、P4、P5构成两个带有预置数功能的十进制计数器,其中P4产生允许十位计数器计数的控制信号。进程P6实现状态转换和产生状态转换的控制信号,进程P7产生次态信号和信号灯输出信号,以及每一个状态的时间值。
二、程序设计
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY traffic IS
PORT (clk:in std_logic;
led7s1:out std_logic_vector(6 downto 0);
led7s2:out std_logic_vector(6 downto 0);
comb_out:out std_logic_vector(5 downto 0));
END;
ARCHITECTURE one OF traffic IS
TYPE dm IS (s0,s1,s2,s3);
SIgnal current_state,next_state:dm;
SIGNAL FULL : STD_LOGIC;
SIGNAL tl :STD_LOGIC_VECTOR(6 DOWNTO 0);
SIGNAL th:STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL tm :STD_LOGIC_VECTOR(6 DOWNTO 0);
SIGNAL TIME :STD_LOGIC_VECTOR(6 DOWNTO 0);
BEGIN
P_REG: PROCESS(CLK)
VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
IF CLKEVENT AND CLK=1 THEN
显示全部