(12)非阻塞赋值与阻塞赋值区别(以简单例子说明)

二者定义

在夏语闻老师《verilog数字系统设计教程》中对二者给出如下定义:

非阻塞赋值(b<=a):所赋的变量值不能立刻为下面语句所用,块结束才能完成赋值操作,且所赋变量值是上一次赋值得到的

阻塞赋值(b=a):赋值语句执行完后块才能结束,b的值在赋值语句执行完后立刻改变

一般在时序逻辑中使用非阻塞赋值<=,而在组合逻辑中使用阻塞赋值=

简单例子说明

非阻塞赋值



波形仿真:

可以看到,在第一个上升沿时,虽然y的值立刻被赋值为a+b,但新的y的值并不能马上参与到x的赋值中,x所赋值的y+a中的y依然是前一个时刻的y的值,直到第二个上升沿x的赋值中才为新的y值。
这也正好印证了上面所说,非阻塞赋值的变量不能马上为下面所用!

阻塞赋值


tb同上
波形仿真:

这个现象就非常明显了,当上升沿到来是,x、y的值立刻发生变化,且是新变化的y值参与到x的赋值中

posted @ 2024-09-04 23:25  xuxuxu69  阅读(39)  评论(0编辑  收藏  举报