阻塞赋值和非阻塞赋值使用要点

3780阅读 0评论2010-09-23 seuzw
分类:

1.
非阻塞赋值不能用于“assign”持续赋值中,一般只出现在“initial”和“always”等过程块中,对reg型变量进行赋值。像assign out<=a+b;这样的语句是错误的。

2.
当用“always”块来描述组合逻辑时,既可以用阻塞赋值,也可以采用非阻塞赋值。但在同一个过程块中,最好不要同时用阻塞赋值和非阻塞赋值,虽然同时使用这两种赋值方式在综合时并不一定会出错。

 

3.
在向函数(function)的返回值赋值时,应使用阻塞赋值“=”。

 

4.
不能在一个以上的“always”过程块中对同一个变量赋值,这样会引起冲突,在综合时会报错。

5.
在一个模块中,严禁对同一个变量既进行阻塞赋值,又进行非阻塞赋值,这样在综合时会报错。

6.
对时序逻辑描述和建模,应尽量使用非阻塞赋值方式,此外,若在同一个“always”过程块中描述时序和组合逻辑混合电路时,也最好使用非阻塞赋值方式。

上一篇:wire与reg的区别?什么时候用wire?什么时候用reg?
下一篇:ASIC设计流程及工具