Menu
Coddy logo textTech

Recap - Full Testbench

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

challenge icon

チャレンジ

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

次の要件を満たす完全なテストベンチを作成してください:

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

基礎のすべてのレッスン

自分で練習してみよう: Verilogオンラインコンパイラ