用于串流流量的 AXI4-Stream I/O 模型 - 2022.1 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文

以下章节主要围绕 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.xosim_ipc_axis_slave_32.xo 提供了 32 位主内核和从内核,这些内核能够与目标平台以及您的设计中的其它内核相链接,以创建用于仿真构建的 .xclbin 文件。

  • 对于硬件仿真,还可以使用 Vivado IP integrator 将 IPC 模块添加到平台块设计中,以供 VersalZynq UltraScale+ MPSoC 定制平台使用。该工具提供了 sim_ipc_axis_master_v1_0sim_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]