수락된 샘플 개수 세기
Coddy Verilog 여정의 RTL 설계 및 검증 섹션에 포함된 레슨. 38개 중 34번째.
챌린지
어려움5단계에 걸쳐 하나의 Sample Monitor를 구축하세요. count에서 허용된 샘플을 추적하세요. 리셋 또는 클리어 중이 아닌 각 en 에지마다 count를 증가시키고, 최대 15에서 포화시키세요. rst 또는 clear는 count와 total을 모두 재설정합니다. 값이 0인 허용된 샘플도 count를 증가시켜야 합니다. 테스트벤치와 이전 출력 동작을 포함하여 이전 단계의 모든 내용을 유지하세요. 모든 입력값은 알려져 있습니다. 시나리오에는 최대 40개의 에지가 포함되므로 total은 16비트에 저장할 수 있습니다. 고정된 테스트벤치는 시나리오 1~9에서는 total을, 시나리오 10~12에서는 total과 count를, 시나리오 13~15에서는 total, count 및 alarm을 출력합니다. 이 단계에서 활성화된 시나리오만 채점됩니다.
design.v를 완성하고 모듈 이름과 포트를 유지하세요. 잠긴 testbench.v는 입력 변경을 제공하고 안정화된 후 출력을 출력합니다. +CASE=1과 같은 시뮬레이터 인수를 사용하여 시나리오를 선택하며, 표준 입력은 필요하지 않습니다. 설계에 출력, 지연 또는 시뮬레이션 종료를 추가하지 마세요. 예상 출력은 관찰 결과마다 십진수 값이 한 행에 하나씩 표시되며, 값은 공백 하나로 구분되고 줄바꿈으로 끝납니다.
직접 해보기
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);
always @(posedge clk)begin
if(rst)total<=0;else if(clear)total<=0;else if(en)total<=total+data;
count<=0;
end
assign alarm=0;
endmoduleRTL 설계 및 검증의 모든 레슨
직접 연습해 보세요: 온라인 Verilog 컴파일러