HDL et vérification

Voulant un circuit combinatoire, on a écrit le code ci-dessus. Que produit la synthèse logique ?

always @(*) begin
    if (en)
        y = d;
end
  1. AUn circuit combinatoire où y vaut automatiquement 0 quand en vaut 0
  2. BUne bascule D cadencée par l'horloge
  3. CUn verrou non voulu, car y doit conserver sa valeur quand en vaut 0
Afficher la réponse et l'explication

Réponse : C. Un verrou non voulu, car y doit conserver sa valeur quand en vaut 0

En l'absence d'affectation de y lorsque en vaut 0, y doit mémoriser sa valeur précédente. Un circuit combinatoire n'ayant pas de fonction de mémorisation, la synthèse logique crée un verrou pour conserver la valeur. Les verrous compliquent l'analyse temporelle et peuvent provoquer des dysfonctionnements dus au bruit ; on les évite s'ils ne sont pas voulus. En affectant une valeur dans tous les cas, par exemple avec « else y = 0; », on obtient un circuit combinatoire.

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

Autres questions sur HDL et vérification

  1. Quelle combinaison de cause et de remède explique l'apparition d'un verrou dans la description ci-dessus ?
  2. Quelle écriture est couramment utilisée pour éviter les verrous non voulus dans un bloc always combinatoire ?
  3. 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) ?
  4. Quel circuit obtient-on en synthétisant la description ci-dessus, qui compte les 1 dans d sur 8 bits ?
  5. Quel est le type et le comportement de la réinitialisation dans la description ci-dessus ?

Comparatifs sur ce thème