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

DE0开发板的交通灯控制器红绿灯verilog手动自动

05/20 15:28
664
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-231031215051950.doc

共1个文件

名称:DE0开发板的交通灯控制器红绿灯verilog手动自动(代码在文末付费下载)

软件:QuartusII

语言:Verilog

代码功能:

交通灯控制器,DE0开发板验证

要求:分两个方向(1、2),每个方向各有红(R)、绿(G)、黄(Y)三个交通灯。

有自动,手动两种控制方式。

要求.jpg

演示视频:

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

部分代码展示

//红绿灯控制模块
module led(
input clk_1Hz,//1Hz时钟
input K0,//按键
input K1,//按键
input K2,//按键
input K3,//按键
//红绿灯1
output reg R1,
output reg G1,
output reg Y1,
//红绿灯2
output reg R2,
output reg G2,
output reg Y2
);
//定义4个状态
parameter S0=3'd0;
parameter S1=3'd1;
parameter S2=3'd2;
parameter S3=3'd3;
reg [2:0] state=3'd0;
reg [7:0] S0_time=8'd1;
reg [7:0] S1_time=8'd1;
reg [7:0] S2_time=8'd1;
reg [7:0] S3_time=8'd1;
//主路绿灯+主路黄灯=支路红灯时间
//支路绿灯+支路黄灯=主路红灯时间
always@(posedge clk_1Hz or posedge K0 or posedge K1 or posedge K2 or posedge K3)
if(K0)
state<=S0;//按键K0进入S0
else if(K1)
state<=S1;//按键K1进入S1
else if(K2)
state<=S2;//按键K2进入S2
else if(K3)
state<=S3;//按键K3进入S3
else
case(state)
S0:
if(S0_time<8'd2) begin//S0状态2秒
state<=S0;
S0_time<=S0_time+8'd1;//S0状态计时
end
else begin
state<=S1;//计数到后到下一状态
S0_time<='d1;
end
S1:   
   if(S1_time<8'd1) begin//S1状态1秒
state<=S1;
S1_time<=S1_time+'d1;//S1状态计时
end
else begin
state<=S2;//计数到后到下一状态
S1_time<='d1;
end

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图

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

  • 1-231031215051950.doc
    下载

相关推荐