旅鼠游戏3-HDLbits

在左右走,掉落的基础上再加上挖坑的动作,重点是判断优先级,掉落》挖坑》左右走。

注意:不能边掉边挖,只能在没掉,行走时,停下来挖。也就状态转换的逻辑要清晰。

image

 

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 LEFT=0,RIGHT=1,FALL_L=2,FALL_R=3,DIG_L=4,DIG_R=5;
reg [2:0]state,next_state;

always @(posedge clk,posedge areset)
if(areset)
state<=LEFT;
else
state<=next_state;

always @(*)
case(state)
LEFT:next_state=!ground?FALL_L:(dig?DIG_L:(bump_left?RIGHT:LEFT));
RIGHT:next_state=!ground?FALL_R:(dig?DIG_R:(bump_right?LEFT:RIGHT));
FALL_L:next_state=!ground?FALL_L:LEFT;
FALL_R:next_state=!ground?FALL_R:RIGHT;
DIG_L:next_state=!ground?FALL_L:DIG_L;
DIG_R:next_state=!ground?FALL_R:DIG_R;
endcase

assign walk_left=(state==LEFT)?1'b1:1'b0;
assign walk_right=(state==RIGHT)?1'b1:1'b0;
assign aaah=(state==FALL_L || state==FALL_R)?1'b1:1'b0;
assign digging=(state==DIG_L || state==DIG_R)?1'b1:1'b0;
endmodule

image

 

posted on 2025-12-16 11:16  yf.x  阅读(1)  评论(0)    收藏  举报

导航