HDL et vérification

Quelle est la différence entre les opérateurs d'égalité « == » et « === » en Verilog ?

  1. A== donne X si un opérande contient X ou Z, tandis que === compare strictement X et Z comme des valeurs à part entière, et donne toujours 0 ou 1
  2. B== et === ont exactement le même comportement
  3. C=== compare trois valeurs simultanément
Afficher la réponse et l'explication

Réponse : A. == donne X si un opérande contient X ou Z, tandis que === compare strictement X et Z comme des valeurs à part entière, et donne toujours 0 ou 1

== est un opérateur qui fonctionne comme un comparateur matériel : si l'un des opérandes contient un bit X ou Z, le résultat est aussi X (indéterminé). ===, appelé égalité de cas (case equality), compare littéralement X à X et Z à Z, ce qui permet de vérifier dans un banc de test que « la sortie ne vaut pas X ». Un circuit réel ne sachant pas distinguer X et Z, === n'est pas synthétisable : c'est un opérateur réservé aux bancs de test.

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

Autres questions sur HDL et vérification

  1. Quelle est la grande différence entre une description en HDL comme Verilog et un programme logiciel en C ou autre ?
  2. Quel est l'objectif de l'utilisation de module en Verilog ?
  3. Quelle est la différence entre les types wire et reg en Verilog ?
  4. Quel circuit représente l'instruction assign Verilog ci-dessus ?
  5. Quel circuit la synthèse logique produit-elle à partir de la description Verilog ci-dessus ?

Comparatifs sur ce thème