名称:DE0开发板的交通灯控制器红绿灯verilog手动自动(代码在文末付费下载)
软件:QuartusII
语言:Verilog
代码功能:
交通灯控制器,DE0开发板验证
要求:分两个方向(1、2),每个方向各有红(R)、绿(G)、黄(Y)三个交通灯。
有自动,手动两种控制方式。
演示视频:
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
阅读全文
664