After generating an external process binary as shown above using the headers and sources available at $XILINX_VIVADO/data/emulation/ip_utils/xtlm_ipc/xtlm_ipc_v1_0/<supported_language>, you can run the emulation using the following steps:
- Launch the Vitis emulation or Vivado simulation using the standard process and wait for the simulation to start.
- From another terminal(s), launch the external process such as Python/C++/C.
Note: If you are running multiple I/O or traffic generator-based solutions, then set XTLM_IPC_SOCK_DIR unique to each test case on both emulation terminal as well as external process terminal. For example,
setenv XTLM_IPC_SOCK_DIR <test_case_dir>(same environment on both emulation process and external process).
Warning: Xilinx provides an
end_of_simulation()API to terminate emulation from master utilities of memory mapped AXI4 and AXI4-Stream interfaces. However, you are warned not to use this method unless there is no way to terminate emulation from host. In a normal course of emulation, external process is not expected to terminate emulation. Use this in exceptional scenarios.