#`s在verilog中意味着什么?

时间:2013-11-05 15:52:15

标签: verilog

我在下面的表格中看到了一些陈述。 #`DEL在这里意味着什么?我对verilog有基本的了解,并且很容易找到它的意思,因为它包含特殊的字符。

cmd <= #`DEL 32`b0

2 个答案:

答案 0 :(得分:5)

有问题的代码延迟了一些金额。 #`DEL(因为反引号而不能使用内联编码)有3个部分。首先,#表示这是一个延迟声明。接下来,反引号(〜下面的字符)表示Verilog中的预处理器定义;在您编写代码的某个地方,您将获得以下内容:

`define DEL 1ns

其中1ns可能是任何时间值,这将是延迟。我们应该清楚在DEL之前应该有一个反引号(在〜之下),而32&#b; b0使用单引号。

答案 1 :(得分:4)

这是一个延迟声明。

延迟右侧的值分配到左侧的定义量,在这种情况下延迟cmd变为零。

延迟可以用任何时间或实时格式指定,#1将是1 ...步骤定义的...

SystemVerilog中提供了

#1ns, #1us, #1ms和更多内容。

更典型的情况是使用非恒定的右手边。

assign a = #1ns b;

这里a将滞后b 1 ns。

通过搜索“delay_value”,可以在语言参考手册LRM中找到对此的参考。