Verilog 中的逻辑 && 与按位 &

Logical && versus bitwise & in Verilog

考虑以下作业

A1 = (b[3:0] ==c[3:0] & d[3:0]==e[3:0]) ? 1'b1 : 1'b0 ;

A2 = (b[3:0] ==c[3:0] && d[3:0]==e[3:0]) ? 1'b1 : 1'b0 ;

这 2 项分配是否相同,或者它们可能因工具而异? 是否有可能 (b[3:0] ==c[3:0]) 评估为 T/F 取决于工具是否将 T 存储为“1”或“0”。

等式、关系和逻辑运算符的结果在 IEEE 1800-2017 LRM 的第 11.4.4-7 节中定义。没有实施差异的余地。 Truth定义为1'b1,false定义为1'b0.

请注意,逻辑运算符和按位运算符之间的优先级略有不同,当您开始处理多位结果时很容易混淆它们,因此请仅使用按位运算符 如果您的意图是处理多位结果。