verilog中两条语句的区别

Difference between two statement in verilog

请说明两种说法的区别 因为它们在侧硬件中的行为不同。

reg [31:0]A;
wire B;
Statement 1
assign B = (A==32'h0)?(1'b1):(1'b0);
Statement 2
assign B = (A==32'h0);

我怀疑 A 包含 'x,这会使 (A==32'h0) 中的结果被评估为 'x;那么你有 B = 1'bx.

电路中这个是什么意思?我猜它 'x 将被工具处理为 Don't care,这将用于进一步简化硬件。

#编辑: 正如 Serge 在评论中指出的那样,三元组会给出 'x 而不是 '0。程序块中的 if('x) B=1'b1; else B=1'b0; 会给出 '0,但不是三元在 verilog 中的作用。