バックナンバーはこちら

today&tomorrow

Technology Update

  • T&T HOME
  • Technology Update
  • シノプシスの検証用IPとUVMを使用してテストベンチを作成する5つの手順

2017 May Spring vol.106

シノプシスの検証用IPとUVMを使用してテストベンチを作成する5つの手順

シノプシス コーポレート・アプリケーション担当ディレクター Amit Sharma

エージェント

UVMでは、VIPを「UVM検証コンポーネント(UVC)」または単に「エージェント」と呼ぶことがあります。UVMのVIPはエージェントとしてインプリメントされます。UVMエージェントはアーキテクチャが明確に定義されており、シーケンサ、ドライバ、モニタをカプセル化します。アクティブ・モードでは、エージェントによってカプセル化されるすべてのコンポーネントがインスタンシエートされて動作します。パッシブ・モードではシーケンサとドライバはインスタンシエートされず、モニタのみが動作します。エージェントを作成するには、ベース・クラスのuvm_agentを使用します。

図1:UVMエージェントのアーキテクチャ

図1:UVMエージェントのアーキテクチャ

コンフィギュレーション - 通常、エージェントはUVMコンフィギュレーション・データベースから渡されるコンフィギュレーション・オブジェクトを使用して設定します。エージェント・コンフィギュレーション・オブジェクトは通常、環境コンフィギュレーション・オブジェクトから取得します。

シーケンサ - シーケンサは、1つまたは複数のシーケンスをコンカレントに実行するコンポーネントです。シーケンスを実行するとシーケンス・アイテム(トランザクション)が生成され、これをシーケンサがドライバに送信して実行します。シーケンサは並列に実行されている複数のシーケンスを調停し、どのシーケンスが次のシーケンス・アイテム(トランザクション)を生成するかを選択します。生成されたシーケンス・アイテムは、ドライバに送信されて実行されます。シーケンサには、トランザクション応答を回収して適切なシーケンスへ転送する役割もあります。

ドライバ - ドライバは、シーケンサから送信されたトランザクション(シーケンス・アイテム)を、インプリメントするプロトコルのセマンティクスならびにシーケンサから受信したトランザクション記述に従って実行します。通常のドライバは、インターフェイスにカプセル化された信号をプロトコル仕様に従って駆動します。データ信号に駆動される実際の値、および制御信号の相対タイミングは、トランザクション記述の対応するプロパティから取得します。プロトコルによっては、ドライバが複数のトランザクションを一度に実行したり、異なる順番で実行したりできます(トランザクションの実行が完了する前にシーケンサが次のトランザクションを複数供給できる場合)。

モニタ - モニタはインターフェイスにカプセル化された信号を観測し、プロトコルのセマンティクスに従って信号のトランザクションと値を解釈します。そして観測したすべてのトランザクションに対してトランザクション・ディスクリプタを再構築し、これらを解析ポートに発行します。発行されたトランザクションは、スコアボードで使用してDUTの全体的な動作が機能的に正しいかどうかを判定したり、カバレッジ・モデルで使用してどの条件がDUTに適用されたかを記録したりできます。モニタには、プロトコル・レベルのチェックを実行して機能/タイミング違反が観測された場合にwarning、error、またはfatalメッセージで報告する機能もあります。

すべてのテストケースは、複数のフェーズで協調的または逐次的に実行されます。代表的なフェーズとしては、DUTをリセットするフェーズ、DUTを設定するフェーズ、実際のテストを実行するフェーズ、DUTを正常終了するフェーズなどがあります。UVMではフェーズ・メカニズムが明確に定義されているため、適切に使用すれば非常に複雑なテストケースの要求も満たすことができます。UVMの構造コンポーネントがたどるすべてのフェーズを図2に示します。

図2:UVMのフェーズ

図2:UVMのフェーズ

シノプシスのVIPをご利用いただく場合、UVMによって定義されたモデリング・アプローチがすでにモデルに組み込まれています。したがってこれらのモデルはUVMに準拠しており、UVM環境でシームレスに動作します。

カテゴリートップ