MLIR-AIE 1.4.5.dev
TargetModel.cpp File Reference
#include "aie-c/TargetModel.h"
#include "aie/Dialect/AIE/IR/AIEDialect.h"
#include "aie/Dialect/AIE/IR/AIETargetModel.h"
#include "aie/Dialect/AIEX/IR/AIEXDialect.h"
#include "aie/Dialect/AIEX/Utils/DmaDecomposition.h"
#include "mlir/CAPI/IR.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/Interfaces/DataLayoutInterfaces.h"
#include "llvm/Support/MathExtras.h"
Include dependency graph for TargetModel.cpp:

Go to the source code of this file.

Functions

AieTargetModel aieGetTargetModel (uint32_t device)
uint32_t aieGetTargetModelAddressGenGranularity (AieTargetModel targetModel)
 Returns the data bus width for the target model.
int aieTargetModelColumns (AieTargetModel targetModel)
 Returns the number of columns in the target model.
int aieTargetModelRows (AieTargetModel targetModel)
 Returns the number of rows in the target model.
uint32_t aieTargetModelGetTileType (AieTargetModel targetModel, int col, int row)
 Returns the tile type for the given coordinates.
bool aieTargetModelIsCoreTile (AieTargetModel targetModel, int col, int row)
bool aieTargetModelIsMemTile (AieTargetModel targetModel, int col, int row)
bool aieTargetModelIsShimNOCTile (AieTargetModel targetModel, int col, int row)
bool aieTargetModelIsShimPLTile (AieTargetModel targetModel, int col, int row)
bool aieTargetModelIsShimNOCorPLTile (AieTargetModel targetModel, int col, int row)
bool aieTargetModelIsInternal (AieTargetModel targetModel, int src_col, int src_row, int dst_col, int dst_row)
bool aieTargetModelIsWest (AieTargetModel targetModel, int src_col, int src_row, int dst_col, int dst_row)
bool aieTargetModelIsEast (AieTargetModel targetModel, int src_col, int src_row, int dst_col, int dst_row)
bool aieTargetModelIsNorth (AieTargetModel targetModel, int src_col, int src_row, int dst_col, int dst_row)
bool aieTargetModelIsSouth (AieTargetModel targetModel, int src_col, int src_row, int dst_col, int dst_row)
bool aieTargetModelIsMemWest (AieTargetModel targetModel, int src_col, int src_row, int dst_col, int dst_row)
bool aieTargetModelIsMemEast (AieTargetModel targetModel, int src_col, int src_row, int dst_col, int dst_row)
bool aieTargetModelIsMemNorth (AieTargetModel targetModel, int src_col, int src_row, int dst_col, int dst_row)
bool aieTargetModelIsMemSouth (AieTargetModel targetModel, int src_col, int src_row, int dst_col, int dst_row)
bool aieTargetModelIsLegalMemAffinity (AieTargetModel targetModel, int src_col, int src_row, int dst_col, int dst_row)
uint32_t aieTargetModelGetMemSouthBaseAddress (AieTargetModel targetModel)
uint32_t aieTargetModelGetMemNorthBaseAddress (AieTargetModel targetModel)
uint32_t aieTargetModelGetMemEastBaseAddress (AieTargetModel targetModel)
uint32_t aieTargetModelGetMemWestBaseAddress (AieTargetModel targetModel)
uint32_t aieTargetModelGetLocalMemorySize (AieTargetModel targetModel)
uint32_t aieTargetModelGetDefaultCoreStackSize (AieTargetModel targetModel)
uint32_t aieTargetModelGetNumLocks (AieTargetModel targetModel, int col, int row)
uint32_t aieTargetModelGetNumBDs (AieTargetModel targetModel, int col, int row)
uint32_t aieTargetModelGetMaxLockValue (AieTargetModel targetModel)
 Largest value a lock register holds.
uint32_t aieTargetModelGetMaxRepeatCount (AieTargetModel targetModel)
 Largest repeat count one DMA task queue push can carry (unsupported = 0).
uint32_t aieTargetModelGetDmaTaskQueueDepth (AieTargetModel targetModel)
 How many tasks one DMA channel's task queue holds (unsupported = 0).
uint32_t aieTargetModelGetDmaBdWrapBits (AieTargetModel targetModel, int col, int row)
 Field widths of a DMA buffer descriptor, which differ by tile type.
