電力考慮のシミュレーションを使用した効率的なローパワー検証およびデバッグ・メソドロジ

~ローパワー・デザインの検証漏れによるバグ混入を根絶するには

米国シノプシス ベリフィケーション・グループ 

アプリケーション・エンジニアリング・シニア・マネージャー Himanshu Bhatt

シニア R&D エンジニア Shreedhar Ramachandra


電源遮断やマルチ電圧ドメインなどの一般的なローパワー手法や、DVFS(Dynamic Voltage and Frequency Scaling)、低VDDスタンバイ、バイアス制御などの高度な手法を使用した電力考慮デザインでは、アイソレーション、リテンション、パワー・スイッチが重要な役割を果たします。アイソレーション、リテンション、レベル・シフタのストラテジはパワー・フォーマット・ファイルで指定します。動的ローパワー検証では、RTLエラボレーション時にシミュレータがパワー・フォーマット・ファイルを読み出し、アイソレーションとリテンションの情報を評価してシミュレーション・テストの準備をします。ここでの目的は、シャットダウン、アイソレーション、リテンションのためのシーケンスの正確性を確認することにあります。動的シミュレーションのもう1つの重要な側面として、ローパワー・シーケンスのアサーション、アイソレーションの適切なクランプ値、リセット時のセーブ/リストア処理、パワーオン処理、多電源マクロ処理、電源ステートのカバレッジといった手法の使用があります。また、電力考慮シミュレーションでは「X伝搬(X-Prop)」も重要な役割を果たします。これにより、RTLのビヘイビアがゲート・レベル・シミュレーション(GLS)のビヘイビアと一致することを確認し、ビヘイビアの不一致による機能上のバグを設計サイクルの早期に見つけることができます。設計および検証エンジニアがシミュレーションで生じたエラーの根本原因を解析して修正するには、高精度な電力考慮シミュレータだけでなく効率的な電力考慮デバッガを使用することが重要です。

 

ローパワー・デザインの市場規模が急速に拡大している現在、シリコンへのバグ混入は甚大な経済的損害を起こしかねず、電力考慮デザインの検証およびデバッグ手法の確立はエレクトロニクス業界にとって待ったなしの問題となっています。ローパワー・デザインにおいて、シリコンへのバグ混入を根絶するには、電力考慮シミュレータと直感的かつ強力なデバッガの併用が不可欠です。

パワー・マネージメント検証に求められる条件

ローパワー検証には以下のものが求められます。

  • 電源制御/管理の検証
    • 電源ステートが意図したとおりに遷移していることを確認する
    • 電源ステートの遷移をトリガーするハードウェア条件
    • ソフトウェアからの要求による遷移
  • 各電源ステートでのドメインのビヘイビア検証
    • LP関連ビヘイビアのチェック
    • 通常のチェックにおけるLPの考慮
  • カバレッジ
    • すべてのステート、すべての遷移をすべての順序でテスト
  • 電力考慮デバッグ
    • 直感的かつ高機能なデバッグ・ツールの必要性

電力考慮のシミュレーションとデバッグ

PAVE:PAVE(Power Aware Verification Environment)とは、UPFオブジェクトへのアクセス、ローパワー・イベントの監視、電力考慮アサーションの作成を可能にするインフラストラクチャです。強力なUPFクエリ・コマンドを使用してパワー・インテントのクエリを実行したり、UPFのbind_checkerコマンドを使用してチェッカー・モジュールをUPFオブジェクト(電源ドメイン、パワー・スイッチ、アイソレーション・ストラテジ、リテンション・ストラテジなど)にバインドしたりできます。また、PAVEインフラストラクチャでは「リセットがLowのとき、クロックはHighで一時停止する」といったカスタム・アサーションをユーザーが作成できます。

X-Prop:電力考慮シミュレーションでは、X伝搬(X-Prop)を使用して電力の影響を調べます。この機能を使用すると、アイソレーション・セルの不足といったバグや、イネーブル信号(アイソレーション・イネーブルなど)がアクティブになっておらずアイソレーション・セルが誤動作しているようなバグを見つけることができます。

