バックナンバーはこちら

today&tomorrow

Technology Update

  • T&T HOME
  • Technology Update
  • デバッグの完全可視化によるハードウェア・バグの早期発見 HAPSのフィジカル・プロトタイピング・ハードウェア・デバッグ機能のご紹介

2017 Dec. vol.108

デバッグの完全可視化によるハードウェア・バグの早期発見
HAPSのフィジカル・プロトタイピング・ハードウェア・デバッグ機能のご紹介

シノプシス HAPS フィジカル・プロトタイピング担当スペシャリスト・コーポレート・アプリケーション・エンジニア Andy Jolley

HAPSによるフィジカル・プロトタイピングの新しい導入例として、IPのRTLデバッグがあります。これらのデバッグでは、コーナーケースのバグ(長時間にわたってRTLを動作させないと出現せず、利用可能なシミュレーション・タイムスロットでは到達できないようなバグ、および通常のシミュレーション・テストベンチでは網羅できない予測不能なシナリオでしか出現しないようなバグ)を捕捉する必要があります。このような場合、HAPSのプロトタイピング・システム上で数週間もの長期にわたってIPを高速動作させながらHAPS DTDロジックを使用して信号またはバスのアクティビティを監視し、目的のトリガー・シナリオ(単純な信号遷移だけでなく複雑なバスおよび制御信号シーケンスを含む)の発生を待ちます。この方法ではシステム性能に影響を与えることなく実行時に幅広いトリガー・シナリオを定義できる上、HAPSプロトタイピング・システムの初期設定時にデバッグ・ポイントとして選択した数千もの信号を自由に組み合わせて使用できるため、最近では多数のHAPSシステムで構築したフィジカル・プロトタイピング・ファームを導入するケースも増えています。フィジカル・プロトタイピング・ファームでは、共通のインプリメンテーションで構成した各HAPSシステム上でファームウェア・ビルド、ソフトウェア・リビジョン、トリガー・シナリオをそれぞれ変えて実行することにより、複数のデバッグ条件を同時に捕捉することができます。

いずれかのトリガーが発生すると、HAPS ProtoCompilerデバッガがHAPSプロトタイピング・システムの外部メモリー・モジュールからサンプル・データをダウンロードし、オフライン・デバッグ用にこのデータをテキスト、VCD、またはFSDBファイルに書き込みます。この後、HAPSシステムの動作を再開して次のトリガー・シナリオが発生するのを待ちます。FSDBファイルはオープンなフォーマットを採用しており、さまざまな抽象度でのデバッグが可能なため、デバッグ環境で広く使われています。一般的な使用例として、たとえばCPUデバッグではスクリプトを使用してFSDBファイルからテキスト出力を生成し、これを命令レベルの可視性として利用してCPU設計者はレベル・レベル波形の解析をどこから始めたらよいかを判断します。

画像(仮)

図2:FSDBファイルから抽出したテキスト出力の例

HAPS DTDは数千もの信号を可視化できるため、プロトタイピング・システムを1回インプリメントするだけでより多くのデバッグを実行できるという長所があります。信号の可視性が拡大するためDUT(テスト対象デバイス)の領域を何度も切り替える必要がなく、デバッグまたはバリデーション・サイクルを完了するのに必要なイタレーションの回数が削減されます。大容量のプロトタイピング・プラットフォームでは1回のイタレーションに何時間もかかることがあり、1日かけてわずかな量のデバッグを実行するたびにデバッグ信号セットを変えてインプリメントし直す作業が発生します。いずれにしても、RTLがほぼ安定して主要なバスまたは信号に対する可視性のみで十分な場合でないとフィジカル・プロトタイピングを導入できなかったのは、信号の可視性が不足していたのが理由の1つです。

また、複雑なトリガーの発生を何日も待った後に、必要な信号が可視化されていないことに気付くケースもよくあります。このような場合に役立つのがHAPS Global Signal Visibility(GSV)です。HAPS GSVは完全なシステム・ステートを「スナップショット」として可視化するもので、従来とは一線を画したフィジカル・プロトタイピングが実現します。
HAPS GSVはフィジカル・プロトタイピング・ソリューションHAPSに最近追加されたデバッグ強化機能の1つで、デバッグ・プローブの選択を事前に定義しなくても登録インスタンスのステート(フル・システム・ステート)をDUTからキャプチャできます。HAPS DTDと同様、HAPS GSVも広範なデバッグ・シナリオに応じてさまざまな形でセットアップして利用できますが、特に便利なのが、DUTクロックを制御してDUTの一部または全体を静的ステートに保持しながら登録インスタンスの値をキャプチャする使用法です(シンクロナスGSV)。この場合、どのDUTクロックをどのような状況で制御するかはユーザーが決定できます。制御の方法はホストPCからコマンドを発行するか、より細かな制御が必要な場合はHAPS DTDロジックからのトリガーを使用します。フル・システム・ステートをキャプチャしたら、クロックの制御を解放して通常のプラットフォーム動作に戻ることも、ユーザーが定義したサイクル数だけステップ実行してもう一度フル・ステートをキャプチャすることもできます。このプロセスは数万回でも繰り返すことができ、これによって十分な期間にわたってDUTのフル・システム・ステートを収集できます。HAPS DTDフローと同様、このシステム・ステートをダウンロードしてVCDファイルまたはFSDBデータベースに書き込むと、任意のオフライン・デバッグ環境でさらなるデバッグが行えます。

ここでも、Verdi環境でFSDBファイルを使用するとデバッグの可能性が拡大します。HAPS GSVの場合、Siloti Data Expansion機能を使用するとHAPSのフィジカル・プロトタイピング・システムから収集した登録インスタンス値の任意の組み合わせポイントまで信号可視性を拡張できます。

カテゴリートップ