본문 바로가기

Verilog/HDLbits

[HDLBits] Fsm onehot

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