eda,交通灯设计总结.docx
文本预览下载声明
eda,交通灯设计总结
实验:交通灯设计 一、设计任务及要求: 设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。要求: 交通灯从绿变红时,有4秒黄灯亮的间隔时间; 交通灯红变绿是直接进行的,没有间隔时间; 主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒; 在任意时间,显示每个状态到该状态结束所需的时间。 主干道 图1 路口交通管理示意图 设计要求: 采用VHDL语言编写程序,并在QuartusII工具平台中进行仿真,下载到 EDA实验箱进行验证。 编写设计报告,要求包括方案选择、程序清单、调试过程及测试结果。 二、设计原理 1、设计目的: 学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制 2、设计说明 第一模块:clk时钟秒脉冲发生电路 在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。因此为了避免意外事件的发生,电路必须给一个稳定的时钟才能让系统正常运作。 模块说明: 系统输入信号: Clk:由外接信号发生器提供256的时钟信号;(来自:写论文网:eda,交通灯设计总结) 系统输出信号:full:产生每秒一个脉冲的信号; 第二模块:计数秒数选择电路 计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。 模块说明: 系统输入:full:接收由clk电路的提供的1HZ的时钟脉冲信号; 系统输出信号:tm:产生显示电路状态转换信号 tl:倒计数值秒数个位变化控制信号 th:倒计数值秒数十位变化控制信号 第三模块:红绿灯状态转换电路 本电路负责红绿灯的转换。 模块说明: 系统输入信号:full:接收由clk电路的提供的1hz的时钟脉冲信号;tm:接收计数秒数选择电路状态转换信号; 系统输出信号:comb_out:负责红绿灯的状态显示。 第四模块:时间显示电路 本电路负责红绿灯的计数时间的显示。 模块说明: 系统输入信号:tl:倒计数值秒数个位变化控制信号; th:倒计数值秒数十位变化控制信号; 系统输出信号:led7s1:负责红绿灯的显示秒数个位。 led7s2:负责红绿灯的显示秒数十位。 三、设计方案 图2交通信号灯控制器的原理框图 采用VHDL语言输入的方式实现交通信号灯控制器 图3交通信号灯控制器程序原理框图 该程序由7个进程组成,进程P1和P2将CLK信号分频后产生1秒信号,进程P3、P4、P5构成两个带有预置数功能的十进制计数器,其中P4产生允许十位计数器计数的控制信号。进程P6实现状态转换和产生状态转换的控制信号,进程P7产生次态信号和信号灯输出信号,以及每一个状态的时间值。 四、程序清单: LIBRARYIEEE; USE_LOGIC_; USE_LOGIC_; ENTITYtrafficIS PORT(clk:instd_logic; led7s1:outstd_logic_vector(6downto0); led7s2:outstd_logic_vector(6downto0); comb_out:outstd_logic_vector(5downto0)); ARCHITECTUREoneOFtrafficIS TYPEdmIS(s0,s1,s2,s3); SIgnalcurrent_state,next_state:dm; SIGNALFULL:STD_LOGIC; SIGNALtl:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALth:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALtm:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALTIME:STD_LOGIC_VECTOR(6DOWNTO0);BEGIN P_REG:PROCESS(CLK) VARIABLECNT8:STD_LOGIC_VECTOR(7DOWNTO0);BEGIN IFCLKEVENTANDCLK=1THEN IFCNT8=THEN CNT8:=; FULLcomb_outcomb_outcomb_outcomb_out=30THENth=20THENth=10THENthled7s1led7s1led7s1led7s1null; endcase; casetlis w
显示全部