How do you define a generated clock correctly, and what goes wrong if you use create_clock instead on a divided clock?
From PDVerse STA Mentor Guide · pdVerse Mentor Guide
Explanation
A generated clock is one derived from a master (or another generated) clock by on-chip logic — a divider, clock gate, multiplexer, or inversion. It must be defined with create_generated_clock so the tool understands and preserves its phase relationship to the source clock.
Timing-path Walkthrough
If a divided clock is instead defined as an independent create_clock, the tool has no way to know it's actually phase-locked to the master clock — it treats it as a completely separate, unrelated clock. This breaks the phase relationship STA needs, and any paths crossing between the master domain and the divided domain get mis-timed, since the tool no longer understands their true edge alignment.
Command
create_generated_clock ... -divide_by ... -multiply_by ... -edges ... source ...Switch-by-switch
-divide_by / -multiply_by: specify the frequency relationship to the source clock. -edges:
specifies explicit edge relationships when needed. -source: must point to the correct
upstream clock/pin the generated clock is derived from.
la u n ch e 0 h o ld e 1 (-h o ld 1 ) se tu p e 2 (-se tu p 2 )
d a ta h a s tw o clo ck cycle s to a rrive , n o t o n eExpected Report Behavior
Paths between the master clock and a correctly defined generated clock show properly aligned edges and correct inter-clock timing in report_timing; if create_clock was used instead, cross-domain paths would be timed as if the two clocks were unrelated, producing mis-timed (likely incorrect) slack.
Mentor Note — Common Mistake
Defining a divided or gated clock as an independent create_clock instead of create_generated_clock, breaking the phase relationship STA needs.
How To Debug
Verify every derived clock (divider, gate, mux, inversion output) is declared via create_generated_clock with a correct -source pointing to its true upstream clock/pin, and check for generated_clocks warnings in check_timing output where a generated clock's source isn't found.
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