Menu
Coddy logo textTech

4상태 검사

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

테스트벤치는 미지 값을 신중하게 다뤄야 합니다. 일반 동등성 비교는 X를 반환할 수 있으며, 이로 인해 if 조건문에서 오류가 숨겨질 수 있습니다. 케이스 동등성과 부등식인 === 및 !==는 네 가지 값을 모두 문자 그대로 비교하고 알려진 Boolean을 반환합니다. 축약 XOR 후 case를 사용하여 X와 비교하면 미지 비트를 감지할 수 있습니다. 이러한 기능은 시뮬레이션 검사로 사용해야 하며, 물리적인 X 값을 감지하는 하드웨어 모델로 사용해서는 안 됩니다.

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

if(actual !== expected) errors = errors + 1;

X 또는 Z가 관련된 차이는 알 수 없는 조건 속으로 사라지는 대신 계산됩니다.

시뮬레이션 검사기에서 명시적인 4상태 비교를 사용하고 미정 값을 어떻게 처리할지 정의하세요.

challenge icon

챌린지

중급

이는 합성 가능한 데이터패스 로직이 아닌 시뮬레이션 전용 검사기입니다. 4값 비교에서 actual과 expected가 다를 때 mismatch를 설정합니다. 동일한 위치에 두 값이 같은 X 또는 Z를 가지고 있으면 서로 같은 것으로 비교됩니다. 결과는 반드시 알려진 0 또는 1이어야 합니다. 출력 열: mismatch. 모든 자극 값은 알려진 이진 값입니다.

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

직접 해보기

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

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

RTL 설계 및 검증의 모든 레슨

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