요약 - 전체 테스트벤치 구성
Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 78번째.
챌린지
이 챌린지는 자극(stimulus), display, monitor, dumpfile, dumpvars 및 시스템 태스크 등 테스트벤치에 대해 배운 모든 내용을 테스트합니다. 테스트할 XOR 게이트 모듈이 제공됩니다.
수행할 작업:
다음 작업을 수행하는 완전한 테스트벤치를 작성하세요:
- 신호 선언 (입력용
reg, 출력용wire) dut라는 이름으로 XOR 게이트 인스턴스화xor_waveform.vcd이름의 파형 파일 생성- 테스트벤치의 모든 신호 기록(dump)
- 헤더 출력: "Testing XOR Gate"
$monitor를 사용하여 시간, x, y 및 z 추적- 각 입력 사이에
#10지연(delay)을 두어 4가지 입력 조합(00, 01, 10, 11)을 모두 테스트 - 마지막에 "Test complete" 출력
$finish로 시뮬레이션 종료
직접 해보기
module xor_gate (
input x,
input y,
output z
);
assign z = x ^ y;
endmodule
module testbench;
// TODO: x와 y에 대한 reg 선언
// TODO: z에 대한 wire 선언
// TODO: 이름이 dut인 xor_gate 인스턴스화
// .x(x), .y(y), .z(z) 연결
initial begin
// TODO: $dumpfile "xor_waveform.vcd" 추가
// TODO: $dumpvars (0, testbench) 추가
// TODO: $display "Testing XOR Gate" 추가
// TODO: time, x, y, z에 대한 $monitor 추가
// 형식: "Time %0t: x=%b, y=%b, z=%b"
// TODO: 네 가지 모든 조합에 대한 자극 추가
// 00, 01, 10, 11을 #10 지연과 함께
// TODO: $display "Test complete" 추가
// TODO: $finish 추가
end
endmodule