set_max_skew (::quartus::sdc_ext)
The following table displays information for the set_max_skew Tcl command:
Tcl Package and Version |
Belongs to ::quartus::sdc_ext 1.0 |
|||
Syntax | set_max_skew [-h | -help] [-long_help] [-fall_from_clock <names> ] [-fall_to_clock <names> ] [-from <names> ] [-from_clock <names> ] [-get_skew_value_from_clock_period <src_clock_period|dst_clock_period|min_clock_period> ] [-rise_from_clock <names> ] [-rise_to_clock <names> ] [-skew_value_multiplier <multiplier> ] [-to <names> ] [-to_clock <names> ] [ <skew> ] | |||
Arguments | -h | -help | Short help | ||
-long_help | Long help with examples and possible return values | |||
-fall_from_clock <names> | Valid source clocks (string patterns are matched using Tcl string matching) | |||
-fall_to_clock <names> | Valid destination clocks (string patterns are matched using Tcl string matching) | |||
-from <names> | Valid sources (string patterns are matched using Tcl string matching) | |||
-from_clock <names> | Valid source clocks (string patterns are matched using Tcl string matching) | |||
-get_skew_value_from_clock_period <src_clock_period|dst_clock_period|min_clock_period> | Compute skew constraint as a multiple of the clock period | |||
-rise_from_clock <names> | Valid source clocks (string patterns are matched using Tcl string matching) | |||
-rise_to_clock <names> | Valid destination clocks (string patterns are matched using Tcl string matching) | |||
-skew_value_multiplier <multiplier> | Value by which the clock period should be multiplied to compute skew requirement | |||
-to <names> | Valid destinations (string patterns are matched using Tcl string matching) | |||
-to_clock <names> | Valid destination clocks (string patterns are matched using Tcl string matching) | |||
<skew> | Required skew | |||
Description |
Use the set_max_skew constraint to perform maximum allowable skew analysis between sets of registers or ports. In order to constrain skew across multiple paths, all such paths must be defined within a single set_max_skew constraint. The set_max_skew timing constraint is not affected by the set_max_delay, set_min_delay, and set_multicycle_path constraints, but is affected by the set_clock_groups -exclusive constraint. Paths between exclusive clocks are not analyzed for skew, and no two paths are compared for skew if their clocks are exclusive to each other. However, paths whose clocks are asynchronous are still analyzed for skew. Legal values for the -from and -to options are collections of clocks, registers, ports, pins, cells or partitions in a design. Applying maximum skew constraints between clocks applies the constraint from all register or ports driven by the clock specified with the -from option to all registers or ports driven by the clock specified with the -to option. If pin names or collections are used, the -from value must be a clock pin and the -to value must be any non-clock input pin to a register. Assignments from clock pins or to and from cells apply to all registers contained in the cell or driven by the clock pin. Similarly, -to and -from partition specifications apply to all registers in the specified partition. Max skew analysis includes data arrival times, clock arrival times, register micro parameters, clock uncertainty, on-die variation and ccpp removal. Use -get_skew_value_from_clock_period to set the skew requirement to be equal to the launching or latching clock period, or whichever of the two has a smaller period. If -skew_value_multiplier is used, the requirement is multiplied by that value. If this option is used, then the positional skew option may not be set. If the set of skew paths is clocked by more than one clock, the Timing Analyzer will use the one with smallest period to compute the skew constraint. When this constraint is used, results of max skew analysis are displayed in the Report Max Skew (report_max_skew) report from the Timing Analyzer. Since skew is defined between two or more paths, no results are displayed if the -from/-from_clock and -to/-to_clock filters satisfy less than two paths. |
|||
Example Usage |
# Constrain the skew on an input port to all registers it feeds set_max_skew -from [get_ports din] 0.200 # Constrain the skew on output bus dout[*] set_max_skew -to [get_ports dout\[*\]] 0.200 # Constrain skew to be less than 90% of the period of any clock in the source # register set set_max_skew -to [get_keepers inst1|*] -get_skew_value_from_clock_period src_clock_period -skew_value_multiplier 0.900 # Report the results of max skew assignments report_max_skew -panel_name "Report Max Skew" -npaths 10 -detail path_only |
|||
Return Value | Code Name | Code | String Return | |
TCL_OK | 0 | INFO: Operation successful | ||
TCL_ERROR | 1 | ERROR: Timing netlist does not exist. Use create_timing_netlist to create a timing netlist. | ||
TCL_ERROR | 1 | ERROR: <string> is not a valid argument for option -exclude. Available argument is to_clock | ||
TCL_ERROR | 1 | ERROR: Following options are missing required arguments: <string> | ||
TCL_ERROR | 1 | ERROR: The option -skew_value_multiplier must be a non-zero floating point number | ||
TCL_ERROR | 1 | ERROR: The option -skew_value_multiplier may only be used if -get_skew_value_from_clock_period is used |