1. 문제 및 설명
A. 아래 상태 머신을 구현하라.

B. 이 상태 머신은 one-hot 인코딩을 사용한다.
- state[0] 부터 state[9]까지는 각각 상태 S0부터 S9에 대응된다
- 상태 전이 및 출력에 대한 논리식을 직접 유도하여 구현해야 한다.
C. 출력은 별도로 명시되지 않는 한 모두 0이다.
D. 플립플롭은 구현하지 않고, 상태 전이 로직과 출력 로직만 구현하시오.
2. 요구사항
A. 복잡한 방식(ex. case 문 기반 디코딩 등)을 사용하지 않도 순수 조합회로로 구현하라.
- 테스트벤치는 One-hot이 아닌 입력(state에 여러 비트가 1인 경우)도 테스트할 것이다.
3. 모듈 정의
module top_module(
input in,
input [9:0] state,
output [9:0] next_state,
output out1,
output out2);
4. 답
module top_module(
input in,
input [9:0] state,
output [9:0] next_state,
output out1,
output out2);
assign next_state[0] = (state[0]|state[1]|state[2]|state[3]|state[4]|state[7]|state[8]|state[9])&(!in);
assign next_state[1] = (state[0]|state[8]|state[9])∈
assign next_state[2] = (state[1] & in);
assign next_state[3] = (state[2] & in);
assign next_state[4] = (state[3] & in);
assign next_state[5] = (state[4] & in);
assign next_state[6] = (state[5] & in);
assign next_state[7] = (state[6]|state[7]) & in;
assign next_state[8] = (state[5] & !in);
assign next_state[9] = (state[6] & !in);
assign out1 = state[8]|state[9];
assign out2 = state[9]|state[7];
endmodule
'Verilog > HDLbits' 카테고리의 다른 글
| [HDLBits] Fsm ps2data (0) | 2026.04.20 |
|---|---|
| [HDLBits] Fsm ps2 (2) | 2026.04.20 |
| [HDLBits] Lemmings4 (0) | 2026.04.11 |
| [HDLBits] Lemmings3 (0) | 2026.04.11 |
| [HDLBits] Lemmings2 (0) | 2026.04.11 |