HDL et vérification

Quel circuit la synthèse logique produit-elle à partir de la description Verilog ci-dessus ?

always @(posedge clk)
    q <= d;
  1. AUn circuit ET entre d et clk
  2. BUne bascule D capturant d sur le front montant de l'horloge
  3. CUn verrou laissant passer d tant que l'horloge vaut 1
Afficher la réponse et l'explication

Réponse : B. Une bascule D capturant d sur le front montant de l'horloge

« always @(posedge clk) » signifie que les affectations internes ne sont effectuées qu'à l'instant du front montant de l'horloge ; la synthèse logique en fait une bascule déclenchée sur front. q conserve la valeur de d au front montant jusqu'au front montant suivant. Dans les circuits synchrones, la quasi-totalité des mémorisations s'écrit sous cette forme. Il faut la distinguer du verrou (latch), sensible au niveau et non au front d'horloge.

S'entraîner sur ce thème Retour au thème

Autres questions sur HDL et vérification

  1. Quel est le comportement de l'affectation non bloquante (<=) en Verilog ?
  2. Dans la description ci-dessus, juste avant le front montant d'horloge, a=0 et b=1. Quelles sont les valeurs de a et b après le front montant ?
  3. Voulant un registre à décalage à deux étages, on a écrit le code ci-dessus avec des affectations bloquantes (=). Quel problème survient ?
  4. Quelle est la règle générale d'usage des types d'affectation en Verilog ?
  5. Que signifie l'écriture « always @(*) » en Verilog ?

Comparatifs sur ce thème