본문 바로가기

Verilog/HDLbits

[HDLBits] Exams/ece241 2013 q8

1.    문제 및 설명

     A.    입력 신호 x에서 "101" 시퀀스를 인식하는 밀리머신을 구현하시오

  • 출력신호 z: "101" 시퀀스가 검출되었을 때 논리 1이 출력되어야 합니다.

 

2.    요구사항

     A.     입력 바이트 스트림을 받아 메시지 경계를 탐지하는 FSM설계 하시오.

  • 리셋: active low 비동기 리셋 기능을 갖추어야 한다.
  • 상태 제한: State 개수는 오직 3개로만 구성되어야 한다.
  • 중첩 인식: 중첩된 시퀀스를 인식할 수 있어야 한다.
    • ex) "10101"이 입력되면 "101"이 두 번 검출된 것으로 간주한다.

 

3.    문제 풀이

     A.     State

 

4. 모듈 정의

module top_module (
    input clk,
    input aresetn,    // Asynchronous active-low reset
    input x,
    output z ); 

 

 

5. 답

module top_module (
    input clk,
    input aresetn,    // Asynchronous active-low reset
    input x,
    output z ); 
    
    parameter A = 2'b00, B = 2'b01, C = 2'b10;
    reg [1:0] state, next_state;
    
    assign z = (state == C & x == 1);
    
    always@(*)
        begin
            case(state)
                A: next_state = x?B:A;
                B: next_state = x?B:C;
                C: next_state = x?B:A;
            endcase
        end
    
    always@(posedge clk, negedge aresetn)
        begin
            if(aresetn == 1'b0)
                state <= A;
            else
                state <= next_state;
        end
    

endmodule

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

[HDLBits] Exams/ece241 2014 q5b  (0) 2026.05.10
[HDLBits] Exams/ece241 2014 q5a  (0) 2026.05.10
HDLbits[HDLBits] Fsm hdlc  (0) 2026.05.10
[HDLBits] Fsm serialdp  (0) 2026.05.06
[HDLBits] Fsm serialdata  (0) 2026.05.05