CTS se pehle, clock ek ideal net hota hai (zero delay assume kiya jaata hai). CTS ke baad, woh ek real tree ban jaata hai buffers, real wire RC, aur real arrival times ke saath.
Root = clock source (PLL output / clock port).
Leaves/Sinks = flip-flops, latches, memories ke clock pins.
WHY skew villain hai: ek launching FF aur ek capturing FF ke beech timing directly unke clock arrival times ke difference par depend karti hai, absolute latency par nahi.
Maano data FF1 (clock arrival t1) se launch hota hai aur FF2 (clock arrival t2) se capture hota hai, ek clock period T ke baad.
Setup check (data agli edge se pehle pahunchna chahiye):
Data FF1 se t1+tcq par nikalta hai (clock-to-Q), combinational logic tlogic se guzarta hai, aur FF2 ki capturing edge t2+T se pehle setup time tsu satisfy karni chahiye:
t1+tcq+tlogic+tsu≤t2+T
Rearrange karo, skew =t2−t1 let karte hue:
tcq+tlogic+tsu≤T+(t2−t1)
Hold check (data itna jaldi nahi aana chahiye ki same edge use capture kar le):
t1+tcq+tcd≥t2+thold
jahan tcd minimum (contamination) logic delay hai. Rearrange karne par:
H-tree / X-tree — ek geometrically symmetric fractal. Har leaf root se same wire distance par hoti hai ⇒ naturally low skew. Regular arrays ke liye badhiya (jaise CPUs ki clock spines), irregular placements ke liye wasteful.
Buffered clock tree (algorithmic) — tools nearby sinks ko cluster karte hain, load balance karne ke liye buffers insert karte hain, aur recursively merge karte hain. Classic algorithm hai DME (Deferred-Merge Embedding), jo zero-skew merging par based hai.
Do subtrees jinke sinks tak delays d1 aur d2 hain, join ki jaati hain. Hum merge point ko ek wire of total length L ko l1 (node 1 tak) aur l2=L−l1 (node 2 tak) mein split karke place karte hain. Length l wale wire segment ke liye Elmore delay use karte hue, resistance r aur capacitance c per unit length ke saath load cap C drive karte hue:
twire(l,C)=rl(2cl+C)
Zero skew ke liye hum chahte hain ki merge point se dono sides ka delay equal ho:
d1+twire(l1,C1)=d2+twire(l2,C2)
Substitute karke aur dono delays equal set karne par merge-point locationl1 milta hai (ek quadratic solve karke). 2cl2 self term ignore karne wale simplified case ke liye:
Given: Do sinks. Left ka accumulated delay d1=40 ps hai, right ka d2=10 ps. Wire per-unit r=0.1Ω/μm, sink caps C1=C2=20fF, total merge wire L=100μm.
l1=r(C1+C2)(d2−d1)+rLC2 use karke:
Yeh step kyun? Hum woh split chahte hain jo root-to-sink delay equal kare.
Numerator (consistent units rakho, ps/fF/Ω/µm use karo): rLC2=0.1×100×20=200 (ps-like scaled units), (d2−d1)=−30.
l1=0.1×40−30+200=4170=42.5μm
Toh merge point sink 1 se 42.5 µm door hai (slower side ko kam wire milti hai). Kyunki 0≤42.5≤100, koi snaking zaroorat nahi. ✅
H-tree mein root se leaf tak har path construction se same number of segments of same lengths traverse karta hai. Kyunki delay sirf traversed RC par depend karti hai, equal geometry ⇒ equal delay ⇒ skew ≈ 0 (process variation ignore karte hue).
Yeh step kyun? Symmetry per-net balancing ki jagah le leti hai — yeh ek structural solution hai algorithmic ke mukable.
Positive skew setup ko help kyun karta hai lekin hold ko hurt kyun karta hai?
DME merge point fast ya slow subtree ki taraf move karta hai?
CTS power-critical kyun hai?
Recall Feynman: ek 12-saal ke bacche ko explain karo
Tum "sablog ek saath kudo!" khel rahe ho. Tum (boss) GO chillate ho. Lekin agar tumhare dost alag-alag dooriyon par khade hain, toh awaaz untak alag-alag waqt mein pahunchti hai, aur woh alag-alag time par koodte hain. Isko fix karne ke liye, tum helpers (buffers) rakhte ho jo woh word dobara chillate hain, aur tum paths ko equally lamba banate ho taaki word sabko saath mein pahunche. Unke sunne mein jo choti differences hain = skew. Tumse kisi dost tak signal ka total travel time = insertion delay. Yeh helpers aur equal paths ka network banana hi clock tree synthesis hai.
Clock Gating and Power — CTS gated clock enables handle karta hai aur dynamic power dominate karta hai.
On-Chip Variation (OCV) — kyun real skew margins nominal skew se zyada hoti hain.
Clock Tree Synthesis kya hai?
Woh physical-design step jo source se sab flip-flop clock pins tak buffers insert karke aur clock net route karke skew aur insertion delay minimize karta hai, jabki slew/cap/fanout limits meet hon.
Insertion delay (clock latency) define karo.
Clock root se kisi given sink (leaf) tak clock edge propagate hone mein kitna time lagta hai.
Clock skew define karo.
Do flip-flops ke beech insertion delay (clock arrival time) ka difference; global skew = max latency − min latency.
Positive skew (capture launch se baad) setup ki help kyun karta hai?
Setup equation ban jaati hai tcq+tlogic+tsu≤T+(t2−t1), toh baad mein capture karna slack add karta hai.
Positive skew hold ko hurt kyun karta hai?
Hold require karta hai tcq+tcd≥thold+(t2−t1); baad mein capture karna minimum data delay ki requirement badhaata hai.
H-tree kya hai aur uska skew low kyun hota hai?
Ek geometrically symmetric fractal clock distribution jisme har root-to-leaf path ki identical length/segments hoti hain, toh delays structurally match karte hain.
DME/zero-skew merging mein merge point kis taraf move karta hai?
Faster (smaller-delay) subtree ki taraf, taaki uska extra wire delay arrival times equal kare.
'Useful skew' kya hota hai?
Intentionally non-zero skew schedule karna taaki critical paths par time borrow kiya ja sake (setup ke liye capture delay karo, hold ke liye advance karo) instead of forced zero skew.
Clock tree power-critical kyun hai?
Yeh chip ka highest-toggling net hai; dynamic power P=αCV2f matlab buffers aur clock cap switching power dominate karte hain.
CTS ke relative hold fixing typically kab hoti hai?
CTS ke baad, jab clock arrivals real ho jaati hain, data paths par delay buffers insert karke.
Length l (r,c per unit) ki wire ka Elmore delay do jo load C drive kare.