QEMU 協調シミュレーション

今日のSoC型FPGAは、システム、ソフトウェア、ハードウェアそれぞれを担当するエンジニアにとって、新しい検証の課題を突き付ける存在です。HW/SWの統合に関係して発生する問題は増え続けていて、しかもそういった問題は、SoC FPGAを実行しながらのテストベッドでしか発見できないものが多く、テストベッドで問題を発見しても遅すぎて、プロジェクトの遅延につながることが多くなります。

アルデックは Riviera-PRO™ と QEMU (オープンソースのプロセッサ・エミュレータ)をつなぐHW/SW協調検証インタフェースを提供します。システムインテグレーションと、HDLコードとQEMU上で動作するソフトウェアアプリケーションやドライバとの協調シミュレーションは、アルデックのQEMU Bridgeを加えることでシンプルになります。QEMU Bridge は Riviera-PRO と QEMU をつなぎ、さらにSystemC TLMトランザクションをAXIに変換したり、その逆を行うことで、高速協調シミュレーション用インタフェースとなります。

 

図1: Riviera-PROとQEMUで構築するHW/SW協調シミュレーション環境

 

Transaction Recorderを持つAXI BFM

アルデックがAXIベースデザインのRTLシミュレーション用に開発したAXIのバスファンクショナルモデル(BFM)がRiviera-PROで利用できます。このBFMは暗号化されたVerilogおよびSystemVerilogのモジュールとして提供します。ユーザーのテストベンチでこのBFMを使用するには、アルデックの提供するVerilogまたはSystemVerilogタスクAPIを利用します。アルデックのAXI BFMは次のBFMをサポートしています。

  • AXI 3 Master
  • AXI 3 Slave
  • AXI 4 Master
  • AXI 4 Slave
  • AXI 4 Lite Master
  • AXI 4 Lite Slave
  • AXI 4 Stream Master
  • AXI 4 Stream Slave

 

それぞれのBFMでは、組込みのAXIトランザクションレコーダでAXIトランザクションをASDB(アルデックのシミュレーション・データベース)フォーマットのログに記録できます。Riviera-PROでのトランザクション利用法についてさらに詳しくは、Riviera-PRO Transactions のドキュメントをご覧ください。デザインにAXIを取り組むプロセスは次の通りです。

  • デザインの段階
    • コンパイル済みライブラリにて配布
    • プロジェクトのHDL部分にインスタン化
  • コンパイルと設定の段階
    • パラメータによる設定
    • 組込みのAXIトランザクションレコーダをオン
  • シミュレーションの段階
    • QEMU Bridge プロセスに自動接続

 

AXI_Transaction_Riviera-PRO

図2: Riviera-PROでのAXIトランザクション

QEMU Bridge

QEMU Bridge は SystemC トランザクションレベル・モデリング(TLM)をベースにアルデックが開発したソリューションで、プログラマブル・ロジック(PL)とプロセッシング・システム(PS)からなるSoCを、トランザクション精度のブリッジでまるごと協調シミュレーションできます。通信はこのブリッジが自動で処理し、検証エンジニア側で何らかの余分な作業は必要ありません。

Riviera-PRO を使うハードウェアエンジニアはHDLにブレークポイントを設定したり、データフローを検証したり、さらにはコードカバレッジやQEMU上で実行中のソフトウェアアプリケーションから実行されるパスなどを解析したりすることができます。QEMU を使うソフトウェアエンジニアはGNU Debugger(GDB)でブレークポイントを使ってコードを行ったり来たりしながら、カーネルとドライバを両方とも検証できるようになります。

 

Xilinx SoC FPGA用のQEMU

Xilinx® は Microblaze™, Zynq™ および Zynq UltraScale+ で利用できるQEMUツリーを提供しています。QEMUツリーはユーザーがダウンロードしてインストールする必要があります。Xilinxは下記サイトからのQEMUツリーのダウンロードを推奨しています。https://github.com/Xilinx/qemu

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.