Menu
Coddy logo textTech

Zusammenfassung – vollständiger Testbench

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

challenge icon

Aufgabe

Diese Herausforderung prüft alles, was du über Testbenches gelernt hast: Stimulus, Anzeige, Monitor, Dumpfile, Dumpvars und System-Tasks. Du erhältst ein XOR-Gattermodul zum Testen.
Was zu tun ist:

Erstelle eine vollständige Testbench, die:

  1. Signale deklariert (reg für Eingänge, wire für den Ausgang)
  2. das XOR-Gatter mit dem Namen dut instanziiert
  3. eine Waveform-Datei mit dem Namen xor_waveform.vcd erstellt
  4. alle Signale in der Testbench aufzeichnet
  5. eine Kopfzeile ausgibt: "Testing XOR Gate"
  6. $monitor verwendet, um time, x, y und z zu verfolgen
  7. alle vier Eingangskombinationen (00, 01, 10, 11) mit einer Verzögerung von #10 zwischen den einzelnen Kombinationen 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 Stimulus 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

Übe selbstständig: Online-Verilog-Compiler