Product Documentation
Virtuoso Space-based Router Constraint Reference
Product Version IC23.1, June 2023

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.

Constraint Group Type Description Objects

implicit

Constraints apply to the object itself.

All objects

default

Constraints apply to contained objects but not to the container objects. This is the constraint group type for typical default and non-default (for example, wide wires, double spacing) constraint groups.

Technology database objects, design database objects, blocks, modules, nets, routes, groups, fig groups, boundary objects

foundry

Constraints are associated with a technology database. A technology database can have only one foundry constraint group.

Technology database objects

taper

Constraints apply only for tapering.

Single-bit terminals, instance terminals, pins

inputTaper

Constraints apply only to input pin tapers on nets.

Single-bit nets

outputTaper

Constraints apply only to output pin tapers on nets.

Single-bit nets

shield

Constraints apply only to objects for shielding.

Single-bit net, nets

transreflexive

Constraints apply only between members of the group and objects not in the group.

Object groups

reflexive

Constraints apply only between members of the group.

Object groups

interChild

Constraints apply between objects within subgroups but do not apply between objects within the parent group.

Object groups

nearfarend

Constraints that can override the default or implicit rulespec settings for a percentage of a net, based on the nearFarPercentage constraint setting.

Nets

userdefined

Collects all user-named constraint groups that are associated with a database but not associated with a particular object. User-defined constraint groups in older databases are updated to be associated with this constraint definition.

Technology and design database objects

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 to assign route specs to objects by constraint group type. For example, consider the following command:

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.

Example of Assigning Constraints Groups to a 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.

TransReflexive Constraint Group

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.

Reflexive Constraint Group

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.

InterChild (Group-to-Group) Constraint Group

Related Topics

Constraint Parameters

Constraint Groups and Multispecs

Applying Constraints to Objects


Return to top
 ⠀
X