Zusammenfassung – Vollständige Testbench
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 78 von 90.
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:
- Signale deklariert (
regfür Eingänge,wirefür Ausgänge) - Das XOR-Gate mit dem Namen
dutinstanziiert - Eine Waveform-Datei namens
"xor_waveform.vcd"erstellt - Alle Signale in der Testbench dumpt
- Einen Header ausgibt: "Testing XOR Gate"
$monitorverwendet, um Zeit, x, y und z zu verfolgen- Alle vier Eingangskombinationen (00, 01, 10, 11) mit einer Verzögerung von
#10zwischen jeder testet - Am Ende "Test complete" ausgibt
- Die Simulation mit
$finishbeendet
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
endmoduleAlle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareAbstraktionsebenen im DesignDein erstes ModulKommentare4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – Einfache MathematikBitweise Operatoren7Zuweisung und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-PrimitiveAND OR NOT GatterXOR XNOR GatterZusammenfassung - Logikgatterschaltung10Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher KomparatorCase-AnweisungCasex und CasezWiederholung - ALU-Design5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenShift-OperatorenVerkettungsoperatorBedingter OperatorZusammenfassung – Operator-Challenge11Schleifen
For-SchleifeWhile-SchleifeRepeat-SchleifeEndlosschleifeDisable-AnweisungRückblick – Schleifenmuster14Testbench-Grundlagen
Was ist eine TestbenchErstellen von StimuliDisplay und MonitorDumpfile und DumpvarsSystem-Tasks verwendenZusammenfassung – Vollständige Testbench3Zahlensystem
Binäre DarstellungZahlen mit GrößenangabeZahlen ohne GrößenangabeNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturEingangs- und Ausgangs-PortsInout-PortsModul-InstanziierungPort-Mapping nach NamePort-Mapping nach ReihenfolgeZusammenfassung – Ein Modul erstellen