Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

current_design(2)

find(2)

report_timing_requirements(2)

reset_design(2)

reset_path(2)

set_false_path(2)

set_max_delay(2)

set_min_delay(2)



Command Reference     2.  Synopsys Commands     set_multicycle_path



NAME
          set_multicycle_path
                         Modifies the single-cycle timing
                         relationship of a constrained path.

SYNTAX
          int set_multicycle_path path_multiplier [-setup |
          -hold] [-rise | -fall]
                 [-start | -end] [-from from_list] [-to
                 to_list][-reset_path]

         int path_multiplier
         list from_list
         list to_list


ARGUMENTS
          path_multiplier
                         Specifies the number of cycles that the
                         data path must have for setup or hold
                         relative to the startpoint or endpoint
                         clock before data is required at the
                         endpoint.  If -setup is used, this value
                         is applied to setup path calculations.
                         If -hold is used, this value is applied
                         to hold path calculations.  If -setup or
                         -hold is not specified, path_multiplier
                         is used for setup, and 0 is used for
                         hold, signifying that the hold relation
                         begins one cycle after the setup edge at
                         the start clock.


          -hold          Specifies that path_multiplier is used
                         for hold calculations.


          -setup         Specifies that path_multiplier is used
                         for setup calculations.


          -rise          Specifies that rising path delays are
                         affected by path_multiplier.  The
                         default is that both rising and falling
                         delays are affected.  Rise refers to a
                         rising value at the path endpoint.


          -fall          Specifies that falling path delays are
                         affected by path_multiplier.  The
                         default is that both rising and falling
                         delays are affected.  Fall refers to a



V3.1      Synopsys Inc. 1988-1994. All rights reserved.       2-1





set_multicycle_path   2.  Synopsys Commands       Command Reference



                         falling value at the path endpoint.


          -start | -end  Specifies whether the multicycle
                         information is relative to the period of
                         the start clock or end clock.  These
                         options are only needed for
                         multifrequency designs; otherwise start
                         and end are equivalent.  The start clock
                         is the clock source related to the
                         register or primary input at the path
                         startpoint.  The end clock is the clock
                         source related to the register or
                         primary output at the path endpoint.
                         The default is to move the setup check
                         relative to the end clock, and the hold
                         check relative to the start clock.  A
                         setup multiplier of 2 with -end moves
                         the relation forward one cycle of the
                         end clock.  A setup multiplier of 2 with
                         -start moves the relation backward one
                         cycle of the start clock.  A hold
                         multiplier of 1 with -start moves the
                         relation forward one cycle of the start
                         clock.  A hold multiplier of 1 with -end
                         moves the relation backward one cycle of
                         the end clock.


          -reset_path    Removes existing point-to-point
                         exception information on the specified
                         paths.  If used with -to only, all paths
                         leading to the specified endpoints are
                         reset. If used with -from only, all
                         paths leading from the specified
                         startpoints are reset.  If used with
                         -from and -to, only paths between those
                         points are reset.  Only information of
                         the same rise/fall setup/hold type is
                         reset.  This is equivalent to using the
                         reset_path command with similar
                         arguments before the set_multicycle_path
                         is issued.


          -from from_list
                         Specifies names of clocks, ports, pins
                         or cells to use to find path
                         startpoints.  If a specified object is a
                         clock, all registers and primary inputs
                         related to that clock are used as path
                         startpoints.  If a cell is specified,



2-2       Synopsys Inc. 1988-1994. All rights reserved.      V3.1





Command Reference     2.  Synopsys Commands     set_multicycle_path



                         one path startpoint on that cell is
                         affected.


          -to to_list    Specifies names of clocks, ports, pins
                         or cells to use to find path endpoints.
                         If a specified object is a clock, all
                         registers and primary outputs related to
                         that clock are used as path endpoints.
                         If a cell is specified, one path
                         endpoint on that cell is affected.


DESCRIPTION
          Specifies that designated timing paths in the current
          design have non-default setup or hold relations.  By
          default, setup is constrained to one cycle.  The active
          clock edge on the destination register that follows the
          active edge on the source (startpoint) register is the
          edge used for setup checks.  By default, hold is
          constrained to zero cycles.  In other words, it
          implicitly describes a min_delay requirement equal to
          the difference of end edge minus start edge, where
          start edge is one cycle after the setup start edge, and
          end edge is the same as the setup end edge. Setting
          path_multiplier for setup moves the setup check in time
          by an integer number of cycles.  For example,
          specifying path_multiplier of 2 for setup implies a 2
          cycle data path.

          Most often, the setup check will be moved relative to
          the end clock.  This move changes the data latch time
          at the path endpoint.  In multi-frequency designs, use
          set_multicycle_path -setup -start to move the data
          launch time backward.  Use set_multicycle_path -hold
          -end to move the hold relation relative to the end
          clock.

          If -setup or -hold is not specified, the setup relation
          is set to path_multiplier and the hold relation is set
          to 0.

          If -setup is specified, the setup multiplier is set to
          path_multiplier.  The hold multiplier is unaffected.

          If -hold is specified, the hold multiplier is set to
          path_multiplier.  The setup multiplier is unaffected.

          There are separate setup and hold multipliers for rise
          and fall.  In most cases, these will be set to the same
          value.  -rise or -fall can be used to apply different
          values.



