错误的使用阻塞赋值和非阻塞赋值会导致综合布线后的仿真中出现冒险竞争现象,在编写Verilog代码时注意以下几点,可以很好的避免冒险竞争现象。
- 时序电路建模时,用非阻塞赋值。
- 锁存器电路建模时,用非阻塞赋值。
- 用always块建立组合逻辑模型时,用阻塞赋值。
- 在同一个always块中建立时序和组合逻辑电路时,用非阻塞赋值。
- 在同一个always块中不要即用非阻塞赋值又用阻塞赋值。
- 不要在一个以上的always块中为同一个变量赋值。
- 用$strobe 系统任务来显示用非阻塞赋值的变量值。
- 在赋值时不要使用#0延迟。
参考书籍:《Verilog数字系统设计》----夏宇闻