ハードウェア記述言語と検証
Verilogの等号の演算子「==」と「===」の違いとして正しいものはどれか。
- A==はXやZを含むと結果がXになるが、===はXやZも1つの値として厳密に比べ、結果は必ず0か1になる
- B==と===は、まったく同じ動作である
- C===は、3つの値を同時に比べる演算子である
答えと解説を見る
正解:A. ==はXやZを含むと結果がXになるが、===はXやZも1つの値として厳密に比べ、結果は必ず0か1になる
==は回路の比較器と同じ働きをする演算子で、どちらかの値にXやZのビットがあると、結果もX(不定)になります。===はケースの等号と呼ばれ、XはX、ZはZとして文字どおりに比べるので、「出力がXになっていないか」をテストベンチで確かめるのに使えます。実際の回路にはXやZを見分ける働きはないので、===は合成できず、テストベンチ用の演算子です。
- A. 正しい。===は主にテストベンチで使います。
- B. XやZの扱いが違います。
- C. 2つの値を比べる演算子です。