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