- 每个 xtlm_ipc_verilog_stub 模块都必须包含三个文件:
- 一个 System Verilog 封装文件:此模块用于为 AXIS 总线协议提供管脚级别总线接口。您必须在“User TG”顶层模块中例化此模块,该总线接口应连接到驱动 AXI 流量的对应 SV 接口或流量生成器 RTL 模块接口。该存根 SV 模块是 SystemC 模块实现的占位符。
- systemC 头文件 (.h):此文件包含 systemc 模块的声明。
- systemC 实现文件 (.cpp):此 systemC 模块实现具有传输单元,用于将管脚级别信令转换为 axis_payload(tlm 有效载荷)。然后使用 Google protobuf 将该有效载荷串行化,并通过套接字通信将该有效载荷发送到 Vitis Emulation/AI 引擎仿真器/ x86-Simulation 进程。在 Vitis Emulation/AI 引擎仿真器/ x86-Simulation 进程中的对应 xtlm_ipc_<master/slave> 内,将对该有效载荷进行解串、将其转换为管脚级别/tlm 有效载荷(按目标)并驱动到 AI 引擎/PL 内核。
- 这些模块可作为现成的预封装源文件搭配下列不同 TDATA_WIDTH 配置一起使用:$XILINX_VIVADO/data/emulation/ip_utils/xtlm_ipc/xtlm_ipc_v1_0/sv 可用位宽配置包括 32 位、64 位和 128 位。
- xtlm_ipc_aie2pl<width>.sv
- xtlm_ipc_aie2pl<width>.cpp
- xtlm_ipc_aie2pl<width>.h
- xtlm_ipc_pl2aie<width>.sv
- xtlm_ipc_pl2aie<width>.cpp
- xtlm_ipc_pl2aie<width>.h
- 如需不同配置,您也可根据来自以上路径的文件的提示来手动创建这些配置。
- xtlm_ipc_verilog_stub 模块还需要两个文件,这两个文件作为源文件提供、包含在 Vivado 安装内并且需进行编译。
- $XILINX_VIVADO/data/emulation/hw_em/ip_repo/sim_ipc_axis_slave_v1_0/sysc/ sim_ipc_axis_slave.cpp
- $XILINX_VIVADO/data/emulation/hw_em/ip_repo/sim_ipc_axis_master_v1_0/sysc/sim_ipc_axis_master.cpp
注释: 编译期间请在路径内添加前述目录,因为其中包含其它头文件。 - systemC 模型使用底层的各种库来运作。安装 Vivado 期间,会提供所有库二进制文件和头文件。
- 此外还有其它教程和设计示例可供您用于查找有关在测试激励文件中使用和集成 xtlm_ipc_verilog_stubs 的更多详细信息。您可在其中找到编译、细化和仿真脚本示例。