always@(*)和 always_comb 有什么区别?
作者:互联网
1. always_comb 在时间 0 自动执行一次,而 @ (*) 等待直到其敏感列表中的信号发生改变时才执行。
2. always_comb 对函数参数和内容的变化都敏感,而always @ (*) 只对函数参数的变化敏感。
3. 在always_comb 中不允许阻塞时序控制,但在always @ (*) 中允许。
看几个always@(*)的例子:
always @ ( * )
z = a && b || d & e || myfunct(f);
//Is equivalent to:
always @ (a or b or d or e or f)
Z = a && b || d & e || myfunct(f);
//following equivalent to @(a or b or c or d or tmp1 or tmp2)
always @* begin
tmp1 = a & b;
tmp2 = c & d;
y = tmp1 | tmp2;
end
always @* begin // equivalent to @(b)
@(i) kid = b; // i is not added to @*
end
always @* begin // equivalent to @(a or b or c or d)
x = a ^ b;
@* // equivalent to @(c or d)
x = c ^ d;
end
标签:end,区别,always,equivalent,comb,tmp1,tmp2 来源: https://www.cnblogs.com/fuqiangblog/p/16623821.html