交通灯

公众号: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
  • 1
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值