整数比較を行う単純なCコードがあります。
void evaluate_comparison (int addr, int expected, int got)
{
if (got == expected) tunnel_pass (addr, got);
else tunnel_fail (addr, expected, got);
}
expected
&は、got
実際には24ビットDSPコアに書き込まれる/読み取られる値に対応する24ビット値です。(このCコードはアセンブリにコンパイルされてDSPコアにロードされます)
シミュレーションでは、場合によっては(特に、一部addr
がDSPでサポートされていない場合)、DSPコアが読み取りますgot = 24'hxxxxxx
(未定義の24ビット値)。この場合、上記の比較は合格ですが、私はそれを望んでいません。
===
&!==
Case Equality演算子(Verilogと同様)を使用してみましたが、コードがコンパイルされません。Cでこれを行う方法はありますか?