Menu
Coddy logo textTech

Récapitulatif - Testbench complet

Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 78 sur 90.

challenge icon

Défi

Ce défi teste tout ce que vous avez appris sur les bancs d'essai (testbenches) : stimulus, display, monitor, dumpfile, dumpvars et les tâches système. On vous donne un module de porte XOR à tester.
Ce qu'il faut faire :

Créez un banc d'essai complet qui :

  1. Déclare les signaux (reg pour les entrées, wire pour la sortie)
  2. Instancie la porte XOR avec le nom dut
  3. Crée un fichier de forme d'onde nommé xor_waveform.vcd
  4. Enregistre (dump) tous les signaux dans le banc d'essai
  5. Affiche un en-tête : "Testing XOR Gate"
  6. Utilise $monitor pour suivre le temps, x, y et z
  7. Teste les quatre combinaisons d'entrée (00, 01, 10, 11) avec un délai de #10 entre chacune
  8. Affiche "Test complete" à la fin
  9. Termine la simulation avec $finish

Essayez vous-même

module xor_gate (
  input x,
  input y,
  output z
);
  assign z = x ^ y;
endmodule

module testbench;
  // À FAIRE : Déclarer reg pour x et y
  
  // À FAIRE : Déclarer wire pour z
  

  // À FAIRE : Instancier xor_gate avec le nom dut
  // Connecter .x(x), .y(y), .z(z)


  initial begin
    // À FAIRE : Ajouter $dumpfile "xor_waveform.vcd"
    
    // À FAIRE : Ajouter $dumpvars (0, testbench)
    
    // À FAIRE : Ajouter $display "Testing XOR Gate"
    
    // À FAIRE : Ajouter $monitor pour time, x, y, z
    // Format : "Time %0t: x=%b, y=%b, z=%b"
    
    // À FAIRE : Ajouter des stimuli pour les quatre combinaisons
    // 00, 01, 10, 11 avec un délai #10
    
    // À FAIRE : Ajouter $display "Test complete"
    
    // À FAIRE : Ajouter $finish
    
  end
endmodule

Toutes les leçons de Fondamentaux