Cts
Cts
Cts
1
Table of Contents
1. INTRODUCTION ......................................................................... 3
2. GENERATING THE CLOCK TREE SPECIFICATION FILE ................................ 3
3. HOW TO CHOOSE BUFFERS FOR CTS ................................................ 3
4. UNDERSTANDING OF SPECIFICATION FILE ........................................... 4
5. CREATING MACRO MODELS TO HANDLE HARD MACROS ............................ 5
6. CREATE DYNAMIC MACRO MODELS TO HANDLE CLOCK DIVIDERS.................. 6
7. SYNTHESIZING THE CLOCK TREE...................................................... 6
8. ROUTING THE CLOCK TREE ............................................................ 7
9. OPTIMIZATION OF CLOCK TREE ....................................................... 8
10. TRACING AND ANALYSIS OF CLOCK TREE ............................................ 8
11. CTS WITH MULTI-MODE MULTI-CORNER (MMMC) FLOW ..................... 10
12. GUIDELINES AND ISSUES ........................................................... 11
13. DOCUMENTATION..................................................................... 13
2
1. Introduction
Clock tree synthesis is performed to meet the clock timing constraints, such as clock
skew, latency (insertion delay) and the transition time.
The purpose of this document is to explain the basic CTS flow and provide references to
solution articles for addressing specific design issues and challenges.
Related Solution:
Automated flow to create CTS constraints file from SDCs in Encounter
Related Solution:
How to pass the buffer/inverter list into the CTS specification file using variable.
ERROR (SOCCK-2069): cannot find CTS cells. Please use addCTSCellList.
In addition, there are other useful (design dependant) constraints, as shown below,
which could be part of the constraints applied to the clock root pin.
4
To mark the pin as leaf pin:
LeafPin
+ <pinname1>
+ <pinname2>
CTS treats the pins as sinks, stops tracing further, and balances clock skew.
To exclude the pin from the clock tree synthesis:
ExcludedPin
+ <pinname1>
+ <pinname2>
CTS would exclude the pins from the skew analysis.
To preserve the clock tree netlist below the pin:
PreservePin
+ <pinname1>
+ <pinname2>
CTS would preserve the clock structure below the pins specified.
To treat specific cell Pin/Port as non-leaf pin.
GlobalExcludedPin/GlobalExcludedPort
+ u0/CK CK pin on instances u0 (of DFFRX1) have been declared as excluded pins.
+ DFFRX1/CK This will exclude the CK pin of all DFFRX1 instances from clock tree.
CTS would not to trace or do any skew analysis to this pin specified.
Related Solution:
How to define Shielding clock nets in clock tree specification file.
Usage of GlobalExcludedPort and GlobalExcludedPin in specification file.
How to preserve a module for not adding buffer during CTS.
How does the order of clocks in specification file effects the quality of result.
How can we preserve/don’t touch a net while doing the synthesis.
5
Related Solution:
How to apply different delay constraint to leaf pins using macro model.
CTS fail if MacroModel statement lacks delay/cap units.
How can we write different macroModel for different pins of same instance?
Why clock not delayed when running CTS with negative delay macromodel.
Deriving clock latency from .lib instead of macromodel constraint?
Macro model writes out 0ff for capacitance
How to delay and advance the clock on specific clock sync points using macromodel.
How to create the macromodel using the optDesign command.
Here using the dynamic macro model we can balance the skew between the two flops.
Once specify clock pin of Flop B as a reference pin and clock pin of Flop A as the target
pin then the clock pin of flop A is balanced with the clock pin of flop B. The
DynamicMacroModel statement minimizes the skew between these two flops to avoid
timing violation on the data path.
Since without the dynamic macro model the clock pin of Flop A is balanced with the
group of flops and not with the clock pin of Flop B because of the ThroughPin that has
been defined in Flop B.
7
Related Solution:
How to reset the extra spacing of a particular clock net & how to pick nets in clk tree?
How to specify guide file with routeClockNetWithGuide?
What kind of abilities does NanoRoute have for clock tree routing?
8
If we are using ckSynthesis command then we can use the option forceReconvergent.
This option should be used if the physical partition has muxed clocks and CTS is
expected to build a clock tree for every clock root of the muxed clock. The option will
allow CTS to handle (trace through) the muxed clocks and generate a balanced tree
starting from all the clock root branches of the muxed clock.
Related Solution:
Getting ‘Tracing Clock Fail’ Error for reconvergence pins.
CTS with forceReconvergent fails on PreservePin in clock specification.
9
Related Solution:
How to perform clock gate cloning and deconing in SOC.
Is cloning/declining possible in CTS?
Why does CTS and reportClockTree not correlate with CTE?
The above flow generates the CTS specification files and synthesizes the clock trees in
separate steps. This is most common because sometimes it is require modifying the
10
clock tree specification files that are automatically generated. If editing is not required
then you can use the below flow.
Define Mode and Analysis View set_analysis_view –setup {view1 view2} –hold {view3
view4}
setCTSMode –specMultiMode true
clockDesign
Related Solution:
How do you run CTS in a Multi-Mode Multi-corner (MMMC) flow?
Related Solution:
Pointers on how to create low skew, low cell count, low insertion delay clock tree.
CTS insert buffers/inverters that are not in buffer list of spec file.
To
Black Box Clock Gate
FF
Ist Scenario
12
To
Clock Gate Clock Gate
FF
2nd Scenario
There should be no issue when CTS is tracing the INOUT pin as INPUT but when it is
required to consider the pin as OUTPUT as above scenarios the use the below variable
setCTSMode -traceCellInOutPinAsOutPin true
13. Documentation
EDI System User Guide
Describes how to install and configure the EDI System software, and provides strategies
for implementing digital integrated circuits.
EDI System Text Command Reference
13