V3.1      Synopsys Inc. 1988-1994. All rights reserved.       2-3





set_multicycle_path   2.  Synopsys Commands       Command Reference



          set_multicycle_path is a point-to-point timing
          exception command.  This means it is used to override
          the default single-cycle timing relationship for one or
          more timing paths.  Other point-to-point timing
          exception commands include set_max_delay,
          set_min_delay, and set_false_path.  False path
          information always takes precedence over multicycle
          path information.  A specific set_max_delay or
          set_min_delay command will override a general
          set_multicycle_path command.

          The more general commands apply to more than one path.
          This means either -from or -to is used (but not both),
          or clocks are used in the specification.  Within a
          given point-to-point exception command, the more
          specific command will override the more general.
          Following is a list of commands from highest to lowest
          precedence (more specific to more general):

            1. set_multicycle_path -from pin -to pin
            2. set_multicycle_path -from clock -to pin
            3. set_multicycle_path -from pin -to clock
            4. set_multicycle_path -from pin
            5. set_multicycle_path -to pin
            6. set_multicycle_path -from clock -to clock
            7. set_multicycle_path -from clock
            8. set_multicycle_path -to clock

          To undo a set_multicycle_path command, use reset_path
          or reset_design.

          Use set_false_path to disable setup or hold
          calculations for paths.

          Use report_timing_requirements to list the point-to-
          point exceptions on a design.


EXAMPLES
          The following example sets all paths between latch1b
          and latch2d to 2 cycle paths for setup.  Hold will be
          measured at the previous edge of the clock at latch2d.


                         dc_shell> set_multicycle_path 2 -from {
                         latch1b } -to { latch2d }


          This example moves the hold check backward one edge of
          the start clock.





2-4       Synopsys Inc. 1988-1994. All rights reserved.      V3.1





Command Reference     2.  Synopsys Commands     set_multicycle_path



                         dc_shell> set_multicycle_path -1 -from {
                         latch1b } -to { latch2d }


          This is an example of a two-phase level-sensitive
          design, where the designer expects paths from phi1 to
          phi1 to be zero cycles.


                         dc_shell> set_multicycle_path 0 -from
                         phi1 -to phi1


          This example uses -start to specify a 3-cycle path
          relative to the clock at the path startpoint.  Clock
          sources are specified, affecting all sequential
          elements clocked by that clock, or ports with input or
          output delay relative to that clock.


                         dc_shell> set_multicycle_path 3 -start -from { clk50mhz } -to { clk10mhz }


          This example sets all rising paths to ff12/D to 2
          cycles, but falling paths to 1 cycle.


                         dc_shell> set_multicycle_path 2 -rise
                         -to { ff12/D }

                         dc_shell> set_multicycle_path 1 -fall
                         -to { ff12/D }


          This multifrequency example shows how to shift the hold
          relation at the end clock for clk40 to clk20 paths.
          The default setup relation is from the edge of clk40 at
          0 units to the edge of clk20 at 20 units.  Therefore,
          the default hold relation is from the following edge of
          clk40 at 40 units to the same edge of clk20 as for
          setup (20 units).  This is effectively a hold relation
          equivalent to "set_min_delay -20 -from clk40 -to
          clk20".  To override this and move the end edge forward
          to the edge of clk20 at 40 units, use a hold multiplier
          of -1 at the end clock.  This effectively creates a
          min_delay requirement of 0 units for paths between
          these clocks.


                         dc_shell> create_clock -period 40
                         -waveform {0 20} clk40




V3.1      Synopsys Inc. 1988-1994. All rights reserved.       2-5





set_multicycle_path   2.  Synopsys Commands       Command Reference



                         dc_shell> create_clock -period 20
                         -waveform {0 10} clk20

                         dc_shell> set_multicycle_path -1 -hold
                         -end -from clk40 -to clk20



SEE ALSO
          current_design(2), find(2),
          report_timing_requirements(2), reset_design(2),
          reset_path(2), set_false_path(2), set_max_delay(2),
          set_min_delay(2).










































2-6       Synopsys Inc. 1988-1994. All rights reserved.      V3.1



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026