Menu
CoddyTech

总结:完整的测试平台

本课属于 Coddy Verilog 学习旅程的“基础知识”单元。第 78 课,共 90 课。

challenge icon

挑战

这个挑战会测试你对测试台各方面的掌握情况:激励、显示、监视、转储文件、转储变量和系统任务。你需要测试一个 XOR 门模块。
任务:

创建一个完整的测试台,其中:

  1. 声明信号(输入使用 reg,输出使用 wire)
  2. 实例化 XOR 门,并命名为 dut
  3. 创建名为 xor_waveform.vcd 的波形文件
  4. 转储测试台中的所有信号
  5. 打印标题:"Testing XOR Gate"
  6. 使用 $monitor 跟踪时间、x、y 和 z
  7. 测试全部四种输入组合(00、01、10、11),每种组合之间延迟 #10
  8. 在最后打印 "Test complete"
  9. 使用 $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 在线编译器