Constraint Group Types
When assigning constraint groups to objects, you specify how the constraints in the route spec will be used by assigning the group type. The table below lists the constraint group types with their descriptions and the objects that they can apply to.
The implicit constraint group is a convention used by OpenAccess. The default constraint group is used by other tools to represent the rules that should be applied to an object under normal circumstances. If the default constraint group exists, it will be used, otherwise, the implicit rules will be used.
Use
set_constraint_group -net 1 -taper single_taper -shield single_shield
The shield and taper constraint groups are assigned to net 1 and can be viewed in the Properties Browser in the storedMultiSpecs property for the net as shown in the following figure. The constraints set in the single_shield constraint group are used for shielding, while the constraints set in the single_taper constraint group are used for tapering on the net.

TransReflexive, Reflexive, and InterChild Constraint Groups
These types of constraint groups are intended to apply to objects within an object group, which is a collection of design objects. These types of constraint groups provide more flexibility and a greater degree of control for applying constraints.
TransReflexive
TransReflexive constraints apply between each object in an object group and all objects outside the object group as shown in the following figure. The constraints do not apply between objects in the group, nor do they apply between objects outside the group. If the group contains a sub-group, then the transReflexive constraints apply between the sub-group objects and all objects outside the group, but the constraints do not apply between objects within the sub-groups nor between objects in the sub-groups and other sub-groups, or objects in the parent group. This type of constraint group is useful for cases such as net pairs and buses. For example, to minimize noise around a net pair, you could specify a larger spacing as a transReflexive constraint for the net pair, which would require a bigger gap between the net pair and surrounding nets.

Reflexive
Reflexive constraints apply between the objects in a group as shown in the following figure. This type of constraint group is useful for cases such as net pairs and buses. For example, reflexive constraints can specify the gap between the nets of a net pair that is different from the spacing required between the net pair and other nets.

InterChild
InterChild constraints are also referred to as Group-to-Group constraints. Constraints in an interChild constraint group apply between the relevant objects in a sub-group and all objects in other sub-groups of the same parent group as shown in the following figure. For example, to route some signal nets close to power rails, you can create a group of the signal nets, a group of power nets, and identify the groups as good neighbors by specifying crosstalkNeighborIndex as an interChild constraint for the two groups. If interChild constraints are applied to a group that has no sub-groups, then the constraints are applied as reflexive constraints.

Related Topics
Return to top