一般情况下,编写代码时如能按照以下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
本文总结了8项编写Verilog代码的原则,遵循这些原则可以有效避免因代码引起90%-100%的竞态冒险现象。包括正确使用非阻塞赋值和阻塞赋值的方法,以及如何在不同的always块中处理时序逻辑和组合逻辑。
732

被折叠的 条评论
为什么被折叠?



