1. 문제 및 설명
A. Lemmings의 2차원 세계에서, Lemming은 두 가지 상태 중 하나에 있을 수 있다.
- 오른쪽으로 걷는 상태
- 왼쪽으로 걷는 상태
B. Lemmings는 장애물에 부딪히면 이동 방향을 바꾼다.
- 왼쪽에서 부딪히면 -> 오른쪽으로
- 오른쪽에서 부딪히면 -> 왼쪽으로
- 양쪽에서 동시에 부딪혀도 이동 방향을 바꾼다.
2. 요구사항
A. 두 개의 상태, 두 개의 입력, 하나의 출력을 가지는 무어 상태 머신을 구현하시오.
3. 문제 풀이
A. State
- LEFT
- RIGHT

4. 모듈 정의
module top_module(
input clk,
input areset, // Freshly brainwashed Lemmings walk left.
input bump_left,
input bump_right,
output walk_left,
output walk_right);
5. 답
module top_module(
input clk,
input areset, // Freshly brainwashed Lemmings walk left.
input bump_left,
input bump_right,
output walk_left,
output walk_right); //
parameter LEFT=0, RIGHT=1;
reg state, next_state;
always @(*) begin
// State transition logic
case(state)
LEFT: next_state = bump_left?RIGHT:LEFT;
RIGHT: next_state = bump_right?LEFT:RIGHT;
endcase
end
always @(posedge clk, posedge areset) begin
// State flip-flops with asynchronous reset
if(areset)
state <= LEFT;
else
state <= next_state;
end
// Output logic
assign walk_left = (state == LEFT);
assign walk_right = (state == RIGHT);
endmodule
'Verilog > HDLbits' 카테고리의 다른 글
| [HDLBits] Lemmings3 (0) | 2026.04.11 |
|---|---|
| [HDLBits] Lemmings2 (0) | 2026.04.11 |
| [HDLBits] Exams/ece241 2013 q4 (1) | 2026.04.08 |
| [HDLBits] Fsm3s (0) | 2026.03.17 |
| [HDLBits] Fsm3 (0) | 2026.03.17 |