我刚开始学习verilog,而且我遇到过一种情况,我试图检测寄存器是否尚未分配值。例如,给出以下代码:
reg [3:0] r;
initial
begin
$display("r = %b", r);
if (r == 4'bxxxx) $display("success");
else $display("failure");
end
当我运行此代码时,我得到了这个输出:
r = xxxx
failure
我明白我无法将r与4'bxxxx进行比较,我理解为什么我不能这样做。但有没有其他方法来检测未分配的寄存器?
答案 0 :(得分:7)
我认为你需要三等于===
运算符。 1'bx == 1'bx
的结果为x
,1'bx === 1'bx
的结果为true
。