uint32_t aieTargetModelGetDmaBdStepBits (AieTargetModel targetModel, int col, int row)
uint32_t aieTargetModelGetDmaBdIterBits (AieTargetModel targetModel, int col, int row)
uint32_t aieTargetModelGetNumMemTileRows (AieTargetModel targetModel)
uint32_t aieTargetModelGetMemTileSize (AieTargetModel targetModel)
uint32_t aieTargetModelGetNumBanks (AieTargetModel targetModel, int col, int row)
bool aieDmaBdFits (uint32_t device, int col, int row, MlirType elementType, int64_t offset, const int64_t *sizes, const int64_t *strides, int64_t len)
 Whether one DMA buffer descriptor of tile (col, row) on device holds the pattern, as aie-normalize-dma-bd-dims and the DMA lowerings take it.
uint32_t aieTargetModelGetNumDestSwitchboxConnections (AieTargetModel targetModel, int col, int row, uint32_t bundle)
uint32_t aieTargetModelGetNumSourceSwitchboxConnections (AieTargetModel targetModel, int col, int row, uint32_t bundle)
uint32_t aieTargetModelGetNumDestShimMuxConnections (AieTargetModel targetModel, int col, int row, uint32_t bundle)
uint32_t aieTargetModelGetNumSourceShimMuxConnections (AieTargetModel targetModel, int col, int row, uint32_t bundle)
bool aieTargetModelIsNPU (AieTargetModel targetModel)
 Returns true if this is an NPU target model.
uint32_t aieTargetModelGetTargetArch (AieTargetModel targetModel)
 Returns the AIE architecture (as the underlying value of xilinx::AIE::AIEArch: AIE1=1, AIE2=2, AIE2p=3).
uint32_t aieTargetModelGetColumnShift (AieTargetModel targetModel)
uint32_t aieTargetModelGetRowShift (AieTargetModel targetModel)

Function Documentation

◆ aieDmaBdFits()

bool aieDmaBdFits ( uint32_t device,
int col,
int row,
MlirType elementType,
int64_t offset,
const int64_t * sizes,
const int64_t * strides,
int64_t len )

Whether one DMA buffer descriptor of tile (col, row) on device holds the pattern, as aie-normalize-dma-bd-dims and the DMA lowerings take it.

sizes and strides are four dimensions, outermost first, and len the descriptor's length, all in elements of elementType.

Definition at line 199 of file TargetModel.cpp.

References xilinx::AIE::AIETargetModel::getAddressGenGranularity(), xilinx::AIE::AIETargetModel::getDmaBdMaxLen(), xilinx::AIEX::isLinearModeTransfer(), xilinx::AIE::normalizedBDDims(), xilinx::AIEX::NdDmaPattern::offsets, xilinx::AIEX::patternPassesVerification(), xilinx::AIEX::NdDmaPattern::sizes, and xilinx::AIEX::NdDmaPattern::strides.

◆ aieGetTargetModel()

AieTargetModel aieGetTargetModel ( uint32_t device)

Definition at line 32 of file TargetModel.cpp.

References xilinx::AIE::getTargetModel().

◆ aieGetTargetModelAddressGenGranularity()

uint32_t aieGetTargetModelAddressGenGranularity ( AieTargetModel targetModel)

Returns the data bus width for the target model.

Definition at line 37 of file TargetModel.cpp.

◆ aieTargetModelColumns()

int aieTargetModelColumns ( AieTargetModel targetModel)

Returns the number of columns in the target model.

Definition at line 41 of file TargetModel.cpp.

◆ aieTargetModelGetColumnShift()

uint32_t aieTargetModelGetColumnShift ( AieTargetModel targetModel)

Definition at line 303 of file TargetModel.cpp.

◆ aieTargetModelGetDefaultCoreStackSize()

uint32_t aieTargetModelGetDefaultCoreStackSize ( AieTargetModel targetModel)

Definition at line 146 of file TargetModel.cpp.

◆ aieTargetModelGetDmaBdIterBits()

uint32_t aieTargetModelGetDmaBdIterBits ( AieTargetModel targetModel,
int col,
int row )

Definition at line 181 of file TargetModel.cpp.

◆ aieTargetModelGetDmaBdStepBits()

uint32_t aieTargetModelGetDmaBdStepBits ( AieTargetModel targetModel,
int col,
int row )

Definition at line 176 of file TargetModel.cpp.

◆ aieTargetModelGetDmaBdWrapBits()

