WHY skew is the villain: timing between a launching FF and a capturing FF depends directly on the difference of their clock arrival times, not the absolute latency.
Consider data launched by FF1 (clock arrival t1) and captured by FF2 (clock arrival t2), one clock period T apart.
Setup check (data must arrive before the next edge):
Data leaves FF1 at t1+tcq (clock-to-Q), travels through combinational logic tlogic, and must satisfy the setup time tsubefore FF2's capturing edge at t2+T:
t1+tcq+tlogic+tsu≤t2+T
Rearrange, letting skew =t2−t1:
tcq+tlogic+tsu≤T+(t2−t1)
Hold check (data must NOT arrive too early, before the same edge captures):
t1+tcq+tcd≥t2+thold
where tcd is the minimum (contamination) logic delay. Rearranging:
H-tree / X-tree — a geometrically symmetric fractal. Every leaf is the same wire distance from the root ⇒ naturally low skew. Great for regular arrays (like clock spines of CPUs), wasteful for irregular placements.
Buffered clock tree (algorithmic) — tools cluster nearby sinks, insert buffers to balance load, and recursively merge. The classic algorithm is DME (Deferred-Merge Embedding), built on zero-skew merging.
Two subtrees with delays (to their sinks) d1 and d2 are joined. We place the merge point splitting a wire of total length L into l1 (to node 1) and l2=L−l1 (to node 2). Using the Elmore delay for a wire segment of length l with resistance r and capacitance c per unit length driving a load cap C:
twire(l,C)=rl(2cl+C)
For zero skew we need equal delay from the merge point to each side:
d1+twire(l1,C1)=d2+twire(l2,C2)
Substituting and setting the two delays equal gives the merge-point locationl1 (solving a quadratic). For the simplified case ignoring the 2cl2 self term:
In an H-tree every path from root to leaf traverses the same number of segments of the same lengths by construction. Since delay depends only on the traversed RC, equal geometry ⇒ equal delay ⇒ skew ≈ 0 (ignoring process variation).
Why this step? Symmetry replaces per-net balancing — it's a structural solution vs. an algorithmic one.
What is the difference between insertion delay and skew?
Why does positive skew help setup but hurt hold?
Where does the DME merge point move, toward the fast or slow subtree?
Why is CTS power-critical?
Recall Feynman: explain to a 12-year-old
You're playing "everybody jump at the same time!" You (the boss) shout GO. But if your friends stand at different distances, the sound reaches them at different times, so they jump raggedly. To fix it, you place helpers (buffers) who re-shout the word, and you make the paths equally long so the word reaches everyone together. The little differences in when they hear it = skew. The total travel time from you to a friend = insertion delay. Building this network of helpers and equal paths is clock tree synthesis.
The physical-design step that inserts buffers and routes the clock net from source to all flip-flop clock pins, minimizing skew and insertion delay while meeting slew/cap/fanout limits.
Define insertion delay (clock latency).
The time for the clock edge to propagate from the clock root to a given sink (leaf).
Define clock skew.
The difference in insertion delay (clock arrival time) between two flip-flops; global skew = max latency − min latency.
Why does positive skew (capture later than launch) help setup?
The setup equation becomes tcq+tlogic+tsu≤T+(t2−t1), so later capture adds slack.
Why does positive skew hurt hold?
Hold requires tcq+tcd≥thold+(t2−t1); later capture increases the required minimum data delay.
What is an H-tree and why is its skew low?
A geometrically symmetric fractal clock distribution where every root-to-leaf path has identical length/segments, so delays match structurally.
In DME/zero-skew merging, which way does the merge point move?
Toward the faster (smaller-delay) subtree, so its extra wire delay equalizes arrival times.
What is 'useful skew'?
Intentionally scheduling non-zero skew to borrow time on critical paths (delay capture for setup, advance for hold) rather than forcing zero skew everywhere.
Why is the clock tree power-critical?
It's the highest-toggling net on the chip; dynamic power P=αCV2f means buffers and clock cap dominate switching power.
When is hold fixing typically done relative to CTS?
After CTS, once clock arrivals are real, by inserting delay buffers on data paths.
Give the Elmore delay of a wire of length l (r,c per unit) driving load C.
Socho clock ek "GO!" signal hai jo chip ke andar hazaaron flip-flops ko ek saath jump karwana chahta hai. Problem yeh hai ki source se har flip-flop tak wire ki lambai alag hai, isliye signal alag-alag time par pahunchta hai. Is time difference ko skew kehte hain, aur source se kisi ek flip-flop tak jitna time lagta hai use insertion delay (latency) kehte hain. Clock Tree Synthesis ka kaam hai: beech mein buffers daalna aur wires ko balance karna taaki sabko signal lagbhag ek saath mile.
Skew ka funda double-edged hai. Agar capture wale flip-flop ka clock thoda late aaye (positive skew), toh setup ke liye extra time mil jaata hai — yeh helpful hai. Lekin wahi late clock hold ko todd sakta hai. Isiliye CTS zero skew nahi, balki balanced/useful skew target karta hai. Setup equation yaad rakho: tcq+tlogic+tsu≤T+skew, aur hold: tcq+tcd≥thold+skew.
Tree banane ke do tareeke hain: H-tree (symmetric shape jismein har path barabar lamba hota hai, isliye skew apne aap kam) aur algorithmic buffered tree jismein tool DME/zero-skew merge use karta hai. Merge point hamesha fast (kam delay) side ki taraf khiskta hai taaki extra wire delay se dono side barabar ho jaaye.
Ek important baat: clock chip ka sabse zyada toggle karne wala net hai, isliye power (P=αCV2f) yahin sabse zyada jalti hai — bade buffers har jagah lagana galat hai. Aur haan, CTS ke baad hold violations aa sakti hain, jinhe baad mein data path par buffer daal ke fix karte hain. Yaad rakho SLIP: Skew, Latency, Insertion, Power.