HDL et vérification
Quelle est la différence entre les opérateurs d'égalité « == » et « === » en Verilog ?
- 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
- B== et === ont exactement le même comportement
- 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.