Verilog - 竖线(|)和"或"之间的区别是什么?

时间:2017-08-08 00:04:20

标签: verilog

我什么时候应该使用" |"我什么时候应该使用"或"?我注意到,always块中的条件使用"或"如:

always @ (posedge clk or posedge reset)

在if语句中使用" |"如:

if (condition1 | condition2)

为什么我们必须使用不同的运营商?其他案例使用" |"或"或"?

2 个答案:

答案 0 :(得分:1)

|是一个按位'或'操作

or在敏感度列表中用作项目分隔符(v95)。可以使用,代替'或'在v2k和系统verilog。

or也可以是结构verilog中的门名。

||是符合逻辑的'或'操作

答案 1 :(得分:1)

需要有一种方法可以区分逻辑或(||),按位或(|)和事件或or。当你有信号A和B

时,差异会更明显
wire [1:0] A,B;
always @(A | B) ... // waits for a change in the bit-wise result of A | B
always @(A || B) ... // waits for a change in the logical result of A | B
always @(A or B) ... // waits for a change either A's value or B value