QEMU - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

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

ハードウェア エミュレーションでは、AMD 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 つのファイルがデフォルトの内容で自動的にプラットフォームに追加されます。ファイルを確認し、必要に応じて編集してカスタムプラットフォームをモデル化できます。例については、AMD エンベデッド プラットフォームを参照してください。

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

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