Group_path

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