这两个代码的行为方式是否相同?
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
是真的吗?
这是一个基本问题,但我想知道我是否遗漏了一些东西,谢谢!
答案 0 :(得分:0)
不,两者都不相同。
请注意,敏感度列表中的变量被视为事件 因此它们不会被执行,而只是改变变量 被认为是该事件的触发因素。
所以第一个总是阻止
always @ (a==1'b1)
与:
相同always @ (a)
所以 1st always block 将执行同时a = 1& 0 ,而在第二种情况中,因为"如果"条件,只有a = 1
才会执行