エリア グループ制約は、1 つ以上のノード グループをマップするタイル/シムのロケーション (エリア) を指定します。エリア グループ制約は、次のプロパティを使用して指定できます。
- groups
- グループのコレクションを指定します。指定可能なグループは、次のとおりです。
- contain_routing
- ブール値。true を指定すると、nodeGroup に含まれるノード間のネットを含むすべての配線がエリア グループ内に含まれます。
- exclude_routing
- ブール値。true を指定すると、nodeGroup に含まれるノード間のネットを除くすべての配線が、エリア グループから除外されます。
- exclude_placement
- ブール値。true を指定すると、nodeGroup に含まれていないすべてのノードが、エリア グループの境界ボックス内に配置されなくなります。
AI エンジン タイルまたはメモリ タイルの範囲は (column, row):(column, row) の形式で、最初のタイルは左下角、2 番目のタイルは右上角を指定します。列と行の値は 0 から始まり、0 番目の行は最下部の計算プロセッサからカウントされ、0 番目の列は左端の列からカウントされます。
シムの範囲は (column):(column) の形式で、最初の値は左端の列、2 番目の値は右端の列です。列の値は 0 から始まり、0 番目の行は最下部の計算プロセッサからカウントされ、0 番目の列は左端の列からカウントされます。シムの範囲では、オプションでチャネルを指定することも可能です (例: (column, channel):(column, channel))。
エリア グループは、コンパイラでマップおよびオプションの配線に使用されないように、デバイスの範囲を除外するのにも使用できます。
- 配線で特定の範囲を除外するには、nodeGroup を設定し、exclude_placement を true に設定します。
- マップで特定の範囲を除外するには、nodeGroup を設定し、exclude_routing を true に設定します。
- 配線とマップに nodeGroup 内のすべてのネットを含めるには、contain_routing を true に設定します。
注記: 各制約に固有の名前が付けられていれば、グローバル制約セクションにエリア グループをいくつでも含めることができます。
構文
"areaGroup": {
"name": string,
"nodeGroup": [<node list>], (*optional)
"tileGroup": [<tile list>], (*optional)
"shimGroup": [<shim list>], (*optional)
"contain_routing": bool, (*optional)
"exclude_routing": bool, (*optional)
"exclude_placement"" bool, (*optional)
}
<node list> ::= <node name>[,<node name>...]
<tile array> ::= <tile value>[,<tile value>...]
<tile value> ::= <tile range> | <tile address>
<tile range> ::= "<tile address>[:<tile address>]"
<tile address> ::= (<column>, <row>)
<shim array> ::= <shim value>[,<shim value>...]
<shim value> ::= <shim range> | <shim address>
<shim range> ::= "<shim address>[:<shim address>]"
<shim address> ::= (<column>[,<channel>])
<node name> ::= string
<column> ::= integer
<row> ::= integer
<channel> ::= integer
例
{
"GlobalConstraints": {
"areaGroup": {
"name": "mygraph_area_group",
"nodeGroup": ["mygraph.k1", "mygraph.k2"],
"tileGroup": ["(2,0):(2,3)"],
"shimGroup": ["0:3"]
}
}
}
除外の例
{
"GlobalConstraints": {
"areaGroup": {
"name": "mygraph_excluded_area_group",
"tileGroup": ["(3,0):(4,3)"],
"shimGroup": ["3:4"],
"exclude_routing": true
}
}
}