Recap - Full Testbench
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 78 von 90.
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:
- Signale deklariert (
regfür Eingänge,wirefür den Ausgang) - das XOR-Gatter mit dem Namen
dutinstanziiert - eine Waveform-Datei namens
xor_waveform.vcderstellt - alle Signale in der testbench aufzeichnet
- eine Kopfzeile ausgibt: "Testing XOR Gate"
$monitorverwendet, um time, x, y und z zu verfolgen- alle vier Eingangskombinationen (00, 01, 10, 11) mit einer Verzögerung von
#10zwischen den einzelnen Kombinationen 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 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
endmoduleAlle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareIhr erstes ModulKommentareAbstraktionsebenen des Designs4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge14Testbench Basics
What Is A TestbenchCreating StimulusDisplay And MonitorDumpfile And DumpvarsUsing System TasksRecap - Full Testbench3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicÜbe selbstständig: Online-Verilog-Compiler