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