Clock Tree Synthesis Steps
Clock Tree Synthesis Steps
(CCOpt) Optimization
Rapid Adoption Kit (RAK)
Cadence Trademarks
Trademarks and service marks of Cadence Design Systems, Inc. (Cadence) contained in this document are attributed to Cadence with
the appropriate symbol. For queries regarding Cadence trademarks, contact the corporate legal department at the address above or call
800.862.4522.
Other Trademarks
Open SystemC, Open SystemC Initiative, OSCI, SystemC, and SystemC Initiative are trademarks or registere d trademarks of Open
SystemC Initiative, Inc. in the United States and other countries and are used with permission.
All other trademarks are the property of their respective holders.
Confidentiality Notice
No part of this publication may be reproduced in whole or in part by any means (including photocopying or storage in an information
storage/retrieval system) or transmitted i n any form or by any means wit hout prior written permission from Cadence Design Systems,
Inc. (Cadence).
Information in this document is subject to change without notice and does not represent a commitment on the part of Cadence. The
information contained herein is the proprietary and confidential information of Cadence or its licensors, and is supplied subject to, and
may be used only by Cadence customers in accordance with a written agreement between Cadence and its customers. Except as may
be explicitly set forth in such agreement, Cadence does not make, and expressly disclaims, any representations or warranties as to the
completeness, accuracy or usefulness of the information contained in this document. Cadence does not warrant that use of such
information will not infringe any third party rights, nor does Cadence assume any liability for damages or costs of any kind that may
result from use of such i nformation.
RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure by the Government is subject to restrictions a s set forth in
subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013.
UNPUBLISHED This document contains unpublished confidential information and is not to be disclosed or used except as authorized
by written contract with Cadence. Rights reserved under the copyright laws of the United States.
2-1 Configuring
2-2 Creating CCOpt Spec
the CCOpt ......................................................................................................
File ...................................................................................... 76
2-3 Running CCOpt ............................................................................................................ 8
1-1 Introduction
The Clock Concurrent Optimization (CCOpt) Rapid Adoption Kit (RAK) introduces you
to running native CCOpt in EDI System. It shows the basics on how to configure and run
native CCOpt plus tools and commands to analyze and debug the results. It assumes you
are familiar with running EDI System.
The design in this lab is a Leon processor. The Leon design is a block level design with
35K instances, 4 memories, and 1500 IO pins. The library used is a Cadence Generic
45nm library using 9 routing layers.
There are three main clocks in this design ( test_clk, my_clk and div_clk) as defined by the
following SDCs:
2. Extract the RAK database and change directory to the work directory:
l i nux% encount er
5. Load in the starting design by running the following in the EDI System console:
Before running CCOpt, you will need to configure a number of settings that control how
CCOpt will optimize the design. These settings include:
•
• Post-CTS
CCOpt timing
control settings
settings
• NanoRoute settings for clock routing
• CTS settings
The configuration settings for this lab are all contained in the file config.tcl.
Because CCOpt is timing-driven, you need to configure CCOpt to use post-CTS timing.
That is, you need to configure CCOpt to use post-CTS SDC files, timing derates, and
CPPR settings. This post-CTS timing configuration change needs to be done before
running CCOpt.
There are a number of CCOpt control settings you will need to configure to specify the
buffers, inverters and clock gating cells to use:
In order to route clock trees correctly, you will need to configure NanoRoute settings. Of
particular interest is the set NanoRout eMode -
dr out eUseMul t i Cut Vi aEf f or t [ hi gh| l ow] command, since CCOpt uses this
to predict whether NanoRoute will use double vias (high) or single (low).
The CTS configuration settings in config.tcl specify preferred layer routing controls and
tell EDI System to route clock nets using the CTS-generated route guide file:
CCOpt will analyze the SDC constraints and the design logic to define the clock tree
specifications and respective properties.
2. Open the ccopt.spec file and review its contents. Close the file once you’re done.
The ccopt _desi gn command performs CCOpt optimization on the currently loaded
design in EDI System. There are two ways to run native CCOpt depending on how the
spec file is generated:
1. Run CCOpt using method 2 since you generated the spec file in the previous section:
When CCOpt completes review the timing summary to evaluate the overall timing
results.
This section highlights parts of the log file you can review to analyze the CCOpt run.
With the log file open search for the following sections:
Section Description
I ni t i al Summar y Initial timing before optimization
Skew gr oup i nser t i on del ays Insertion delay for each skew group
Cl ock DAG st at s at end of CTS Count and area of cells used in initial clock
tree
Cl ock DAG capaci t ances at end Wire and Gate capacitance of initial clock
of CTS tree
Gui ded max pat h l engt hs Breakdown of route guide lengths
Devi at i on of r out i ng f r om Shows how actual routing deviates from
gui ded max pat h l engt hs route guides
Top 10 not abl e devi at i ons of Specific nets whose length deviates most
r out ed l engt h f r om gui ded from their route guides
l engt h
Gi gaOpt + CCOpt summar y WNS, TNS and runtime summary of
i nf or mat i on GigaOpt + CCOpt optimization
opt Desi gn Fi nal Summar y Final timing results including WNS, TNS,
and DRV information
This section introduces you to some common commands to report the results of CCOpt.
Skew groups specify which sinks should be balanced together (balancing of clock trees
and balancing between clock trees).
1. Run r epor t _ccop t _s kew_gr oups to report the minimum and maximum paths
and skews for all skew groups.
• Skew Group Structure – Info on number of sources and sinks for each skew
group.
• Skew Group Summary – Insertion Delay (ID) and skew information for each
skew group respective to each delay corner.
• Skew Group Min/Max path pins – End points with minimum and maximum
insertion delay for each skew group respective to each delay corner. Followed
2. Run r epor t _cco pt _cl ock_t r ees to report the slew, area and buffer count for
each clock tree:
3. Run r epor t _cco pt _wor st _ch ai n to report the worst chain for the design.
Review the information output by r epor t _cco pt _wor st _ch ai n. You can
reference the Reporting on the Worst Chain section of the EDI System User Guide.
The CCOpt Clock Tree Debugger is a graphical tool for analyzing and debugging the
clock tree results. It is available under the Clock menu and becomes available once the
CCOpt clock tree constraints are defined (i.e. after running
cr eat e_cco pt _cl ock_t r ee_sp ec).
Following are the basics to navigate the GUI. These are the same as the EDI System GUI.
The Key Panel provides a key showing what the colors represent. The Key Panel
contents will vary depending on the type of data that is colored.
2. Display the Key Panel by selecting View – Key Panel or by selecting the Key tab in
the upper left corner.
3. Select the checkbox next to Visibility – Cell type – Clock sink to disable the
coloring of all clock sinks.
4. Select Color by – Transition Time to color the clock tree based on transition time
arrival at each cell.
Observe the Key Panel changes to show a gradient of colors representing the
transition times. You can hover over an instance to see its transition time and confirm
its color corresponds to the color in the Key Panel.
5. Select an instance or net in the debugger and observe its selection in the EDI GUI.
The Control Panel combines the functionality of the Visibility and Color by menus into
a single form.
6. Select View – Control Panel or click the Control tab in the upper right to open the
Control Panel.
8. Select the radio button next to Clock tree. Notice nothing is colored because for
clock trees you specify the desired color for each tree.
Observe div_clk is now colored (You may need to zoom out to see the entire tree). Do
the same for my_clk and test_clk.
Timing windows show the target delays that the CCOpt algorithm is aiming for as a
range.
10. Select the checkbox next to Timing windows in the Control Panel
11. Unselect the checkbox next to Timing windows in the Control Panel.
12. Select No Color in the Control Panel in preparation for the next steps.
The Clock Path Browser displays the clock path data in a table and provides the option
for bringing up a clock path analyzer either from its context menu or by double-clicking
on a row in the table.
13. In the Browser minimize the Analysis Views except for slow_max:setup:late by
clicking the ‘-‘ sign.
The Path Browser allows you to see the detailed path delays for the min and max paths.
18. Select on an instance in the path and observe it is highlighted in the display.