Menu
Coddy logo textTech

Özet - Tam Testbench

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 78 / 90.

challenge icon

Görev

Bu meydan okuma, testbench'ler hakkında öğrendiğiniz her şeyi test eder: stimulus, display, monitor, dumpfile, dumpvars ve sistem görevleri. Test etmeniz için size bir XOR kapısı modülü verilmiştir.
Ne yapmalı:

Şunları yapan eksiksiz bir testbench oluşturun:

  1. Sinyalleri tanımlar (girişler için reg, çıkış için wire)
  2. XOR kapısını dut adıyla örnekler (instantiate)
  3. xor_waveform.vcd adında bir dalga formu dosyası oluşturur
  4. Testbench'teki tüm sinyalleri dump eder
  5. Bir başlık yazdırır: "Testing XOR Gate"
  6. Zamanı, x, y ve z'yi izlemek için $monitor kullanır
  7. Her biri arasında #10 gecikme olacak şekilde dört giriş kombinasyonunun (00, 01, 10, 11) tümünü test eder
  8. Sonunda "Test complete" yazdırır
  9. Simülasyonu $finish ile sonlandırır

Kendin dene

module xor_gate (
  input x,
  input y,
  output z
);
  assign z = x ^ y;
endmodule

module testbench;
  // TODO: x ve y için reg tanımlayın
  
  // TODO: z için wire tanımlayın
  

  // TODO: xor_gate modülünü dut adıyla örnekleyin
  // Bağlantılar: .x(x), .y(y), .z(z)


  initial begin
    // TODO: $dumpfile "xor_waveform.vcd" ekleyin
    
    // TODO: $dumpvars (0, testbench) ekleyin
    
    // TODO: $display "Testing XOR Gate" ekleyin
    
    // TODO: time, x, y, z için $monitor ekleyin
    // Format: "Time %0t: x=%b, y=%b, z=%b"
    
    // TODO: Dört kombinasyonun tümü için uyarıcı (stimulus) ekleyin
    // #10 gecikme ile 00, 01, 10, 11
    
    // TODO: $display "Test complete" ekleyin
    
    // TODO: $finish ekleyin
    
  end
endmodule

Temeller bölümündeki tüm dersler