阻塞赋值和非阻塞赋值

Posted achangchang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阻塞赋值和非阻塞赋值相关的知识,希望对你有一定的参考价值。

为尽量避免在综合布局布线后的仿真中出现冒险竞争现象,在编写Verilog代码时必须牢记以下8个原则:

1,时序电路建模时,用非阻塞赋值。

2,锁存器电路建模时,用非阻塞赋值。

3,用always块建立组合逻辑模型时,用阻塞赋值。

4,在同一个always块中建立时序和组合逻辑电路时,用非阻塞赋值。

5,在同一个always块中不要既用非阻塞赋值又用阻塞赋值。

6,不要在一个以上的always块中为同一个变量赋值。(新手几乎都会犯的错误,Vivado在综合时会报critical warning: multiple-driver)

7,用$strobe系统任务来显示用非阻塞赋值的变量值。

8,在赋值时不要使用 #0 延迟。

参考《Verilog数字系统设计教程 第四版 夏宇闻》

以上是关于阻塞赋值和非阻塞赋值的主要内容,如果未能解决你的问题,请参考以下文章

verilog 阻塞和非阻塞啥区别啊?

阻塞赋值和非阻塞赋值

verilog中为啥非阻塞赋值要用绝对时延

用一个例子来学习阻塞赋值和非阻塞赋值

verilog中阻塞赋值和非阻塞赋值的区别

在 verilog中的非阻塞赋值在啥时候赋值时刻结束?