私はSystemVerilogアサーションを研究しています。私はSVAを適用してvalid-ack仕様を確認しました。仕様は以下の通りである:有効な(リクエスト)確認のためのSystemVerilogアサーション?
有効が(0〜1)drivedされると、ACK(1)drivedされるまで、有効な1 に等しくなければなりません。 ackがアサート解除されると(1から0)、 の有効値もアサート解除されます(1から0)。
この仕様を確認するには、2つのプロパティ(pr1とpr2)を書きました。以下のリンクからSVAコードを見ることができます。 https://www.edaplayground.com/x/5gHd
2つのプロパティが全く同じ働きをすると予想しました。しかし、pr2は期待どおりに動作しません(50nsでアサーションが失敗することが予想されますが、有効は1に等しいが、ackは50nsで0に等しいため)。
波形:https://www.edaplayground.com/w/x/u5
(50nsの時)PR2で間違っては何ですか? SystemVerilogのLRMによれば
よろしく、
「pr1」は一目で正しいと思われます。 'pr2'の最初のポスト条件は、' ack'が何をしているかにかかわらず、 'valid'がアサートされている限り一致します。それはおそらくあなたが望むものではありません。 – Teajay