NAME
group_path
Groups a set of paths for cost function calculations.
ARGUMENTS
-weight weight_value
Specifies a cost function weight for this group. The
weight_value must be a number between 0.0 and 100.0. The
default is 1.0. A weight of 0.0 eliminates the paths in this
group from cost function calculations. Do not use very small
values (for example, 0.0001); smaller values can prevent compile
from implementing small improvements to the design. If you
specify -weight when you add members to an existing group, the
new weight for the group is used.
-critical_range range_value
Specifies a margin of delay for group_name during optimization.
The range_value must be positive or 0.0. If you do not specify
a range_value for a group, the default is the value set with the
set_critical_range command (the default setting is 0.0). A
range_value of 0.0 means that only the most critical paths (the
ones with the worst violation) are optimized. If you specify a
nonzero range_value, other near-critical violating paths (one
per endpoint) within that amount of the worst path are also
optimized if possible. If more than one critical path to an
endpoint must be optimized, use a separate group_path command
for each distinct critical path to that endpoint. To force com-
pile to optimize all violating paths, use a very large
range_value (larger than any expected path violations).
-default
Specifies that endpoints or paths be moved to the default group
and removed from the current group. You must specify -default
unless you use -name; -name and -default are mutually exclusive.
-name group_name
Specifies a name for the group. If a group with this name
already exists, the paths or endpoints are added to that group.
Otherwise, a new group is created and named group_name. You
must specify -name unless you use -default; -name and -default
are mutually exclusive.
-from from_list
Specifies a list of names of clocks, ports, or pins that specify
path startpoints. If a clock is given, all path startpoints
related to that clock are implicitly included. This includes
flip-flops in the transitive fanout of the clocks source pin or
port, and ports that have input delay related to the clock.
-rise_from rise_from_list
Specifies a list the same as the -from option, except that the
path must rise from the objects specified. If a clock object is
specified, this option selects startpoints clocked by the named
clock, but only the paths launched by rising edge of the clock
at the clock source, taking into account any logical inversions
along the clock path. You can use only one of -from,
-rise_from, and -fall_from.
-fall_from fall_from_list
Specifies a list the as the -from option, except that the path
must fall from the objects specified. If a clock object is
specified, this option selects startpoints clocked by the named
clock, but only the paths launched by falling edge of the clock
at the clock source, taking into account any logical inversions
along the clock path. You can use only one of -from,
-rise_from, and -fall_from.
-through through_list
Specifies a list of path throughpoints (port, pin, or leaf cell
names) of the current design. The path grouping applies only to
paths that pass through one of the points in the through_list.
If more than one object is included, the objects must be
enclosed either in quotation marks ("") or in braces ({}). If
the -through option is specified multiple times, the group path
setting applies to paths that pass through a member of each
through_list in the order the lists were given. In other words,
the path must first pass through a member of the first
through_list, then through a member of the second list, and so
on for every specified through_list. If the -through option is
used in combination with the -from or -to options, the group
path applies only if the -from or -to conditions are satisfied
and the -through conditions are satisfied.
-rise_through rise_through_list
Specifies a list the same as the -through option, but applies
only to paths with a rising transition at the specified objects.
You can specify -rise_through more than one time in a single
command invocation, as with the -through option.
-fall_through fall_through_list
Specifies a list the same as the -through option, but applies
only to paths with a falling transition at the specified
objects. You can specify -fall_through more than one time in a
single command invocation as with the -through option.
-to to_list
Specifies a list of names of clocks, ports, or pins that specify
path endpoints. If a clock is given, all path endpoints related
to that clock are implicitly included. This includes flip-flops
in the transitive fanout of the clocks source pin or port, and
ports that have output delay related to the clock.
-rise_to rise_to_list
Specifies a list the same as the -to option, but applies only to
paths rising at the endpoint. If a clock object is specified,
this option selects endpoints clocked by the named clock, but
only the paths captured by rising edge of the clock at clock
source, taking into account any logical inversions along the
clock path. You can use only one of -to, -rise_to, and
-fall_to.
-fall_to fall_to_list
Specifies a list the same as the -to option, but applies only to
paths falling at the endpoint. If a clock object is specified,
this option selects endpoints clocked by the named clock, but
only the paths launched by falling edge of the clock at the
clock source, taking into account any logical inversions along
the clock path. You can use only one of -to, -rise_to, and
-fall_to.
-comment comment_string
Allows the command to accept a comment string. The tool honors
the annotation and preserves it with the SDC object so that the
exact string is written out when the constraint is written out
when you use the write_sdc or write_script command. The comment
remains intact through the synthesis, place-and-route, and tim-
ing-analysis flows.
-priority priority_level
Assigns a priority to the command to resolve conflicting path
selections between different group_path commands. By default,
different group_path commands follow ordinary rules of priority
to resolve conflicting path selections. For example, a command
using -from and -to to select paths has priority over a con-
flicting command that selects a subset of those paths using
-through, so the latter command is ignored for the paths that
could be in either. By setting a higher priority in the command
using the -through option, its path selection is honored, over-
riding the usual order of priority on paths in the intersection
of the two groups. If unspecified, the priority is 0. You can
set the priority for a group_path command to any integer 0 or
greater.
DESCRIPTION
Groups a set of paths or endpoints for cost function calculations. The
delay cost function is the sum of all groups (weight * violation),
where violation is the amount for which setup was violated for all
paths within the group. If there is no violation within a group, its
cost is zero. Groups enable you to specify a set of paths to optimize
even though there might be larger violations in another group. When
endpoints are specified, all paths leading to those endpoints are
grouped.
If a clock is specified in the from_list or to_list, all endpoints
related to that clock are included in the group. The create_clock com-
mand automatically creates a group for a new clock with a weight of 1.0
and named the same as the clock name.
The weight of the default group is 1.0. If weight_value is not speci-
fied for a new group, the default is 1.0.
To undo group_path, use reset_design or group_path -default.
To list the path groups that are defined, use report_path_group. To
show the maximum delay cost for each path group, use report_constraint.
Multicorner-Multimode Support
This command uses information from the current scenario only.
EXAMPLES
The following example groups all endpoints clocked by CLK1A or CLK1B
into a new group called group1 that has a weight = 2.0:
prompt> group_path -name "group1" -weight 2.0 -to {CLK1A CLK1B}
The following example adds OUT1 and ff34/D to the existing path group
named ADDR:
prompt> group_path -name "ADDR" -to {OUT1 ff34/D}
The following example removes OUT1 and CLK2 from existing groups and
places them in the default group:
prompt> group_path -default -to {OUT1 CLK2}
This command adds all paths that first pass through either u1/Z or u2/Z
and then pass through u5/Z or u6/Z into the group named blue:
prompt> group_path -name blue \
-through {u1/Z u2/Z} -through {u5/Z u6/Z}
The following example groups all paths from inputs I1 and I2 to
outputs O5 and O7 into a group named serious that has a weight of
10.0:
prompt> group_path -name serious -weight 10.0 \
-from {I1 I2} -to {O5 O7}
The following example groups all endpoints clocked by CLK into a
group with a critical range of 0.5:
prompt> group_path -name CLK -critical_range 0.5 -to CLK
The following example uses a large critical range value to optimize
all paths. For example, assume that the worst violation is expected
to be 100 units. Setting a critical range value larger than the
worst violation causes optimization to speed up all paths if the
transformations do not increase the worst violation (that is, make
the worse path slower) for that group. In this example, the criti-
cal range value is set higher than the worst expected violation to
ensure that all violating paths are considered during optimization:
prompt> group_path -name CLK -critical_range 1000.0 -to CLK