阻塞和非阻塞赋值.ppt

阻塞和非阻塞赋值

2006-4-7 阻塞和非阻塞赋值 周晓波 电信学院 xbzhou@bjtu.edu.cn 阻塞赋值 阻塞赋值的执行可以认为是只有一个步骤的操作: 计算RHS并更新LHS,此时不能允许有来自任何其他Verilog语句的干扰。 所谓阻塞的概念是指在同一个always块中,其后面的赋值语句从概念上(即使不设定延迟)是在前一句赋值语句结束后再开始赋值的。 如果在一个过程块中阻塞赋值的RHS变量正好是另一个过程块中阻塞赋值的LHS变量,这两个过程块又用同一个时钟沿触发,这时阻塞赋值操作会出现问题,即如果阻塞赋值的次序安排不好,就会出现竞争。 阻塞赋值 非阻塞赋值 非阻塞赋值的操作可以看作为两个步骤的过程: 在赋值时刻开始时,计算非阻塞赋值RHS表达式。 在赋值时刻结束时,更新非阻塞赋值LHS表达式。 非阻塞赋值 Verilog模块编程要点 时序电路建模时,用非阻塞赋值。 锁存器电路建模时,用非阻塞赋值。 用always块建立组合逻辑模型时,用阻塞赋值。 在同一个always块中建立时序和组合逻辑电路时,用非阻塞赋值。 在同一个always块中不要既用非阻塞赋值又用阻塞赋值。 不要在一个以上的always块中为同一个变量赋值。 用$strobe系统任务来显示用非阻塞赋值的变量值 在赋值时不要使用 #0 延迟 移位寄存器模型 阻塞赋值实现移位寄存器模型

文档评论(0)

1亿VIP精品文档

相关文档