4상태 검사
Coddy Verilog 여정의 RTL 설계 및 검증 섹션에 포함된 레슨. 38개 중 26번째.
테스트벤치는 미지 값을 신중하게 다뤄야 합니다. 일반 동등성 비교는 X를 반환할 수 있으며, 이로 인해 if 조건문에서 오류가 숨겨질 수 있습니다. 케이스 동등성과 부등식인 === 및 !==는 네 가지 값을 모두 문자 그대로 비교하고 알려진 Boolean을 반환합니다. 축약 XOR 후 case를 사용하여 X와 비교하면 미지 비트를 감지할 수 있습니다. 이러한 기능은 시뮬레이션 검사로 사용해야 하며, 물리적인 X 값을 감지하는 하드웨어 모델로 사용해서는 안 됩니다.
관련 발췌문입니다. 주변 선언과 연결은 과제에서 제공됩니다.
if(actual !== expected) errors = errors + 1;X 또는 Z가 관련된 차이는 알 수 없는 조건 속으로 사라지는 대신 계산됩니다.
시뮬레이션 검사기에서 명시적인 4상태 비교를 사용하고 미정 값을 어떻게 처리할지 정의하세요.
챌린지
중급이는 합성 가능한 데이터패스 로직이 아닌 시뮬레이션 전용 검사기입니다. 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이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
RTL 설계 및 검증의 모든 레슨
직접 연습해 보세요: 온라인 Verilog 컴파일러