打印

新手问 非阻塞和阻塞的疑问

[复制链接]
1300|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
you21250619|  楼主 | 2011-3-25 20:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
utopiaworld| | 2011-3-25 23:58 | 只看该作者
阻塞赋值  就像这样

always@(×)

begin

b= a;

c = b;

end



always@(posedge clk or negedge rst_n)

begin

       if(rst_n ==1'b0)

       begin

              b <= 1'b0;

              c <=  1'b0;

       end

       else

       begin

              b<= a;

              c<= b;

         

       end

end



前一种阻塞赋值 ,在同一时刻,会出现 c = b =a 是组合逻辑

而 第二种情况 ,就是 a 赋值b 和  b赋值给c 有一个一个时钟周期的延迟关系,而且是时序逻辑

关于这个lz可以把上面代码仿真一下就看得比较清楚



对于阻塞和非阻塞记住 一句话就可以了,对于组合逻辑用阻塞赋值,时序逻辑用非阻塞赋值

在工程中就完全够用了

end

使用特权

评论回复
板凳
李冬发| | 2011-3-27 16:09 | 只看该作者
=   是就根导线;
<= 则是经过D触发器,会有一个时钟的时延。

使用特权

评论回复
地板
xiaoyuan_ly| | 2011-3-27 16:27 | 只看该作者
我的理解: 非阻塞和阻塞是为了更加能理解在仿真阶段上的仿真工具使用上的说法表示罢了。实际的“可综合”的电路上有这个说法吗??!! 仿真工具的过程只能是串行的,并不能真正意义上的“时间并行”,所以就有了这个表达说法。
    你的理解呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

9

帖子

1

粉丝