程序& System Verilog中的时钟块规则

时间:2014-09-23 16:41:42

标签: verilog system-verilog

在程序块中,我们无法对任何变量进行非阻塞分配。如果我们尝试这样做,它会显示错误,例如"程序变量:d只能使用阻止分配"来分配。

类似地,在时钟块中,如果我们尝试使用阻塞分配来分配它,那么它会显示错误,如"时钟块输出cb1.d信号必须由非阻塞分配驱动"。

这些规则背后的原因是什么?

1 个答案:

答案 0 :(得分:1)

我不建议使用程序块 - 它们是混乱的大量来源,完全没有必要。看看我最受欢迎的blog posts之一。

为了回答你的第一个问题,很久以前就消除了关于不能使用NBAs来编程变量的规则。您不得使用最新版本的软件。

要回答第二个问题,时钟块输出使用与阻塞和非阻塞分配不同的驱动器语句。请参阅1800-2012 LRM中的 14.16.1驱动器和非阻止分配部分。