。
这两个代码的行为方式是否相同?
always @(a == 1'b1) // I guess for this one, it's like a combinational if (AND gate logic : a AND 1).
// code
和
always @(a) begin // I guess for this one, if a= 1 from the time 0,
// it won't go inside since there wouldn't be any change.
if (a == 1) begin
// code
end
end
是真的吗?
这是一个基本问题,但我想知道如果我错过了什么,谢谢!
不,两者都不一样。
请注意,敏感度列表中的变量被视为事件 因此它们不会被执行,而只是变量的变化是 被视为该事件的触发因素。
所以第一个总是阻止
always @ (a==1'b1)
与 相同:
always @ (a)
所以第一个总是块将以a = 1和0执行,而在第二种情况下,由于"if"条件,它将仅在a = 1的情况下执行