关于 阻塞“=”与 非阻塞“<=” 的区别
最近一直在看一些大牛的博客,感觉到了自己太渣渣,争取以后把自己每天做的在这里写写,尽自己的努力,每天提高一点点,即将开始自己的第一篇博客。
这里说说自己一直不是很理解的“<=” 与“=” 这个是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

浙公网安备 33010602011771号