HDL et vérification

Quelle est la règle générale d'usage des types d'affectation en Verilog ?

  1. AN'utiliser partout que l'affectation bloquante (=)
  2. BUtiliser l'affectation non bloquante (<=) pour les circuits séquentiels cadencés, et l'affectation bloquante (=) dans les always des circuits combinatoires
  3. CMélanger arbitrairement les deux dans un même always
Afficher la réponse et l'explication

Réponse : B. Utiliser l'affectation non bloquante (<=) pour les circuits séquentiels cadencés, et l'affectation bloquante (=) dans les always des circuits combinatoires

Écrire les circuits séquentiels en affectation non bloquante correspond au comportement d'un circuit où toutes les bascules capturent simultanément, et le résultat ne dépend ni de l'ordre d'écriture ni de l'ordre d'exécution vis-à-vis des autres blocs always. Pour les circuits combinatoires, calculer les valeurs intermédiaires de haut en bas est naturel ; on utilise donc l'affectation bloquante. Il importe aussi de ne pas mélanger les deux dans un même bloc always.

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

Autres questions sur HDL et vérification

  1. Que signifie l'écriture « always @(*) » en Verilog ?
  2. Voulant un circuit combinatoire, on a écrit le code ci-dessus. Quel problème peut survenir ?
  3. Voulant un circuit combinatoire, on a écrit le code ci-dessus. Que produit la synthèse logique ?
  4. Quelle combinaison de cause et de remède explique l'apparition d'un verrou dans la description ci-dessus ?
  5. Quelle écriture est couramment utilisée pour éviter les verrous non voulus dans un bloc always combinatoire ?

Comparatifs sur ce thème