HDL et vérification

Quel est le type et le comportement de la réinitialisation dans la description ci-dessus ?

always @(posedge clk or negedge rst_n)
    if (!rst_n) q <= 0;
    else        q <= d;
  1. ARéinitialisation synchrone : q ne passe à 0 que lorsque l'horloge monte alors que rst_n vaut 0
  2. BRéinitialisation asynchrone : q passe à 0 immédiatement dès que rst_n vaut 0, sans attendre l'horloge
  3. Cq passe à 0 lorsque rst_n vaut 1
Afficher la réponse et l'explication

Réponse : B. Réinitialisation asynchrone : q passe à 0 immédiatement dès que rst_n vaut 0, sans attendre l'horloge

La liste de sensibilité contenant « negedge rst_n », le bloc s'exécute aussi à l'instant où rst_n passe de 1 à 0, et q passe à 0 indépendamment de l'horloge. C'est une réinitialisation asynchrone. Le suffixe « _n » est une convention désignant un signal en logique négative, actif à 0. Elle a l'avantage de fonctionner même horloge arrêtée, mais l'instant de levée de la réinitialisation demande de la vigilance.

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

Autres questions sur HDL et vérification

  1. Quelle est la différence entre réinitialisation synchrone et asynchrone ?
  2. 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 ?
  3. Quelle est la structure de base d'une machine d'états décrite en HDL ?
  4. Dans la description de machine d'états ci-dessus, pourquoi écrit-on « next = state; » en tête du deuxième bloc always ?
  5. Quelle est la caractéristique d'une machine d'états de type Mealy ?

Comparatifs sur ce thème