Home
  • Products
  • Solutions
  • Support
  • Company

This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  • Products
  • Solutions
  • Support
  • Company
Community Blogs System, PCB, & Package Design > BoardSurfers: Leveraging Object Hierarchy for Effective…
Dhruv Prakash
Dhruv Prakash

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
CDNS - RequestDemo

Try Cadence Software for your next design!

Free Trials
PCB
Constraint Driven Design
Allegro X PCB Editor
BoardSurfers
PCB Editor
Constraint Manager
PCB design and layout
PCB design
Constraints
23.1
Constraint Set

BoardSurfers: Leveraging Object Hierarchy for Effective Constraint Management

11 Jul 2024 • 4 minute read

 Allegro X Constraint Manager provides a worksheet-based environment where you define and manage constraints for all the objects in your design. In large, complex designs with various object relations, grouping objects can easily manage constraints. Grouping objects helps to assign constraints to multiple objects at once. However, assigning unique values to individual objects that are part of these group objects requires understanding constraint inheritance and precedence. For instance, constraining multiple Net Groups, which share the same constraints except for one constraint for one of the Net Groups.

Constraining design objects in the Allegro X design environment is a streamlined process. Constraints are organized in a hierarchy, which governs their flow across the objects, ensuring that the expected constraints appear at the appropriate levels in the design.

Constraint Inheritance

Constraints defined for objects at the top level of the object hierarchy are inherited by the lower-level objects, as illustrated in the following table:

 

For example, if you define the MIN_LINE_WIDTH constraint for a Net Class object in the Physical domain, all the objects placed below the Net Class object in the constraint hierarchy—Net Groups, Buses, Differential Pairs, XNets, Nets, Pin Pairs, Region, and Region Class—inherit the new value of the MIN_LINE_WIDTH constraint as well.

In Constraint Manager, assigned values appear in bold blue and inherited values appear in white text (in dark mode, which is the default).

In the illustrated example, when you update the constraint value for the Net Class, POWER_GROUP(10), the value of the MIN_LINE_WIDTH constraint is updated for all the nets under it.

Constraint Precedence

Constraints defined for the objects that are placed at a lower level in the object hierarchy take precedence over the values of the same constraints applied to higher-level objects, as illustrated in the following image:

 

In the following example, you can override the value of the MIN_LINE_WIDTH constraint for a Net object that already has the constraint inherited from a higher-level object in the hierarchy, such as Net Classes or Differential Pairs. The constraint value for all the higher-level objects associated with the updated net remains unchanged.

Constraints for a design must be defined at the highest level of the object hierarchy. This ensures that the constraints are consistent across all the objects in the hierarchy, as all the lower-level objects inherit the constraints. You can update the individual objects that need to be constrained differently.

Constraint Resolution

The Allegro X constraint system adheres to object precedence when resolving constraints. Constraint resolution works differently for constraints, depending on the domain. There are no default values for any electrical constraints in the Electrical domain. You can have unspecified electrical constraints for design objects, but not in the Physical, Spacing, and Same Net Spacing domains. In these domains, physical design objects—clines, shapes, pins, or vias—are considered part of a net or an XNet. Constraint Manager uses the constraint value that is set on a net or XNet object.

If the net or XNet is not constrained directly, it inherits a constraint value from a higher-level object in the constraint hierarchy that includes this net as a member. The higher-level object can be a group object, such as a Match Group, Differential Pair, Bus, or Net Class.

In this way, the Constraint Manager moves one level up to look for a constraint value. It continues this process until it finds a constraint specified on a level that includes the net as a member and uses that constraint value. If no constraint value is specified on the net or on a hierarchy level to which the net belongs, the net inherits the constraint from the design (Dsn).

Conclusion

You can leverage the constraint inheritance and precedence behavior to your advantage by grouping design objects appropriately. This can significantly aid the process of constraining design objects. Instead of defining a consistent property at multiple object levels, if the objects are properly organized in group-objects, you can simply define the constraint at the highest required level and have the rest of the objects inherit the constraint.

Contact Us

For any feedback or any topics you want us to include in our blogs, write to us at pcbbloggers@cadence.com.

Subscribe to stay updated about upcoming blogs. 

About BoardSurfers

The BoardSurfers series provides solutions to the various tasks related to the creation and management of PCB design using the Allegro X platform products. The name and logo of this series are designed to resonate with the vision of making the design and manufacturing tasks enjoyable, just like surfing the waves. Regular, new blog posts by experts cover every aspect of the PCB design process, such as library management, schematic design, constraint management, stackup design, placement, routing, artwork, verification, and much more.


CDNS - RequestDemo

Have a question? Need more information?

Contact Us

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information