What is clock latency, and what's the difference between source latency and network latency?
From PDVerse STA Mentor Guide, part of the pdVerse Mentor Guide
Short Answer
Clock latency is the total time it takes the clock signal to travel from its true origin to a specific flip-flop's clock pin. The tool splits that total into two pieces: source latency, the delay before the clock even reaches the design's defined clock point, and network latency, the delay from that point through the on-chip clock tree to the flop.
Technical Explanation
Splitting latency into these two pieces lets the tool model what's known accurately and what's still estimated.
- Total latency is the sum: source latency plus network latency equals the full delay from the clock's true origin to any flop's clock pin.
- Source latency covers everything before the clock definition point โ delay from an off-chip oscillator, or an on-chip PLL's output, up to where
create_clockwas applied. It's set withset_clock_latency -source(SDC):set_clock_latency 1.5 -source -early [get_clocks CLK]. - Source latency cancels out in most internal paths. Launch and capture flops on a reg2reg path share the same clock definition point, so they pick up the same source latency โ it drops out of the slack calculation.
- Network latency is the clock tree's own on-chip delay. Before the tree is built, it's estimated with a plain
set_clock_latencyvalue; once built,set_propagated_clock(PT) switches the tool to the tree's real, measured delays.
Common Mistake
- The trap: applying a plain
set_clock_latencyvalue (without-source) after the clock tree has already been built and physically propagated. - The command was likely left over from an earlier, pre-layout stage of the flow and simply never removed.
- Once
set_propagated_clockis active, the tool is meant to use the real clock tree's measured delays for network latency โ a leftover manual latency value on top of that either gets flagged bycheck_timing(PT) as a conflict, or silently overrides the physical tree data with an outdated estimate.
Follow-up Question & Model Response
Does source latency ever actually affect an internal register-to-register path's slack?
Candidate Model Response: No, not when the launch and capture flops share the same clock source โ which is the normal case. Both flops see the identical source latency added to their respective arrival and required time, so it cancels out algebraically the moment slack is computed. Source latency only starts to matter for paths crossing to a different clock domain, or for input/output paths where only one side of the check โ the port, not an internal flop โ is affected by that particular source delay.
Practical Example
A design defines its clock 0.8 ns of network latency (pre-CTS estimate) from the clock port to a typical core flop, with a separate 1.5 ns of off-chip source latency modeling the board delay from the crystal oscillator to that port. Once clock tree synthesis is complete, set_propagated_clock [get_clocks SYS_CLK] replaces that 0.8 ns estimate with the clock tree's real, measured per-flop latency, while the 1.5 ns source latency stays as originally modeled.
Complete STA Handbook
Master Signoff-Ready Static Timing Analysis
Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.
Offline PDF Bundle
Want all 1109 questions offline?
Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

Continue practising