본문 바로가기

Verilog/HDLbits

[HDLBits] Fsm3onehot

1. 문제 및 설명

  • One-Hot 인코딩을 가정하고, 현재 상태를 기반으로 다음 상태와 출력을 계산하도록 상태머신을 구현하시오.
    • 상태 전이 로직과 출력 로직, 즉 조합 논리 부분만 구현하면 됩니다.
    •  A=4'b0001, B=4'b0010, C=4'b0100, D=4'b1000.

 

2. 모듈 정의

module top_module(
    input in,
    input [3:0] state,
    output [3:0] next_state,
    output out);

 

 

3. 답

module top_module(
    input in,
    input [3:0] state,
    output [3:0] next_state,
    output out); //

    parameter A=0, B=1, C=2, D=3;

    // State transition logic: Derive an equation for each state flip-flop.
    assign next_state[A] = (in==0)&(state[A]|state[C])?1'b1:1'b0;
    assign next_state[B] = (in==1)&(state[A]|state[B]|state[D])?1'b1:1'b0;
    assign next_state[C] = (in==0)&(state[B]|state[D])?1'b1:1'b0;
    assign next_state[D] = (in==1)&(state[C])?1'b1:1'b0;

    // Output logic: 
    assign out = state[D];

endmodule
 

'Verilog > HDLbits' 카테고리의 다른 글

[HDLBits] Fsm3s  (0) 2026.03.17
[HDLBits] Fsm3  (0) 2026.03.17
[HDLBits] Fsm3comb  (0) 2026.03.06
[HDLBits] Fsm2s  (0) 2026.02.01
[HDLBits] Fsm2  (0) 2026.02.01