본문 바로가기

Verilog/HDLbits

[HDLBits] Exams/review2015 shiftcount

1. 문제 및 설명

  • 이 문제는 복잡한 카운터를 만들기 위한 5단계 중 세번째 단계입니다.

 

2.    요구사항

     A.  시프트 레지스터를 제어하기 위한 FSM의, 일부로 적적한 비트 패턴이 감지될 때마다 정확히 4클록 주기 동안만 쉬프트 레지스터를 활성화하는 기능을 구현하세요.

  • 시퀸스 감지는 이전단계에서 처리하므로, 이 FSM 부분은 오직 시프트 레지스터를 4클록 주기 동안 활성화 하는 역할만 담당합니다.
  • FSM이 리셋되면 shift_ena 신호를 4클록 주기동안 1로 만든뒤, 그 다음부터는 리셋될 때까지 영원히 0을 유지해야 합니다.

 

3. 모듈 정의

module top_module (
    input clk,
    input reset,      // Synchronous reset
    output shift_ena);

 

 

 

4. 답

module top_module (
    input clk,
    input reset,      // Synchronous reset
    output shift_ena);

    reg [2:0] cnt;
    
    always@(posedge clk)
        begin
            if(reset)
                begin
                    shift_ena = 1'b1;
                    cnt <= 3'b0;
                end
            else
                begin
                    cnt <= cnt + 1'b1;
                    if(cnt==3)
                        shift_ena = 1'b0;
                end
        end
    
endmodule

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

[HDLBits] Exams/review2015 fancytimer  (0) 2026.05.31
[HDLBits] Exams/review2015 fsm  (0) 2026.05.31
[HDLBits] Exams/review2015 shiftcount  (0) 2026.05.31
[HDLBits] Exams/review2015 shiftcount  (0) 2026.05.31
[HDLBits] Exams/review2015 count1k  (0) 2026.05.31