总结:完整的测试平台
本课属于 Coddy Verilog 学习旅程的“基础知识”单元。第 78 课,共 90 课。
挑战
这个挑战会测试你对测试台各方面的掌握情况:激励、显示、监视、转储文件、转储变量和系统任务。你需要测试一个 XOR 门模块。
任务:
创建一个完整的测试台,其中:
- 声明信号(输入使用
reg,输出使用wire) - 实例化 XOR 门,并命名为
dut - 创建名为
xor_waveform.vcd的波形文件 - 转储测试台中的所有信号
- 打印标题:"Testing XOR Gate"
- 使用
$monitor跟踪时间、x、y 和 z - 测试全部四种输入组合(00、01、10、11),每种组合之间延迟
#10 - 在最后打印 "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:实例化 xor_gate,命名为 dut
// 连接 .x(x)、.y(y)、.z(z)
initial begin
// TODO:添加 $dumpfile "xor_waveform.vcd"
// TODO:添加 $dumpvars (0, testbench)
// TODO:添加 $display "Testing XOR Gate"
// TODO:添加 $monitor,监视 time、x、y、z
// 格式:"Time %0t: x=%b, y=%b, z=%b"
// TODO:为所有 4 种组合添加激励
// 00、01、10、11,每种之间延迟 #10
// TODO:添加 $display "Test complete"
// TODO: 添加 $finish
end
endmodule基础知识中的所有课
自己练习: Verilog 在线编译器