ハードウェア エミュレーションは、プログラマブル ロジック デザインの RTL シミュレーションを実行し、PL カーネルはハードウェア プラットフォームのサイクル近似モデルと統合されます。
ハードウェア エミュレーションは、次のタスクに特に役立ちます。
- C、 C++、または OpenCL カーネルコードから合成された RTL コードが正しく機能するかどうかをチェック
- 異なるカーネル間または複数の CU 間の相互作用をテスト
- ハードウェア波形を使用して、カーネルの内部アクティビティを詳細に把握
- アプリケーションの初期パフォーマンスの見積もりを取得
各カーネルはハードウェア モデル (RTL) にコンパイルされます。ハードウェア エミュレーション中は、カーネルが Vivado ロジック シミュレータで実行され、波形ビューアーでカーネル デザインを確認できます。シミュレータのサポート で説明されるように、サポートされているサードパーティ シミュレータもあります。また、ハードウェア エミュレーションでは、ハードウェア インプリメンテーションのパフォーマンスおよびリソースの見積もりも示されます。
SystemC モデルは、Versal NoC/DDR メモリ、CIPS 、PS ブロック、AI エンジン UltraScale+ MIG DDR メモリ、AXI4 SmartConnect など、ハードウェア プラットフォームで使用される主要 IP 用に提供されています。これらの IP モデルはハードウェア エミュレーション中に使用され、シミュレーションのパフォーマンスと結果を向上させます。
ハードウェア エミュレーションでは、コンパイルおよび実行時間はソフトウェア エミュレーションよりも長くなりますが、詳細でサイクル精度のカーネル アクティビティが表示されます。ザイリンクスでは、ハードウェア エミュレーションの実行時間を妥当なものに抑えるため、小さなデータ セットを使用することをお勧めします。
Vitis コンパイラ コマンド で説明されているように、ハードウェア エミュレーション ターゲットは v++
コマンドで -t
オプションを使用して指定します。
v++ -t hw_emu ...