uint32_t aieTargetModelGetDmaBdWrapBits ( AieTargetModel targetModel,
int col,
int row )

Field widths of a DMA buffer descriptor, which differ by tile type.

The step field counts address granules, not elements – see aieGetTargetModelAddressGenGranularity.

Definition at line 171 of file TargetModel.cpp.

◆ aieTargetModelGetDmaTaskQueueDepth()

uint32_t aieTargetModelGetDmaTaskQueueDepth ( AieTargetModel targetModel)

How many tasks one DMA channel's task queue holds (unsupported = 0).

Definition at line 167 of file TargetModel.cpp.

◆ aieTargetModelGetLocalMemorySize()

uint32_t aieTargetModelGetLocalMemorySize ( AieTargetModel targetModel)

Definition at line 142 of file TargetModel.cpp.

◆ aieTargetModelGetMaxLockValue()

uint32_t aieTargetModelGetMaxLockValue ( AieTargetModel targetModel)

Largest value a lock register holds.

Definition at line 159 of file TargetModel.cpp.

◆ aieTargetModelGetMaxRepeatCount()

uint32_t aieTargetModelGetMaxRepeatCount ( AieTargetModel targetModel)

Largest repeat count one DMA task queue push can carry (unsupported = 0).

Definition at line 163 of file TargetModel.cpp.

◆ aieTargetModelGetMemEastBaseAddress()

uint32_t aieTargetModelGetMemEastBaseAddress ( AieTargetModel targetModel)

Definition at line 134 of file TargetModel.cpp.

◆ aieTargetModelGetMemNorthBaseAddress()

uint32_t aieTargetModelGetMemNorthBaseAddress ( AieTargetModel targetModel)

Definition at line 130 of file TargetModel.cpp.

◆ aieTargetModelGetMemSouthBaseAddress()

uint32_t aieTargetModelGetMemSouthBaseAddress ( AieTargetModel targetModel)

Definition at line 126 of file TargetModel.cpp.

◆ aieTargetModelGetMemTileSize()

uint32_t aieTargetModelGetMemTileSize ( AieTargetModel targetModel)

Definition at line 190 of file TargetModel.cpp.

◆ aieTargetModelGetMemWestBaseAddress()

uint32_t aieTargetModelGetMemWestBaseAddress ( AieTargetModel targetModel)

Definition at line 138 of file TargetModel.cpp.

◆ aieTargetModelGetNumBanks()

uint32_t aieTargetModelGetNumBanks ( AieTargetModel targetModel,
int col,
int row )

Definition at line 194 of file TargetModel.cpp.

◆ aieTargetModelGetNumBDs()

uint32_t aieTargetModelGetNumBDs ( AieTargetModel targetModel,
int col,
int row )

Definition at line 155 of file TargetModel.cpp.

◆ aieTargetModelGetNumDestShimMuxConnections()

uint32_t aieTargetModelGetNumDestShimMuxConnections ( AieTargetModel targetModel,
int col,
int row,
uint32_t bundle )

Definition at line 279 of file TargetModel.cpp.

◆ aieTargetModelGetNumDestSwitchboxConnections()

uint32_t aieTargetModelGetNumDestSwitchboxConnections ( AieTargetModel targetModel,
int col,
int row,
uint32_t bundle )

Definition at line 263 of file TargetModel.cpp.

◆ aieTargetModelGetNumLocks()

uint32_t aieTargetModelGetNumLocks ( AieTargetModel targetModel,
int col,
int row )

Definition at line 150 of file TargetModel.cpp.

◆ aieTargetModelGetNumMemTileRows()

uint32_t aieTargetModelGetNumMemTileRows ( AieTargetModel targetModel)

Definition at line 186 of file TargetModel.cpp.

◆ aieTargetModelGetNumSourceShimMuxConnections()

uint32_t aieTargetModelGetNumSourceShimMuxConnections ( AieTargetModel targetModel,
int col,
int row,
uint32_t bundle )

Definition at line 287 of file TargetModel.cpp.

◆ aieTargetModelGetNumSourceSwitchboxConnections()

uint32_t aieTargetModelGetNumSourceSwitchboxConnections ( AieTargetModel targetModel,
int col,
int row,
uint32_t bundle )

Definition at line 271 of file TargetModel.cpp.

◆ aieTargetModelGetRowShift()

uint32_t aieTargetModelGetRowShift ( AieTargetModel targetModel)

Definition at line 307 of file TargetModel.cpp.

