Menu
Coddy logo textTech

샘플 누적하기

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

부호 없는 샘플 스트림을 위한 재사용 가능한 모니터를 구축하세요. 값을 누적하고, enable 및 clear 제어를 준수하며, 허용된 샘플의 개수를 세고 임계값에 도달했는지 보고합니다. 다섯 단계 모두 동일한 모듈 인터페이스와 고정된 테스트벤치를 유지합니다. 예약된 출력은 이후 단계에서 동작을 얻습니다.

challenge icon

챌린지

어려움

다섯 단계에 걸쳐 하나의 Sample Monitor를 구축하세요. 상승 에지마다 동기식 rst가 total을 지우고, 그렇지 않으면 부호 없는 data를 total에 더합니다. 16비트 total 레지스터를 사용하세요. 이 첫 번째 단계에서는 en과 clear가 사용되지 않으며, 시나리오에서는 en=1 및 clear=0으로 유지됩니다. count와 alarm은 0으로 유지되는 예약된 출력입니다. 모든 입력 값은 알려져 있습니다. 시나리오에는 최대 40개의 에지가 있으므로 total은 16비트에 들어갑니다. 고정된 testbench는 시나리오 1-9에서는 total을, 시나리오 10-12에서는 total과 count를, 시나리오 13-15에서는 total, count 및 alarm을 출력합니다. 이 단계에 활성화된 시나리오만 채점됩니다.

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

직접 해보기

module dut(input clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
    initial begin total=0;count=0;end
    assign alarm=0;
endmodule

RTL 설계 및 검증의 모든 레슨

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