Product Documentation
Virtuoso Technology Data Constraints Reference
Product Version IC23.1, November 2023

Combining Constraints in a Constraint Group

Constraint groups use an operator to determine how the constraints in the group are applied. There are three constraint group operators. By default, constraints in a constraint group are applied based on precedence.

Determining Constraint Group Precedence

A technology database can contain multiple constraint groups that define the same constraints. An application searches the constraint groups it recognizes in the order of precedence it has set and applies the first hard constraint it finds. If the application searches all of the constraint groups without finding a hard constraint, it applies the first soft constraint that it finds.

Constraint groups are applied in the following order of precedence:

  1. The constraint group being referenced by a command that is currently active in the design window.
  2. A constraint group recognized as the constraint group of first precedence by an application. Refer to your application documentation to determine which constraint groups the application recognizes and the precedence it applies to them.
  3. The foundry constraint group. All applications recognize the foundry constraint group.

Managing Member Constraint Groups

You can establish a constraint group, and then specify it as a member of another constraint group. When multiple member constraint groups are specified, their order of precedence is from left to right, that is, the first has the highest precedence and the last the lowest.

Example

constraintGroups
    ( "protrusionGroup" nil nil 'and
     spacings(
( minProtrusionNumCut "cut1"
'distance 0.50 'length 2.0 'width 1.0
'distanceWithin 1.2 2
)
( minProtrusionNumCut "cut1"
'distance 0.75 'length 3.0 'width 1.5
'distanceWithin 1.2 3
)
) ;spacings
) ;protrusionGroup
 ( "foundry" nil
memberConstraintGroups("protrusionGroup")
) ;foundry
) ;constraintGroups

Return to top
 ⠀
X