News and Views 2013 Autumn / Vol. 7: 上流設計&組込み

検証の生産性を最大にする検証IP

IC製品の開発全体において機能検証が占める割合は7割とも言われており、熾烈化する製品競争に勝つために、開発期間短縮の要求を満たしつつ高品質を維持することができるかどうかは、機能検証をいかに制すかにかかってくるといっても過言ではないでしょう。そこで新規プロジェクトに着手する際には、どうしたら短期間で検証インフラストラクチャを立ち上げられるか、という点はプロジェクトメンバーの誰もが考えることでしょう。この「短期化」と同じくらい重要となるのが、「設計の信頼性を高め品質を向上させる」ことです。もちろん、検証プロセスで使用する環境の効率面への考慮も忘れてはなりません。この検証環境こそ、プロジェクトが開始したら、ほぼ毎日ほとんどの時間を費やす場となるからです。

さてプロジェクトを問わず、デザイン上のバグを見つける作業は最も時間が要される工程です。そのデバッグ作業において欠くことのできない抽象度となるのが、TLM(Transaction Level Modeling)です。PCI Expressのさまざまなシーケンス、データ転送、完了コードなどをピンレベルで解析した苦労を経験している設計者なら、TLMのありがたみは計り知れません。

しかし、新しい検証技術としてTLMを修得したからといって、いきなりすぐに次の設計プロジェクトの検証品質を満たすまで活用できるスキルに達するケースはごく稀としか言いようがないでしょう。ほとんどのチームは、開発スケジュールと手元に積み上げられた業務からの制約を受け、TLM手法の導入には時間やリソースが不足しているという結論に陥りがちです。ところが、PCI Expressなどの標準インタフェースを扱っている場合、検証IPを取り入れることによって検証の生産性と品質を改善させることができるのです。

SystemVerilogによる検証IP

メンター・グラフィックスが提供する検証IPは、立上げ段階での生産性を高めると同時に、プロトコルに厳密に準拠することによって品質を確保しています。SystemVerilogによる標準ベースクラスを用いたUVM/OVMをベースにしており、PCI Expressをはじめとするさまざまなプロトコルの検証に使用できます。プロトコル仕様に準じたテストプランも付属しています。また、UVM/OVMベースで抽象度の高い検証インフラストラクチャを実現し、機能カバレッジに基づいたテストプランを追跡する、高位テストシナリオも使用可能です。SystemVerilogやUVM/OVMに精通したエンジニアの数は増えているものの、PCI Expressのような複雑なプロトコルに関するスキルを持ち合わせ、テストプランを作成し、それに対応する機能カバレッジを準備し、テストシナリオまで作成するリソースを調達することは容易いことではありません。複雑なプロトコルを含む機能検証において重要なのは、すでに他のプロジェクトで実績のある検証インフラストラクチャを再利用することです。

UVM/OVMのメリットの1つは、TLMがもたらす高い抽象度です。TLMは、高位テストシナリオの生成の用途だけにとどまらず、トランザクションの視点に立ったデバッグを行う場合の検証環境においても有効です。例えば、LTSSM(Link Training and Status State Machine)を用いた転送速度のネゴシエーションにおいて、最初のトレーニングでリンクがL0となったものの、5GT/sへの速度変更でリンクが確立できずに2.5GT/sに戻り、大幅な性能低下になったとします。このようなデバッグ時に吟味しなくてはならない項目は多数あります。以下にいくつか列挙します。

図1. PCI Express用の検証IPとQuestaによるデバッグの様子図1. PCI Express用の検証IPとQuestaによるデバッグの様子

  • リンクは両側ともアイドル状態を抜け、適正なトレーニングシーケンスを5GT/sで送信しているかどうか
  • アップストリーム側かダウンストリーム側のデバイスがTS2送信に失敗していないか
  • 転送速度フィールドに適正な速度を設定したか
  • N_FTSフィールドが転送速度の低下を招いていないか
  • ソフトウェアの問題はないか

図1は、LTSSMのデバッグをメンター・グラフィックスが提供する検証IPとQuesta機能検証プラットフォームで行っている様子です。TLMを用いることで、N_FTSフィールドが0Ahという低い値であるのに対し、デバイス転送速度には86hが設定されているというような情報が簡単に把握できます。

パッシブモードでの使い方

UVM/OVMではエージェントの考え方を採用しており、テストシナリオをドライブし、DUTを活性化するモードをアクティブモード、モニタやカバレッジ収集だけを行うモードをパッシブモードと呼んでいます。このモードはコンフィギュレーションにより簡単に設定することができます(図2参照)。

図2. エージェントのアクティブモードとパッシブモード図2. エージェントのアクティブモードとパッシブモード

検証IPをモニタとして接続することにより、PCI ExpressでのTL(トランザクション層)、DL(データリンク層)、PL(物理層)のアクティビティを再現します。すべてを波形ウィンドウに表示できるため、アクティビティの全履歴を確認しながらのデバッグが可能です。またカバレッジコレクタでは、TL/DL/PLのカバレッジも得ることができます。ただし、PCI Expressは非常に複雑です。DUTのパラメータに合わせて検証IPのコンフィギュレーションも指定する必要があります。

PCI Expressの検証IPをRoot Complex(RP)またはEnd Point(EP)として使用することで、期待される動作に基づく適切なシーケンスを発生させることが可能です。この場合には、エージェントをアクティブモードで使用します。同時に、モニタやプロトコルチェッカ、カバレッジコレクタも使用できます。

高位モデリングを採用すると、テストシナリオを作成するエンジニアリングリソースを容易に投入でき、プロジェクトの進展に伴って品質を向上させることが可能です。またメンター・グラフィックスの検証IPに含まれるテストプランを使用することで、各自の環境を反映した詳細なスコアボードを構築し、機能カバレッジの進捗をテストプランに対して追跡し、効率的かつ計画的に、カバレッジ収束を実現できます。もちろんメンター・グラフィックスが提供する検証IPには、スコアボードのテンプレートが用意されています。図3は、メンター・グラフィックスの検証IP内蔵のテストプランです。このテストプランに紐付けられたリグレッションスイートの各実行結果がマージされています。これらの情報により、検証プロセスが可視化され、スケジュール予測が確実になります。

図3. 機能カバレッジの結果とテストプランの追跡図3. 機能カバレッジの結果とテストプランの追跡

まとめ

検証IPを使用することは決して新しいことではありません。メンター・グラフィックスの検証IPがユニークとされるにはいくつかの理由があります。まず、最新のUVM/OVMにしっかりと準拠した形で構成されていることが特長として挙げられます。また、モニタ、カバレッジコレクタ、トランザクタ、スコアボードなど、検証IPが必要とする機能と必要なテンプレートはすべて網羅した上で、標準プロトコルを検証するためのテストプランや、チップやシステム全体のテストプランへの統合を容易にしたこと、さらに、トランザクションレベルでのデバッグを容易にしたこと、そしてQuestaシミュレーションとVeloceエミュレーション/アクセラレーションで共有できることなどがメリットとして挙げられます。プロジェクトのテストプランを検討したり、検証環境構築に新規着手したりするのであれば、PCI Expressの事例で示したように、メンター・グラフィックスの検証IPを用いた検証の生産性改善の可能性をぜひお試しください。

検証IPを活用する基本は、これだけで充分!

今すぐダウンロード