요약 - 전체 테스트벤치 구성
Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 78번째.
챌린지
이 챌린지는 자극(stimulus), display, monitor, dumpfile, dumpvars 및 시스템 태스크 등 테스트벤치에 대해 배운 모든 내용을 테스트합니다. 테스트할 XOR 게이트 모듈이 제공됩니다.
수행할 작업:
다음을 수행하는 완전한 테스트벤치를 작성하세요:
- 신호 선언 (입력은
reg, 출력은wire) - 이름이
dut인 XOR 게이트 인스턴스화 "xor_waveform.vcd"라는 이름의 파형 파일 생성- 테스트벤치의 모든 신호를 덤프
- 헤더 출력:
"Testing XOR Gate" $monitor를 사용하여 시간, x, y, z를 추적- 각 조합 사이에
#10지연을 두어 네 가지 입력 조합(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: 네 가지 조합 모두에 대한 자극(stimulus) 추가
// #10 지연과 함께 00, 01, 10, 11
// TODO: $display "Test complete" 추가
// TODO: $finish 추가
end
endmodule