참조 모델과 점수
Coddy Verilog 여정의 RTL 설계 및 검증 섹션에 포함된 레슨. 38개 중 28번째.
자체 검증 테스트벤치는 설계 출력과 독립적으로 예상 동작을 계산합니다. 구현이 다른 구조를 사용하더라도 참조 모델은 간단한 산술 연산을 사용할 수 있습니다. 스코어보드는 관찰 결과와 불일치 횟수를 셉니다. 시나리오마다 카운터를 한 번 초기화하고 설계 출력이 안정된 후에만 비교하세요.
관련 발췌문입니다. 주변 선언과 연결은 과제에서 제공됩니다.
expected = {1'b0,a} + {1'b0,b};
checked = checked + 1;
if(actual !== expected) errors = errors + 1;예상 값은 actual을 복사한 것이 아니라 지정된 입력 동작에서 나옵니다.
기댓값을 독립적으로 계산하고, 정해진 시간에 샘플링하며, 확인한 모든 결과를 추적하세요.
챌린지
중급부호 없는 4비트 가산기에 대한 참조 검사를 구현하세요. 전체 5비트 수학적 a+b를 계산한 다음, 4상태 비교에서 actual이 해당 결과와 정확히 일치하는 경우에만 ok=1을 반환하세요. 이 모듈에는 잠긴 테스트벤치에서 호출하는 시뮬레이션 전용 task가 포함됩니다. 출력 열: ok.
design.v를 완성하고 모듈 이름과 포트를 그대로 유지하세요. 잠긴 testbench.v는 입력 변경을 제공하고 값이 안정된 후 출력을 출력합니다. +CASE=1과 같은 시뮬레이터 인수를 사용하여 시나리오를 선택하며, 표준 입력은 필요하지 않습니다. 출력 및 시나리오 제어는 잠긴 테스트벤치에 그대로 두고, task 본문만 구현하세요. 예상 출력은 관찰 결과마다 10진수 값이 한 행에 하나씩 표시되며, 값 사이에는 공백 하나가 있고 마지막에는 줄바꿈이 있어야 합니다.
직접 해보기
module dut;
task check_sum;
input [3:0] a,b;
input [4:0] actual;
output ok;
reg [4:0] expected;
begin
// 체커 태스크를 완성하세요.
ok=0;
end
endtask
endmodule이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
RTL 설계 및 검증의 모든 레슨
직접 연습해 보세요: 온라인 Verilog 컴파일러