以下章节主要围绕 AXI4‑Stream 展开。串流 I/O 模型可用于对平台上的串流流量进行仿真,并且支持延迟建模。当目标为软件仿真或硬件仿真时,您可以将串流 I/O 添加到自己的应用中,或者在硬件仿真关联环境中将其添加到您的定制平台设计中,如下所述:
- 串流 I/O 内核可像任何其他已编译的内核对象 (XO) 文件一样,使用
v++ --link
命令添加到器件二进制 (xclbin) 文件中。使用这些预编译的 XO 文件可以缩短v++
编译时间。Vitis 安装为各种不同数据宽度的 AXI4‑Stream 接口提供了内核。受支持的标准位宽为 8、16、32、64、128、256 和 512。这些位宽可在如下软件安装位置中找到:$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 文件。
- 对于硬件仿真,还可以使用 Vivado IP integrator 将 IPC 模块添加到平台块设计中,以供 AMD Versal™
和 AMD Zynq™
UltraScale+™ MPSoC 定制平台使用。该工具提供了
sim_ipc_axis_master_v1_0
和sim_ipc_axis_slave_v1_0
IP 用于添加到您的平台设计中。这些内核可在如下软件安装位置中找到:$XILINX_VIVADO/data/emulation/hw_em/ip_repo。以下提供的 Tcl 脚本示例可用于将 IPC IP 添加到您的平台设计中,这样您即可将来自以 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]