module top_module(
input clk,
input areset, // Freshly brainwashed Lemmings walk left.
input bump_left,
input bump_right,
input ground,
input dig,
output walk_left,
output walk_right,
output aaah,
output digging );
reg [4:0] count;
reg [2:0] state, next_state;
parameter deathtime = 5'd20;
parameter left = 3'b000, right = 3'b001,fall_left = 3'b010, fall_right = 3'b011, dig_left = 3'b100, dig_right = 3'b101, splatter=3'b110,death='b111;
//定义计数器
always@(posedge clk or posedge areset)begin
if(areset)
count <= 5'b0;
else if((state== fall_left) || (state==fall_right))
count <= count+5'b1;
else
count <= 5'b0;
end
//状态转移条件
always @(*)begin
case(state)
left:begin
if(ground == 1'b0)
next_state = fall_left;
else if (dig == 1'b1)
next_state = dig_left;
else if (bump_left ==1'b1)
next_state = right;
else
next_state = left;
end
right:begin
if(ground == 1'b0)
next_state = fall_right;
else if (dig == 1'b1)
next_state = dig_right;
else if(bump_right== 1'b1)
next_state = left;
else
next_state =right;
end
fall_left:begin
if(ground==1'b0)
if(count > deathtime)
next_state = splatter;
else
next_state = fall_left;
else
next_state = left;
end
fall_right:begin
if(ground == 1'b0)
if(count > deathtime )
next_state = splatter;
else
next_state = fall_right;
else
next_state = right;
end
dig_left:begin
if(ground == 1'b0)
next_state = fall_left;
else
next_state = dig_left;
end
dig_right:begin
if(ground == 1'b0)
next_state = fall_right;
else
next_state = dig_right;
end
splatter: begin
if(ground==1'b1)
next_state= splatter;
else
next_state = death;
end
death:next_state = death;
default: next_state = left;
endcase
end
//状态转移过程
always@(posedge clk or posedge areset)begin
if(areset)
state <= left;
else
state <= next_state;
end
//output
always @(*) begin
case (state)
death, splatter: begin
walk_left = 0;
walk_right = 0;
aaah = 0;
digging = 0;
end
default: begin
walk_left = (state == left);
walk_right = (state == right);
aaah = ((state == fall_left) |(state == fall_right) | (state == splatter));
digging = ((state == dig_left) | (state == dig_right));
end
endcase
end
endmodule
友友们帮忙看一下哪里出现了问题。