traffic signal

2
module traffic (clk, reset, p1, p2, p3, p4 ,pl); input clk; input reset; output[4:0] p1; output[4:0] p2; output[4:0] p3; output[4:0] p4; output[3:0] pl; reg [4:0] p1; reg [4:0] p2; reg [4:0] p3; reg [4:0] p4; reg [3:0] pl; reg [5:0]sig; always @ (posedge clk or negedge reset)l begin if(reset==1)begin p1<=00100; p2<=00100; p3<=00100; p4<=00100; pl<=01111; sig<=000000; end else begin sig<=sig+1; case(sig[5:0]) 000000:begin p1<=10011; // path 1 is green p2<=00100; // all other paths are red p3<=00100; p4<=00100; pl<=1111; end 000100:begin p1<=01000; //path 1 is yellow p2<=00100; // all other paths are red p3<=00100; p4<=00100; p1<=1111; end 001000:begin p1<=00100; // path1 is red p2<=10011; //path2 is green p3<=00100; // all other paths are red p4<=00100; pl<=1111; end 001100:begin p1<=00100; p2<=01000; //path2 is yellow p3<=00100; // all other paths are red p4<=00100; pl<=1111; end 010000:begin p1<=00100; p2<=00100; p3<=10011; //path3 is green p4<=00100; // all other paths are red

Upload: sureshfm1

Post on 10-Jul-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

module traffic (clk, reset, p1, p2, p3, p4 ,pl); input clk; input reset; output[4:0] p1; output[4:0] p2; output[4:0] p3; output[4:0] p4; output[3:0] pl; reg [4:0] p1; reg [4:0] p2; reg [4:0] p3; reg [4:0] p4; reg [3:0] pl; reg [5:0]sig; always @ (posedge clk or negedge reset)l begin if(reset==1)begin p1<=00100; p2<=00100; p3<=00100; p4<=00100; pl<=01111; sig<=000000; end else begin sig<=sig+1; case(sig[5:0]) 000000:begin p1<=10011; // path 1 is green p2<=00100; // all other paths are red p3<=00100; p4<=00100; pl<=1111; end 000100:begin p1<=01000; //path 1 is yellow p2<=00100; // all other paths are red p3<=00100; p4<=00100; p1<=1111; end 001000:begin p1<=00100; // path1 is red p2<=10011; //path2 is green p3<=00100; // all other paths are red p4<=00100; pl<=1111; end 001100:begin p1<=00100; p2<=01000; //path2 is yellow p3<=00100; // all other paths are red p4<=00100; pl<=1111; end 010000:begin p1<=00100; p2<=00100; p3<=10011; //path3 is green p4<=00100; // all other paths are red

p1<=1111; end 010100:begin p1<=00100; p2<=00100; p3<=01000; //path3 is yellow p4<=00100;// all other paths are red pl<=1111; end 011000:begin p1<=00100; p2<=00100; p3<=00100;// all other paths are red p4<=10011;//path4 is yellow p1<=1111; end 100000:begin p1<=00100; // all other paths are red p2<=00100; p3<=00100; p4<=00100; p1<=0000; // pedestrian green

end 100100:

sig<=000000; default:; endcase end end

endmodule