对于一个工具,我正在尝试正确解析 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
我可以想象有两种解释可能是正确的:
not always (r1 until r2)
, 因为until
结合得比always
, 或(not always r1) until r2
, 因为not
结合得比until
看起来 NCVerilog 15.10-p001 使用了第一种解释。标准中是否有任何地方讨论我可能错过的是否正确?似乎很难将 NCVerilog 的优先规则编码成一个好的语法......