検索
特集

アサーション活用の手引きその基本から、記述ノウハウ、フォーマル解析への展開まで(5/5 ページ)

ICの高機能化が進むに従い、その機能を検証する作業が非常に大きな課題となってきている。この課題を解決するものとして期待され、現在、着実に普及しつつあるのが、アサーションベース検証(ABV)である。本稿では、まずこのABVの基本について説明する。続いて、アサーションを記述する上での注意点などを紹介する。さらに、アサーションを利用したもう1つの検証手法であるフォーマル解析についても解説を加える。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

段階的な導入がオススメ

 アサーションを導入するに当たって留意しなくてはならないことは、検証に必要なことを洗い出し、その問題に対して、アサーションを用いれば実現可能であるということならば、実際に適用していくということである。例えば、現在、波形を目視で確認することで検証している部分を、アサーションを用いて自動化すれば効率化が図れる。また、RTLコードを見ただけでは意図を理解しにくいので、コメント文によって振る舞いを記述している部分をアサーションで表すことにより、検証の対象とすることが可能になる。

 「まず、何でもよいからアサーションを埋め込んでみよう」というスタンスは、ABV導入最初期のタイミングであればよいかもしれない。しかし、ある程度アサーションを埋め込み始めると、実際の検証では、最悪の場合、単に無駄な工数が生じ、シミュレーションの実行速度が遅くなっただけということにもなりかねない。現状の問題点を明確化し、そのうちどの問題に対してABVを適用すると効果があるのかを見極めることで、ABVをより効率的に使用することができる。ABVは、アサーションを1行入れるということから始められる、敷居の低い(しかし、効果のある)検証手法であるが、よく吟味することで、より高い効率を得ることが可能になるのだ。

 検証の対象が、アービトレーション、相互排他、FIFO、ハンドシェイク、奇数/偶数パリティチェックなど、汎用的な構造の場合には、各種ツールに用意されているライブラリを使うことができる。ライブラリの使用方法を習得する必要はあるが、アサーションの記述に自信がない方にはお勧めの方法だ。また、AMBA(Advanced Microcontroller Bus Architecture)系の標準インターフェースなどについては、ABV用のIP(Intellectual Property)などを利用することで、非常に複雑なプロトコル検証もすぐに開始できる。さらに、アサーションを使用することで、何がテストされたかを機能カバレッジとして測定できるため、検証の進捗管理の手法としても活用可能である。

 アサーションの利用法としては、まずはシミュレーション環境にアサーションを追加することから開始する。通常、シミュレーションではオプション1つでアサーションを適用できることが多く、それまでの検証フローを大幅に変更する必要はない。また、インタラクティブにデバッグを行うことも可能だ。さらには、結果をデータベースとして保存しておくことにより、ポストプロセッシングが行える。

 シミュレーション環境下でのアサーションの使用に慣れたら、次のステップとして、早期に検証が必要なケースや、新規に作成したブロック、開発途中のブロックに対するフォーマル解析を適用する。また、非常に長いシミュレーション時間を必要とするテストや、注目したいポイントまでの到達に時間がかかるケースにおいて、ハードウエアアクセラレーションやエミュレーションを用いて検証を行うなど、段階的にアサーションに慣れ親しむとよい。


 アサーションは大規模/複雑化する検証を効果的に行うためのソリューションの1つである。最近では、アサーションに関連する多くの書籍が出版されているので、ぜひ参考にしていただきたい。また、アサーションに対応した検証ツールもそろってきている。米Cadence Design Systems社の製品を例にとると、シミュレータであれば「Incisive Enterprise Simulator(IES)」、フォーマル解析ツールであれば「Incisive Formal Verifier(IFV)」、アクセラレータ/エミュレータであれば「Incisive Palladium」や「Incisive Xtreme」など、各検証フェーズに最適な環境が提供されている。ぜひ、環境の見直し、改善も検討していただきたい。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る