缓冲器约束 - 2023.2 简体中文

AI 引擎内核与计算图编程指南 (UG1079)

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 简体中文

此约束用于将数据缓冲器约束到特定拼块上的特定地址。数据缓冲器可以附加到内核或参数(例如,查找表)的输入、输出或输入输出端口。地址可使用以下三个不同方式中的任一方式来指定:

  • Column(列)、row(行)和 offset(偏移),其中,拼块按 column 和 row 来指定,偏移地址则与拼块相关,从 0 开始,最大值为 32768 (32k)。
  • Column、row 和 bankId,其中 bank ID 与拼块相关,可取下列值:0、1、2 或 3。
  • 偏移介于 0 到 32768 (32k) 之间,且相对于编译器分配的 tile。
注释: 对于单个端口,可约束一个或两个缓冲器。

语法

"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
}

示例

{
  "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
      }]
    }
  }
}