Menu
Coddy logo textTech

포화 카운터

Coddy Verilog 여정의 RTL 설계 및 검증 섹션에 포함된 레슨. 38개 중 17번째.

Fundamentals에서는 래핑 카운터를 사용했습니다. 반면 포화 카운터는 경계에서 멈추므로 제한된 카운트에 유용합니다. 산술 업데이트에 명시적인 가드를 추가하고 enable 및 reset 동작은 제한값과 독립적으로 유지하세요.

관련 발췌문이며, 주변 선언과 연결은 과제에서 제공됩니다.

always @(posedge clk) begin
    if(rst) count <= 0;
    else if(en && count != 15) count <= count + 1;
end

최댓값이 0으로 순환하지 않고 유지됩니다.

카운터가 래핑되지 않고 포화되어야 할 때 경계 업데이트를 명시적으로 보호하세요.

challenge icon

챌린지

중급

4비트 포화 카운터 q를 만드세요. 동기식 rst는 카운터를 지웁니다. 활성화된 에지에서는 15까지 증가한 후 15에서 유지되고, 비활성화된 에지에서도 현재 값을 유지합니다. 리셋이 우선합니다. 출력 열: q. 각 상승 클록 에지 전에 모든 제어 신호와 데이터는 안정된 상태이며, 결과는 그 이후에 관찰됩니다.

design.v를 완성하고 모듈 이름과 포트를 그대로 유지하세요. 잠긴 testbench.v가 입력 변경을 제공하고 안정화된 후 출력을 출력합니다. 시뮬레이터 인수(예: +CASE=1)를 사용하여 시나리오를 선택하며, 표준 입력은 필요하지 않습니다. 설계에 출력, 지연 또는 시뮬레이션 종료를 추가하지 마세요. 예상 출력은 관찰 결과마다 10진수 값이 한 행에 하나씩 표시되며, 값은 공백 하나로 구분되고 줄바꿈으로 끝나야 합니다.

직접 해보기

module dut (input clk, input rst, input en, output reg [3:0] q);
    // 이 플레이스홀더를 여러분의 설계로 교체하세요.
    initial q = 0;
endmodule
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

RTL 설계 및 검증의 모든 레슨

직접 연습해 보세요: 온라인 Verilog 컴파일러