大小写(In)相等运算符 '===' &!==' 像 C 中的 Verilog



我有一个简单的C代码可以进行整数比较。

void evaluate_comparison (int addr, int expected, int got)
{
    if (got == expected) tunnel_pass (addr, got);
    else                 tunnel_fail (addr, expected, got);
}

expectedgot实际上是24位值,对应于写入/读取到24位DSP内核中的值。(此C代码被编译为汇编并加载到DSP内核中)

在仿真中,有时(特别是当DSP不支持某些addr时),DSP内核读取got = 24'hxxxxxx(未定义的24位值)。在这种情况下,上面的比较通过了,但我不希望它。

我尝试使用===&!==大小写相等运算符(类似于Verilog),但代码无法编译。有没有办法在 C 中做到这一点?

也许你可以写一些类似的东西:

if (IsSupported(addr) && got == expected)
   tunnel_pass (addr, got);
else
   tunnel_fail (addr, expected, got);

但是,我不知道在您的情况下实现IsSupported()功能是否可行。
至少您可以手动对支持的地址范围进行硬编码。

最新更新