• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

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

08/25 08:46
1007
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2409111R63X54.doc

共1个文件

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

软件:Quartus

语言:Verilog

代码功能:

设计交通灯系统。

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

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

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

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

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1075

  • 2-2409111R63X54.doc
    下载

相关推荐