• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Digital Implementation
  3. Clock Tree Latency Calculation Difference between reportClockTree...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 90
  • Views 10589
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Clock Tree Latency Calculation Difference between reportClockTree & report_timing

archive
archive over 17 years ago

Clock Tree Latency Calculation Difference between reportClockTree & report_timing.

Hi, ALL:

I found that using SOC Encounter 52 update 5, the clock tree latency report generated by reportClockTree -clkRouteOnly is quite different from  the report_timing command. The detailed scenario is as follow:

1. I use setCTSMode -routeClkNet -useCTSRouteGuide (I didn't type the exact option, just its meaning)
2. Then Report the clock tree, the latency is 1400-1500ps.
3. I then use report_timing to report certain timing path to get certain register clock pin latency.
4. I search the clock tree report generated by reportClockTree, found that the latency is 200ps more than the 'report_timing' result.
5. I use encounter db command & get_timing command to write a script calculating all the register clock pin latency, found the latency is around 1200-1350ps.( my test block has just 1 clock, hoho....)
6. I carefully checked my script & option, nothing strange........

Can anybody tell me why, need help.


Originally posted in cdnusers.org by eminemshow
  • Cancel
Parents
  • archive
    archive over 17 years ago

    The area you're working in is a common area of exploration for sure, I'm glad you raised it for discussion. I'd like to make a few observations here:

    1) When any clock tree synthesis tool reports the latency (while the tree is being built or after the tree has been built), it has to make approximations about the neighboring wires because they haven't been routed yet. It is therefore conceptually difficult to know for sure what the parasitics are going to be, and the latencies reported are therefore approximate. So we can't expect the numbers reported by CTS, or by reportClockTree to align perfectly with with STA especially when the entire design isn't yet detail routed.

    2) As I'm sure you've noticed, "reportClockTree" has 3 options for route estimation: "-preRoute | -clkRouteOnly | -postRoute". -preRoute is intended for a scenario that isn't used much anymore- where the clock net is routed after clock tree build. -clkRouteOnly aligns most closely the estimation that occurs during CTS- where all neighboring signal wires are approximated. I like using this option when I want to analyze or further optimize the clock tree prior to trialRouting the design after CTS. -postRoute should be used whenever the signal nets have been routed whether by trialRoute or NanoRoute.

    3) Further complicating things is the fact that launch clock timing can differ from capture clock timing when your design has "set_timing_derate" -or- any number of smaller effects when you're timing the design with "setAnalysisMode -analysisType onChipVariation". That's important to keep in mind when you're seeking to compare latency between CTS and STA.

    With these challenges in mind, it is of course always possible that you could be hitting a tool limitation associated with some nuance in the design (for example, your clock nets are routed with non-default rules and the CTS isn't extracting those accurately for some reason). Or that you might be able to do some things as a user to guide the tool for better alignment in this area (for example, you could provide a scale factor for the clock nets less than 1 after performing some analysis with the Ostrich parasitic correlation tool shipped with the software). It's difficult to say generally, but I hope these ideas might give you some food for thought.

    Feel free to post back with additional information or questions.

    Thanks,
    Bob


    Originally posted in cdnusers.org by BobD
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • archive
    archive over 17 years ago

    The area you're working in is a common area of exploration for sure, I'm glad you raised it for discussion. I'd like to make a few observations here:

    1) When any clock tree synthesis tool reports the latency (while the tree is being built or after the tree has been built), it has to make approximations about the neighboring wires because they haven't been routed yet. It is therefore conceptually difficult to know for sure what the parasitics are going to be, and the latencies reported are therefore approximate. So we can't expect the numbers reported by CTS, or by reportClockTree to align perfectly with with STA especially when the entire design isn't yet detail routed.

    2) As I'm sure you've noticed, "reportClockTree" has 3 options for route estimation: "-preRoute | -clkRouteOnly | -postRoute". -preRoute is intended for a scenario that isn't used much anymore- where the clock net is routed after clock tree build. -clkRouteOnly aligns most closely the estimation that occurs during CTS- where all neighboring signal wires are approximated. I like using this option when I want to analyze or further optimize the clock tree prior to trialRouting the design after CTS. -postRoute should be used whenever the signal nets have been routed whether by trialRoute or NanoRoute.

    3) Further complicating things is the fact that launch clock timing can differ from capture clock timing when your design has "set_timing_derate" -or- any number of smaller effects when you're timing the design with "setAnalysisMode -analysisType onChipVariation". That's important to keep in mind when you're seeking to compare latency between CTS and STA.

    With these challenges in mind, it is of course always possible that you could be hitting a tool limitation associated with some nuance in the design (for example, your clock nets are routed with non-default rules and the CTS isn't extracting those accurately for some reason). Or that you might be able to do some things as a user to guide the tool for better alignment in this area (for example, you could provide a scale factor for the clock nets less than 1 after performing some analysis with the Ostrich parasitic correlation tool shipped with the software). It's difficult to say generally, but I hope these ideas might give you some food for thought.

    Feel free to post back with additional information or questions.

    Thanks,
    Bob


    Originally posted in cdnusers.org by BobD
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information