RTLコーディング・スタイルが原因でXを見逃してしまい、デザインにバグが残ることがあります。このようなバグは、後でGLSを実行して検出することもできますが、GLSの実行には高い処理性能が必要で、時間もかかります。X-Propテクノロジは、RTLレベルでGLSと同等のビヘイビアを再現します(図5)。

パワーオン・リセットのアサーション:パワーアップ時に正しくリセットが行われないと、デザインの不具合につながります。また、リセットのパルス幅は最小にする必要があります。

VCS NLPなどの高精度な電力考慮シミュレータには、コンパイル・オプション「-power=assert_reset_sequence」を使用してパワーオン・リセットのアサーションを有効にするなど、こうしたリセット関連の問題を検出するメカニズムがあります。

電力考慮テストを実行すると、シミュレータからは以下のアサーション・エラーが出力されます。

カスタム・メカニズムによる電源ネットの解決:ユーザーUPFで定義した電源ネットの解決方法は、ユーザー要件によって異なります。最も一般的なのは「parallel」と「one_hot」です。しかし場合によっては、ユーザー独自のカスタム・メカニズムを指定してドライバを解決したいこともあります。以下に例を示します。

VCS NLPには、パッケージ内でユーザー独自のカスタム解決方法を定義する機能もあり、これをUPFで使用することができます。

 

解析済みUPFコンペア・フロー:RTLと合成後ネットリストの等価検証においては、ローパワー・フローで使用する各種ツール間のシナジー効果が求められます。こうしたニーズに応えるのが、解析済みUPFコンペア・フローです(図8)。このフローでは、まず電力考慮シミュレータがUPFを読み込んで「UPF_*」データベースを作成します(図9)。等価検証ツールはこのデータベースを使用して、RTLと合成後ネットリストのローパワー等価検証を実行します。電力考慮シミュレータが出力したUPFには、アイソレーション・ストラテジのすべての有効なエレメントが引数「-elements」に記述されます。このため、ローパワー等価検証ツールで実行するソース/シンク解析/トレースは最小限で済みます(ただし異なるファンアウトが混在している場合は、等価検証ツールでも一部トレースの実行が必要)。これにより、不等価を等価と誤判定してしまうのを避けることができます。

電力考慮デバッグ:電力考慮デザインのデバッグは困難を極めます。そこで、電力考慮シミュレータと緊密に統合された高機能な電力考慮デバッガを使用することが強く推奨されます。図9に、このようなデバッグ・ツールの主な機能を示します。

まとめ

電力考慮シミュレーションには多くの課題があります。PAVE(Power Aware Verification Environment)、X-Prop、パワーオン・リセットのアサーション、電源ネットのカスタム解決方法、解析済みUPFコンペア・フローなどの機能を備えた強力かつ高精度な電力考慮シミュレータと、ネイティブに統合した電力考慮デバッガを組み合わせて使用することで、わずかなバグの検証漏れも防ぎ、検証サインオフの信頼性向上と「シフトレフト」が実現します。

著者紹介

Himanshu Bhatt :シノプシス ベリフィケーション・グループ シニア・マネージャー、アプリケーション・エンジニアリング。 EDAならびに半導体業界で18年以上のキャリアを持つ。eRM, UVM, CPF, UPF, formal, equivalence checking 等の多様なメソドロジを用いたASICデザインや検証に携わる。現在はローパワーのスペシャリストとして、ローパワー検証フローを定義・向上させる技術者のサポートを行っている。

Shreedhar Ramachandra:シノプシス ベリフィケーション・グループ、ローパワー検証チームのR&Dエンジニア、シニア・スタッフ。ASIC設計/検証エンジニアとして14年以上前にキャリアを開始後、EDA業界に移り、Archpro社のローパワー・シミュレーション製品MVSIMなどのアーキテクチャ設計に従事。現在はシノプシスVCS NLP担当アプリケーション・エンジニアを務めるかたわら、IEEE 1801 UPF委員会にシノプシス代表として参加。