木曜日, 6月 21, 2007

アサーションとカバレッジ

OVL v2.0では、各チェッカーにassertion(assumption)機能だけでなくカバレッジ機能が追加されているものがあります。

しかし、カバレッジ機能についてはまだ十分ではないようです。

チェッカーのアサーション機能はその規定に違反したときに起動して、違反があったことを通知しますがその機能を利用して、シミュレーションがカバレッジポイントを通過したかどうかを確認することもできます。

例えばovl_neverを使って、カバレッジポイントを通過したときに真となる式をtest_expr入力に入れておけば、シミュレーション中にカバレッジポイントを通過した時点でチェッカーが起動して、通知してくれます。

このとき、severity_levelパラメータはOVL_INFOとしておき、msg入力にカバレッジポイントであるということを明記しておきましょう。

例えばこんな感じですね。
ovl_never
#(.severity_level(`OVL_INFO), .property_type(/*default*/),
.msg("Coverage point: Count Max."), .coverage_level(`OVL_COVER_NONE),
.clock_edge(/*default*/),.reset_polarity(`OVL_ACTIVE_HIGH),
.gating_type(/*default*/) )
cov_cnt_max_inst (.clock(ICLK), .reset(IRST), .enable(1'b1),
.test_expr((COUT==4'd9)), .fire(OFIRE));

0 件のコメント: