The areaGroup constraint specifies a range of tile and/or shim locations that a group of one or more nodes can be mapped. The areaGroup constraint can be specified with up to five properties:
- nodeGroup
- An array of one or more node names (e.g., kernel names)
- tileGroup
- An array of one or more tile ranges
- shimGroup
- An array of one or more shim ranges
- exclude
- A boolean value that when true causes the compiler to not map any resources to the tile and/or shim ranges
- issoft
- A boolean value that when true allows the router to use routing resources within the tile and/or shim ranges
A tile range is in the form of (column,row):(column,row), where the first tile is the bottom left corner and the second tile the upper right corner. The column and row values are zero based, where the zeroth row is counted from the bottom-most compute processor and the zeroth column is counted from the left-most column.
A shim range is in the form of (column):(column), where the first value is the left-most column and the second value the right-most column. The column is zero based, where the zeroth row is counted from the bottom-most compute processor and the zeroth column is counted from the left-most column. The shim range also allows an optional channel to be specified, e.g., (column,channel):(column,channel).
The AreaGroup is used to exclude a range on the device from being used by the compiler for mapping and optionally routing:
- To exclude a range from both mapper and router, omit nodeGroup and set exclude to true.
- To exclude a range from mapper, but not router, omit nodeGroup and set exclude to true and issoft to true.
Syntax
"areaGroup": {
"name": string,
"exclude": bool, (*optional)
"issoft": bool, (*optional)
"nodeGroup": [<node list>], (*optional)
"tileGroup": [<tile list>], (*optional)
"shimGroup": [<shim list>] (*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
Example
{
"GlobalConstraints": {
"areaGroup": {
"name": "mygraph_area_group",
"nodeGroup": ["mygraph.k1", "mygraph.k2"],
"tileGroup": ["(2,0):(2,3)"],
"shimGroup": ["0:3"]
}
}
}
Example of Exclude
{
"GlobalConstraints": {
"areaGroup": {
"name": "mygraph_excluded_area_group",
"exclude": true,
"tileGroup": ["(3,0):(4,3)"],
"shimGroup": ["3:4"]
}
}
}