Functional Coverage
久しぶりに、Writing Testbenches の勉強を再開。
Functional Coverageは、ゴールを自分で決めないといけない。
で、UARTを使ったFunctinal Coverageの例として、こんな例があげられている。
1.CTSピンが、0と1の両方の状態になること
2.DTRピンが、0と1の両方の値になること
3.4より大きいアドレスに対して、リードサイクルとライトサイクルが発生すること
4.リードサイクルとライトサイクルの全ての組み合わせの確認
5.コンフィグレーションレジスタのアドレスと一致するリードサイクルとライトサイクルが発生すること。
個々のビットが0と1になること。
1,2,3,5については製品の出荷検査っぽいですね。つまり、変化すればいいのか。
シミュレーションが上手くいったかどうかの判断は別の所で行っているのかな。
4の全ての組み合わせ(all combination)って書いてあるけど、これが難しいん
じゃないのか?って思う。
そして、ランダム検証ではジェネレータに簡単に制約を加えれるようにする。
ランダム検証でうまくいかない場合は、直接テストベンチを作るのが良い。
しかし、ジェネレータを上手く作っておくことで、制約をかけるだけで、
特別な場合のテストベンチを生成することができる。
なるほど、と思いながら、Chapter3 終了
The comments to this entry are closed.
Comments