交通灯实验报告详解 - 图文 下载本文

if (!ql&!qh) begin

next_state=state1; a=0;

ql='b0000;qh='b0000; end else

if(ql=='b0000) begin

qh=qh-1; ql='b1001; end else begin ql=ql-1; end end state1: begin if(~a) begin

qh='b0000;ql='b0101;

a=1;g1=0;r1=0;y1=1;r2=1;g2=0;y2=0; end else

if(ql=='b0000) begin

next_state=state2; a=0;

ql='b0000;qh='b0000; end else begin ql=ql-1; end end state2: begin if(~a) begin

qh='b0010;ql='b0101;

a=1;r1=1;g1=0;y1=0;g2=1;r2=0;y2=0; end else

if(!ql&!qh) begin

next_state=state3; a=0;

ql='b0000;qh='b0000; end else

if(ql=='b0000) begin

qh=qh-1; ql='b1001; end else begin

ql=ql-1; end end

state3: begin if(~a) begin

qh='b0000;ql='b0101;

a=1;r1=1;g1=0;y1=0;r2=0;g2=0;y2=1; end else

if(ql=='b0000) begin

next_state=state0; a=0;

ql='b0000;qh='b0000; end else begin

ql=ql-1; end end endcase end

always@(posedge clk) begin

if(del=='b00) begin

del=del+1; s=ql;

end else begin del=0; s=qh; end end always@(s) begin case(s)

'b0000:z='b00111111; 'b0001:z='b00000110; 'b0010:z='b01011011; 'b0011:z='b01001111; 'b0100:z='b01100110; 'b0101:z='b01101101; 'b0110:z='b01111101; 'b0111:z='b00000111; 'b1000:z='b01111111; 'b1001:z='b01101111; endcase end

endmodule