HDL et vérification

Dans un circuit à réinitialisation asynchrone, pourquoi synchronise-t-on la levée de la réinitialisation (passage de 0 à 1) sur l'horloge par deux bascules avant de la distribuer ?

  1. APour retarder de deux cycles l'application de la réinitialisation par sécurité
  2. BPour doubler la vitesse du signal de réinitialisation
  3. CParce qu'une levée proche d'un front d'horloge peut décaler le cycle de levée d'une bascule à l'autre ou la rendre instable ; on aligne donc la levée sur l'horloge
Afficher la réponse et l'explication

Réponse : C. Parce qu'une levée proche d'un front d'horloge peut décaler le cycle de levée d'une bascule à l'autre ou la rendre instable ; on aligne donc la levée sur l'horloge

Si la levée d'une réinitialisation asynchrone survient juste avant ou après un front d'horloge, les contraintes temporelles de levée ne sont pas respectées, et une bascule peut démarrer au cycle courant et une autre au cycle suivant. Une machine d'états peut alors démarrer dans un état illégal. Le circuit de synchronisation de réinitialisation applique celle-ci immédiatement, et n'aligne sur l'horloge par deux bascules que sa levée avant de la distribuer.

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

Autres questions sur HDL et vérification

  1. Quelle est la structure de base d'une machine d'états décrite en HDL ?
  2. Dans la description de machine d'états ci-dessus, pourquoi écrit-on « next = state; » en tête du deuxième bloc always ?
  3. Quelle est la caractéristique d'une machine d'états de type Mealy ?
  4. Quelle est la caractéristique du codage one-hot des états d'une machine d'états ?
  5. Pour une machine d'états à trois états, quelle combinaison donne le nombre de bascules nécessaires pour mémoriser l'état (codage binaire / codage one-hot) ?

Comparatifs sur ce thème