次のセクションは、AXI4-Stream に特有のものです。ストリーミング I/O モデルを使用すると、プラットフォーム上のストリーミング トラフィックをエミュレーションしたり、遅延モデリングをサポートしたりできます。アプリケーションにストリーミング I/O を追加することも、次で説明するようにカスタムプラットフォーム デザインに追加することもできます。
- ストリーミング I/O カーネルはほかのコンパイル済みカーネル オブジェクト (XO) ファイルと同様、
v++ --link
コマンドを使用してデバイス バイナリ (xclbin) ファイルに追加できます。Vitis インストールには、さまざまなデータ幅の AXI4-Stream インターフェイス用のカーネルが含まれます。これらは、ソフトウェアのインストール ディレクトリの $XILINX_VITIS/data/emulation/XO に含まれます。次のコマンド例を使用して、これらをデザインに追加します。
v++ -t hw_emu --link $XILINX_VITIS/data/emulation/XO/sim_ipc_axis_master_32.xo $XILINX_VITIS/data/emulation/XO/sim_ipc_axis_slave_32.xo ...
上記の例では、sim_ipc_axis_master_32.xo および sim_ipc_axis_slave_32.xo が 32 ビットのマスターおよびスレーブ カーネルを提供し、ターゲット プラットフォームおよびデザイン内のほかのカーネルとリンクしてハードウェア エミュレーション ビルド用の .xclbin ファイルを作成可能にしています。
- また、Versal および Zynq UltraScale+ MPSoC カスタム プラットフォームの Vivado IP インテグレーター機能を使用して、IPC モジュールをプラットフォーム ブロック デザインに追加することもできます。このツールには、プラットフォーム デザインに追加する
sim_ipc_axis_master_v1_0
およびsim_ipc_axis_slave_v1_0
IP が含まれます。これらは、ソフトウェアのインストール ディレクトリの $XILINX_VIVADO/data/emulation/hw_em/ip_repo に含まれます。次に、IPC IP をプラットフォーム デザインに追加する Tcl スクリプトの例を示します。このスクリプトを使用すると、Python または C++ で記述された外部プロセスからシミュレーションにデータ トラフィックを挿入できます。
#Update IP Repository path if required set_property ip_repo_paths $XILINX_VIVADO/data/emulation/hw_em/ip_repo [current_project] ## Add AXIS Master create_bd_cell -type ip -vlnv xilinx.com:ip:sim_ipc_axis_master:1.0 sim_ipc_axis_master_0 #Change Model Property if required set_property -dict [list CONFIG.C_M00_AXIS_TDATA_WIDTH {64}] [get_bd_cells sim_ipc_axis_master_0] ##Add AXIS Slave create_bd_cell -type ip -vlnv xilinx.com:ip:sim_ipc_axis_slave:1.0 sim_ipc_axis_slave_0 #Change Model Property if required set_property -dict [list CONFIG.C_S00_AXIS_TDATA_WIDTH {64}] [get_bd_cells sim_ipc_axis_slave_0]