Open Source VHDL Verification Methodology (OSVVM) OSVVMはVHDL全体の検証プロセスを合理化し、生産性を向上させ、開発時間を短縮するためにデザインされたライブラリスイートです。各ライブラリは独立した機能を提供するため選択的な採用が可能で、使いながら学ぶことができます。ディレクテッドテストでもランダムテストでも、OSVVMはユニット/RTLテストから複雑なFPGAやASICテストまで、簡潔で読みやすいテストケースの作成を容易にします。 OSVVMはSystemVerilog + UVMに匹敵する検証機能をVHDLに提供します。これには、トランザクションレベルのモデリング、検証コンポーネント、ソフトウェアとのコ・シミュレーション、ランダムテスト生成、セルフチェックテストサポート、ベリフィケーションデータ構造、HTMLとテキストによる包括的なテストレポート、同期プリミティブなどが含まれます。 OSVVMと優れたチームリードがあれば、VHDLエンジニアは誰でも検証を行うことができます。 The latest OSVVM library is included in the installation of the latest versions of Active-HDL and Riviera-PRO. 主な使用例 OSVVMを使用すると、VHDLエンジニアは単純なユニット/RTLレベルのテストと、複雑でランダム化されたフルチップまたはシステムレベルのテストの両方のVHDLテストベンチとテストケースを作成できます。 メリット VHDL標準の開発に積極的に貢献しているVHDLのエキスパートによって開発されたOSVVMは、その専門知識を活用して以下のような先進の検証機能と利点を提供します: スケーラブルなトランザクションベースのフレームワーク:検証コンポーネントをベースとするOSVVMのトランザクションベースのフレームワークは、ユニット/RTLテストからフルチップ/システムレベルの検証まで、幅広い検証タスクに適応します。 標準化されたトランザクションAPIとインターフェース :OSVVMモデルインディペンデントトランザクション(MIT)ライブラリは、ストリーミングおよびアドレスバスタイプのインターフェイス用に、標準化されたトランザクションAPI(プロシージャの読み取り、書き込み、送信、取得など)とインターフェイス(レコード)を定義しています。 合理化されたベリフィケーションコンポーネント (VC) 開発:MITライブラリを使用することで、VHDLエンジニアはプロシージャを記述するのと同じくらい簡単に検証コンポーネントを作成できます。 読みやすくレビューしやすいテストケース:MITトランザクションAPIを使用すると、テストケースの開発が簡素化および抽象化され、VHDLエンジニアであれば誰でも、ソフトウェアエンジニアやシステムエンジニアを含むチーム全体が理解できるテストケースを作成できるようになります。 比類のないテストレポート:OSVVMはHTMLベースのテストスイートレポート、テストケースレポート、ログを自動的に生成し、デバッグや詳細なテスト成果物の収集を容易にします。OSVVMのファンクショナルカバレッジレポートは、SystemVerilogベンダツールが作成するレポートに匹敵します。 包括的な検証のための高度な機能:OSVVMの検証機能には、コンストレントランダム、ファンクショナルカバレッジ、インテリジェントカバレッジランダム、スコアボード、FIFO、メモリモデル、要件追跡、エラーログとレポート、メッセージフィルタリング、同期プリミティブなどがあり、これらはすべて使いやすく、組み込みの言語機能のように動作します。 ダイレクトテストケースとランダムテストケース:MITトランザクションAPIを使用すると、ダイレクト、コンストレントランダム、およびインテリジェントカバレッジランダムテスト手法を自由に組み合わせることができます。ダイレクトテストではテストシナリオを正確に制御でき、ランダムテストでは変動性が導入され到達が困難なケースや予期しないエッジケースのカバーが容易になります。 簡素化されたセルフチェック:OSVVMの広範なエラーチェッカとスコアボードは、詳細なテストの合否メッセージを生成し、自己チェックテストの作成を簡素化します。 デバッグの高速化:OSVVMの広範なレポート、エラーメッセージ、ログメッセージにより、デバッグとテスト成果物 (良いことが起こった証拠) の記録の両方が簡素化されます。 要件の追跡:要件がある各テストケースに対して、HTML 要件サマリを生成します。さらにOSVVMは、ビルド内のテスト(テストのセット)に要件がある場合、マージされたHTML要件サマリを生成します。 ハードウェアとソフトウェアの統合のためのコ・シミュレーション機能:OSVVMのコ・シミュレーション機能により、ハードウェアシミュレーション環境内でのソフトウェア (C++) の実行が容易になります。 このコ・シミュレーションインタフェースは、ユーザーが作成したものを含むすべての MITベースの検証コンポーネントをサポートします。 テストベンチの自動化 / 継続的インテグレーション (CI/CD):OSVVMは継続的インテグレーションツールとシームレスに統合し、JUnit XMLテストスイートレポートを生成します。 シミュレータ間の互換性を実現するユニバーサルスクリプトAPI:OSVVMのスクリプトAPI (TCLより上のレイヤ) は、アルデックのRiviera-PROとActive-HDL、そして幅広いVHDLシミュレータをサポートしています。これにより、「1つのスクリプトですべてを実行」することが出来ます。 コードカバレッジ統合の簡素化:OSVVMスクリプトは、シミュレータベースのコードカバレッジを可能にし、一連のテストケースのマージされたコードカバレッジレポートを生成する簡素化されたメカニズムを提供します。 広範な検証コンポーネントライブラリ:OSVVMは、AXI (FullおよびLite)、AXI Stream、xMII (Ethernet)、UART、DPRamコンポーネントを含む包括的な検証コンポーネントライブラリを提供します。 再利用と生産性の向上:OSVVMのモジュラアプローチは、OSVVMの機能満載のライブラリの使用から、同様のインタフェースをテストするためのトランザクションシーケンスの再利用、異なるテストレベルでのVCとテストケースの再利用、異なるプロジェクトでのVCの再利用まで、生産性と再利用を向上させる多くの機会を提供します。 VHDLエンジニアなら誰でもOSVVMの実行ができます:OSVVMの検証コンポーネントとテストケースは、VHDLエンジニアであれば誰でも書くことができます。必要であれば、機密性の高い設計情報を共有することなく、外部のリソースで検証コンポーネントを開発できます。 SystemVerilog + UVMに代わる有力な選択肢:OSVVMはSystemVerilog + UVMの検証機能に対する強力なライバルであると同時に、よりシンプルな学習曲線と使いやすさを提供します。 OSVVMはAPACHE 2.0ライセンスでリリースされた無料のオープンソースです:OSVVMはGitHubとIEEE Open Sourceで見つけることができ、GitHubで問題やプルリクエストを受け付けています。ぜひ、ご参加ください。 ウェビナービデオ:VHDLによる優れたFPGA検証 パート1 - OSVVM: VHDLコミュニティのための最先端検証 VHDL FPGA検証手法の改善をお考えですか?OSVVMは理想的なソリューションです。検証に必要なすべての要素を備えています。学ぶべき新しい言語はありません。シンプルでパワフル、そして簡潔です。また、各パーツは個別に使用できるため、必要なときに必要なパーツを学び、採用することができます。 このウェビナーシリーズのパート1では、OSVVMの機能の概要を説明し、OSVVM検証フレームワーク、検証コンポーネント、簡単になったセルフチェックテスト、OSVVMログによるテスト印刷の簡素化、コンストレントランダムテスト、スコアボード、ファンクショナルカバレッジ、インテリジェントカバレッジランダム、プロトコルとパラメータチェック、テストウォッチドッグタイマー、テストレポートについて説明します。 OSVVMのその他のウェビナー録画 VHDLによる優れたFPGA検証 パート2:OSVVMを使用したLite検証コンポーネント開発よりも高速な開発 VHDLによる優れたFPGA検証 パート 3: OSVVMのテストレポートとシミュレータに依存しないスクリプト VHDLによる優れたFPGA検証 パート4: OSVVMの検証データ構造の進歩 追加のリンク OSVVM Forum: https://osvvm.org/ OsvvmLibraries using Git: https://github.com/OSVVM/OsvvmLibraries OsvvmLibraries as a Zip: https://osvvm.org/downloads OSVVM Documentation: https://osvvm.github.io/ OSVVM Reports: https://osvvm.github.io/Overview/Osvvm3Reports.html OSVVM Classes: https://synthworks.com/vhdl_testbench_verification.htm