clock skew

**Clock skew** is the **timing difference** between the arrival of the same clock edge at two different sequential elements (flip-flops, latches) — one of the most critical parameters in synchronous digital design because it directly consumes timing margin and limits maximum clock frequency. **Formal Definition** $$\text{Skew}_{AB} = t_{clk,A} - t_{clk,B}$$ Where $t_{clk,A}$ and $t_{clk,B}$ are the clock arrival times at flip-flops A and B respectively. - **Positive Skew**: Clock arrives at the capturing flip-flop **later** than at the launching flip-flop — **helps setup** (more time for data to propagate) but **hurts hold** (data may change too quickly at the receiver). - **Negative Skew**: Clock arrives at the capturing flip-flop **earlier** — **hurts setup** (less time available) but **helps hold**. **Impact on Timing** - **Setup Constraint**: Data must arrive at the capturing FF before the clock edge: $$T_{period} + \text{Skew}_{launch→capture} \geq t_{CQ} + t_{comb} + t_{setup}$$ Negative skew reduces the available time window. - **Hold Constraint**: Data must be stable after the clock edge: $$t_{CQ} + t_{comb} \geq t_{hold} + \text{Skew}_{launch→capture}$$ Positive skew makes hold harder to meet. - **The Dilemma**: Skew that improves setup makes hold worse, and vice versa. The only universally "good" answer is **zero skew** — or intentionally managed "useful skew." **Sources of Clock Skew** - **Wire Length Differences**: Different path lengths from clock source to different flip-flops — the primary source, addressed by CTS. - **Buffer Mismatches**: Variations in buffer delay due to process variation, voltage, and temperature (PVT). - **Load Imbalance**: Different capacitive loads at different clock sinks cause different buffer delays. - **On-Chip Variation (OCV)**: Within-die process variation causes nominally identical paths to have different delays. - **Routing Asymmetry**: Different layers, different via counts, or different coupling environments along different clock paths. **Skew Metrics** - **Global Skew**: Maximum clock arrival time difference between any two flip-flops in the entire design. - **Local Skew**: Clock arrival time difference between two flip-flops connected by a data path (the one that actually matters for timing). - **Intra-Clock Skew**: Skew within one clock domain. - **Inter-Clock Skew**: Timing relationship between different clock domains — managed by synchronizers, not CTS. **Managing Clock Skew** - **CTS (Clock Tree Synthesis)**: Build balanced buffer trees to minimize skew. - **Clock Mesh**: Shorten clock wires to reduce skew through nearest-neighbor averaging. - **Useful Skew**: Intentionally introduce skew to improve critical paths (borrow time from slack-rich paths). - **PLL/DLL**: Active circuits that lock clock phase and compensate for skew. Clock skew is the **fundamental constraint** of synchronous design — managing it to within a few picoseconds is essential for multi-GHz operation.

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account