📄 exp2.txt
字号:
timescale 1ns / 1ps
module trafficLight2(reset,clk, snCar, ewCar,snRed, snYellow, snGreen,ewRed, ewYellow, ewGreen);
input reset,clk,snCar,ewCar;
output snRed, snYellow, snGreen,ewRed, ewYellow, ewGreen;
reg[2:0] state;
reg snRed,snYellow,snGreen,ewRed, ewYellow, ewGreen;
reg[7:0] count;
//设定count的初始值
initial begin
count = 8'b0;
end
//设定状态值
parameter
idle ='d0,
ewgreen ='d1,
ewwait ='d2,
ewyellow='d3,
sngreen ='d4,
snwait ='d5,
snyellow='d6;
//未付state初始值
always @(posedge clk)
if(reset)
begin
state<=idle;
end
else
case(state)
idle:
if(ewcar==1)
begin
state<=ewgreen;
end
else
state<=sngreen;
ewgreen: begin
ewGreen <= 1;
snRed <= 1;
snYellow<= 0;
snGreen <= 0;
ewRed <= 0;
ewYellow<= 0;
if(count <8'b11000100)
begin
count <= count+1;
if (count==8'b11000100)
begin
state <= ewwait;
count <= 0;
end
end
end
ewwait: begin
if (!snCar)
begin
ewGreen <= 1;
snRed <= 1;
snYellow<= 0;
snGreen <= 0;
ewRed <= 0;
ewYellow<= 0;
end
else state <= ewyellow ;
end
ewyellow: begin
ewYellow <= 1;
snRed <= 1;
snYellow <= 0;
snGreen <= 0;
ewRed <= 0;
ewGreen <= 0;
if(count <8'b00000100)
begin
count <= count+1;
if (count==8'b00000100)
begin
state <= sngreen;
count <= 0;
end
end
end
sngreen: begin
snGreen <= 1;
ewRed <= 1;
snRed <= 0;
snYellow<= 0;
ewYellow<= 0;
ewGreen <= 0;
if(count <8'b11000100)
begin
count <= count+1;
if (count==8'b11000100)
begin
state <= snwait;
count <= 0;
end
end
end
snwait:begin
if (!ewCar)
begin
snGreen <= 1;
ewRed <= 1;
snRed <= 0;
snYellow<= 0;
ewYellow<= 0;
ewGreen <= 0;
end
else state <= snyellow ;
end
snyellow: begin
snYellow <= 1;
ewRed <= 1;
snRed<=0;
snGreen<=0;
ewYellow<=0;
ewGreen<=0;
if(count <8'b00000100)
begin
count <= count+1;
if (count==8'b00000100)
begin
state <= ewgreen;
count <= 0;
end
end
end
default: state <= ewyellow;
endcase
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -