Buffer Location - Buffer Location - 2026.1 English - UG1483

Vitis Model Composer User Guide (UG1483)

Document ID
UG1483
Release Date
2026-06-23
Version
2026.1 English

The AI Engine compiler attempts to automatically allocate buffers for windows, lookup tables, and runtime parameters in the most efficient manner possible. However, you can explicitly control their placement in memory. Similar to the kernels shown previously in this section, you can constrain buffers inferred on a kernel port to be mapped to specific tiles or banks. You can even constrain address offsets using location constraints.

Figure 1. Specify Buffer Location

  • By default, the option Specify Buffer Location is deselected. When you enable this option, the kernel ports that can be constrained are displayed. You can use buffer locations on window kernel ports, or on internal parameter buffers in the AI Engine FFT/IFFT blocks.
  • You can click on each individual port and enable constraint as shown in the following figure.
  • You can use the Allocation option to specify a single or double buffer constraint on a window port. By default, a window port has a double buffer.
  • For a single buffer allocation, you can choose to constrain the buffer location by pointing to a:
    • Specific data memory bank on an AI Engine tile. The bank ID is relative to the tile and can take values 0,1,2,3.
    • Specific data memory address on an AI Engine tile. The offset address is relative to the tile starting at zero with a maximum value of 32768 (32K).
    • Specific data memory address offset. The offset address is between 0 and 32768 (32K) and is relative to a tile allocated by the compiler.
    • Specific buffer location to be on the same bank as that of one or more other port buffers. This ensures that another kernel can access the buffer without requiring a DMA.
Figure 2. Constrain Buffer Location

  • You can constrain the location of double buffers attached to a port to place them on a specific address or a bank id.
Figure 3. Constrain Double Buffer Location

Important: Only single buffers allow the non co-location constraint (that is, specifying where the buffer must not be mapped to).