手动为镜像模块创建源 - 2022.1 简体中文

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文
  1. 对于在 Vitis 平台工程中例化的所有 ipc_axis_<master/slave> IP 模块,创建类似的镜像 IP 模块。
  2. 可在以下位置找到这些镜像模块的示例源代码:https://github.com/Xilinx/Vitis_Accel_Examples/tree/master/emulation
    1. ipc_axis_master_mirror:在 Vitis 平台中发起的 ipc_axis_master IP 的镜像模块的示例源代码:
      • sim_ipc_axis_master_mirror.h
      • sim_ipc_axis_master_mirror.cpp
      • sim_ipc_axis_master_mirror.sv
    2. ipc_axis_slave_mirror:在 Vitis 平台中发起的 ipc_axis_slave IP 的镜像模块的示例源代码:
      • sim_ipc_axis_slave_mirror.h
      • sim_ipc_axis_slave_mirror.cpp
      • sim_ipc_axis_slave_mirror.sv
    3. utils:此目录包含镜像模块所需的实用工具文件:
      • sim_ipc_axis_master.h
      • sim_ipc_axis_master.cpp
      • sim_ipc_axis_slave.h
      • sim_ipc_axis_slave.cpp
    4. run.sh:此文件是镜像模块的示例编译、细化和脚本。
  3. 每个镜像模块都具有一个存根 System Verilog 模块,您需要在正在建立信号连接的流量生成器顶部例化此模块。此模块针对 AXI4-Stream 总线协议提供管脚级别的总线接口。该总线接口连接到对应的 SV 接口或用于驱动 AXI4-Stream 流量的流量生成器 RTL 模块接口。该存根 SV 模块是 SystemC 模块实现的占位符。SystemC 模块具有一个传输单元,此传输单元将管脚级别信号转换为 axis_payload(TLM 有效载荷)。然后使用 google protobuf 将该有效载荷串行化,并通过套接字通信将该有效载荷发送到 Vitis 仿真进程。在 Vitis 仿真进程中,对于 ipc_axis_<master/slave> IP,对该有效载荷进行解串、将解串后的数据转换为管脚级别并驱动到用户内核的总线接口。
  4. SystemC 模型使用以下各种库运行。作为安装的一部分,在 Vivado 中提供所有库二进制文件和头文件。示例 run.sh 脚本包含指向所有这些库和头文件的路径。
  5. 使用以上有关镜像模块源的信息作为示例来开发您自己的镜像模块。
  6. 您可以根据所提供脚本 (run.sh) 中的提示来编写一个“编译、细化和仿真”脚本。