I/O トラフィック ジェネレーターの使用 - 2023.2 日本語

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

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

ビデオ ストリーミングやイーサネット ベースのアプリケーションなどの一部のユーザーアプリケーションでは、プラットフォーム上の I/O ポートを使用して、プラットフォームを出入りするデータをストリーミングします。これらのアプリケーションの場合、デザインのソフトウェアおよびハードウェア エミュレーションまたは AI エンジン シミュレーションを実行するには、I/O ポートのハードウェア動作を模倣して、ポートを通過するデータ トラフィックをシミュレーションするメカニズムが必要です。I/O トラフィック ジェネレーターを使用すると、AMD Vitis™ アプリケーション アクセラレーション開発フローのソフトウェアおよびハードウェア エミュレーション中、または AI エンジン シミュレーション フロー (x86sim、AI エンジンsim) 中、AMD Vivado™ Design Suite のロジック シミュレーション中に、I/O ポートを通過するトラフィックをモデル化できます。

重要: ソフトウェア エミュレーションは AXI4-Stream I/O エミュレーションのみをサポートし、AMD Zynq™ 7000 デバイスではサポートされません。ハードウェア エミュレーションは、AXI4-Stream および AXI4 メモリ マップド インターフェイス I/O エミュレーションの両方をサポートします。

ストリーミング トラフィック用の AXI4-Stream I/O モデル で説明されるように、トラフィック ジェネレーターは Python、MATLAB、C/C++、または RTL (Verilog/SV) モジュールで記述できます。これらは、プロセス間通信 (IPC) を使用して Vitis エミュレーション プロセスまたは AI エンジン シミュレーション プロセスと通信する外部プロセスで起動されます。IPC は、Python/C++/MATLAB でのトラフィック ジェネレーターの実行 で説明するように、IPC AXI4-Stream マスター/スレーブ モジュールを使用して接続されます。

トラフィック ジェネレーターは、システムにデータを渡したり、システムからデータを受信するように設計されています。API は、標準的なデータ型、またはより複雑なデータ型のデータ転送を処理するために提供されています。トラフィック ジェネレーターを作成するために使用する API は、システムが必要とするデータ型によって決まります。たとえば、標準的なデータ型は、AI エンジン グラフのための Python APIPL カーネルのための Python API で説明されるように、send_data や receive_data のような単純な API でカバーされます。より複雑なデータ型の場合は、 汎用 Python API高度な Python トラフィック トラフィック ジェネレーター API で説明されるような API が必要です。

次は、Python/C/C++/Verilog のトラフィック ジェネレーターを、用途に応じて後続の PL カーネルまたは AI エンジン カーネルと統合する方法についての補足説明です。