以 Python 编写流量生成器 - 2023.2 简体中文

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

以下代码片段显示了 Python 关联环境中的 API 使用方式。

您需要按如下方式设置 PYTHONPATH

  • 例如,在 C Shell 上:
    setenv PYTHONPATH $XILINX_VIVADO/data/emulation/hw_em/lib/python: $XILINX_VIVADO/data/emulation/ip_utils/xtlm_ipc/xtlm_ipc_v1_0/python
  • Python 主机的代码片段:
    aximm_payload = xtlm_ipc.aximm_packet()
    random_packet(aximm_payload) # Custom function to set AXI Properties randomly
    #Or user can set AXI properties as required
    #aximm_payload.addr = int(random.randint(0, 1000000)*4)
    #aximm_payload.len = random.randint(1, 64)
    #aximm_payload.size = 4
     
    master_util.b_transport(aximm_payload)
    #After this call aximm_payload will have updated response as set by the AXI Slave.
  • Python 从机的代码片段:
    aximm_payload = slave_util.sample_transaction()
    aximm_payload.resp = random.randint(0,3)
    if not aximm_payload.cmd: #if it is a read transction set Random data
        tot_bytes = aximm_payload.len * aximm_payload.size
        for i in range(0, int(tot_bytes/SIZE_OF_EACH_DATA_IN_BYTES)):
            aximm_payload.data += bytes(bytearray(struct.pack(">I", random.randint(0,60000)))) # Binary data should be aligned with C struct
             
    slave_util.send_resp(aximm_payload)