AI Engine Array Reconfiguration

Versal Adaptive SoC AI Engine Architecture Manual (AM009)

Document ID
Release Date
1.3 English

The AI Engine configuration process writes a programmable device image (PDI) produced by the bootgen tool into AI Engine configuration registers. The AI Engine configuration is done over memory-mapped AXI4 via the NoC. Any master on the NoC can configure the AI Engine array. For more information on generating a PDI with the bootgen tool, refer to AI Engine Tools and Flows User Guide (UG1076).

The AI Engine array can be reconfigured at any time. The application drives the reconfiguration. Safe reconfiguration requires:

  • Ensuring that reconfiguration is not occurring during ongoing traffic.
  • Disabling the AI Engine to PL interface prior to reconfiguration.
  • Draining all data in the sub-region before it is reconfigured to prevent side-effects from remnant data from a previous configuration.
Two scenarios are described for AI Engine array reconfiguration:
Complete reconfiguration
The global reset is asserted for the AI Engine array and the entire array is reconfigured by downloading a new configuration image.
Partial reconfiguration
Some of the AI Engine tiles in the array are reconfigured while the rest of the tiles continue to run kernels. Reconfiguration occurs without affecting already running kernels in the AI Engine array.

The PMC and PS are responsible for initializing the AI Engine array. The following table summarizes the reset controls available for the global AI Engine array.

Table 1. Categories of AI Engine Resets
Type Trigger Scope
Internal power-on-reset Part of boot sequence AI Engine array
System reset NPI input AI Engine array
INITSTATE reset PCSR bit AI Engine array
Array soft reset Software register write over NPI AI Engine array
AI Engine tile column reset Memory-mapped AI Engine register bit in the array interface tile AI Engine tile column
AI Engine array interface reset From NPI register AI Engine array interface tile

The combination of column reset and array interface tile reset (refer to AI Engine Array Hierarchy) enables a partial reconfiguration use case where a sub-array that comprises AI Engine tiles and array interface tiles can be reset and reprogrammed without disturbing adjacent sub-arrays. The specifics of handling the array splitting and adding isolation depend on the type of use case (multi-user/tenancy or single-user/tenancy multiple-tasks).