How do generated clocks interact with source latency, and how does edge-specific source latency propagation work?
From PDVerse PrimeTime STA Interview Guide · pdVerse Mentor Guide
Ten-second Interview Answer
A generated clock's source latency is the master's insertion delay from its origin to the generated clock's source pin. PrimeTime auto-computes it when the master is propagated, and it tracks the master's latencies per edge.
Complete Technical Explanation
Think of a generated clock's source latency as inherited, not independently specified. It is the latency from the master clock's origin down to the generated clock's source pin - in other words the master's insertion delay up to the generation point. If the master clock has propagated latency, PrimeTime can compute this automatically: it propagates the master's real latency to the generated clock's source pin, so the generated clock inherits the correct upstream insertion delay and you do not specify it separately. If the master is ideal there is no real latency to propagate, so you supply the generated clock's source latency explicitly or it comes from the master's specified latency as applicable. On top of that, PrimeTime supports generated-clock edge-specific source latency propagation. The master's rising and falling edges, and their early and late values, may not reach the source pin with the same delay, because the clock network's rise and fall delays through cells and nets can be asymmetric. Since a generated clock is derived from specific master edges through the divide, multiply or -edges relationship, which master edges it uses determines which source latencies it inherits. PrimeTime therefore tracks source latency per edge of the generated clock and propagates the master's edge-specific latencies through the generation relationship, rather than collapsing them into one averaged number. That is what makes generated-clock timing accurate where master-edge latency asymmetry is significant.
In Pd / Signoff
This is why you propagate the master before trusting a divided clock's numbers post-CTS. In practice you define the generated clock with create_generated_clock, apply set_propagated_clock, and then read report_clock to confirm the source latency was inherited rather than left at an estimate - the difference shows up directly in launch and capture arrivals on paths across the divider.
Common Trap
Hand-specifying a source latency on the generated clock while the master is already propagated. You then override the real inherited insertion delay with a stale estimate, and because the command succeeds silently the generated domain times against a clock origin that does not match the built tree.
Expect Next
Under what condition can PrimeTime auto-compute a generated clock's source latency?
Topic And Primetime Commands
Clocks / Generated Clocks. create_generated_clock, set_propagated_clock, report_clockKeep building interview depth
Continue practising STA
Continue learning free
Get a practical low-power chapter
Receive the existing “Low Power and Multivoltage Fundamentals” PDF chapter and its download link by email.
Continue practising
