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;
- ARéinitialisation synchrone : q ne passe à 0 que lorsque l'horloge monte alors que rst_n vaut 0
- BRéinitialisation asynchrone : q passe à 0 immédiatement dès que rst_n vaut 0, sans attendre l'horloge
- 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.