小结
一般来说,为消除竞争冒险,增加滤波电容和逻辑冗余,都不是 Verilog 设计所考虑的。
计数采用格雷码计数器,大多数也是应用在高速时钟下减少信号翻转率来降低功耗的场合。
利用触发器在时钟同步电路下对异步信号进行打拍延时,是 Verilog 设计中经常用到的方法。
除此之外,为消除竞争冒险,Verilog 编码时还需要注意一些问题,详见下一小节。
Verilog 书写规范
在编程时多注意以下几点,也可以避免大多数的竞争与冒险问题。
-
- 1)时序电路建模时,用非阻塞赋值。
- 2)组合逻辑建模时,用阻塞赋值。
- 3)在同一个 always 块中建立时序和组合逻辑模型时,用非阻塞赋值。
- 4)在同一个 always 块中不要既使用阻塞赋值又使用非阻塞赋值。
- 5)不要在多个 always 块中为同一个变量赋值。
- 6)避免 latch 产生。