Reset AI Engine in the Middle of Execution - 2023.2 English

Vitis Tutorials: AI Engine

Document ID
XD100
Release Date
2023-11-29
Version
2023.2 English

Sometimes it is necessary to stop a running execution of the system and start over. To restart the system and start again, there is a flow to follow. These steps can be performed any number of times in the host application.

1. Quiesce PL kernels (that is to say, stop PL<->AIE data paths)

As a prerequisite, the PL kernels should have the ability to be quiesced by the host application. All the examples shown in this design have this feature by way of the start register (that is, all PL kernels are AXI-MM slaves to the PS). The PS communicates with the PL kernels to hold them in an idle state before the reset/load of the AI Engine.

2. Reset AI Engine

Reset the AI Engine using the xrtResetAIEArray function. Make sure to verify the return value and proceed if it is SUCCESSFUL. Otherwise, reboot the system.

3. Load AI Engine with the XCLBIN

Reload the AI Engine with the XCLBIN using the xclloadxclbin() function. Verify the return value and proceed if it is SUCCESSFUL. Otherwise, reboot the system.

4. Re-start PL kernels

Lastly, restart the PL kernels to send/receive PL traffic to/from the AI Engine.