Menu
Coddy logo textTech

Dumpfile et 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 de signaux au fil du temps. Une forme d'onde affiche comment les signaux (comme clk, a, b, out) changent pendant la simulation. L'axe horizontal montre le temps, et l'axe vertical montre 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 forme d'onde (fichier VCD) que vous pouvez visualiser dans un visionneur de formes d'onde comme GTKWave. VCD signifie Value Change Dump. C'est un fichier qui enregistre tous les changements de signaux pendant la simulation. Vous pouvez ouvrir ce fichier dans un visionneur de formes d'onde pour voir les signaux visuellement.

$dumpfile

$dumpfile spécifie le nom du fichier de forme d'onde à 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ètreSignification
levelNombre de niveaux de hiérarchie à vider (0 = tous les niveaux)
module_nameDe quel module vider les signaux

Note : La hiérarchie signifie des modules à l'intérieur d'autres modules. L'utilisation de 0 extrait tous les signaux du module supérieur et de chaque module qu'il contient, tandis que 1 n'extrait que 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 module testbench et de tous les sous-modules

Exemple avec Banc d'Essai (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
endmodule

Exemples de niveaux Dumpvars

NiveauContenu de l'extraction
0Tous les signaux du module et de tous les sous-modules
1Uniquement les signaux du module spécifié (pas les sous-modules)
challenge icon

Défi

Ajoutez les instructions $dumpfile et $dumpvars manquantes pour créer un fichier de forme d'onde.

Ce qu'il faut faire :

  1. Ajoutez $dumpfile pour créer un fichier nommé waveform.vcd
  2. Ajoutez $dumpvars pour enregistrer tous les signaux du module testbench

Aide-mémoire

Utilisez $dumpfile et $dumpvars à l'intérieur d'un bloc initial pour générer un fichier de forme d'onde VCD (Value Change Dump) afin de le visualiser dans des outils comme GTKWave :

initial begin
  $dumpfile("dump.vcd");   // crée le fichier VCD
  $dumpvars(0, testbench); // enregistre tous les signaux dans le banc de test et les sous-modules
end

Niveaux de $dumpvars(level, module_name) :

  • 0 — tous les signaux du module et de tous les sous-modules
  • 1 — uniquement les signaux du module spécifié (pas de sous-modules)

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: Ajouter $dumpfile pour créer "waveform.vcd"
    
    
    // TODO: Ajouter $dumpvars pour vider tous les signaux dans le banc de test
    // 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
endmodule
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux