|->
最近、通常の含意演算子 ( ) とimplies
SystemVerilogの演算子の違いは何かという疑問が持ち上がりました。残念ながら、私はまだ明確な答えを見つけることができませんでした。ただし、次の情報を収集しました。
SystemVerilog LRM 1800-2012から:
§ 16.12.7 Implies および iff プロパティ:
property_expr1 implies property_expr2
この形式のプロパティは、property_expr1 が false に評価されるか、property_expr2 が true に評価される場合にのみ、true に評価されます。§ F.3.4.3.2派生ブール演算子:
p1 implies p2 ≡ (not p1 or p2)
§ F.3.4.3.4派生条件演算子:
(if(b) P) ≡ (b |-> P)
ただし、LRM は、実際の違いが何であるかを実際には指摘していません。誤った前提条件 (成功と空虚な成功) の場合の評価は異なると思いますが、この仮定のソースまたは証拠を見つけることができませんでした。implies
さらに、この演算子は、OneSpin のような正式な検証ツールと組み合わせて使用することが非常に一般的であることを知っています。
誰か助けてくれませんか?
PS: SystemVerilog Assertions Handbook, 3rd Editionという本に、この質問に対する回答があるようです。しかし、この質問に対する答えを得るためだけに、155 ドルは私には少し多すぎます :)