Pd articles


  Q1) In this illustration Path A, Path C, Path D, and Path E are violating the timing constraint. Only Path B meets the timing.
Now, if there are enough timing margins available for borrowing, can the useful skew algorithm in CCD utilize the positive slack in Path B, as shown in the illustration, to meet the timing for all the paths from Path A to Path E?
        Does the useful skew technique in CCD or Clock Tree Synthesis (CTS) support multi-stage skewing or slack borrowing to meet timing?
        In this case, Path E is three stages away from Path B. Can CCD still skew as shown above so that it utilizes the positive slack in Path B to meet timing for Path E?  

Q2) If multi-stage skew is supported, as shown in the illustration, is there a maximum multi-stage limit set in the tool to perform this skewing and meet the timing constraint?
   Is there a limit to the number of stages in which the tool can perform multi-stage skewing to meet the timing in other stages?



Answer:

Yes CCD performs multi-stage slack borrowing as long as there is scope to bring forward the launch side flops,
or postpone (postponing should be always doable) the capture side flops.

There is no limit for the stage borrowing.
The algorithm can go until the end of the chain to borrow the slack and meet a particular stage timing. There are no limits for borrowing the multi-stage slack.
Recommended Articles
The Number of Register Levels Considered for Useful Skew Calculation During Concurrent Clock and Data (CC
Answer:

Yes CCD performs multi-stage slack borrowing as long as there is scope to bring forward the launch side flops,
or postpone (postponing should be always doable) the capture side flops.

There is no limit for the stage borrowing.
The algorithm can go until the end of the chain to borrow the slack and meet a particular stage timing. There are no limits for borrowing the multi-stage slack.




Title: How to Freeze the Routing of All Clock Nets?
Summary: This article describes the process to freeze the routing of all clock nets.
Description: Question: 

After the clock tree synthesis, even after running the mark_clock_trees -freeze_routing command to freeze the routing of all the clock nets,
the physical_status of some clock nets is not set to lock. What is the reason for this?
 
Answer:
You must check if the physical_status of the nets is set to minor_change before running the mark_clock_trees -freeze_routing.
If the physical_status of the nets is already set to minor_change, then the physical_status of these nets is retained as minor_change even after running the mark_clock_trees -freeze_routing command.
 
To freeze the routing of those clock nets, set the physical_status of the specified nets to locked by using the set_attribute command after running the mark_clock_trees -freeze_routing command.
 
mark_clock_trees -freeze_routing
set_attribute [get_nets -hierarchical -filter "net_type == clock && physical_status== minor_change"] physical_status locked
Recommended Articles
How to enable Zroute to fix antenna violation on freeze clock nets after routing
How to Get a Collection of Clock Nets Without Nondefault Routing Rules

Comments