关于 阻塞“=”与 非阻塞“<=” 的区别

最近一直在看一些大牛的博客,感觉到了自己太渣渣,争取以后把自己每天做的在这里写写,尽自己的努力,每天提高一点点,即将开始自己的第一篇博客。

这里说说自己一直不是很理解的“<=” 与“=” 这个是Verilog 那些事时序篇里讲的:

case( i )
0:
begin A <= 3; B <= 4; C <= 0; i <= i + 1'b1; end
1:
begin
C <= A + B;
if( C > 0 ) begin A <= 0; B <= 0 ; end
else begin A <= 1; B <= 1; end
i <= i + 1'b1;
end

若把  C <= A + B 变成了 C = A + B 图变为”=“ 时间点的值是变化的:

 

这是改进后的代码:

case ( i )
0: ... 初始化
1,2,3,4,5,6,7,8:
begin
if( p[1:0] == 2'b01 ) p <= { p[16] , p[16:9] + a , p[8:1] };
else if( p[1:0] == 2'b10 ) p <= { p[16] , p[16:9] + s , p[8:1]};
else p <= { p[16] , p[16:1]};
i <= i + 1'b1;
end

 

 

 

 

posted @ 2015-06-14 14:44  Dreammer  阅读(292)  评论(0)    收藏  举报