阻塞赋值与非阻塞赋值:
提示:这里可以添加学习目标
例如:
- 一周掌握 Java 入门知识
阻塞赋值:"="
a=1,b=2,c=3
begin
a=b+1;
b=a+2;
c=a-1;
end
a=3,b=5,c=2
非阻塞赋值:"<="
相当于先执行等式的右边的语句,到end时再进行赋值
a=1,b=2,c=3
begin
a <=b+1;
b <=a+2;
c <=a-1;
end
a=3,b=3,c=0
非阻塞赋值只能用于寄存器类型变量进行赋值,因此只用于"initial"和 “always"块中,不允许用于连续赋值"assign”。
小结:
- 编写组合逻辑电路时,使用阻塞赋值;
- 时序逻辑时使用非阻塞赋值;
- 使用always语句块编写组合逻辑时,阻塞赋值,敏感列表要使用电平触发的方式;
- 一个always不要即使用阻塞又用非阻塞。
- 锁存器要采用非阻塞;
- 推荐一个always 只对一个变量进行赋值。