阻塞赋值和非阻塞赋值,综合出来硬件上的区别??

2019-03-25 10:42发布

据我的总结如下:

begin-end语句的各句话是顺序执行的;
fork-join语句各句话是并行执行的;
阻塞赋值“=”计算表达式和赋值一起进行;
非阻塞赋值“<=”先计算表达式,再在语句块中统一赋值;


但是,唉,说实话还是搞得不明不白的!!比如begin-end语句里面的阻塞赋值 和 非阻塞赋值“大概”能搞懂了,但是什么时候用fork-join的阻塞 非阻塞呢?

有没有大虾能从综合出来的硬件的角度来讲下,这些个的电路结构到底是咋样的?~~~这样应该更容易理解点~~~
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
ming1005
1楼-- · 2019-03-25 16:21
< / 非阻塞延时一个时钟周期才会更新数据的,好像是多了个buf
chinatiger11
2楼-- · 2019-03-25 20:52
fork jion一般用于仿真,在编写可综合代码时基本只用begin end
阻塞与非阻塞赋值的区别,说来话长,自己可以翻书看一下,网上这方面的资料也很多。
总的来说,自己代码写多了后就对这些区别比较清楚了。
linhaiqing60
3楼-- · 2019-03-26 02:36

简单的说:

1.时序电路建模,用非阻塞语句,比如说最常见的D触发器;

2.用always做组合逻辑建模,用阻塞语句。

 

还有,若是要可综合的话,一般用begin-end,不用fork-join。

 

再补充一句,要观察这两种赋值语句的区别的话,还是通过时序图来看,从综合出的电路来看,很多时候他们就是一样的电路(不包含时钟边沿触发的电路)。

 

 

[ 本帖最后由 linhaiqing60 于 2010-10-11 17:00 编辑 ]

一周热门 更多>