If a design has multiple instantiations of the same graph, consider using the stamp and repeat flow in the mapper. In this flow, you provide input to the mapper that all the graphs should be mapped in an exactly identical manner in the area group region that you have provided for each graph. This not only simplifies the problem for the mapper, it also significantly reduces skew between the outputs of different graphs. This is particularly important for wireless communications designs with multiple antennas. Steps to use the stamp and repeat flow are as follows.
- Define an area group for each graph. For example in the following add
constraints in the aiecst
file.
or add constraints in the graph:"GlobalConstraints": { "areaGroup": { "name": "ant0_cores", "nodeGroup": ["tx_chain0.*"], "tileGroup": ["(0,0):(3,3)"] }, "areaGroup": { "name": "ant1_cores", "nodeGroup": ["tx_chain1.*"], "tileGroup": ["(4,0):(7,3)"] } }
location<graph>(tx_chain0) = bounding_box(0,0,3,3); location<graph>(tx_chain1) = bounding_box(4,0,7,3);
- Define stamp and repeat constraint in the aiecst file.
{ "GlobalConstraints": { "isomorphicGraphGroup": { "name": "isoGroup", "referenceGraph": "tx_chain0", "stampedGraphs": ["tx_chain1"] } } }
Note that the graph that is designated as the reference graph can also be given additional constraints such as co-location or absolute location constraints. These are automatically applied to other graphs with an appropriate offset.
Note: For more information see Mapping Constraints in AI Engine Kernel and Graph Programming Guide (UG1079).