解析:和Lemmings2类似,增了个挖地的功能,dig为0时,会进行挖地,一直挖到ground为0。思路类似,将左右挖地分开。
代码:
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 );
parameter L=0,R=1,GL=2,GR=3,DL=4,DR=5;
reg [2:0]state,next;
always@(*)
begin
case(state)
L:next=ground?((dig?DL:(bump_left?R:L))):GL;
R:next=ground?((dig?DR:(bump_right?L:R))):GR;
GL:next=ground?L:GL;
GR:next=ground?R:GR;
DL:next=ground?DL:GL;
DR:next=ground?DR:GR;
endcase
end
always@(posedge clk or posedge areset)
begin
if(areset)
state<=L;
else
state<=next;
end
assign walk_left=(state==L);
assign walk_right=(state==R);
assign aaah=(state==GL | state==GR);
assign digging=(state==DL | state==DR);
endmodule