Menu
Coddy logo textTech

경계 및 제어 커버리지

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

몇 가지 테스트를 통과하는 것과 중요한 시나리오를 시험하는 것은 다릅니다. 최솟값, 최댓값 및 일반적인 값이 테스트되었는지, 그리고 서로 경쟁하는 제어가 함께 발생했는지를 추적하세요. 적용 범위 플래그는 case가 관찰되었음을 기록할 뿐이며, 설계가 올바르게 응답했음을 증명하지는 않습니다. 적용 범위를 결과 확인과 함께 사용하세요.

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

if(value==0) seen[0]=1;
else if(value==15) seen[1]=1;
else seen[2]=1;

비트 마스크는 이전에 감지된 항목을 대체하지 않고 어떤 범주가 나타났는지 기억합니다.

경계 및 제어 조합 커버리지를 독립적인 정확성 검사와 결합하세요.

challenge icon

챌린지

중급

이전 히트를 지우지 않고 seen에서 세 개의 입력 커버리지 빈을 추적합니다. 비트 0은 value=0을 기록하고, 비트 1은 value=15를 기록하며, 비트 2는 1부터 14까지의 값을 기록합니다. 입력에는 알려진 비트가 포함되어 있습니다. 호출자는 시나리오 전에 seen=0으로 초기화합니다. 이 모듈에는 잠긴 테스트벤치에서 호출하는 시뮬레이션 전용 task가 포함되어 있습니다. 출력 열: 10진수로 표시한 seen.

design.v를 완성하고 모듈 이름과 포트를 보존합니다. 잠긴 testbench.v는 입력을 변경하고 안정화된 후 출력을 출력합니다. +CASE=1과 같은 시뮬레이터 인수를 사용하여 시나리오를 선택하며, 표준 입력은 필요하지 않습니다. 출력과 시나리오 제어는 잠긴 테스트벤치에 그대로 두고, task 본문만 구현합니다. 예상 출력은 관찰마다 10진수 값이 한 행씩 표시되며, 값은 공백 하나로 구분되고 줄 바꿈으로 끝납니다.

직접 해보기

module dut;
    task observe;
        input [3:0] value;
        inout [2:0] seen;
        begin
            // 체커 태스크를 완성하세요.
            seen=seen;
        end
    endtask
endmodule
quiz icon실력 점검

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

RTL 설계 및 검증의 모든 레슨

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