Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • Reading Path
  • STA Glossary
  • STA Metrics Reference
  • STA Mastery Cheatsheet
  • Timing Paths and Checks16
    • What STA Checks
    • Setup and Hold Checks
    • Clocks in Timing Analysis
      • Ideal Versus Propagated Clocks
      • Latency, Skew and Uncertainty
      • Common Path Pessimism Removal
      • Generated and Gated Clock Paths
    • Delay Models
  • Constraints & SDC Fundamentals20
  • Delay Graph & Path Analysis16
  • Beyond Setup and Hold16
  • Multi-Corner Multi-Mode Signoff16
  • OCV, AOCV, POCV and Variation16
  • Crosstalk and Noise16
  • ECO and Closure16
  • STA Debug Playbook16
  • STA Interview Prep26
  • Capstone Timing Signoff Lab4
Loading lesson

‹Clocks in Timing Analysis
  1. Topics
  2. Static Timing Analysis
  3. Timing Paths and Checks
  4. Clocks in Timing Analysis
  5. Generated and Gated Clock Paths

Part 1 · Timing Paths and Checks · All levels

Generated and Gated Clock Paths

Clocks that pass through dividers, gates and muxes are timed as clock network: the cells on the way add to latency like any clock buffer.

On this page

    Why it matters

    Real designs divide, gate and mux their clocks. If the tool does not know a divider's output is a clock, the flops it drives have no clock and their paths are unconstrained. If it knows, the delay through the divider or gate becomes part of those flops' clock latency. Understanding which parts of a path are clock network and which are data decides which constraint is missing when a report looks wrong.

    What is a clock path and what is a data path

    Element

    Treated as

    Effect on analysis

    Buffer or inverter in the clock tree

    Clock network

    Adds to the latency of every flop below it

    Clock gate (AND/ICG) between source and flops

    Clock network, plus a gating check on its enable

    Its delay adds to latency; the enable is a data path timed against the gate

    Divider flop whose output feeds other clock pins

    A generated clock needs defining

    Without a definition the downstream flops have no clock

    Mux selecting between clocks

    Clock network with two clock arrivals

    Needs case analysis or clock groups so only valid combinations are timed

    example.py
    1
    2
    3
    4
    5
    6
    7
    # Latency of a flop clocked through a gate: sum of the cells on the clock path.
    segments = {"root_buf": 0.20, "gate_cell": 0.15, "leaf_buf": 0.25}   # ns, illustrative
    latency_gated = sum(segments.values())
    latency_ungated = segments["root_buf"] + segments["leaf_buf"]
    assert abs(latency_gated - 0.60) < 1e-9
    assert abs(latency_gated - latency_ungated - 0.15) < 1e-9
    print("PASS: gating adds", round(latency_gated - latency_ungated, 2), "ns of latency to the gated flops")

    The gated flops see 0.60 ns of latency against 0.45 ns for ungated flops on the same tree, a 0.15 ns skew between the two groups. Paths crossing between the gated and ungated groups therefore see that skew unless clock tree synthesis balances it. That is one reason clock gating is planned with the clock tree, not after it.

    What the review looks for

    • Every divider or toggle flop that drives clock pins has a generated clock defined; a count of unclocked flops confirms it.

    • Clock gates have a gating check on the enable path (covered in the advanced checks section).

    • Latency of gated and ungated branches is balanced, or the skew is deliberate and checked.

    Common pitfall

    Assuming a divided clock "just works" because the RTL is simple. Unless the divider output is defined as a generated clock, the tool sees data pins on a clock net: the downstream flops have no clock and silently drop out of the analysis.

    Interview

    State the rule: any net that clocks sequential cells must be a clock in the constraints, either defined directly or derived from a defined clock. Everything else is a data net.

    Check yourself A block's flops all show "no clock" in the report after a divider was added. What is the likely cause and fix?

    The divider output was never defined as a generated clock, so the flops below it have no clock. Add a generated clock definition for the divider output, with the correct source and division, and re-run.

    Related topics

    • Common Path Pessimism Removal

    • RTL: Clock Gating

    • RTL: Clock Architecture

    Previous

    17 / 183

    Next: Delay Models

    Up next

    Up nextDelay Models

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Ideal Versus Propagated Clocks
    • Latency, Skew and Uncertainty