Clock Tree Synthesis
Clock Tree Synthesis
What is cts ?
CTS is the process of connecting the clocks to all clock pin of sequential circuits by
using inverters/buffers in order to balance the skew and to minimize the insertion delay.
All the clock pins are driven by a single clock source. Clock balancing is important for
meeting all the design constraints.
Output of CTS:
1) CTS def
2) Latency and skew report
3) Clock structure report
4) Timing Qor report
CTS target:
1. Skew
2. Insertion delay
CTS goal:
1. Max Tran
2. Max cap
3. Max fan-out
4. A buffer tree is built to balance the loads and minimize skew, there are levels of
buffer in the clock tree between the clock source and clock sinks.
1. Clustering
Depending on the geometry locations, the skew groups are being created as per the
description in SPEC file.
2. DRV Fixing
At this stage, DRVs (max_tran, max_cap, max_length, max_fanout) are fixed.
4. Power Reduction
As we know clock is a major power consumer, so we need to analyze and fix it in such a
way that power consumption will be less.
5. Balancing
The main balancing happens at this stage with the help of different clock buffers and
inverters.
6. Post-conditioning
At this stage, again DRVs will be checked and if required then it will be fixed
1. Latency: If latency is less then less buffer in the design. So less power consumption.
Why clock routes are given more priority than signal nets:
Clock is propagated after placement because the exact location of cells
and modules are needed for the clock propagation for the estimation of
accurate delay, skew and insertion delay. Clock is propagated before
routing of signals nets and clock is the only signal nets switches frequently
which act as sources for dynamic power dissipation.
Analyze the Clock Tree
▪ Report Timing (both Setup and Hold)
▪ Report Insertion Delay & Skew and verify that the targets are achieved
▪ Check the Clock Tree Exceptions are not in the Clock Tree
▪ Do Quality-of-Report (QoR)
▪ Check Clock Tree converges either with itself or with another Clock Tree
▪ Clock Tree has timing relationship with other Clock Trees for inter Clock
Skew balancing
Build_clock —--> During this stage we synthesize and optimize all scenarios
Logical connectivity established.
Route_clock —---> Does detail route of all synthesised clock nets.
Physical connectivity established.
What steps design undergoes during cts ?
I. Check NDR
II. Check clk cell spacing
III. Remove existing cts by removing Buff/inv
IV. CTS initialization
V. Creating DRC
VI. PDC check
VII. Grid cell creation
VIII. Setting target skew and latency
● Clock cell relocation (if needed)
● DRC fixing beyond exceptions
buff/inv added
● Path based global latency and skew opt
● Area recovery
● Final drc fix
● Target latency delay insertion
● Local skew optimization
● All reports
Output of CTS:
1. CTS def
2. Latency and skew report
3. Clock structure report
4. Timing Qor report