Steps To Root Cause Clock Latency - Insertion Delay QOR Post CCopt CTS
Steps To Root Cause Clock Latency - Insertion Delay QOR Post CCopt CTS
Steps To Root Cause Clock Latency - Insertion Delay QOR Post CCopt CTS
Advance
All Content Start your searc
(/apex/homePage?
returnParam=true)
Steps to root cause clock latency / insertion delay QOR post View Attachments | i
Views
CCopt CTS
677
Like
How To...
2
Following "How To" are covered in this article:
1. Grep commands to fetch the Clock QOR each sub stage wise from the CCOpt Log
2. Find out the longest clock ID/latency path
3. Highlight top worst clock paths
4. Find out the geometrically farthest sink
5. Find out the stage based delay for a particular clock path
FEEDBACK
6. Find out the NDR and the layer adherence for a particular clock path
Answer
To debug the clock latency qor, a user needs to find in which substage there is a jump in the Clock
latency.
Following parameters will provide the substage information and the clock QOR values at those sub-
stages:
Fetching the clock DAG will help to understand the substage, cell count and area of
clock tree network
Fetching the “Primary reporting skew group” pattern will help user to get the
Clock QOR for that specific stage.
Use the following unix command to generate the above information :grep -E -A2 "Clock
DAG|Primary reporting" <LogFileName> | grep -v "\-\-"
The grep pattern may need slight modification per tool version, however, the same keywords can be
grepped.
Output:
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000009MolBUAS&pageName=ArticleContent 1/8
10/13/2019 Steps to root cause clock latency / insertion delay QOR post CCopt CTS
If the user finds out that the target insertion delay/latency is not met at clustering stage, then
he needs to debug the max clock ID path to understand the delay numbers, placement topology
and route topology. Analyzing these parameters helps to assess if there is any scope of
improvement to achieve the desired insertion delay/latency.
Incase user wants to stop CTS at different intermediate stages of clock implementation for debugging
purpose, he can refer to the below article:
How to stop CCOpt-CTS at different stages for debugging
Below command dumps the longest clock ID (max) path of a particular skew group:
Legacy: get_ccopt_skew_group_path -skew_group <skew_group_name> -longest
Common UI: get skew group path -skew group <skew group name> -longest
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000009MolBUAS&pageName=ArticleContent 2/8
10/13/2019 Steps to root cause clock latency / insertion delay QOR post CCopt CTS
Common UI: get_skew_group_path skew_group <skew_group_name> longest
Note: “ctd_win” command is a prerequisite command which needs to run once before executing the
ctd_trace command.
Clustering stage will only add clock buffers/inverters to fix the DRV violations and it will not add any
buffers/inverters in the clock network to balance the clock tree.
However, tool will try to have more common path so that there will be less on chip variations and due to
this sometimes the max path can have some loops and detours. Hence it is recommended to look at a
few more top paths to determine the longest path seen by the tool.
Attached with this article are two scripts (zipped) - one for legacy mode and another for CUI mode,
which contain useful scripts to help debug the clock latency/insertion delay problems.
Usage:
source highlighting worst ID paths tcl
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000009MolBUAS&pageName=ArticleContent 3/8
10/13/2019 Steps to root cause clock latency / insertion delay QOR post CCopt CTS
source highlighting_worst_ID_paths.tcl
highlightingWorstIDpaths -skew_group <skewGroupName> -number_of_paths
<value>
Example:
source highlighting_worst_ID_paths.tcl
highlightingWorstIDpaths -skew_group my_clk/functional_func_slow_max -
number_of_paths 10
Output:
Fig 2: Snippet displaying top 10 worst Clock ID paths highlighted in the design
Usage:
source finding_geometrically_farthest_sinks.tcl
findingFarthestSink -in_clock_tree <clock_tree_name> -root <Port/Pin Name> -
skew_group <skewGroupName>
Example:
source finding_geometrically_farthest_sinks.tcl
findingFarthestSink -in_clock_tree my_clk -root clk -skew_group
my_clk/functional_func_slow_max
Output:
proc0/cmem0/dtags0/u0/id0/CK1 956.13
Output of the script will trace the farthest sink from the root in the gui and will print the geometrically
farthest sink and the Manhattan distance of the sink pin from the root.
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000009MolBUAS&pageName=ArticleContent 4/8
10/13/2019 Steps to root cause clock latency / insertion delay QOR post CCopt CTS
Fig 3: Highlighting the geometrically farthest sink in the full cts run
Usually the geometrically farthest path should not be detoured.However, if the path is detoured then
user can check the below reasons for detouring:
source clock_path_based_stage_delay.tcl
stageDelaywithCellList -skew_group <skew_group_name> -sink <sinkName>
Example:
source clock_path_based_stage_delay.tcl
stageDelaywithCellList -skew_group my_clk/functional_func_slow_max -sink
proc0/rf0/u0/u1/rfd_reg_119_28/DFF/CK
Usage:
source calculate_path_net_length_layer_wise.tcl
calculatePathNetLengthLayerWise -skew_group <skewGroupName> -sink <sinkName>
Example:
source calculate_path_net_length_layer_wise.tcl
calculatePathNetLengthLayerWise -skew_group my_clk/functional_func_slow_max
-sink proc0/rf0/u0/u0/rfd_reg_75_25/DFF/C
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000009MolBUAS&pageName=ArticleContent 6/8
10/13/2019 Steps to root cause clock latency / insertion delay QOR post CCopt CTS
Attachments:
CUI_Scripts.zip (/sfc/servlet.shepherd/version/download/0680V000005rEgpQAE)
Legacy_Scripts.zip (/sfc/servlet.shepherd/version/download/0680V000005rEguQAE)
Related Solutions:
How to evaluate the QOR of flexible H-Tree and a case study of comparison between single source
v/s multi-source CTS
(/apex/ArticleAttachmentPortal?id=a1O0V0000091CfsUAE&pageName=ArticleContent)
Script to determine the metal layer adherence on all types of clock nets
(/apex/ArticleAttachmentPortal?id=a1O0V000009Mp6dUAC&pageName=ArticleContent)
Yes No
People who viewed this also viewed: You might be interested in:
How to evaluate the QOR of flexible H-Tree How to minimize/increase insertion delay to the sp
and a case study of comparison between CCOpt(https://support.cadence.com/apex/ArticleA
single source v/s multi-source CTS id=a1Od0000000uYvFEAU&pageName=ArticleCo
(/apex/ArticleAttachmentPortal? cuments which may be similar to this document)
id=a1O0V0000091CfsUAE&pageName=Article…
who viewed this also viewed) How to evaluate the QOR of flexible H-Tree and a
source v/s multi-source CTS(https://support.caden
id=a1O0V0000091CfsUAE&pageName=ArticleCo
Sample Script to create CCOpt flexible HTree uments which may be similar to this document)
(/apex/ArticleAttachmentPortal?
id=a1O0V000009Mp0BUAS&pageName=Articl… Improving CCOpt clock latency in presence of dis
who viewed this also viewed) observability ports(https://support.cadence.com/a
id=a1O0V000009EWoqUAG&pageName=ArticleC
Documents which may be similar to this documen
Script to determine the metal layer adherence
on all types of clock nets How to model sub-hierarchy insertion delays / ma
(/apex/ArticleAttachmentPortal? CCOpt(https://support.cadence.com/apex/ArticleA
id=a1O0V000009Mp6dUAC&pageName=Articl… id=a1Od00000004zk7EAA&pageName=ArticleCo
who viewed this also viewed) uments which may be similar to this document)
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000009MolBUAS&pageName=ArticleContent 7/8
10/13/2019 Steps to root cause clock latency / insertion delay QOR post CCopt CTS
https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000009MolBUAS&pageName=ArticleContent 8/8