赞
踩
公众号:FPGA技术小开发
一、主要仪器设备及软
硬件:FPGA核心板(xc7a35tftg256_1)
软件:vivado2018.3
二、实验任务
十字路口的交通灯管理系统。在主干道和小道的十字交叉路口,设置交通灯管理系统,管理车辆运行。小道路口设有传感器C(此处以按键key代替),当小道有车要求通行时,传感器输出key=1,否则key=0。主干道通车时绿灯亮,小道不通车时红灯亮,主干道通车至少10S。超过10S时,若小道有车要求通行,即C=1,主干道绿灯灭黄灯亮3S,之后改为主干道红灯亮,小道绿灯亮。小道通车最长时间被限定为10S,在10S内,只要小道无车,即C=0,小道交通灯由绿灯亮变为黄灯亮持续3S后变为红灯亮,主干道由红灯亮变为绿灯亮。
三、基本组成
(1)管脚定义
module jiaotongdeng(
input clk,
input clr,
input key0,
output reg clk_1hz,
output reg [5:0] LED,
output reg [3:0] data,
output reg [1:0] wei
);
(2)中间变量定义
//使用每态一个触发器定义五个状态
parameter s0=5’b00001;
parameter s1=5’b00010;
parameter s2=5’b00100;
parameter s3=5’b01000;
parameter s4=5’b10000;
reg [4:0] now_state; //现态
reg [4:0] next_state; //下一个状态
reg [9:0] count; //分频计数
reg flag1; //当flag1=1进入s2
reg flag2; //当flag2=1进入s3
reg flag3; //当flag3=1进入s4
reg flag4; //当flag4=1进入s0
parameter flag11=1’b0;
parameter flag22=1’b0;
parameter flag33=1’b0;
parameter flag44=1’b0;
reg [5:0] count_g1; //主干道绿灯亮的时间计数
reg [1:0] count_y1; //黄灯亮的时间的计数
reg [5:0] count_g2; //次干道绿灯亮的时间计数
reg [1:0] count_y2; //黄灯亮的时间的计数
//显示数据
//主干道
reg [3:0] data_g1_ge; //绿灯计数的个位
reg [3:0] data_g1_shi; //十位数字
reg [3:0] data_y1_ge; //黄灯计数的个位
reg [3:0] data_y1_shi; //十位数字
//次干道
reg [3:0] data_g2_ge; //绿灯计数的个位
reg [3:0] data_g2_shi; //十位数字
reg [3:0] data_y2_ge; //黄灯计数的个位
reg [3:0] data_y2_shi; //十位数字
reg cnt; //控制位选信号
四、设计过程
1、时钟分频
always @ (posedge clk or negedge clr )
begin
if(!clr)
begin
count<=1'b0;
clk_1hz<=1'b0;
end
else if(count==10’d1000)
begin
count<=1'b0;
clk_1hz<=~clk_1hz;
end
else
count<=count+
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。