ソフトウェア エミュレーションの主な目的は、ホスト プログラムとカーネルが正しく動作することを確認することです。ソフトウェア エミュレーションでは、ホスト コードとカーネル コードの両方が x86 プロセッサで実行できるようにコンパイルされます。ホスト プログラムとカーネル コードを一緒に実行するため、v++
コンパイラでは、カーネル コードに最小限の変更を加えて FPGA バイナリを作成します。ソフトウェア エミュレーション フローはアルゴリズムの調整および機能的な問題のデバッグに使用し、コードを向上するために反復作業をすばやく実行できます。高速コンパイルおよび実行ループを使用した開発のプログラミング モデルが保持されます。
Vitis 統合ソフトウェア プラットフォームでは、CPU でのソフトウェア エミュレーションは、CPU/GPU プログラミングに典型的な反復開発プロセスと同じです。この開発スタイルでは、プログラマはアプリケーションを繰り返しコンパイルおよび実行しながら開発していきます。
ヒント: RTL カーネルでは、C モデルが関連付けられている場合にソフトウェア エミュレーションがサポートされます。ソフトウェア エミュレーション フローをサポートするため、RTL カーネル ウィザードのパッケージ段階に、RTL カーネルに C モデル ファイルを関連付けるオプションがあります。