Traffic Light Controller
Traffic Light Controller
Design
module Traffic_Light_Controller(
input clk,
input rst,
output reg [2:0] light_M, // Main road light
output reg [2:0] light_S // Side road light
);
Testbench
module Traffic_Light_Controller_tb;
reg clk;//Inputs
reg rst;
wire [2:0] light_M; // Main road light
wire [2:0] light_S; // Side road light
Traffic_Light_Controller uut (.clk(clk),.rst(rst),.light_M(light_M),.light_S(light_S));
always #5 clk = ~clk;
initial begin
clk = 0;
rst = 1;
#20 rst = 0;
#500 $finish;
end
initial begin
$monitor("Time: %0t | light_M = %b, light_S = %b", $time, light_M, light_S);
end
endmodule
WaveForm
Output
Time: 0 | light_M = 001, light_S = 100
Time: 95000 | light_M = 010, light_S = 100
Time: 125000 | light_M = 100, light_S = 001
Time: 205000 | light_M = 100, light_S = 010
Time: 235000 | light_M = 001, light_S = 100
Time: 315000 | light_M = 010, light_S = 100
Time: 345000 | light_M = 100, light_S = 001
Time: 425000 | light_M = 100, light_S = 010
Time: 455000 | light_M = 001, light_S = 100