以下の内容はhttps://msyksphinz.hatenablog.com/entry/2025/07/24/040000より取得しました。


RISC-V RVVI (Verification Interface) についてまとめる (1. 概要)

RVVIは、RISC-Vプロセッサの設計検証に必要な複数のサブシステムを統合するためのインターフェースを定義している。

RVVIの目的と意義

RVVIの主な目的は、ハードウェア設計検証(HW DV)プロセスを効率化することである。

RVVI標準を採用することで、以下の利点が得られる:

  • 再利用性の向上: 異なる設計チーム間、企業間でコンポーネントを再利用可能
  • オープンソース化: オープンソースコンポーネントの開発と共有が容易
  • 検証効率の向上: テストベンチ、テストジェネレータ、機能カバレッジなどの検証手法の効率化

RVVIの3つの主要コンポーネント

RVVIは、以下の3つの主要な領域をカバーしている。

  • RVVI-TRACE: コアのRTL内部信号へのインターフェース
  • RVVI-API: リファレンスモデルDVサブシステムのインターフェース
  • RVVI-VVP: テストベンチで使用される仮想検証ペリフェラル
図は https://github.com/riscv-verification/RVVI より引用

1. RVVI-TRACE (Version 1.5)

RVVI-TRACEは、コアのRTL内部信号へのインターフェースを提供する。このインターフェースにより、マイクロアーキテクチャの内部状態、値、イベントをテストベンチコンポーネントに伝達できる。

主な特徴:

  • 単一HART・インオーダーコアからマルチHART・マルチイシュー・アウトオブオーダーコアまで対応
  • 非同期割り込みデバッグモードをサポート
  • ネット変更の伝播: RISC-Vコアで観測された変更をRVVI-TRACEインターフェースのコンシューマに伝達
  • SystemVerilogで定義

従来、このようなインターフェースは「トレーサ」の作成に使用されてきたが、RVVI-TRACEはより包括的な機能を提供する。

2. RVVI-API (Version 1.34)

RVVI-APIは、リファレンスモデルDVサブシステムのインターフェースである。RISC-Vコアの検証には、Device Under Test (DUT)とリファレンスモデルの比較が必要である。

主な特徴:

  • 完全な非同期動作を含む全てのISAアーキテクチャ機能とオプションを考慮
  • プロセッサリファレンスモデルの詳細を抽象化するAPI関数群
  • テストベンチとリファレンスモデルの分離: 特定のリファレンスモデルに依存しない設計
  • C/C++ API: C/C++テストベンチで使用可能
  • SystemVerilog DPIラッパー: SystemVerilogテストベンチでも使用可能

単純にPC値を比較するだけでは不十分であり、RVVI-APIはより包括的な検証を可能にする。

3. RVVI-VVP (Version 0.0)

RVVI-VVPは、テストベンチで使用される仮想検証ペリフェラルを定義する。プロセッサのテストには、プロセッサと相互作用するコンポーネントが必要である。

主な特徴:

  • 仮想UART: プログラム動作からの情報出力
  • タイマー: 非同期割り込みの生成
  • C/C++、SystemVerilog、ISSでの使用を想定
  • 開発中: タイマー、割り込み、デバッグ、ランダムイベントジェネレータ、プリンタ/ログ/UART機能をカバー予定

RVVIとRVFIの関係

RVVIは、SymbioticEDAが開発したRISC-V Formal Interface (RVFI)を拡張したものである。 RVFIは、コア上で実行されている内容をストリーミングする基本的なトレーサー機能を提供する優れたインターフェースである。

しかし、高品質なRISC-VプロセッサDVには、より多くの機能が必要である。 RVVI-TRACEインターフェースはRVFIと非常に類似した部分を持ち、RVVIはRVFIのスーパーセットと考えることができる。

実装と使用例

Imperasの実装

Imperasは、ImperasDV製品でRVVIの使用例を提供している: - C/C++: Verilator設計用 - SystemVerilog: Cadence Xcelium、Synopsys VCS、Siemens EDA Questa用

OpenHW Groupの実装

OpenHW Groupは、CV32E40XオープンソースSystemVerilogテストベンチでRVVIを使用している。

参考リンク




以上の内容はhttps://msyksphinz.hatenablog.com/entry/2025/07/24/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14