新建 文本文档.txt
来自「交通灯状态机的实现」· 文本 代码 · 共 227 行
TXT
227 行
module trafficLight(clk_system,reset,snCar, ewCar, snRed, snYellow, snGreen, ewRed, ewYellow, ewGreen); input clk_system; input reset; input snCar; input ewCar; output snRed, snYellow, snGreen; output ewRed, ewYellow, ewGreen; reg snRed, snYellow, snGreen; reg ewRed, ewYellow, ewGreen; reg[3:0] state; reg[7:0] counter; reg enable; initial begin snRed <= 0; snYellow <= 0; snGreen <= 0; ewRed <= 0; ewYellow <= 0; ewGreen <= 0; state <= 4'b0001; counter = 0; enable = 0; end always@(posedge clk_system) if(reset) begin snRed <= 0; snYellow <= 0; snGreen <= 0; ewRed <= 0; ewYellow <= 0; ewGreen <= 0; state <= 4'b0001; counter <= 0; enable <= 0; end else case({snCar,ewCar}) 2'b01 : begin ewGreen <= 1; ewYellow <= 0; ewRed <= 0; snGreen <= 0; snYellow <= 0; snRed <= 1; state <= 4'b0001; counter <= 0; enable <= 0; end 2'b10 : begin ewGreen <= 0; ewYellow <= 0; ewRed <= 1; snGreen <= 1; snYellow <= 0; snRed <= 0; state <= 4'b0001; counter <= 0; enable <= 0; end 2'b00 : begin state <= 4'b0001; counter <= 0; enable <= 0; end 2'b11 : begin case(state) 4'b0001:begin if(counter >=50 ) begin state <= 4'b0010; counter <= 0; enable <= 0; end else if(enable == 0) begin ewGreen <= 1; ewYellow <= 0; ewRed <= 0; snGreen <= 0; snYellow <= 0; snRed <= 1; enable <= 1; counter <= counter + 1; end else counter <= counter + 1; end 4'b0010:begin if(counter >=20 ) begin state <= 4'b0100; counter <= 0; enable <= 0; end else if(enable == 0) begin ewGreen <= 0; ewYellow <= 1; ewRed <= 0; snGreen <= 0; snYellow <= 0; snRed <= 1; enable <= 1; counter <= counter + 1; end else counter <= counter + 1; end 4'b0100:begin if(counter >=50 ) begin state <= 4'b1000; counter <= 0; enable <= 0; end else if(enable == 0) begin ewGreen <= 0; ewYellow <= 0; ewRed <= 1; snGreen <= 1; snYellow <= 0; snRed <= 0; enable <= 1; counter <= counter + 1; end else counter <= counter + 1; end 4'b1000:begin if(counter >=20 ) begin state <= 4'b0001; counter <= 0; enable <= 0; end else if(enable == 0) begin ewGreen <= 0; ewYellow <= 0; ewRed <= 1; snGreen <= 0; snYellow <= 1; snRed <= 0; enable <= 1; counter <= counter + 1; end else counter <= counter + 1; end endcase end endcase endmodule
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?