2D Linear transfer with zero-padding on dimension 0 - 2025.1 English - XD100

Vitis Tutorials: AI Engine Development (XD100)

Document ID
XD100
Release Date
2025-08-25
Version
2025.1 English

Here we transfer the data with a bigger tile size on dimension 0 to include zero-padding at the beginning and at the end:

            adf::read_access(mtxin.out[0]) = adf::tiling(
                {.buffer_dimension = {128, 2},
                .tiling_dimension = {160, 1},
                .offset = {-16, 0},
                .tile_traversal = {
                    {.dimension = 0, .stride = 128, .wrap = 1}, 
                    {.dimension = 1, .stride = 1, .wrap = 2}}});

The tile traversal on dimension 0 is not mandatory. The second read access pattern will generate 2 reads from the share buffer in the following way:

2D Linear Transferring Prepend

Let’s diplay the output:

Utils/GetTiles.py doc_x86simulator_output/data/Output_22.txt 2Do 160 2 0

This give:

------------------------------------------------------

filename: doc_x86simulator_output/data/Output_22.txt
NCols: 160
NRows: 2
NLayers: 1

------------------------------------------------------

Static Tile Selection

Tile: 0
  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1   2   3    ...    124 125 126 127   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 128 129 130 131    ...    252 253 254 255   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
------------------------------------------------------------