个人总结阻塞赋值和非阻塞赋值的区别

2020-02-20 23:16

关于阻塞复制和非阻塞赋值

阻塞赋值和非阻塞赋值的区别

阻塞赋值 =

阻塞性过程赋值在其后所有语句执行前执行,即在下一语句执行前该赋值语句完成执行。

非阻塞赋值 <=

过程赋值中,对目标的赋值是非阻塞的(因为延时),但可预订在将来某个时间步发生(根据时延;如果是0时延,那么在当前时间步结束)。

当非阻塞性过程赋值被执行时,计算右端表达式,右端值被赋予左端目标,并继续执行下一条语句。

预定的最早输出将在当前的时间步结束时,这种情况发生在赋值语句中没有时延时。在当前时间步结束或任意输出被调度时,即对左端目标赋值。

在同一个always/initial块里不要混用两种赋值语句

阻塞式过程赋值与非阻塞式过程赋值(VHDL中使用非阻塞式) c = a & b; 阻塞式过程赋值 c <= a & b; 非阻塞式过程赋值

两种赋值不会对语句本身的赋值有影响,但会影响以后对赋值结果的引用。书中建议组合逻辑使用阻塞式,时序逻辑使用非阻塞式。且语句块中如果只有一条赋值语句,是阻塞还是非阻塞都没有任何不一样。

非阻塞式过程赋值的赋值对象是在未来(即当前仿真时刻结束时)被赋值。 例 always @ (negedge clockB) begin

rightshift = rightshift & strobe; selectfist <= rightshift | xflag; checkstop <= slectfist ^ mask; end endmodule

左边的红线是rightshift,其未经过触发器,右边的是selectfist经过触发器了.


个人总结阻塞赋值和非阻塞赋值的区别.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:4B、5A词汇、句型整理

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: