目录
8. 跨时钟及其解决方法(单bit、多bit、打拍、握手等在什么场合需要);
14. 同步复位、异步复位及优缺点,有复位和无复位的综合实现区别;
1. 阻塞赋值和非阻塞赋值
- 概念与定义:
- 阻塞赋值:“=” 在赋值时先计算等号右边部分的值,这时赋值语句不允许任何其他的verilog语句干扰,知道现行赋值完成时刻,才允许别的赋值语句开始执行。
- 非阻塞赋值:“<=”非阻塞赋值是由时钟节拍决定,在时钟上升到来时,执行赋值语句右边,然后将begin-end之间的所有赋值语句同时赋值到赋值语句的左边,注意:是begin—end之间的所有语句,一起执行,且一个时钟只执行一次。
- 编码准则:
- 时序电路建模时使用非阻塞赋值
- 锁存器电路建模时使用非阻塞
- 用always块建立组合逻辑模型时,用阻塞赋值;
- 在同一个always块中建立时序和组合逻辑电路时用非阻塞。
- 在同一个always块中,要即用非阻塞,又用阻塞赋值;
- 不要在多个always块中对同一个变量赋值