HDL et vérification

Avec le compteur 4 bits ci-dessus, si count vaut 15 au front montant d'horloge, que devient count ?

reg [3:0] count;
always @(posedge clk)
    count <= count + 1;
  1. A16
  2. B0
  3. CIl reste à 15
Afficher la réponse et l'explication

Réponse : B. 0

Un reg de 4 bits ne peut représenter que 0 à 15. Ajouter 1 à 15 (1111 en binaire) donne 10000, mais le bit de poids fort ne tient pas et est perdu ; count revient donc à 0000, c'est-à-dire 0. Cette propriété permet de réaliser des compteurs cycliques sur un nombre fixe. En revanche, un débordement non voulu est source d'erreurs ; il faut toujours surveiller la largeur en bits des signaux.

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

Autres questions sur HDL et vérification

  1. En Verilog, on additionne les signaux a et b de 8 bits et l'on affecte le résultat au signal s de 8 bits (assign s = a + b;). À quoi faut-il prendre garde ?
  2. Voulant que a vaille -1 signé, on a écrit le code ci-dessus, et gt vaut 1. Pourquoi ?
  3. Quelle est la combinaison des valeurs de la logique à quatre états utilisée en simulation Verilog ?
  4. En simulation, un registre sans réinitialisation vaut initialement X. Que se passe-t-il vraisemblablement dans la puce réelle ?
  5. Dans la description ci-dessus, lorsque sel vaut X (indéterminé), la simulation Verilog sélectionne b pour y. Pourquoi cette propriété pose-t-elle problème en vérification ?

Comparatifs sur ce thème