Model whether a clock can close timing across a whole die — then run it: the simulation executes on
the ChipFoundryServices distributed compute pool. A clock fanned out to millions of flip-flops does not arrive
everywhere at once. Skew is the spatial spread: a systematic part from unbalanced path length
(RC the tree failed to match) plus a random part from on-chip variation — each buffer
stage delay drifts by σ, so over D stages two paths diverge like
√(2D)·σ and over N sinks the worst pair is
√(2·ln N)·σ out. Jitter is the temporal wander: supply noise
modulates buffer delay (random jitter, √D accumulation) and duty-cycle distortion adds a
deterministic floor, with peak-to-peak ≈ 14.07·rms + DJ at BER 10−12.
The clock uncertainty skew + jitter is subtracted from the period; when it exceeds the
timing-closure budget the design cannot reach frequency. A mesh shorts sinks together and averages out the
systematic skew at the cost of extra switched capacitance. Reduced-order educational model. See also the
place-and-route, power-delivery network,
electromigration, interconnect RC,
device reliability, SerDes link,
transistor I-V, power & thermal,
thermal and lithography simulators and the
compute-pool status.
√(2D), so deeper trees spread more (marker ● = your depth). Right: the uncertainty budget — skew, jitter and their sum as a share of the timing budget (100 % = at the edge; the sum over 100 % is a violation)curl -X POST https://www.chipfoundryservices.com/edge/clocktree \
-H "Content-Type: application/json" \
-d '{"clock_freq_mhz":1200,"num_sinks":80000,"die_size_mm":15,"tree_depth":10,
"buffer_delay_ps":22,"wire_rc_ps_per_mm":55,"process_variation_pct":6,
"supply_noise_pct":4,"wire_mismatch_pct":5,"duty_distortion_ps":6,
"clock_fanout":4,"uncertainty_budget_pct":15,"mesh_enable":0}'
Returns JSON with outputs (period_ps, insertion_delay_ps, systematic_skew_ps, random_skew_ps,
total_skew_ps, skew_percent, random_jitter_rms_ps, jitter_pk_pk_ps, jitter_percent, clock_uncertainty_ps,
uncertainty_percent, uncertainty_budget_ps, useful_period_ps, headroom_percent, meets_budget, fmax_mhz,
n_buffers, total_wire_mm, clock_cap_pf, clock_power_w, dominant_component, topology, verdict), the full
profile (48-point uncertainty_vs_freq sweep [freq_mhz, uncertainty_percent]
and 48-point skew_vs_depth sweep [tree_depth, total_skew_ps]), the serving
node, and compute_ms. Endpoint aliases /edge/cts,
/edge/clockskew, /edge/skew, /edge/clockjitter, /edge/jitter,
/edge/clocktreesynthesis.