阻塞赋值与非阻塞赋值的区别
阻塞赋值(=):假如有两条赋值语句,阻塞赋值是两条语句顺序执行,先完成前一条语句的赋值,再完成下一条赋值语句的赋值。
非阻塞赋值(<=):假如有两条赋值语句,非阻塞赋值相当于两条语句并行执行,前面语句的执行不会阻塞后面语句的执行
两条语句的使用场合
(1) 时序电路建模时,用非阻塞赋值。
(2) 锁存器电路建模时,用非阻塞赋值。
(3) 用always块建立组合逻辑模型时,用阻塞赋值。
(4) 在同一个always块中建立时序和组合逻辑电路时,用非阻塞赋值。
(5) 在同一个always块中不要既用非阻塞赋值又用阻塞赋值。
(6) 不要在一个以上的always块中为同一个变量赋值。
(7) 用$strobe系统任务来显示用非阻塞赋值的变量值。
(8) 在赋值时不要使用#0延时。
组合逻辑电路:使用阻塞赋值(“=”);时序逻辑电路:使用非阻塞赋值(“<=”)