アサーション/ファンクション・カバレッジ
アサーションとカバー・ディレクティブは、デザインに期待する動作を指定して検証するためのものです。ソースコードに直接記述し、一定時間信号値を監視します。
アサーションは何かがつねに成立しなければならないことを宣言します (アサーションで失敗した場合デザインにバグがあると考えられます)。
カバー・ディレクティブは何かが発生すべきであることを宣言します (カバーの成功率でカバレッジを計測します)。
PSLのカバー・ディレクティブとSystemVerilogカバー文はファンクショナル・カバレッジの一形態です。プロパティを指定して、アサーションとファンクション・カバレッジにおいてそのプロパティを使用する手法は、最新システムのデザインとその検証アルゴリズムの開発においてはすでに不可欠になっています。アルデックのシミュレータは3種類のアサーション言語をサポートしています。
Property Specification Language (PSL)
PSLはもっとも包括的でありながらも習得しやすい言語です。他の言語と共存できるように、VHDL, Verilog, SystemVerilogおよびSystemCコードにうまくブレンドできるという特徴があります。PSLのシンプル・サブセット (シミュレーションが保証される言語部分) も、VHDL規格 (IEEE Std 1076™-2008) の最新バージョンに組み込まれていました。PSLで現在のVHDL/Verilogユーザにとって意味があるのは、検証エンジニアの管理するデザインとは別の検証ユニットに書くことも、設計エンジニアの管理するHDLコードに直接書くこともできる、という特長です。
OpenVeraアサーション (OVA)
OVAはVHDLコードよりもVerilogコードによく溶け込みますが、両方で使えます。OpenVeraはSystemVerilogに取り組むAccelleraグループに寄附されましたので、OpenVeraのアサーションとSystemVerilogアサーションには多くの共通点があります。
SystemVerilogアサーション (SVA)
SVAはSystemVerilogの一部で、モジュール・バインド・レベルでも、また動作コードにも、Verilogコードによく溶け込みます。SVAで書かれた検証モジュールは混合言語シミュレータ環境内でVHDLコンポーネントにバインドすることもできます。
アサーション・バンドルはアルデックのシミュレータのハイエンド設定ではデフォルトで付いてきます。バンドルが使えるようになったら、関係するグラフィカル・ツールもすべて使えるようになります。デザインに記述したアサーションは専用のアサーション・ビューワですべて確認できるようになり、そこで個々のアサーションのプロパティも変えられ、アサーションのブレークポイントも設置可能で、波形ビューワやアドバンスト・データフローなど強力なデバッグ機能を持つデバッギング・ツールにアサーションを追加することもできます。
