Universal Verification Methodology (UVM)

UVMは少なくとも10年以上にわたってASICデザインのデファクト検証手法として使用されてきたが、現在では高密度・高信頼性のFPGAやSoC FPGAデザインにも普及しつつあります。UVMはもともと2011年にAccelleraによって作成され、2020年にはIEEE 1800.2-2020としてIEEE標準となりました。UVMはSystemVerilogで書かれたオープンソースのライブラリで、ハードウェアデザインにオブジェクト指向プログラミングの力を活用しています。

 

スケーラブルでモジュール化された再利用可能な検証コンポーネントを開発するための基本クラスライブラリを定義するAPIセットにより、UVMは、コンストレントランダムスティミュラス生成とファンクショナルカバレッジ手法を使用して強力なテスト環境を構築できるようにすることで、検証プロセスをより柔軟にすることを目指しています。

 

アルデックツールは、UVMのコンパイルとシミュレーションをサポートしており、最新版のActive-HDLとRiviera-PROのインストーラには最新のUVMライブラリが含まれています。Riviera-PROは自動UVMテストベンチジェネレータ、UVM RALジェネレータ、UVMビューワ(グラフ、階層、コンフィギュレーションウィンドウ)など、UVMに特化した機能を提供しています。

 

主な使用例

UVMはVHDL、Verilog、SystemVerilogによるデザインをサポートし、ASIC、大規模FPGA、SoC FPGAプロジェクトに取り組む大規模チームに最適です。UVMは相互運用性を向上させ、新規プロジェクトでIPを再利用する際のコストを削減し、ブロックレベルからシステムレベルまでの検証コンポーネントの再利用を容易にします。全体として、この規格の採用は検証コストの削減と設計品質の向上につながります。

 

メリット

UVMは、再利用性を最大化するために、検証におけるいくつかのベストプラクティスを定義する標準化されたメソドロジになります。

 

  • オブジェクト指向プログラミングとクラスリファレンス。このライブラリは、次のカテゴリに分類されたクラス、ユーティリティ、マクロで構成されています: ベース、レポーティング、レコーディング、ファクトリ、フェージング、シンクロナイゼーション、コンテナ、TLM、コンポーネント、シーケンス、シーケンサ、ポリシ、レジスタレイヤ、マクロ、コンフィギュレーションとリソース、パッケージスコープ、コマンドラインプロセッサ。
  • 基本クラスライブラリ。uvm_object(クラスベースのコア操作のインターフェイスを定義)、uvm_component(シミュレーション中に存在する階層モジュールやプログラムブロックなどの準静的オブジェクト)、uvm_transaction(uvm_objectのすべてのメソッドを継承し、タイミングとレコーディングインターフェイスを含む)を使用することで、モジュール化、拡張、再利用可能な検証コンポーネントとテスト環境の設計を容易にする基本的なビルディングブロックを提供する。
  • 定義済みコンポーネントクラス。これらのコンポーネントは、テストベンチ内のドライバ、スコアボード、その他のオブジェクトの動作をカプセル化することによりUVMの要となります。基本クラスライブラリは、定義済みのコンポーネントタイプのセットを提供します。
  • トランザクションレベルモデリング(TLM)。これは、トランザクションに基づいてコンポーネントとシステムの高度に抽象化されたモデルを構築するためのモデリングスタイルになります。UVMは、トランザクションレベルで様々なコンポーネントを接続するために使用できるトランザクションレベルの通信インタフェースとチャネルのセットを提供します。TLMインタフェースを使用することで、各コンポーネントが環境全体の他コンポーネントの変更から確実に隔離されます。UVMの適切に構造化されたフレームワークと段階的で柔軟なビルドインフラストラクチャを統合すると、TLMは再利用性をサポートおよび促進し、同じインタフェースを共有している場合に限り、任意のコンポーネントを別のコンポーネントに置き換えることができます。
  • テストとテストベンチの分離。スティミュラス/シーケンサの観点からのテストは、実際のテストベンチ階層から分離されているため、異なるユニット間やプロジェクト間でスティミュラスを再利用することができます。
  • モジュール性と再利用性このメソドロジは、ドライバ、シーケンサ、エージェントなどのモジュラコンポーネントとして設計されており、ユニットレベルからマルチユニットレベルまたはチップレベルの検証、およびプロジェクト全体にわたってコンポーネントを再利用できます
  • シミュレーションに依存しない。ベースクラスライブラリとメソドロジはすべてのシミュレータでサポートされているため、特定のシミュレータに依存することはありません。
  • シーケンスメソドロジ。スティミュラス生成をロバストに制御します。ランダマイズ、レイヤシーケンス、バーチャルシーケンスなど、シーケンスを開発する方法がいくつかあります。これは優れた制御と豊富なスティミュラス激生成能力を提供します。
  • レポートメカニズム。これは多くのエージェントが存在する環境のデバッグに役立ちます。詳細機能を利用して、メッセージをフィルタリングしてログに記録できます。詳細度を変更することで、メッセージの出力を制御できます。メッセージの重大度は、致命的、エラー、警告、情報、ファイル名および行番号(ファイルと行はデフォルト)に分類されます。

 

ウェビナービデオ:UVMを恐れないで(ハードウェア設計者のためのUVM)

ハードウェア設計者は通常、業務に非常に忙しく、新しいメソドロジをテストする時間はほとんどありません。残念なことに、UVM(Universal Verification Methodology)の公式ドキュメントは、検証エンジニアが検証エンジニアのために記載したもので高レベルの機能に集中しており、UVMテストベンチをデザインに接続するような低レベルの詳細は完全に無視されています。このウェビナでは、まずSystemVerilogのインタフェースについて、特にバーチャルインタフェースに注目しながら、しっかりとレビューします。そして、シーケンサで処理され、ドライバを経由してテスト対象のデザインに供給されるシーケンスとその他のデータアイテムに進みます。結果の解析におけるモニタとスコアボードの役割について説明します。最後に、環境設定とトップレベルモジュールからのテスト実行について説明します。

 

 

UVMのその他のウェビナー録画

 

追加のリンク

Ask Us a Question
x
Ask Us a Question
x
Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.
We use cookies to ensure we give you the best user experience and to provide you with content we believe will be of relevance to you. If you continue to use our site, you consent to our use of cookies. A detailed overview on the use of cookies and other website information is located in our Privacy Policy.