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

set_constraint_group

set_constraint_group 
[-net s_netName
| -net_group s_netGroupName 
| -term s_termName {-instance s_instanceName 
     | [-lib s_libName -cell s_cellName -view s_viewName]}
| -set d_setObj 
| -area_boundary s_boundaryName]
{[-routes]
[-taper_routes]
[-default [s_routeSpecName]] 
[-implicit [s_routeSpecName]] 
[-taper [s_routeSpecName]] 
[-inputtaper [s_routeSpecName]] 
[-outputtaper [s_routeSpecName]] 
[-shield [s_routeSpecName]] 
[-reflexive [s_routeSpecName]] 
[-transreflexive [s_routeSpecName]] 
[-interchild [s_routeSpecName]]
[-nearfarend [s_routeSpecName]]}

Description

Assigns constraint groups to the specified constraint group types (Default, Implicit, Taper, InputTaper, OutputTaper, Shielding, Reflexive, TransReflexive, Interchild, NearFarEnd) for the multispec of a net, a net group, a terminal, a set of objects, or an area boundary. By default, the assignment is made to the default multispec. If route spec names are not given with the constraint group type arguments, the current assignments for the respective constraint group types are removed, rather than set.

Arguments

-area_boundary s_boundaryName

  

Specifies the name of an area boundary to assign the constraint group(s) to, or remove the assignment from. If neither -net, -net_group, -set, nor -area_boundary is given, then the assignments are made to the default multispec.

-default [s_routeSpecName]

  

Assigns the named constraint group as the Default constraint group for the given net, net group, set of objects, or area boundary. If this argument is given without a route spec name, then the Default constraint group assignment is removed, rather than set.

-implicit [s_routeSpecName]

  

Assigns the named constraint group as the Implicit constraint group. If this argument is given without a route spec name, then the Implicit constraint group assignment is removed, rather than set.

-inputtaper [s_routeSpecName]

  

Assigns the named constraint group as the InputTaper constraint group. If this argument is given without a route spec name, then the OpenAccess InputTaper constraint group assignment is removed, rather than set.

-instance s_instanceName

  

Specifies the name of the instance to which the terminal (-term) belongs.

-interchild [s_routeSpecName]

  

Assigns the named constraint group as the Interchild constraint group. If this argument is given without a route spec name, then the Interchild constraint group assignment is removed, rather than set.

-lib s_libName -cell s_cellName -view s_viewName

  

Names the library, cell, and view to which the terminal belongs.

-net s_netName

  

Specifies the name of the net to assign the constraint group(s) to, or remove the assignment from. If neither -net, -net_group, -set, nor -area_boundary is given, then the assignments are made to the default multispec.

-net_group s_netGroupName

  

Specifies the name of the net group to assign the constraint group(s) to, or remove the assignment from. If neither -net, -net_group, -set, nor -area_boundary is given, then the assignments are made to the default multispec.

-outputtaper [s_routeSpecName]

  

Assigns the named constraint group as the OutputTaper constraint group. If this argument is given without a route spec name, then the OutputTaper constraint group assignment is removed, rather than set.

-reflexive [s_routeSpecName]

  

Assigns the named constraint group as the Reflexive constraint group. If this argument is given without a route spec name, then the Reflexive constraint group assignment is removed, rather than set.

-routes

Assigns the specified non-taper constraint groups to all the non-taper routes on the specified nets.

-set d_setObj

Specifies the set identifier for the set of objects to assign the constraint group(s) to, or remove the assignment from. Applies only to nets, routes, instTerms and area boundaries in the set; all other objects are ignored. If neither -net, -net_group, -set, nor -area_boundary is given, then the assignments are made to the default multispec.

-shield [s_routeSpecName]

  

Assigns the named constraint group as the Shielding constraint group. If this argument is given without a route spec name, then the Shielding constraint group assignment is removed, rather than set.

-taper [s_routeSpecName]

  

Assigns the named constraint group as the Taper constraint group. If this argument is given without a route spec name, then the Taper constraint group assignment is removed, rather than set.

-taper_routes

  

Assigns the specified taper constraint groups to all taper routes on the specified nets.

-term s_termName

  

Name of the terminal to which the constraint group will be assigned. Must be given with either -instance or -lib -cell -view.

-transreflexive [s_routeSpecName]

  

Assigns the named constraint group as the TransReflexive constraint group. If this argument is given without a route spec name, then the TransReflexive constraint group assignment is removed, rather than set.

