Buffers Constraint - Buffers Constraint - 2026.1 English - UG1603

AI Engine-ML Kernel and Graph Programming Guide (UG1603)

Document ID
UG1603
Release Date
2026-07-08
Version
2026.1 English

This constrains a data buffer to a specific address on a specific tile. You can attach the data buffer to an input, output, or inout port of a kernel or param (for example, a lookup table). You can specify the address can be specified in one of three ways:

Column, row, and offset
The tile is specified by column and row. The offset address is relative to the tile, starting at zero with a maximum value of 65536 (64k).
Column, row, and bankId
the bank ID is relative to the tile and can take values 0, 1, 2, 3.
Offset
Can be between zero and 65536 (64k) and is relative to the tile allocated by the compiler.
Note: One or two buffers can be constrained for a port.

Syntax

"buffers": [<address>, <(optional) address>]
<address> ::= <offset_address> | <bank_address> | <offset_address>
<tile_address> ::= {
  "column": integer,
  "row": integer,
  "offset": integer
}
<bank_address> ::= {
  "column": integer,
  "row": integer,
  "bankId": integer
}
<offset_address> ::= {
  "offset": integer
}

Example

{
  "PortConstraints": {
    "mygraph.k2.out[0]": {
      "buffers": [{
        "column": 2,
        "row": 2,
        "offset": 5632
      }, {
        "column": 2,
        "row": 2,
        "offset": 4608
      }]
    },
    "mygraph.k1.out[0]": {
      "buffers": [{
        "column": 2,
        "row": 3,
        "bankId": 2
      }, {
        "column": 2,
        "row": 3,
        "bankId": 3
      }]
    },
    "mygraph.p1": {
      "buffers": [{
        "offset": 512
      }]
    }
  }
}