|
MLIR-AIE
|
#include "aie/Dialect/AIE/IR/AIETargetModel.h"
Inheritance diagram for xilinx::AIE::AIE1TargetModel:
Collaboration diagram for xilinx::AIE::AIE1TargetModel:Public Member Functions | |
| AIE1TargetModel (TargetModelKind k) | |
| bool | isCoreTile (int col, int row) const override |
| Return true if the given tile is a 'Core' tile. | |
| bool | isMemTile (int col, int row) const override |
| Return true if the given tile is an AIE2 'Memory' tile. | |
| AIEArch | getTargetArch () const override |
| AIE1 TargetModel. | |
| std::optional< TileID > | getMemWest (TileID src) const override |
| Return the tile ID of the memory to the west of the given tile, if it exists. | |
| std::optional< TileID > | getMemEast (TileID src) const override |
| Return the tile ID of the memory to the east of the given tile, if it exists. | |
| std::optional< TileID > | getMemNorth (TileID src) const override |
| Return the tile ID of the memory to the north of the given tile, if it exists. | |
| std::optional< TileID > | getMemSouth (TileID src) const override |
| Return the tile ID of the memory to the south of the given tile, if it exists. | |
| bool | isMemWest (int srcCol, int srcRow, int dstCol, int dstRow) const override |
| Return true if src has a memory tile which is West of dst. | |
| bool | isMemEast (int srcCol, int srcRow, int dstCol, int dstRow) const override |
| Return true if src has a memory tile which is East of dst. | |
| bool | isMemNorth (int srcCol, int srcRow, int dstCol, int dstRow) const override |
| Return true if src has a memory tile which is North of dst. | |
| bool | isMemSouth (int srcCol, int srcRow, int dstCol, int dstRow) const override |
| Return true if src has a memory tile which is South of dst. | |
| bool | isLegalMemAffinity (int coreCol, int coreRow, int memCol, int memRow) const override |
| Return true if core can access the memory in mem. | |
| uint32_t | getMemInternalBaseAddress (TileID src) const override |
| Return the base address in the local address map for a core. | |
| uint32_t | getMemSouthBaseAddress () const override |
| Return the base address in the local address map for a core. | |
| uint32_t | getMemWestBaseAddress () const override |
| Return the base address in the local address map for a core. | |
| uint32_t | getMemNorthBaseAddress () const override |
| Return the base address in the local address map for a core. | |
| uint32_t | getMemEastBaseAddress () const override |
| Return the base address in the local address map for a core. | |
| uint32_t | getLocalMemorySize () const override |
| Return the size (in bytes) of the local data memory of a core. | |
| uint32_t | getAccumulatorCascadeSize () const override |
| Return the size (in bits) of the accumulator/cascade. | |
| uint32_t | getNumLocks (int col, int row) const override |
| Return the number of lock objects. | |
| uint32_t | getMaxLockValue () const override |
| Return the maximum value that can be stored in a lock register. | |
| std::optional< uint32_t > | getLocalLockAddress (uint32_t lockId, TileID tile) const override |
| uint32_t | getNumBDs (int col, int row) const override |
| Return the number of buffer descriptors supported by the DMA in the given tile. | |
| bool | isBdChannelAccessible (int col, int row, uint32_t bd_id, int channel) const override |
Return true iff buffer descriptor bd_id on tile (col, row) can be submitted on channel channel. | |
| uint64_t | getDmaBdAddress (int col, int row, uint32_t bd_id, int channel, AIE::DMAChannelDir direction) const override |
| Return the array address of the dma buffer descriptor for the given col, row, buffer descriptor id, channel and direction. | |
| uint32_t | getDmaBdAddressOffset (int col, int row) const override |
| Return the offset of the base address field within the shim dma buffer descriptor. | |
| uint32_t | getDmaControlAddress (int col, int row, int channel, AIE::DMAChannelDir direction) const override |
| Return the array address of the dma task queue register for the given col, row, channel and direction. | |
| uint32_t | getNumMemTileRows () const override |
| uint32_t | getMemTileSize () const override |
| Return the size (in bytes) of a MemTile. | |
| uint32_t | getNumBanks (int col, int row) const override |
| Return the number of memory banks of a given tile. | |
| uint32_t | getMaxChannelNumForAdjacentMemTile (int col, int row) const override |
| uint32_t | getNumDestSwitchboxConnections (int col, int row, WireBundle bundle) const override |
| Return the number of destinations of connections inside a switchbox. | |
| uint32_t | getNumSourceSwitchboxConnections (int col, int row, WireBundle bundle) const override |
| Return the number of sources of connections inside a switchbox. | |
| uint32_t | getNumDestShimMuxConnections (int col, int row, WireBundle bundle) const override |
| Return the number of destinations of connections inside a shimmux. | |
| uint32_t | getNumSourceShimMuxConnections (int col, int row, WireBundle bundle) const override |
| Return the number of sources of connections inside a shimmux. | |
| bool | isLegalTileConnection (int col, int row, WireBundle srcBundle, int srcChan, WireBundle dstBundle, int dstChan) const override |
| uint32_t | getColumnShift () const override |
| uint32_t | getRowShift () const override |
| std::vector< std::pair< uint32_t, uint32_t > > | getShimBurstEncodingsAndLengths () const override |
Public Member Functions inherited from xilinx::AIE::AIETargetModel | |
| TargetModelKind | getKind () const |
| AIETargetModel (TargetModelKind k) | |
| virtual | ~AIETargetModel () |
| virtual uint32_t | getAddressGenGranularity () const =0 |
| Return the data bus width of the device. | |
| virtual int | columns () const =0 |
| Return the number of columns in the device. | |
| virtual int | rows () const =0 |
| Return the number of rows in the device. | |
| virtual bool | isShimNOCTile (int col, int row) const =0 |
| Return true if the given tile is a Shim NOC tile. | |
| virtual bool | isShimPLTile (int col, int row) const =0 |
| Return true if the given tile is a Shim PL interface tile. | |
| virtual bool | isShimNOCorPLTile (int col, int row) const =0 |
| Return true if the given tile is either a Shim NOC or a Shim PL interface tile. | |
| virtual bool | isValidTile (TileID src) const |
| Return true if the given tile ID is valid. | |
| bool | isInternal (int srcCol, int srcRow, int dstCol, int dstRow) const |
| Return true if src is the internal memory of dst. | |
| bool | isWest (int srcCol, int srcRow, int dstCol, int dstRow) const |
| Return true if src is West of dst. | |
| bool | isEast (int srcCol, int srcRow, int dstCol, int dstRow) const |
| Return true if src is East of dst. | |
| bool | isNorth (int srcCol, int srcRow, int dstCol, int dstRow) const |
| Return true if src is North of dst. | |
| bool | isSouth (int srcCol, int srcRow, int dstCol, int dstRow) const |
| Return true if src is South of dst. | |
| std::optional< uint32_t > | getLockLocalBaseIndex (int localCol, int localRow, int lockCol, int lockRow) const |
| Return the lock base index (or offset) in the local tile when accessing a neighbor's lock or an empty optional if an invalid neighbor is given Takes into account differences between Memory and Core tiles. | |
| std::optional< uint32_t > | getMemLocalBaseAddress (int localCol, int localRow, int memCol, int memRow) const |
| Return the memory base address (or offset) in the local tile when accessing a neighbor's memory or an empty optional if an invalid neighbor is given Takes into account differences between Memory and Core tiles. | |
| void | validate () const |
| uint32_t | getModelProperties () const |
| void | addModelProperty (uint32_t prop) |
| bool | hasProperty (ModelProperty Prop) const |
| virtual bool | isSupportedBlockFormat (std::string const &format) const |
Static Public Member Functions | |
| static bool | classof (const AIETargetModel *model) |
Additional Inherited Members | |
Public Types inherited from xilinx::AIE::AIETargetModel | |
| enum | TargetModelKind { TK_AIE1_VC1902 , TK_AIE1_Last , TK_AIE2_VE2302 , TK_AIE2_VE2802 , TK_AIE2_NPU1_1Col , TK_AIE2_NPU1_2Col , TK_AIE2_NPU1_3Col , TK_AIE2_NPU1_4Col , TK_AIE2_NPU1_Last , TK_AIE2_NPU2 = TK_AIE2_NPU1_Last , TK_AIE2_NPU2_1Col , TK_AIE2_NPU2_2Col , TK_AIE2_NPU2_3Col , TK_AIE2_NPU2_4Col , TK_AIE2_NPU2_5Col , TK_AIE2_NPU2_6Col , TK_AIE2_NPU2_7Col , TK_AIE2_NPU2_Last , TK_AIE2_Last = TK_AIE2_NPU2_Last } |
| enum | ModelProperty { UsesSemaphoreLocks = 1U << 0 , IsNPU = 1U << 1 , IsVirtualized = 1U << 2 , UsesMultiDimensionalBDs = 1U << 3 } |
Definition at line 330 of file AIETargetModel.h.
|
inline |
Definition at line 332 of file AIETargetModel.h.
|
inlinestatic |
Definition at line 409 of file AIETargetModel.h.
References xilinx::AIE::AIETargetModel::getKind(), xilinx::AIE::AIETargetModel::TK_AIE1_Last, and xilinx::AIE::AIETargetModel::TK_AIE1_VC1902.
|
inlineoverridevirtual |
Return the size (in bits) of the accumulator/cascade.
Implements xilinx::AIE::AIETargetModel.
Definition at line 367 of file AIETargetModel.h.
|
inlineoverridevirtual |
Implements xilinx::AIE::AIETargetModel.
Definition at line 406 of file AIETargetModel.h.
Referenced by getDmaBdAddress(), and getDmaControlAddress().
|
overridevirtual |
Return the array address of the dma buffer descriptor for the given col, row, buffer descriptor id, channel and direction.
Not all architecture variants will use channel and direction so these have default values.
Implements xilinx::AIE::AIETargetModel.
Definition at line 110 of file AIETargetModel.cpp.
References xilinx::AIE::col, getColumnShift(), getRowShift(), isCoreTile(), xilinx::AIE::AIETargetModel::isShimNOCTile(), and xilinx::AIE::row.
|
overridevirtual |
Return the offset of the base address field within the shim dma buffer descriptor.
Implements xilinx::AIE::AIETargetModel.
Definition at line 126 of file AIETargetModel.cpp.
References xilinx::AIE::col, isCoreTile(), xilinx::AIE::AIETargetModel::isShimNOCTile(), and xilinx::AIE::row.
|
overridevirtual |
Return the array address of the dma task queue register for the given col, row, channel and direction.
Implements xilinx::AIE::AIETargetModel.
Definition at line 135 of file AIETargetModel.cpp.
References xilinx::AIE::channel, xilinx::AIE::col, getColumnShift(), getRowShift(), isCoreTile(), xilinx::AIE::AIETargetModel::isShimNOCTile(), and xilinx::AIE::row.
|
overridevirtual |
Implements xilinx::AIE::AIETargetModel.
Definition at line 342 of file AIETargetModel.cpp.
|
inlineoverridevirtual |
Return the size (in bytes) of the local data memory of a core.
Implements xilinx::AIE::AIETargetModel.
Definition at line 366 of file AIETargetModel.h.
|
inlineoverridevirtual |
Implements xilinx::AIE::AIETargetModel.
Definition at line 390 of file AIETargetModel.h.
|
inlineoverridevirtual |
Return the maximum value that can be stored in a lock register.
Implements xilinx::AIE::AIETargetModel.
Definition at line 369 of file AIETargetModel.h.
|
overridevirtual |
Return the tile ID of the memory to the east of the given tile, if it exists.
Implements xilinx::AIE::AIETargetModel.
Definition at line 42 of file AIETargetModel.cpp.
References xilinx::AIE::AIETargetModel::isValidTile(), and xilinx::AIE::src.
|
inlineoverridevirtual |
Return the base address in the local address map for a core.
Implements xilinx::AIE::AIETargetModel.
Definition at line 365 of file AIETargetModel.h.
Referenced by getMemInternalBaseAddress().
|
inlineoverridevirtual |
Return the base address in the local address map for a core.
Implements xilinx::AIE::AIETargetModel.
Definition at line 354 of file AIETargetModel.h.
References getMemEastBaseAddress(), getMemWestBaseAddress(), and xilinx::AIE::src.
|
overridevirtual |
Return the tile ID of the memory to the north of the given tile, if it exists.
Implements xilinx::AIE::AIETargetModel.
Definition at line 55 of file AIETargetModel.cpp.
References xilinx::AIE::AIETargetModel::isValidTile(), and xilinx::AIE::src.
|
inlineoverridevirtual |
Return the base address in the local address map for a core.
Implements xilinx::AIE::AIETargetModel.
Definition at line 364 of file AIETargetModel.h.
|
overridevirtual |
Return the tile ID of the memory to the south of the given tile, if it exists.
Implements xilinx::AIE::AIETargetModel.
Definition at line 62 of file AIETargetModel.cpp.
References xilinx::AIE::AIETargetModel::isValidTile(), and xilinx::AIE::src.
|
inlineoverridevirtual |
Return the base address in the local address map for a core.
Implements xilinx::AIE::AIETargetModel.
Definition at line 362 of file AIETargetModel.h.
|
inlineoverridevirtual |
Return the size (in bytes) of a MemTile.
Implements xilinx::AIE::AIETargetModel.
Definition at line 387 of file AIETargetModel.h.
|
overridevirtual |
Return the tile ID of the memory to the west of the given tile, if it exists.
Implements xilinx::AIE::AIETargetModel.
Definition at line 29 of file AIETargetModel.cpp.
References xilinx::AIE::AIETargetModel::isValidTile(), and xilinx::AIE::src.
|
inlineoverridevirtual |
Return the base address in the local address map for a core.
Implements xilinx::AIE::AIETargetModel.
Definition at line 363 of file AIETargetModel.h.
Referenced by getMemInternalBaseAddress().
|
inlineoverridevirtual |
Return the number of memory banks of a given tile.
Implements xilinx::AIE::AIETargetModel.
Definition at line 388 of file AIETargetModel.h.
|
inlineoverridevirtual |
Return the number of buffer descriptors supported by the DMA in the given tile.
Implements xilinx::AIE::AIETargetModel.
Definition at line 372 of file AIETargetModel.h.
|
overridevirtual |
Return the number of destinations of connections inside a shimmux.
These are the targets of connect operations in the switchbox.
Implements xilinx::AIE::AIETargetModel.
Definition at line 269 of file AIETargetModel.cpp.
References xilinx::AIE::col, xilinx::AIE::AIETargetModel::isShimNOCorPLTile(), and xilinx::AIE::row.
|
overridevirtual |
Return the number of destinations of connections inside a switchbox.
These are the targets of connect operations in the switchbox.
Implements xilinx::AIE::AIETargetModel.
Definition at line 154 of file AIETargetModel.cpp.
References xilinx::AIE::col, xilinx::AIE::AIETargetModel::columns(), xilinx::AIE::AIETargetModel::isShimNOCTile(), xilinx::AIE::AIETargetModel::isShimPLTile(), xilinx::AIE::row, and xilinx::AIE::AIETargetModel::rows().
Referenced by isLegalTileConnection().
|
inlineoverridevirtual |
Return the number of lock objects.
Implements xilinx::AIE::AIETargetModel.
Definition at line 368 of file AIETargetModel.h.
|
inlineoverridevirtual |
Implements xilinx::AIE::AIETargetModel.
Definition at line 386 of file AIETargetModel.h.
|
overridevirtual |
Return the number of sources of connections inside a shimmux.
These are the origins of connect operations in the switchbox.
Implements xilinx::AIE::AIETargetModel.
Definition at line 287 of file AIETargetModel.cpp.
References xilinx::AIE::col, xilinx::AIE::AIETargetModel::isShimNOCorPLTile(), and xilinx::AIE::row.
|
overridevirtual |
Return the number of sources of connections inside a switchbox.
These are the origins of connect operations in the switchbox.
Implements xilinx::AIE::AIETargetModel.
Definition at line 210 of file AIETargetModel.cpp.
References xilinx::AIE::col, xilinx::AIE::AIETargetModel::columns(), xilinx::AIE::AIETargetModel::isShimNOCTile(), xilinx::AIE::AIETargetModel::isShimPLTile(), xilinx::AIE::row, and xilinx::AIE::AIETargetModel::rows().
Referenced by isLegalTileConnection().
|
inlineoverridevirtual |
Implements xilinx::AIE::AIETargetModel.
Definition at line 407 of file AIETargetModel.h.
Referenced by getDmaBdAddress(), and getDmaControlAddress().
|
overridevirtual |
Implements xilinx::AIE::AIETargetModel.
Definition at line 337 of file AIETargetModel.cpp.
|
overridevirtual |
AIE1 TargetModel.
Implements xilinx::AIE::AIETargetModel.
Definition at line 26 of file AIETargetModel.cpp.
|
inlineoverridevirtual |
Return true iff buffer descriptor bd_id on tile (col, row) can be submitted on channel channel.
Implements xilinx::AIE::AIETargetModel.
Definition at line 373 of file AIETargetModel.h.
|
inlineoverridevirtual |
Return true if the given tile is a 'Core' tile.
These tiles include a Core, TileDMA, tile memory, and stream connections.
Implements xilinx::AIE::AIETargetModel.
Definition at line 334 of file AIETargetModel.h.
References xilinx::AIE::row.
Referenced by getDmaBdAddress(), getDmaBdAddressOffset(), getDmaControlAddress(), and isLegalTileConnection().
|
overridevirtual |
Return true if core can access the memory in mem.
Implements xilinx::AIE::AIETargetModel.
Definition at line 94 of file AIETargetModel.cpp.
References xilinx::AIE::AIETargetModel::isEast(), xilinx::AIE::AIETargetModel::isInternal(), xilinx::AIE::AIETargetModel::isNorth(), xilinx::AIE::AIETargetModel::isSouth(), and xilinx::AIE::AIETargetModel::isWest().
|
overridevirtual |
Implements xilinx::AIE::AIETargetModel.
Definition at line 305 of file AIETargetModel.cpp.
References xilinx::AIE::col, getNumDestSwitchboxConnections(), getNumSourceSwitchboxConnections(), isCoreTile(), isMemTile(), xilinx::AIE::AIETargetModel::isShimNOCorPLTile(), and xilinx::AIE::row.
|
overridevirtual |
Return true if src has a memory tile which is East of dst.
Implements xilinx::AIE::AIETargetModel.
Definition at line 77 of file AIETargetModel.cpp.
References xilinx::AIE::AIETargetModel::isEast(), and xilinx::AIE::AIETargetModel::isInternal().
|
overridevirtual |
Return true if src has a memory tile which is North of dst.
Implements xilinx::AIE::AIETargetModel.
Definition at line 84 of file AIETargetModel.cpp.
References xilinx::AIE::AIETargetModel::isNorth().
|
overridevirtual |
Return true if src has a memory tile which is South of dst.
Implements xilinx::AIE::AIETargetModel.
Definition at line 89 of file AIETargetModel.cpp.
References xilinx::AIE::AIETargetModel::isSouth().
|
inlineoverridevirtual |
Return true if the given tile is an AIE2 'Memory' tile.
These tiles include a TileDMA, tile memory, and stream connections, but no core.
Implements xilinx::AIE::AIETargetModel.
Definition at line 335 of file AIETargetModel.h.
Referenced by isLegalTileConnection().
|
overridevirtual |
Return true if src has a memory tile which is West of dst.
Implements xilinx::AIE::AIETargetModel.
Definition at line 70 of file AIETargetModel.cpp.
References xilinx::AIE::AIETargetModel::isInternal(), and xilinx::AIE::AIETargetModel::isWest().