Menu
Coddy logo textTech

Zusammenfassung – Vollständige Testbench

Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 78 von 90.

challenge icon

Aufgabe

Diese Herausforderung testet alles, was Sie über Testbenches gelernt haben: Stimulus, Display, Monitor, Dumpfile, Dumpvars und System-Tasks. Ihnen wird ein XOR-Gate-Modul zum Testen zur Verfügung gestellt.
Was zu tun ist:

Erstellen Sie eine vollständige Testbench, die:

  1. Signale deklariert (reg für Eingänge, wire für Ausgänge)
  2. Das XOR-Gate mit dem Namen dut instanziiert
  3. Eine Waveform-Datei namens "xor_waveform.vcd" erstellt
  4. Alle Signale in der Testbench dumpt
  5. Einen Header ausgibt: "Testing XOR Gate"
  6. $monitor verwendet, um Zeit, x, y und z zu verfolgen
  7. Alle vier Eingangskombinationen (00, 01, 10, 11) mit einer Verzögerung von #10 zwischen jeder testet
  8. Am Ende "Test complete" ausgibt
  9. Die Simulation mit $finish beendet

Probier es selbst

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

module testbench;
  // TODO: Deklariere reg für x und y
  
  // TODO: Deklariere wire für z
  

  // TODO: Instanziiere xor_gate mit dem Namen dut
  // Verbinde .x(x), .y(y), .z(z)


  initial begin
    // TODO: Füge $dumpfile "xor_waveform.vcd" hinzu
    
    // TODO: Füge $dumpvars (0, testbench) hinzu
    
    // TODO: Füge $display "Testing XOR Gate" hinzu
    
    // TODO: Füge $monitor für time, x, y, z hinzu
    // Format: "Time %0t: x=%b, y=%b, z=%b"
    
    // TODO: Füge Stimuli für alle vier Kombinationen hinzu
    // 00, 01, 10, 11 mit #10 Verzögerung
    
    // TODO: Füge $display "Test complete" hinzu
    
    // TODO: Füge $finish hinzu
    
  end
endmodule

Alle Lektionen in Grundlagen