Verilogの仕様を読む際に、パスパルスを指定する独特の構文構文に気付きました。具体的には、フォーム内の文
PATHPULSE$in_port$out_port = ...;
は仕様によれば、in_port
とout_port
は、識別子(\
でエスケープ識別子を含む)または[]
-bracketed範囲の識別子のいずれかとすることができます。
PATHPULSE
構造体を括弧でトークン化する際の問題を無視しても、$
は通常の識別子の一部である可能性があるため、潜在的なあいまいさの問題があるようです。モジュールが同様に宣言されている場合、例えば:
module my_mod(
input foo,
output bar$baz,
input foo$bar,
output baz
);
...
そしてパスパルスステートメント所与:
PATHPULSE$foo$bar$baz = ...;
入力ポートと出力ポートを分離する$
決定する方法はありません。
私の質問はこれです:このあいまいさを避けるためにPATHPULSE
構造をトークン化する良い方法がありますか?それとも、これはVerilogの欠点ですか?
パスに遅延を割り当てる指定ブロックについてですか?おそらく、あなたは[指定]ブロックについて[here](https://www.hdlworks.com/hdl_corner/verilog_ref/items/Specify.htm)を参照することができます。 – sharvil111