HDL et vérification

Que signifie l'écriture « always @(*) » en Verilog ?

  1. AElle représente une bascule exécutée à chaque front montant d'horloge
  2. BElle n'est exécutée qu'une fois au début de la simulation
  3. CElle représente un circuit combinatoire, exécuté chaque fois que l'un des signaux lus dans le bloc change
Afficher la réponse et l'explication

Réponse : C. Elle représente un circuit combinatoire, exécuté chaque fois que l'un des signaux lus dans le bloc change

Le contenu de @( ) après always est la liste de sensibilité, qui spécifie les signaux dont le changement déclenche l'exécution du bloc. « * » revient à y placer automatiquement tous les signaux lus dans le bloc, ce qui représente correctement un circuit combinatoire. Une liste écrite à la main est sujette aux oublis ; pour les circuits combinatoires, il est plus sûr d'utiliser « @(*) » ou always_comb de SystemVerilog.

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

Autres questions sur HDL et vérification

  1. Voulant un circuit combinatoire, on a écrit le code ci-dessus. Quel problème peut survenir ?
  2. Voulant un circuit combinatoire, on a écrit le code ci-dessus. Que produit la synthèse logique ?
  3. Quelle combinaison de cause et de remède explique l'apparition d'un verrou dans la description ci-dessus ?
  4. Quelle écriture est couramment utilisée pour éviter les verrous non voulus dans un bloc always combinatoire ?
  5. Parmi les descriptions Verilog suivantes, laquelle ne devient pas un circuit et est ignorée par la synthèse logique (description destinée à la simulation) ?

Comparatifs sur ce thème