ツールについては、SystemVerilog アサーションを正しく解析しようとしていますが、特定の式の正しい優先順位について混乱しています。SystemVerilog 標準には、優先順位としてnot
> until
>と記載されている優れた表がありますalways
。しかし、これが単項演算子の代替でどのように機能するかはよくわかりません。
たとえば、not
は よりも優先順位が高いためuntil
、明らかに次のようにする必要があります。
not r1 until r2 ----> (not r1) until r2
until
は よりも優先順位が高いため、always
明らかに次のようにする必要があります。
always r1 until r2 ----> always (r1 until r2)
しかし、以下を解釈する適切な方法は何ですか?
not always r1 until r2
2 つの解釈が正しいと想像できます。
not always (r1 until r2)
、until
よりも強く結合するためalways
、または(not always r1) until r2
not
よりも強く結合するためuntil
NCVerilog 15.10-p001 は最初の解釈を使用しているようです。私が見逃したかもしれないこれが正しいかどうかを議論する標準のどこかにありますか? NCVerilog の優先順位規則を適切な文法にエンコードするのは難しいようです...