Dumpfile And Dumpvars
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 76 von 90.
Wellenformen sind die visuelle Darstellung von Signaländerungen im Laufe der Zeit. Eine Wellenform zeigt, wie sich Signale (wie clk, a, b, out) während der Simulation ändern. Die horizontale Achse zeigt die Zeit, und die vertikale Achse zeigt die Signalwerte (0, 1, X, Z).
$dumpfile und $dumpvars sind Systemaufgaben, die verwendet werden, um eine waveform-Datei (VCD-Datei) zu erstellen, die du in einem Waveform-Viewer wie GTKWave anzeigen kannst. VCD steht für Value Change Dump. Dabei handelt es sich um eine Datei, die während der Simulation alle Signaländerungen aufzeichnet. Du kannst diese Datei in einem Waveform-Viewer öffnen, um Signale visuell zu sehen.
$dumpfile
$dumpfile gibt den Namen der zu erstellenden waveform-Datei an.
Syntax:
$dumpfile("filename.vcd");Beispiel:
$dumpfile("my_waveform.vcd");Dies erstellt eine Datei namens my_waveform.vcd.
$dumpvars
$dumpvars legt fest, welche Signale in der waveform-Datei aufgezeichnet werden.
Syntax:
$dumpvars(level, module_name);| Parameter | Bedeutung |
|---|---|
level | Wie viele Hierarchieebenen gedumpt werden sollen (0 = alle Ebenen) |
module_name | Aus welchem Modul signals gedumpt werden sollen |
Hinweis: Hierarchie bedeutet Module innerhalb anderer Module. Mit 0 werden alle Signale des obersten Moduls und jedes darin enthaltenen Moduls ausgegeben, während 1 nur die Signale des obersten Moduls ausgibt.
Häufige Verwendung
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, testbench);
end$dumpfile("dump.vcd")→ erstellt eine file namensdump.vcd$dumpvars(0, testbench)→ dumps all signals im moduletestbenchund allen sub-modulen
Beispiel mit Testbench
module or_gate (
input x,
input y,
output z
);
assign z = x | y;
endmodule
module testbench;
reg x, y;
wire z;
or_gate dut (
.x(x),
.y(y),
.z(z)
);
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, testbench);
$display("Creating waveform file...");
x = 0; y = 0; #10;
x = 0; y = 1; #10;
x = 1; y = 0; #10;
x = 1; y = 1; #10;
$finish;
end
endmoduleDumpvars Level Beispiele
| Level | Was wird gedumpt |
|---|---|
0 | Alle signals im module und in allen sub-modules |
1 | Nur signals im angegebenen module (nicht in sub-modules) |
Aufgabe
Add die fehlenden $dumpfile- und $dumpvars-Anweisungen hinzu, um eine waveform-Datei zu create.
Was zu tun ist:
- Add
$dumpfile, um eine file namenswaveform.vcdzu create - Add
$dumpvars, um alle signals imtestbench-module zu dump
Probier es selbst
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmodule
module testbench;
reg a, b;
wire c;
and_gate dut (
.a(a),
.b(b),
.c(c)
);
initial begin
// TODO: Füge $dumpfile hinzu, um "waveform.vcd" zu erstellen
// TODO: Füge $dumpvars hinzu, um alle Signale in testbench zu dumpen
// Hinweis: $dumpvars(0, testbench);
if ($test$plusargs("vcd")) begin
$display("VCD file created successfully");
end
$display("Simulation running...");
a = 0; b = 0; #10;
a = 0; b = 1; #10;
a = 1; b = 0; #10;
a = 1; b = 1; #10;
$display("Simulation complete. Open waveform.vcd");
$finish;
end
endmoduleDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle 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