FIFO をアレイの指定した行と列にあるタイルに制約します。AI エンジン タイル、メモリ タイル、またはインターフェイス タイルを指定できます。bankId はオプションで、指定しない場合はコンパイラにより最適なバンクが選択されます。
FIFO 制約は、次のいずれかの方法を使用して指定できます。
-
column、row、bankID、offset、および size: タイルは column、row、bankId で指定し、offset アドレスは bankId を基準に指定し、size は 0 からバンクの最大値である 8188 個までの 32 ビット ワードで指定します。
-
column、row、および bankId: bankId はタイルを基準に指定し、有効な値は 0、1、2、または 3 です。注記: ハードウェア ビューは、128 ビット幅の 8 バンクですが、ソフトウェア ビューは 256 幅の 4 バンクです。
次に、構文を示します。
"PortConstraints": [<fifo list>]
<fifo list> ::= <fifo type>[, <fifo type>...]
<fifo type> ::= <dma_fifos> | <stream_fifos>
<dma_fifos> ::= <aie_tile>
<aie_tile> ::= {
"fifo_id": string,
"tile_type": "core",
"column": integer,
"row": integer,
"size": integer,
"offset": integer,
"bankId":integer (optional)
}
<stream_fifos> ::= {
"fifo_id": string,
"tile_type": "shim",
"column": integer,
"row": integer,
"channel": integer
}
次に、コード例を示します。
{
"PortConstraints": {
"fifo_locations_records": {
"dma_fifos": {
"r1": {
"tile_type": "core",
"row": 0,
"column": 0,
"size": 16,
"offset": 8,
"bankId": 2
},
"r2": {
"tile_type": "core",
"row": 0,
"column": 1,
"size": 16,
"offset": 9
},
"r4": {
"tile_type": "mem",
"row": 2,
"column": 4,
"size": 16,
"offset": 6,
"bankId": 2
}
},
"stream_fifos": {
"r3": {
"tile_type": "shim",
"row": 1,
"column": 3,
"channel": 1
}
}
},
"mygraph.k2.in[0]": {
"not_colocated_nodes": ["mygraph.k1"],
"fifo_locations": ["r1", "r2", "r3"]
},
"mygraph.k4.in[0]": {
"fifo_locations": ["r1", "r2", "r4"]
}
}
}