QEMU - 2022.1 日本語

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

QEMU とはクイック エミュレーターのことで、汎用のオープンソースのマシン エミュレーターです。ザイリンクスでは、Versal ACAP、 Zynq® UltraScale+™ MPSoC および Zynq-7000 SoC デバイスに存在する Arm ベースのプロセッシング システムを模倣する、カスタマイズされた QEMU モデルを提供しています。QEMU モデルには、実際のハードウェアを必要とせずに、ほぼリアルタイムで CPU 命令を実行する機能があります。詳細は、 『ザイリンクス クイック エミュレーター ユーザー ガイド: QEMU』 を参照してください。

ハードウェア エミュレーションでは、Vitis エミュレーション ターゲットが QEMU を使用し、残りのデザインを RTL および SystemC ベースのモデルを使用して協調シミュレーションし、プラットフォーム全体の完全な実行モデルを提供します。そのモデルでエンベデッド Linux カーネルを起動し、XRT ベースのアクセラレータ アプリケーションを実行できます。QEMU は Arm 命令を実行できるので、Arm バイナリを再コンパイルすることなく、そのままエミュレーション フローで実行できます。また、ザイリンクス システム デバッガー (XSDB) から GDB および TCF ベースのターゲット接続を使用してアプリケーションをデバッグすることもできます。

Vitis エミュレーション フローでも、QEMU を使用して MicroBlaze™ プロセッサをエミュレートし、デバイスのプラットフォーム管理モジュール (PLM および PMU) をモデル化します。Versal デバイスでは、PLM ファームウェアを使用して PDI をロードし、PS および AI エンジンモデルのセクションをプログラムします。

QEMU 設定がプラットフォームと一致するようにするため、Vitis プラットフォームの sw ディレクトリに追加ファイルを含める必要があります。qemu_args.txt および pmc_args.txt の 2 つの共有ファイルには、QEMU の起動時に使用されるコマンド ライン引数が含まれます。カスタム プラットフォームを作成すると、これらの 2 つのファイルがデフォルトの内容で自動的にプラットフォームに追加されます。ファイルを確認し、必要に応じて編集してカスタムプラットフォームをモデル化できます。例については、ザイリンクス エンベデッド プラットフォームを参照してください。

QEMU は汎用モデルであるため、 Linux デバイス ツリー形式の DTB フォーマット ファイルを使用して、さまざまなハードウェア モジュールを有効にして設定します。デフォルトの QEMU ハードウェア DTB ファイルは Vitis ツールに含まれ、<vitis_installation>/data/emulation/dtbs に含まれます。ただし、プラットフォームで別の QEMU DTB が必要な場合は、プラットフォームに含めてパッケージすることもできます。

ヒント: QEMU DTB は QEMU のハードウェア コンフィギュレーションを表し、Linux カーネルで使用される DTB とは異なります。