Menu
Coddy logo textTech

Recap - Full 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ğin her şeyi sınar: stimulus, display, monitor, dumpfile, dumpvars ve sistem görevleri. Test etmen için bir XOR geçidi modülü veriliyor.
Yapılacaklar:

Aşağıdakileri gerçekleştiren eksiksiz bir testbench oluştur:

  1. Sinyalleri tanımla (girdiler için reg, çıktı için wire)
  2. XOR geçidini dut adıyla örnekle
  3. xor_waveform.vcd adlı bir dalga biçimi dosyası oluştur
  4. testbench içindeki tüm sinyalleri dök
  5. Bir başlık yazdır: "Testing XOR Gate"
  6. Zamanı, x, y ve z'yi takip etmek için $monitor kullan
  7. Her biri arasında #10 gecikme olacak şekilde dört giriş kombinasyonunun tümünü (00, 01, 10, 11) test et
  8. Sonunda "Test complete" yazdır
  9. Simülasyonu $finish ile sonlandı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 bildir
  
  // TODO: z için wire bildir
  

  // TODO: xor_gate'i dut adıyla örnekle
  // .x(x), .y(y), .z(z) bağla


  initial begin
    // TODO: $dumpfile "xor_waveform.vcd" ekle
    
    // TODO: $dumpvars (0, testbench) ekle
    
    // TODO: $display "Testing XOR Gate" ekle
    
    // TODO: time, x, y, z için $monitor ekle
    // Biçim: "Time %0t: x=%b, y=%b, z=%b"
    
    // TODO: Tüm dört kombinasyon için stimulus ekle
    // 00, 01, 10, 11 #10 gecikme ile
    
    // TODO: $display "Test complete" ekle
    
    // TODO: $finish ekle
    
  end
endmodule

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

Kendi başına pratik yap: Online Verilog derleyicisi