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 の不足ですか?