0

在阅读 Verilog 规范时,我注意到一个涉及指定路径脉冲的特殊句法结构。具体来说,表格中的陈述

PATHPULSE$in_port$out_port = ...;

根据规范,in_port并且out_port可以是标识符(包括\- 转义标识符)或带有 - 括号[]范围的标识符。

忽略PATHPULSE用括号对构造进行标记的问题,似乎仍然存在潜在的歧义问题,因为$它可以是正常标识符的一部分。例如,如果一个模块声明如下:

module my_mod(
    input foo,
    output bar$baz,
    input foo$bar,
    output baz
);
...

然后给出一个路径脉冲语句:

PATHPULSE$foo$bar$baz = ...;

无法确定$将输入端口和输出端口分开的方式。

我的问题是:有没有更好的方法来标记PATHPULSE结构以避免这种歧义?或者这是 Verilog 的不足?

4

1 回答 1

1

这是 PATHPULSE 语法的一个已知缺陷。请参阅https://accellera.mantishub.io/view.php?id=1050。最好避免在标识符中使用 $。

转义标识符不是问题,因为它们总是以空格结尾。

于 2016-08-29T12:54:02.523 回答