VUnit

VUnitは、VHDL/SystemVerilog用のオープンソースのユニットテストフレームワークで、HDL(ハードウェア記述言語)コードの継続的かつ自動化されたユニットテストに必要な機能を提供します。VUnitは従来のテスト手法に代わるものでなく、自動化によって「早期かつ頻繁なテスト」アプローチを促進することで従来の手法を補完します。VUnitは、Riviera-PROとActive-HDLをサポートしています。

 

VUnitは、テストベンチとコンパイル順序の自動検出をサポートし、一般的な検証タスク用のライブラリを含むことで、テストのオーバーヘッドを削減します。インクリメンタルコンパイルをサポートし、大規模なテストベンチを小さな独立したテストに分割できるため、開発速度を向上させます。大規模なリグレッションスイートを継続的インテグレーションサーバー上で実行できるようにすることで、プロジェクトの品質を向上させます。

 

VUnitは、ユーザーが特定の検証手法に従う必要はありません。テストが開発プロセスの最初または最後に記述されているか、テストが大規模なトップレベルテストか簡単なユニットテストか、またはダイレクトテストかコンストレントランダムテストかに関係なく、VUnit の利点を実感できます。多くのプロジェクトでは、さまざまなテスト要件を満たすために、これら2つのアプローチを組み合わせています。VUnit は、高性能なマルチコアマシンで数時間にわたって多数のテストを実行するような実稼働環境や、小さなパッケージだけを数秒でテストするような小規模なオープンソースプロジェクトでも、効果的に活用されています。

 

主な使用例

VUnitは、VHDLおよびSystemVerilogのHDLテストを自動化および効率化するために設計されており、ユニットテストの実行とデザインの検証を容易にします。このツールは、開発者が早期かつ自動化されたテスト手法によって高品質のHDLコードを確保することに役立ちます。

 

メリット

  • スクリプト可能なAPIとコマンドラインのサポート、デバッグ用のGUIモード
  • テストとファイルの依存関係の自動スキャンにより、テストスイートのインクリメンタルコンパイルと実行が可能
  • Pythonテストランナーは、並列テスト、テストの独立性、および致命的なエラーからの回復をサポート
  • CI統合のためのJSONエクスポート、テストアトリビュート、およびJUnitレポート出力によるトレーサビリティ
  • 組み込みHDLユーティリティライブラリ:
    • HDLテストベンチ内で複数のテストケースを宣言するための機能を提供する実行ライブラリ
    • VHDL組み込みサポート(assert)を拡張するアサーションチェッカー
    • 表示とファイル出力、異なるログレベル、レベルとデザイン階層の可視性設定、出力フォーマット、および複数のロガーをサポートするロギングフレームワーク
    • 高レベルの通信メカニズムを提供する通信ライブラリ
    • AXI、Avalon、Wishboneなどのインタフェース用の検証コンポーネント(VC)を提供する検証コンポーネントライブラリ
    • サードパーティのサポート:
      • OSVVM
      • JSON-for-VHDL

 

デモビデオ

VUnitをRiviera-PROと統合することで、シミュレーションと検証のための堅牢で強力なツールが完成します。このビデオでは、VUnitのインストール方法を説明し、Riviera-PROでVUnitがどのように機能するかを説明します。

 

 

VUnitブログ

Introduction to VUnit blog
Speeding up Simulation with VUnit for Parallel Testing blog
Navigating VUnit: A Practical Guide to Modyfing Testing Approaches blog

 

関連リンク

https://vunit.github.io/
https://github.com/VUnit/vunit

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.