カバレッジとプロファイラ機能
デザインの検証にはますますエンジニアリングの工数が必要となっています。
設計者にとって検証の品質をフィードバックしてくれる機能が必須となっています。
Active-HDL は様々なタイプのカバレッジ機能によってそのフィードバックが行えるようになっています。
もう一つの検証の課題として検証プロセスの実行時間の長さが問題となっています。
リグレッションテストでの実行時間が非常に長い場合、多くのマシンを割り当てて、
シミュレーション・ファームを構築して対応する方法も考えられます。
が、その前にデザインプロファイラによってデザインのボトルネックを解析し、ソースコード
を最適化して、シミュレーションを高速にすることもできます。
ステートメント(ライン・ブランチ)カバレッジ
ラインカバレッジによって、ソースコードの個々のラインが何回実行されたかを確認することができます。
テストベンチによって全く実行されなかったソースコードの特定も簡単に把握することができます。
ブランチカバレッジでは、if 文や case 文などのステートメントの分岐条件についての実行状
況を確認することができます。各々の条件が True または False に何回なっているかをレポートします。
ライン・ブランチカバレッジの情報を得る為に特別な操作をする必要はありません。
シミュレータのオプションを一つ追加するだけです。コードに対する変更は一切必要ありません。
カバレッジエンジンは、シミュレーションカーネルに統合されており、シミュレーションスピードに対す
る影響もほとんどありません。
トグルカバレッジ
ステートメントカバレッジを補完する機能としてトグルカバレッジがあります。
コード中の個々のラインの実行状況についてレポートするのではなく、
デザインの信号のトグルについての情報を提供します。トグルカバレッジでは、
どの信号がシミュレーション実行中に値が割り付けられていないか、どの信
号が立ち上がり、立下りを行っていないかといった情報をレポートします。
ステートメントカバレッジと同様、トグルカバレッジの情報を得る為の特別な操作は必要ありません。
デザインプロファイラ
デザインプロファイラでは、シミュレーション実行中にどの HDL ブロックがシミュレーション
の負荷をかけているかをチェックすることができます。プロファイルされたデータは、
個々のブロックとそのブロック内の個々のステートメントのシミュレーションにかかった時間を計測します。
この結果によって、どのコンポーネント、セクション、ステートメントを最適化して、シミュレーション
実行時間を短縮できるかの判断が可能です。
非常に長いリグレッションテストを繰り返し実行する場合、うまく最適化することで、
何時間もの実行時間を短縮することもできます。最適化は非常に簡単に行える場合があります。
例えば、マルチプライヤーのゲートレベル記述の変わりにマルチプルオペレーションを実行する記述に
置き換えるといった場合です。コンパイル実行時に各種の最適化を加えることにより、
ソースファイルに変更を加えることなくシンプルな最適化を行うことができます。
カバレッジとプロファイラ結果の確認
Aldec 社ではカバレッジとプロファイル結果を表示するための専用ウィンドウを提供しています。
そのウィンドウにシミュレータから生成された全てのファイルが読み込まれます。
そのウィンドウを単独のアプリケーションとして実行することも可能です。
|