HDL et vérification

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.

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

Autres questions sur HDL et vérification

  1. Quelle est la caractéristique d'un banc de test autovérifiant ?
  2. Quel est l'objectif de l'utilisation en vérification d'un modèle de référence (modèle doré) écrit en C ou autre ?
  3. Quel est l'objectif principal de l'export des résultats de simulation dans un fichier au format VCD ou analogue ?
  4. Dans les tests à entrées aléatoires, pourquoi enregistre-t-on la graine (seed) du générateur aléatoire ?
  5. Quelle est la définition de la vérification aléatoire contrainte de SystemVerilog ?

Comparatifs sur ce thème