-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathp130.v
41 lines (37 loc) · 1.1 KB
/
p130.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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 reg digging );
reg walking_right;
reg falling;
always @(posedge clk, posedge areset) begin
if (areset) begin
walking_right <= 1'b0;
digging <= 1'b0;
end else if (!ground) begin
falling <= 1'b1;
digging <= 1'b0;
end else if (falling && ground)
falling <= 1'b0;
else if (dig && !falling)
digging <= 1'b1;
else if (!falling && !digging) begin
if (bump_left && bump_right)
walking_right <= !walking_right;
else if (bump_left)
walking_right <= 1'b1;
else if (bump_right)
walking_right <= 1'b0;
end
end
assign walk_left = !falling && !digging && !walking_right;
assign walk_right = !falling && !digging && walking_right;
assign aaah = falling;
endmodule