-nearfarend [s_routeSpecName]

  

Assigns the named constraint group as the NearFarEnd constraint group for the given nets. The NearFarEnd constraint group specifies constraints that can override the default or implicit rulespec settings for a percentage of the net, based on the nearFarPercentage constraint setting. If this argument is given without a route spec name, then the NearFarEnd constraint group assignment is removed, rather than set.

Examples

Setting a Global Taper Constraint Group

By default, the global net default route spec is used for tapers. The following commands create a new global taper constraint group for pins.

# create new constraint group all_taper
create_constraint_group -name all_taper
# assign the new constraint group as the taper constraint group in the default # multispec
set_constraint_group -taper all_taper
# set constraints for tapering set_layer_constraint -group all_taper -layer m1 -constraint minWidth \ -hardness hard -Value 0.17 set_layer_constraint -group all_taper -layer m1 -constraint minSpacing \ -hardness hard -Value 0.10 set_layer_constraint -group all_taper -layer m2 -constraint minWidth \ -hardness hard -Value 0.17 set_layer_constraint -group all_taper -layer m2 -constraint minSpacing \ -hardness hard -Value 0.10 set_layer_constraint -group all_taper -layer m3 -constraint minWidth \ -hardness hard -Value 0.17 set_layer_constraint -group all_taper -layer m3 -constraint minSpacing \ -hardness hard -Value 0.10 # set the oaTaperHalo set_constraint -group all_taper -constraint oaTaperHalo -Value 5 -hardness hard

Setting Input and Output Taper Constraint Groups for Nets

The following commands create unique taper constraint groups for input and output pins of nets, each with different maxTaperWindow constraints.

# start by creating the output taper constraint group 
create_constraint_group -name output_taper
# get the set of nets to apply the taper to set inoutTaperNets [find_net -name {ionet*}] # set output_taper as the outputtaper constraint group set_constraint_group -set $inoutTaperNets -outputtaper output_taper # set constraints for tapering set_constraint -group output_taper -constraint maxTaperWindow -Value 10 set_layer_constraint -group output_taper -layer m1 -constraint minWidth \ -hardness hard -Value 0.17 set_layer_constraint -group output_taper -layer m1 -constraint minSpacing \ -hardness hard -Value 0.10 set_layer_constraint -group output_taper -layer m2 -constraint minWidth \ -hardness hard -Value 0.17 set_layer_constraint -group output_taper -layer m2 -constraint minSpacing \ -hardness hard -Value 0.10 set_layer_constraint -group output_taper -layer m3 -constraint minWidth \ -hardness hard -Value 0.17 set_layer_constraint -group output_taper -layer m3 -constraint minSpacing \ -hardness hard -Value 0.10 # next create the input taper constraint group by copying from the output_taper copy_constraint -group output_taper -to_group input_taper # set input_taper as the inputtaper constraint group set_constraint_group -set $inoutTaperNets -inputtaper input_taper # change the maxTaperWIndow for the inputtaper constraint group set_constraint -group input_taper -constraint maxTaperWindow -Value 5

Setting a Unique Taper Constraint Group for an InstTerm

The following commands create a taper constraint group for a specific instTerm.

# next create the term taper constraint group 
create_constraint_group -name term_taper
# get the set containing the instTerm set instTermdout [find_inst_term -name dout -instance_name INST_s22] # assign the constraint group directly to instTerm. set_constraint_group -set $instTermdout -taper term_taper
# set constraints for tapering
set_constraint -group term_taper -constraint maxTaperWindow -Value 5
set_constraint -group term_taper -constraint minTaperWindow -Value 2
set_layer_constraint -group term_taper -layer m1 -constraint minWidth \
-hardness hard -Value 0.13
set_layer_constraint -group term_taper -layer m1 -constraint minSpacing \
-hardness hard -Value 0.10
set_layer_constraint -group term_taper -layer m2 -constraint minWidth \
-hardness hard -Value 0.13
set_layer_constraint -group term_taper -layer m2 -constraint minSpacing \
-hardness hard -Value 0.10
set_layer_constraint -group term_taper -layer m3 -constraint minWidth \
-hardness hard -Value 0.13
set_layer_constraint -group term_taper -layer m3 -constraint minSpacing \
-hardness hard -Value 0.10

Related Topics

assign_constraint_group

unassign_constraint_group


Return to top
 ⠀
X