HDL et vérification

Quel est le comportement de l'affectation non bloquante (<=) en Verilog ?

  1. ALe membre de gauche est mis à jour à l'instant de l'affectation et la nouvelle valeur est utilisée à la ligne suivante
  2. BTous les membres de droite d'un même instant sont d'abord évalués, puis les membres de gauche sont mis à jour ensemble
  3. CLe résultat de l'affectation est ignoré et rien n'est modifié
Afficher la réponse et l'explication

Réponse : B. Tous les membres de droite d'un même instant sont d'abord évalués, puis les membres de gauche sont mis à jour ensemble

Avec l'affectation non bloquante, au front d'horloge, tous les membres de droite des <= sont d'abord évalués avec les anciennes valeurs, puis les membres de gauche sont réécrits simultanément. C'est le même comportement que dans un circuit réel où de nombreuses bascules cadencées par la même horloge capturent simultanément les valeurs juste avant le front. En principe, on utilise donc l'affectation non bloquante pour décrire les circuits séquentiels cadencés.

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

Autres questions sur HDL et vérification

  1. 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 ?
  2. Voulant un registre à décalage à deux étages, on a écrit le code ci-dessus avec des affectations bloquantes (=). Quel problème survient ?
  3. Quelle est la règle générale d'usage des types d'affectation en Verilog ?
  4. Que signifie l'écriture « always @(*) » en Verilog ?
  5. Voulant un circuit combinatoire, on a écrit le code ci-dessus. Quel problème peut survenir ?

Comparatifs sur ce thème