Monday, November 30, 2015

Using the Useful Skew Technique

The useful skew technique improves timing QoR by adjusting the clock arrival times to take advantage of positive slack in the network. Use the skew_opt cmd to automatically perform useful skew analysis and generate the sueful skew constraints.

Skew_opt Details
By default, the skew_opt cmd performs the follwoing tasks:
1) Analyzes the design to determine which paths can be used for useful skew.
ICC looks for paths with positive slack where the slack could be restributed (by adjusting the clock latencies) along the input-to-output paths to improve the overrall design timing.

By default, ICC eveluates only the setup constraints. To consider both setup and hold constraints, specify the -hold option. You can also tighten the setup and hold constraints by specifying the
-setup_margin and -hold_margin options, respectively.

ICC does not adjust the latency on the follwoing types of paths:
1. Paths that loop from a register to itself.
2. Paths that contain level-sensitive latches
3. Combinational paths from in input port to an output port.
4. Paths within interface logic models
Note:
ICC does not adjust the latency on a nonstop pin.  For paths that start or end at nonstop pins ( either implicit or explicit), ICC will only adjust the latency at the other endpoints or startpoints.

By default, there is no limit to the amount of latency adjustment that can be made. To limit the amount of latency adjustment, specify the -adjustment_limit option. To further limit the amount the latency can be decreased, specify the -decrease_factor option.

To disable this analysis and use the existing clock latencies, specify the -no_optimization option.
- Determines the interclock relationships in the design.
ICC analyzes the interclock relationships in the design and uses this analysis to define the interclock delay balancing groups.
- Generates a script file that is used to adjust the clock latencies and set the interclock delay balancing constraints.
The script contains set_clock_latency and set_clock_tree_exceptions -float cmds to adjust the clock latencies and set_inter_clock_delay_options cmds to define the interclock delay balancing groups.
By default, a script is generated if any latency adjustments are identified. If you want to generate a script only if the worst negative slack (WNS) improves by a certain amount, specify the
-improvement_threshold option.
By default, the generated script file is named skew_opt.tcl. To use another file name, specify the
-output option.

- Sources the generated script file to apply the clock latency adjustments and interclock delay balancing constraints.
You can disable sourcing of some of the cmds in the generated script, or of the entire generated script.
     1) To disable sourcing of the set_clock_latency cmds, set the skew_opt_skip_ideal_clocks variable to true before running the skew_opt.
     2)To disable sourcing of the set_clock_tree_exceptions -float cmds, set the skew_opt_skip_propagated_clocks variable to true before running skew_opt.
     3) To disable sourcing of the set_inter_clock_delay_options cmds, set the skew_opt_skip_clock_balancing variable to true before running skew_opt.
     4) To disable sourcing of the entire script, specify the -no_auto_source option when you run skew_opt.





No comments:

Post a Comment