Menu
Coddy logo textTech

Recap - Full 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 testbench gelernt hast: stimulus, display, monitor, dumpfile, dumpvars und Systemaufgaben. Du erhältst ein XOR-Gattermodul zum Testen.
Aufgabe:

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 namens 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