Dumpfile And Dumpvars
Fait partie de la section Fondamentaux du Journey Verilog de Coddy. Leçon 76 sur 90.
Les formes d’onde sont la représentation visuelle des changements des signaux au cours du temps. Une forme d’onde affiche comment les signaux (comme clk, a, b, out) changent pendant la simulation. L’axe horizontal représente le temps, et l’axe vertical représente les valeurs des signaux (0, 1, X, Z).
$dumpfile et $dumpvars sont des tâches système utilisées pour créer un fichier de formes d’onde (fichier VCD) que vous pouvez afficher dans un visualiseur de formes d’onde comme GTKWave. VCD signifie Value Change Dump. Il s’agit d’un fichier qui enregistre toutes les modifications des signaux pendant la simulation. Vous pouvez ouvrir ce fichier dans un visualiseur de formes d’onde pour voir les signaux visuellement.
$dumpfile
$dumpfile spécifie le nom du fichier de waveform à créer.
Syntaxe :
$dumpfile("filename.vcd");Exemple :
$dumpfile("my_waveform.vcd");Cela crée un fichier nommé my_waveform.vcd.
$dumpvars
$dumpvars spécifie quels signaux enregistrer dans le fichier de forme d’onde.
Syntaxe :
$dumpvars(level, module_name);| Paramètre | Signification |
|---|---|
level | Nombre de niveaux hiérarchiques à dumper (0 = tous les niveaux) |
module_name | Module depuis lequel dumper les signaux |
Remarque : La hiérarchie désigne les modules à l’intérieur d’autres modules. Utiliser 0 sauvegarde tous les signaux du module supérieur et de chaque module qu’il contient, tandis que 1 sauvegarde uniquement les signaux du module supérieur.
Utilisation courante
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, testbench);
end$dumpfile("dump.vcd")→ crée un fichier nommédump.vcd$dumpvars(0, testbench)→ enregistre tous les signaux du moduletestbenchet de tous les sous-modules
Exemple avec 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
endmoduleExemples de niveaux de dumpvars
| Niveau | Éléments sauvegardés |
|---|---|
0 | Tous les signaux du module et de tous les sous-modules |
1 | Uniquement les signaux du module spécifié (pas ceux des sous-modules) |
Défi
Ajoutez les instructions $dumpfile et $dumpvars manquantes pour créer un fichier de forme d’onde.
À faire :
- Ajoutez
$dumpfilepour créer un fichier nomméwaveform.vcd - Ajoutez
$dumpvarspour vider tous les signaux du moduletestbench
Essayez vous-même
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: Ajoutez $dumpfile pour créer "waveform.vcd"
// TODO: Ajoutez $dumpvars pour dumper tous les signaux dans testbench
// Astuce : $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
endmoduleCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
1Introduction
Qu’est-ce que VerilogMatériel vs logicielVotre premier moduleCommentairesNiveaux d’abstraction de conception4Operators 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 LogicEntraînez-vous par vous-même : Compilateur Verilog en ligne