在verilog中检测未分配寄存器

在verilog中检测未分配寄存器,verilog,Verilog,我刚刚开始学习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

我刚刚开始学习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进行比较,我也明白为什么我不能这样做。但是有没有其他方法来检测未分配寄存器?

我认为您需要三重相等
==
运算符来实现这一点。
1'bx==1'bx
的结果是
x
1'bx==1'bx
的结果是
true