バックナンバーはこちら

today&tomorrow

Technology Update

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

2017 May Spring vol.106

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

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

SystemVerilog向けUVMの概要

ここまで、シノプシスのVIPモデルとUVMの併用によって得られる主な利点についてご紹介しました。ここからはもう少し掘り下げてご説明します。まず、基本概念をご理解いただけるように、基本的なコンストラクトをいくつか見ていきます。これはより効果的なテストベンチ作成への第一歩となります。その後で、シノプシスのVIPとUVMを使用してテストベンチを構築する手順をご説明します。実際のコード例を交えて、このメソドロジとコンセプトを適用する方法をご紹介します。

まず、UVM(Universal Verification Methodology)とは何でしょうか。UVMは(1)いくつかのベース・クラス、(2)検証メソドロジ、(3)モデリング・アプローチのガイドラインで構成されます。

UVMの基本的な方針は、制約条件付きランダム検証を重視すること、再利用性を最大限に高めること、個々のテストに固有のコードを最小限に抑えること、そして少ないコードでより多くのテストをサポートすることにあります。

検証メソドロジ

UVMは高度な検証メソドロジのテンプレートを提供します。UVMは、逐次的なダイレクト・テスト・フローとは異なる制約条件付きランダム検証をサポートします。UVMは、制約条件付きランダム検証に適したテストベンチ・コードを効果的に作成できるようにすることを構想したメソドロジです。しかも、作成した構造はダイレクト・テストもサポートするため、すべての検証ニーズに対応できます。

UVMには、オブジェクト指向プログラミング手法への移行、動的な性質の制約条件付きランダム検証、コード開発の効率化といった要素が盛り込まれています。この目的を達成するため、UVMはテストベンチの全体的な構成を規定しており、テストベンチ・コードを作成する際にはその影響を受けることになります。以下、UVMの主な特長を挙げます。

  • ほとんどのコードは、事前に動的プロセスをセットアップすることを目的としています。テストを開始する時点ではプログラムがすでに完了しています。
  • テスト条件は手続き型コードではなく制約条件によって制御します。
  • テストは重要なイベントに動的に応答します。たとえばテスト・シーケンスの長さは事前に定義されていないため、テストベンチがテスト・シーケンスの終了を検出できる必要があります。チェック・メカニズムは動的です。スコアボードまたはその他の自己チェック・メカニズムが臨機応変に情報を保存し、場合によってはすべてのチェックを臨機応変に実行することもあります。
  • 再利用性を最大限に高め、インターオペラビリティを保証するために、オブジェクトは可能な限りUVMベース・クラスを使用します。
  • 標準のテストベンチ・シーケンス・テンプレートを使用します(build-configure-execute-report)。各テストベンチはテンプレートを使用し、必要に応じて詳細を埋めていきます。
  • プログラミングは手続き型からオブジェクト指向へと移行します。SystemVerilogの採用は、必然的にオブジェクト指向への移行を意味します。これについては本稿のテーマから外れるため、詳細は割愛します。

UVM検証用IP

オブジェクト指向プログラミング環境では、いくつかのベース・クラスがシステム全体の基盤となります。ベース・クラスはごく一般的な機能と構造体を提供します。ほとんどのオブジェクトはベース・クラスから派生するため、効果的なプログラミング環境の構築という最終目標を達成するには、ベース・クラス・セット設計の良し悪しが大きく物を言います。

UVMで提供されるクラスは特に検証用に設計されているため、検証エンジニアがシミュレーションで必要する基本機能(ログ作成など)が揃っており、あらゆる種類の検証タスクがサポートされます。シノプシスのVIPモデルはエンド・ユーザーに提供されているのと同じUVMクラスに基づいており、ユーザー・コードとシノプシスVIPを1つの検証環境に容易に統合できます。さらに、UVMは単にガイドラインや推奨事項をまとめたものではなく、ベース・クラスの実際のインプリメンテーションを提供しています。

UVMで記述したシミュレーションVIPにはコンフィギュレーションおよびトランザクション・レベルのインターフェイスがあり、テストベンチ環境およびテストケースはこのインターフェイスを使用して検証対象(DUT)と相互に通信またはDUTを観測します(通常は信号レベル・インターフェイスを経由)。シミュレーションVIPを使用してシミュレーション環境をインプリメントすることにより、エンジニアは非常に高い抽象度でテストケースを作成できます。

カテゴリートップ