clock tree synthesis
**Clock Tree Synthesis (CTS)** is the automated physical design process of building a **balanced, optimized clock distribution network** that delivers the clock signal from its source to every sequential element (flip-flop, register, latch) in the design — with minimal skew, controlled insertion delay, acceptable transition times, and low power consumption.
**Why CTS Is Critical**
- A modern SoC can have **millions of flip-flops** — all needing a clean, well-timed clock.
- The clock is the **highest switching-activity net** on the chip — it toggles every cycle at every flip-flop, so it dominates dynamic power.
- **Clock quality** (skew, jitter, transition time) directly determines the maximum operating frequency and timing margin of the design.
**CTS Objectives**
- **Skew Minimization**: All flip-flops should see the clock edge at approximately the same time. Target skew depends on the clock period — typically <5% of the period.
- **Insertion Delay Control**: Total delay from clock source to leaf flip-flops should be reasonable and consistent.
- **Transition Time**: Clock edges should be sharp (fast rise/fall) — slow edges increase short-circuit power and degrade timing margins.
- **Power Optimization**: Minimize the number and size of clock buffers — clock tree power can be 30–50% of total dynamic power.
- **DRV Fixing**: Ensure all clock nets meet design rule constraints (max capacitance, max transition, max fanout).
**CTS Methodology**
- **Clustering**: Group nearby flip-flops into clusters that share a common clock buffer.
- **Buffer/Inverter Insertion**: Insert a tree of buffers (or inverters for balanced rise/fall) to drive the clock from the source to all clusters.
- **Balancing**: Adjust buffer sizes, wire lengths, and topology to equalize delay to all sinks.
- **NDR (Non-Default Rules)**: Route clock wires with wider width and spacing for better signal quality and reduced coupling.
- **Shielding**: Add grounded guard wires adjacent to clock routes for noise isolation.
- **Multi-Source CTS**: For large designs, use multiple clock roots (from a clock mesh or multiple PLLs) to reduce tree depth.
**Clock Tree Topologies**
- **Balanced Tree (H-Tree)**: Symmetric branching where each branch has equal length — inherently low skew.
- **Mesh**: A grid of interconnected clock wires — low skew through averaging, but higher power.
- **Spine**: A central spine with branches — used for structured layouts.
- **Hybrid**: Combination of tree and mesh — mesh at the top level for global balance, trees at the local level for efficiency.
**CTS in the Design Flow**
- CTS runs **after placement** and **before or during routing** — flip-flop locations must be known.
- **Pre-CTS Timing**: Timing is estimated with ideal (zero-skew) clocks.
- **Post-CTS Timing**: Real clock tree delays and skew are included — timing may change significantly.
- **Post-CTS Optimization**: Additional optimization (gate sizing, buffer insertion, useful skew) to fix timing violations introduced by real clock delays.
Clock tree synthesis is arguably the **most impactful single step** in physical design — the quality of the clock tree directly determines chip frequency, power, and timing closure difficulty.