一、主要仪器设备及软
硬件: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
else if(count==10’d1000)
end
2、控制器
2.1状态转移
always @(posedge clk )
begin
end
2.2判断是否进入下一个状态
always @ (*)
begin
end
3、数据处理
3.1主干道绿灯计数,状态s1的数据处理
always @(posedge clk_1hz or negedge clr)
begin
end
3.2主干道黄灯亮,状态s2数据处理
always @(posedge clk_1hz or negedge clr)
begin
end
3.3次干道绿灯亮,状态s3数据处理
always @(posedge clk_1hz or negedge clr)
begin
end
3.4次干道为黄灯,状态s4数据处理
always @(posedge clk_1hz or negedge clr)
begin
end
4、显示模块
4.1数码管显示
always @( posedge clk or negedge clr )
begin
end
always @(posedge clk or negedge clr)
begin
end
always @(posedge clk)
begin
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!