交通灯系统设计Verilog代码Quartus仿真

名称:交通灯系统设计Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

设计交通灯系统。

① 功能:定义两个拨码开关,用来控制a,b方向灯的亮灭以及个灯亮的时间,当拨码开关都拨上去时,a方向的红灯亮,并且数码管的低两位显示红灯亮的时间,b方向的绿灯亮,数码管的高两位显示绿灯亮的时间,然后依次是a方向的绿灯、黄灯,b方向的黄灯、红灯依次循环进行交替亮灭。

② 要求:设计实现方案,划分功能模块,采用HDL建模,并完成功能仿真分析、RTL视图分析

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 仿真图

整体仿真图

分频模块

控制模块

显示模块

部分代码展示:

//红绿灯控制模块
module light_ctrl(
input clk_in,//时钟
input clk_1Hz,//1Hz时钟
input [1:0] SW,//两个拨码开关
output reg main_R,//主干道红灯
output reg main_G,//主干道绿灯
output reg main_Y,//主干道黄灯
output reg branch_R,//支干道红灯
output reg branch_G,//支干道绿灯
output reg branch_Y,//支干道黄灯
output reg [7:0] Main_road,//主干道数码管数据显示
output reg [7:0] Branch_road//支干道数码管数据显示
);
reg [7:0] main_G_cnt;
reg [7:0] main_Y_cnt;
reg [7:0] main_R_cnt;
reg [7:0] branch_G_cnt;
reg [7:0] branch_Y_cnt;
reg [7:0] branch_R_cnt;
reg [2:0] state=3'd0;
parameter M_G_state=3'd0;
parameter M_Y_state=3'd1;
parameter B_G_state=3'd2;
parameter B_Y_state=3'd3;
reg [7:0] M_G_cnt=1;
reg [7:0] M_Y_cnt=1;
reg [7:0] B_G_cnt=1;
reg [7:0] B_Y_cnt=1;
//状态机控制
always@(posedge clk_1Hz)
if(SW!=2'b11)begin//拨码不都拨上时
state<=M_G_state;//(a方向的红灯亮,b方向的绿灯亮)
end
else//拨码都拨上时
case(state)
M_G_state://(a方向的红灯亮,b方向的绿灯亮)
if(M_G_cnt<8'd45) begin//主干道绿灯45秒
state<=M_G_state;
M_G_cnt<=M_G_cnt+1;//计数
end
else begin
state<=M_Y_state;//下一状态
M_G_cnt<=1;
end
源代码

点击下方的公众号卡片获取

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值