aiengine
Xilinx SDK Drivers API Documentation
aiengine Documentation

Math Engine (ME) Run Time Software (RTS) Driver is a congregation of software based APIs for the PS application to configure/initialize/program the AIE array and shim.The layered software stack of the AIE RTS driver is shown below :


| Application layer (Cardano interface/PS app call) |

|

|

| AIE RTS driver |

|

|

| AIE simulator / LibMetal |

The Driver APIs are typically invoked by the Cardano tool flow as part of the PS application generation. The APIs can also be directly invoked by the user application for performing any runtime configuration like partial reconfiguration etc.

AIE driver is partitioned into the following sub-components :

  • AIE Global Driver
    • APIs for device/configuration lookup, global driver instantiation and initialization and generic APIs commonly used by other components
  • AIE Tile Driver
    • APIs for configuring the Tile resources: Core, Program memory, Data memory, Locks, Stream switch, Events
    • APIs for configuring the Shim resources: NoC and PL interfaces, Stream switch, Events
  • AIE DMA Driver
    • APIs for configuring the Tile DMA S2MM and MM2S channels
    • APIs for configuring Shim DMA S2MM,MM2S channels and Locks
  • AIE low level library layer
    • APIs to interface with the underlying target platform

AIE driver will be common for all the Math Engine devices. So in the similar lines of xparameters.h for other standalone drivers, AIE driver also needs the following device related parameters :

  • AIE Array base address
  • Number of Rows
  • Number of Columns
  • Interrupt IDs

These parameters can be passed to the AIE driver in the similar lines of any other standalone driver i.e., in the form of compile time parameters from xparameters.h or in the form of a runtime configuration object etc.

AIE RTS driver provides a suite of APIs to be invoked by the application layer and also a low level interface abstraction for the driver APIs to interface with the low level target specific APIs. These low level target APIs are in turn used to talk to the underlying target platform with typical AXI read and write transactions.

Following are the features of the AIE RTS driver APIs :

  • Non re-entrant and not thread safe
  • Implemented as bare-metal
  • Implemented as blocking calls
MODIFICATION HISTORY:
Ver   Who     Date     Changes


1.0 Naresh 03/14/2018 Initial creation 1.1 Naresh 04/12/2018 Code changed to fix CR#999685 1.2 Naresh 05/23/2018 Updated code to fix CR#999693 1.3 Naresh 06/18/2018 Updated code as per standalone driver framework 1.4 Naresh 07/11/2018 Updated copyright info 1.5 Nishad 12/05/2018 Renamed ME attributes to AIE