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
  • Constraints & SDC Fundamentals20
    • Clock Definition & Uncertainty
    • Generated Clocks & Dividers
      • create_generated_clock
      • Dividers and Gated Clocks
      • Clock Muxes and Case Analysis
      • Verifying Clock Propagation
    • I/O Timing & Boundary Contracts
    • Exceptions & Audit Policy
    • Environment and Design Rules
  • 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

‹Generated Clocks & Dividers
  1. Topics
  2. Static Timing Analysis
  3. Constraints & SDC Fundamentals
  4. Generated Clocks & Dividers
  5. Dividers and Gated Clocks

Part 2 · Constraints and SDC · All levels

Dividers and Gated Clocks

A flop-based divider needs a generated clock; a combinational gate on the clock path does not, but its enable needs a gating check.

On this page

    Why it matters

    Deciding whether a structure needs a generated clock is the most common clock-constraint question. The rule is mechanical once you see it, and applying it prevents both silent unconstrained flops and redundant definitions.

    The rule applied

    Structure

    Generated clock needed?

    Why

    Divide-by-2 toggle flop driving flop clocks

    Yes

    The clock does not propagate through the flop's CK to Q arc

    AND gate with an enable (clock gate) feeding flop clocks

    No

    The clock propagates through the combinational gate; the enable gets a gating check

    Integrated clock-gating cell

    No

    Treated like a gate with a built-in latch; gating check on the enable

    Inverter or buffer chain on the clock

    No

    Clock network

    Clock mux between two defined clocks

    No

    Both clocks propagate; constrain selection (next lesson)

    PLL output with a different frequency

    Yes (or define the clock at the PLL output pin)

    The multiplied clock is a new waveform

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # Latency of a divided clock domain: path to the divider flop's CK + CK->Q + tree below it.
    to_div_ck = 0.40        # ns master tree to the divider flop
    ck_to_q = 0.45          # divider flop CK->Q
    tree_below = 0.30       # buffers to the leaf flops
    latency_div = to_div_ck + ck_to_q + tree_below
    latency_master_leaf = 0.40 + 0.35
    assert abs(latency_div - 1.15) < 1e-9
    skew_between_domains = latency_div - latency_master_leaf
    assert abs(skew_between_domains - 0.40) < 1e-9
    print("PASS: divided domain latency", latency_div, "ns; skew vs master domain", skew_between_domains)

    The divided domain's flops see 1.15 ns of latency against 0.75 ns for the master leaf flops, a 0.40 ns skew. Because the divided clock is related to the master (same source), paths between the domains are timed with that skew unless the tree is balanced through the divider. Unbalanced dividers are a classic hold-risk source.

    What the review looks for

    • No flop is left without a clock after a divider is added; the unclocked-pin count stays at zero.

    • Gating checks exist for every clock gate enable (the advanced checks section covers them).

    • Skew between master and divided domains is understood: balanced by design or deliberately handled with hold fixing.

    Common pitfall

    Adding a generated clock for a combinational gate "to be safe". A redundant generated clock on a gate output creates a second clock on the same flops and doubles the checks. Define only what STA cannot propagate.

    Interview

    Distinguish the two with one example each: toggle flop divider (needs it), AND-gate clock gate (does not).

    Check yourself An ICG feeds 500 flops. Do you add a generated clock at its output?

    No. The master clock propagates through the clock-gating cell like through any combinational clock element. Add a gating check on its enable; no generated clock is needed.

    Related topics

    • create_generated_clock

    • Next: Clock Muxes and Case Analysis

    • RTL: Clock Gating

    Previous

    27 / 183

    Next: Clock Muxes and Case Analysis

    Up next

    Up nextClock Muxes and Case Analysis

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Verifying Clock Propagation