Menu
Coddy logo textTech

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

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

challenge icon

チャレンジ

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

以下を行う完全なテストベンチを作成してください:

  1. シグナルを宣言する(入力には reg、出力には wire
  2. XORゲートを dut という名前でインスタンス化する
  3. xor_waveform.vcd という名前の波形ファイルを作成する
  4. テストベンチ内のすべてのシグナルを出力(dump)する
  5. ヘッダーを表示する: "Testing XOR Gate"
  6. $monitor を使用して time、x、y、および z を監視する
  7. それぞれの間に #10 の遅延を挟んで、4つの入力組み合わせ(00, 01, 10, 11)すべてをテストする
  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

基礎のすべてのレッスン