中级会员
 
- 积分
- 250
- 金钱
- 250
- 注册时间
- 2019-6-10
- 在线时间
- 25 小时
|
发表于 2019-7-23 23:11:59
|
显示全部楼层
非阻塞赋值“<=”与阻塞赋值“=”与的区别在于:非阻塞赋值“<=”右端表达式计算完后并不立即赋给左端,而是同时启动下一条语句继续执行,我们可以将其理解为所有右端表达式在进程开始时同时计算,是并行的,计算完后,等进程结束时同时分别赋给左端变量。
而阻塞赋值语句在每个“=”右端表达式计算完后立即赋给左端变量,即赋值语句b=a,执行完后b是立即更新的,同时,只有b=a执行完后才可执行语句c=b,前一条语句的执行结果直接影响到后面语句的执行结果,即这种赋值方式是串行的。
非阻塞赋值“<=”不能用于“assign”持续赋值中,而只能用于对寄存器型变量进行赋值,即用在“initial”和“always”等过程块中;
阻塞赋值则既能用于“assign”持续赋值,也能用于“initial”和“always”等过程赋值中。
对于时序逻辑描述和建模,应尽量使用非阻塞赋值方式。以免发生不必要的错误。 |
|