一般情况下,编写代码时如能按照以下8条原则就可以避免
90%-100%由Verilog代码引起的冒险竞争现象:
1)时序逻辑----使用非阻塞赋值
2)锁存器----使用非阻塞赋值
3)用always块生成的组合逻辑----用阻塞赋值
4)在同一个always块中既有时序逻辑又有组合逻辑---
用非阻塞赋值
5)在同一个always块中不要既用阻塞赋值又用非阻塞赋值
6)不要在一个以上的always块中对同一个变量赋值
7)用$strobe显示用非阻塞赋值指定的变量值
8)不要用 #0 过程性赋值
90%-100%由Verilog代码引起的冒险竞争现象:
1)时序逻辑----使用非阻塞赋值
2)锁存器----使用非阻塞赋值
3)用always块生成的组合逻辑----用阻塞赋值
4)在同一个always块中既有时序逻辑又有组合逻辑---
用非阻塞赋值
5)在同一个always块中不要既用阻塞赋值又用非阻塞赋值
6)不要在一个以上的always块中对同一个变量赋值
7)用$strobe显示用非阻塞赋值指定的变量值
8)不要用 #0 过程性赋值
以上8条原则与Verilog-1995 完全一致,仍旧适用于SystemVerilog