◆ aieTargetModelGetTargetArch()

uint32_t aieTargetModelGetTargetArch ( AieTargetModel targetModel)

Returns the AIE architecture (as the underlying value of xilinx::AIE::AIEArch: AIE1=1, AIE2=2, AIE2p=3).

Definition at line 299 of file TargetModel.cpp.

◆ aieTargetModelGetTileType()

uint32_t aieTargetModelGetTileType ( AieTargetModel targetModel,
int col,
int row )

Returns the tile type for the given coordinates.

Definition at line 49 of file TargetModel.cpp.

◆ aieTargetModelIsCoreTile()

bool aieTargetModelIsCoreTile ( AieTargetModel targetModel,
int col,
int row )

Definition at line 54 of file TargetModel.cpp.

◆ aieTargetModelIsEast()

bool aieTargetModelIsEast ( AieTargetModel targetModel,
int src_col,
int src_row,
int dst_col,
int dst_row )

Definition at line 85 of file TargetModel.cpp.

◆ aieTargetModelIsInternal()

bool aieTargetModelIsInternal ( AieTargetModel targetModel,
int src_col,
int src_row,
int dst_col,
int dst_row )

Definition at line 75 of file TargetModel.cpp.

◆ aieTargetModelIsLegalMemAffinity()

bool aieTargetModelIsLegalMemAffinity ( AieTargetModel targetModel,
int src_col,
int src_row,
int dst_col,
int dst_row )

Definition at line 120 of file TargetModel.cpp.

◆ aieTargetModelIsMemEast()

bool aieTargetModelIsMemEast ( AieTargetModel targetModel,
int src_col,
int src_row,
int dst_col,
int dst_row )

Definition at line 105 of file TargetModel.cpp.

◆ aieTargetModelIsMemNorth()

bool aieTargetModelIsMemNorth ( AieTargetModel targetModel,
int src_col,
int src_row,
int dst_col,
int dst_row )

Definition at line 110 of file TargetModel.cpp.

◆ aieTargetModelIsMemSouth()

bool aieTargetModelIsMemSouth ( AieTargetModel targetModel,
int src_col,
int src_row,
int dst_col,
int dst_row )

Definition at line 115 of file TargetModel.cpp.

◆ aieTargetModelIsMemTile()

bool aieTargetModelIsMemTile ( AieTargetModel targetModel,
int col,
int row )

Definition at line 58 of file TargetModel.cpp.

◆ aieTargetModelIsMemWest()

bool aieTargetModelIsMemWest ( AieTargetModel targetModel,
int src_col,
int src_row,
int dst_col,
int dst_row )

Definition at line 100 of file TargetModel.cpp.

◆ aieTargetModelIsNorth()

bool aieTargetModelIsNorth ( AieTargetModel targetModel,
int src_col,
int src_row,
int dst_col,
int dst_row )

Definition at line 90 of file TargetModel.cpp.

◆ aieTargetModelIsNPU()

bool aieTargetModelIsNPU ( AieTargetModel targetModel)

Returns true if this is an NPU target model.

Definition at line 295 of file TargetModel.cpp.

References xilinx::AIE::AIETargetModel::IsNPU.

◆ aieTargetModelIsShimNOCorPLTile()

bool aieTargetModelIsShimNOCorPLTile ( AieTargetModel targetModel,
int col,
int row )

Definition at line 70 of file TargetModel.cpp.

◆ aieTargetModelIsShimNOCTile()

bool aieTargetModelIsShimNOCTile ( AieTargetModel targetModel,
int col,
int row )

Definition at line 62 of file TargetModel.cpp.

◆ aieTargetModelIsShimPLTile()

bool aieTargetModelIsShimPLTile ( AieTargetModel targetModel,
int col,
int row )

Definition at line 66 of file TargetModel.cpp.

◆ aieTargetModelIsSouth()

bool aieTargetModelIsSouth ( AieTargetModel targetModel,
int src_col,
int src_row,
int dst_col,
int dst_row )

Definition at line 95 of file TargetModel.cpp.

◆ aieTargetModelIsWest()

bool aieTargetModelIsWest ( AieTargetModel targetModel,
int src_col,
int src_row,
int dst_col,
int dst_row )

Definition at line 80 of file TargetModel.cpp.

◆ aieTargetModelRows()

int aieTargetModelRows ( AieTargetModel targetModel)

Returns the number of rows in the target model.

Definition at line 45 of file TargetModel.cpp.