Menu
Coddy logo textTech

まとめ:テストベンチの全体像

CoddyのVerilogジャーニー「基礎」セクションの一部 — レッスン 78/90。

challenge icon

チャレンジ

このチャレンジでは、テストベンチについて学んだすべてのこと(刺激、display、monitor、dumpfile、dumpvars、およびシステムタスク)をテストします。テスト対象としてXORゲートモジュールが提供されています。
行うべきこと:

以下の内容を含む完全なテストベンチを作成してください:

  1. 信号を宣言する(入力には reg、出力には wire を使用)
  2. XORゲートを dut という名前でインスタンス化する
  3. xor_waveform.vcd という名前の波形ファイルを作成する
  4. テストベンチ内のすべての信号をダンプする
  5. ヘッダー "Testing XOR Gate" を表示する
  6. $monitor を使用して、時間、x、y、zを追跡する
  7. 4つの入力の組み合わせ(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: time, x, y, z のための $monitor を追加する
    // フォーマット: "Time %0t: x=%b, y=%b, z=%b"
    
    // TODO: 4つの組み合わせすべての入力を追加する
    // 00, 01, 10, 11 を #10 の遅延付きで
    
    // TODO: $display "Test complete" を追加する
    
    // TODO: $finish を追加する
    
  end
endmodule

基礎のすべてのレッスン