Menu
Coddy logo textTech

Récapitulatif - Contrôle de la temporisation

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

challenge icon

Défi

Ce défi teste votre compréhension des délais, des délais de porte, des délais d'assignation, de l'échelle de temps (timescale) et de la génération d'horloge.

Ce qu'il faut faire :

  1. Ajoutez une directive timescale avec 1ns / 1ps
  2. Générez une horloge qui bascule toutes les 5 unités de temps
  3. Ajoutez une porte AND avec un délai de porte de 3 unités de temps
  4. Utilisez un délai d'assignation pour assigner a à b après 2 unités de temps (lisez a immédiatement)

Essayez vous-même

// TODO: Ajouter la directive d'échelle de temps (1ns / 1ps)


module timing_challenge;
  reg clk;
  reg a, b;
  wire out;
  
  initial begin
    clk = 0;
  end
  
  // TODO: Générer une horloge qui bascule toutes les 5 unités de temps
  
  
  // TODO: Ajouter une porte ET avec un délai de 3 unités de temps (entrées a, b, sortie out)
  
  
  initial begin
    $monitor("Time %0t: clk=%b, a=%b, b=%b, out=%b", $time, clk, a, b, out);
    
    a = 1;
    
    // TODO: Utiliser un délai d'affectation pour assigner a à b après 2 unités de temps
    // Lire a maintenant, assigner à b après 2 unités de temps
    
    
    #20;
    $finish;
  end
endmodule

Toutes les leçons de Fondamentaux