Constraint Objects
Virtuoso Space-based Router supports built-in and custom constraints. Many of the Virtuoso Space-based Router built-in constraints are also OpenAccess built-ins because they are defined by OpenAccess. Virtuoso Space-based Router built-in constraints that are not defined by OpenAccess are OpenAccess custom constraints. Virtuoso Space-based Router built-in constraints store values derived from other constraints or are used to control a Virtuoso Space-based Router behavior. Virtuoso Space-based Router custom constraints must be defined by the user and are typically used to save constraints for other tools using the same database.
Constraints can be one of the following types:
- Simple constraints have no specific layer affiliations.
- Layer constraints are associated with a specific layer.
- Layer pair constraints are associated with two layers.
- Layer array constraints are associated with a layer array of three or more layers.
For the names of built-in constraints, grouped by category, see
Some constraints can be associated with a specific layer or layers, and also with specific layer purpose pairs. For more information on these constraints, see
For information on voltage-specific rules and how to use them, see
Custom Constraints Definition
If you want to set a constraint that is not a built-in, you must first define the constraint. Use the
After you define the constraint, use
Constraints Setting
When setting constraint values, in addition to the name of the constraint, the value, and the constraint group to apply it to, you can specify the following:
-
Whether the constraint is hard or soft
A hard constraint must be obeyed. A soft constraint should be obeyed, if possible. - The antenna model (if applicable)
You can specify additional qualifiers for some constraints by setting constraint parameters. You must set the constraint’s parameters immediately prior to setting the constraint value.
To set constraints, use the command appropriate for the constraint type:
- set_constraint sets simple constraints for the design.
- set_layer_constraint sets constraints that apply to individual layers.
- set_layerpair_constraint sets constraints that apply to two layers.
- set_layerarray_constraint sets constraints that apply to three or more layers.
Constraint Values Retrieval
Use the following commands to get constraint values:
- get_constraint returns the value for a simple constraint.
- get_layer_constraint returns the value for a single-layer constraint.
- get_layerpair_constraint returns the value for a double-layer constraint.
- get_layerarray_constraint returns the value for a layer array constraint.
- dump_ctu_constraints outputs all the constraint values from the current Space-based Router and Chip Optimizer database using the Tcl commands for setting the values. Derived and local constraints are included with built-in OA constraints. Options allow you to output to a file, specify the OA namespace, and limit the scope of the data output to a specific constraint or constraint groups.
- dump_oa_constraints outputs the constraint values from the current OA database using the Tcl commands for setting the values. Can optionally be output to a file.
Constraints Removal
Use the
To selectively remove a constraint value, use the appropriate command for the constraint type:
- unset_constraint removes simple constraint values.
- unset_layer_constraint removes single-layer constraint values.
- unset_layerpair_constraint removes double-layer constraint values.
- unset_layerarray_constraint removes layer array constraint values.
Related Topics
Layer-Purpose Pair Constraints
Voltage-Dependent Rule Support
Return to top