其他分享
首页 > 其他分享> > always@(*)和 always_comb 有什么区别?

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