2016-08-27 2 views
0

Verilogの仕様を読む際に、パスパルスを指定する独特の構文構文に気付きました。具体的には、フォーム内の文

PATHPULSE$in_port$out_port = ...; 

は仕様によれば、in_portout_portは、識別子(\でエスケープ識別子を含む)または[] -bracketed範囲の識別子のいずれかとすることができます。

PATHPULSE構造体を括弧でトークン化する際の問題を無視しても、$は通常の識別子の一部である可能性があるため、潜在的なあいまいさの問題があるようです。モジュールが同様に宣言されている場合、例えば:

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

そしてパスパルスステートメント所与:

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

入力ポートと出力ポートを分離する$決定する方法はありません。

私の質問はこれです:このあいまいさを避けるためにPATHPULSE構造をトークン化する良い方法がありますか?それとも、これはVerilogの欠点ですか?

+0

パスに遅延を割り当てる指定ブロックについてですか?おそらく、あなたは[指定]ブロックについて[here](https://www.hdlworks.com/hdl_corner/verilog_ref/items/Specify.htm)を参照することができます。 – sharvil111

答えて

1

これは、PATHPULSE構文の既知の不足です。 https://accellera.mantishub.io/view.php?id=1050を参照してください。識別子に$を使用しないことをお勧めします。

エスケープされた識別子は、常にスペースで終了するため問題にはなりません。

関連する問題