본문 바로가기

Verilog/HDLbits

[HDLBits] Exams/review2015 shiftcount

1. 문제 및 설명

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

 

2.    요구사항

     A.  4비트 시프트 레지스터이자 다운 카운터 역할을 하는 회로를 설계하시오.

  • shift_ena가 1일 때, 데이터는 최상위 비트 부터 순서대로 시프트 됩니다.
  • count_ena가 1일 때, 시프트 레지스터에 저장된 현재 값은 1씩 감소합니다.
  • 전체 시스템에서 shift_ena와 count_ena가 동시에 1이 되는 경우는 없습니다.

 

3. 모듈 정의

module top_module (
    input clk,
    input shift_ena,
    input count_ena,
    input data,
    output [3:0] q);

 

 

 

4. 답

module top_module (
    input clk,
    input shift_ena,
    input count_ena,
    input data,
    output [3:0] q);
    
    always@(posedge clk)
        begin
            if(shift_ena == 1)
                q <= {q[2:0], data};
            else if(count_ena)
                q <= q - 1'b1;
            else
                q <= q;
        end
endmodule

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

[HDLBits] Exams/review2015 shiftcount  (0) 2026.05.31
[HDLBits] Exams/review2015 shiftcount  (0) 2026.05.31
[HDLBits] Exams/review2015 count1k  (0) 2026.05.31
[HDLBits] Exams/2013 q2bfsm  (0) 2026.05.17
[HDLBits] Exams/2013 q2afsm  (0) 2026.05.17