Qu'est-ce que Affectation bloquante ?

Affectation « = » de Verilog. Le membre de gauche est mis à jour immédiatement et la nouvelle valeur est utilisée dès la ligne suivante. Utilisée dans les always combinatoires et les bancs de test.

Nom japonais: ブロッキング代入

« Affectation bloquante » apparaît dans 4 questions d'entraînement réparties sur 1 thèmes, dont HDL et vérification.

Domaine: HDL et vérification

S'entraîner : questions sur Affectation bloquante

Dans un banc de test, modifier les entrées du circuit par affectation bloquante au même instant que le front montant d'horloge peut poser problème. Quelle combinaison de raison principale et de remède est correcte ?

  1. ALa valeur capturée, d'avant ou d'après le changement, dépend de l'ordre d'exécution (course) ; on décale légèrement les entrées par rapport au front d'horloge ou on les modifie par affectation non bloquante
  2. BLa fréquence d'horloge baisse automatiquement ; on accélère l'horloge
  3. CL'affectation bloquante est interdite dans les bancs de test ; on utilise uniquement des instructions assign
Afficher la réponse et l'explication

Réponse : A. La valeur capturée, d'avant ou d'après le changement, dépend de l'ordre d'exécution (course) ; on décale légèrement les entrées par rapport au front d'horloge ou on les modifie par affectation non bloquante

Si, au même instant, le banc de test réécrit les entrées et les bascules du circuit les capturent, la valeur capturée sera ancienne ou nouvelle selon l'ordre d'exécution choisi par le simulateur. C'est une course (race) de simulation, dont le résultat peut varier d'un simulateur à l'autre. On l'évite en modifiant les entrées sur le front descendant, en les retardant légèrement, ou en utilisant l'affectation non bloquante ou les clocking blocks de SystemVerilog.

« Affectation bloquante » dans les explications

Questions mentionnant « Affectation bloquante » (4)

  1. Dans un banc de test, modifier les entrées du circuit par affectation bloquante au même instant que le front montant d'horloge peut poser problème. Quelle combinaison de raison principale et de remède est correcte ?
  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 ?

Comparatifs incluant ce terme

Termes associés

Affectation non bloquante Banc de test (testbench) SystemVerilog Registre à décalage Verilog Boucle combinatoire Codage one-hot Instruction generate Langage de description matérielle Latch involontaire

Retour au glossaire