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
  • Delay Graph & Path Analysis16
  • Beyond Setup and Hold16
    • Latches and Time Borrowing
      • Latch Timing Model
      • Time Borrowing Worked
      • Borrowing Chains
      • Latch Signoff Rules
    • Clock Gating Checks
    • Recovery, Removal and Async
    • Pulse Width and Min Period
  • 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

‹Latches and Time Borrowing
  1. Topics
  2. Static Timing Analysis
  3. Beyond Setup and Hold
  4. Latches and Time Borrowing
  5. Latch Timing Model

Part 4 · Beyond Setup and Hold · All levels

Latch Timing Model

A latch has an opening edge, a closing edge and a transparent window; data arriving inside it passes through with the latch's delay.

On this page

    Why it matters

    Latches appear in hand-crafted datapaths, clock gating cells, and some synchronisation structures. Their timing is not a single capture instant, so reports speak about time borrowed and time given. Reading them requires the three-edge view: the opening edge, the closing edge, and the transparent time between.

    The model

    Term

    Meaning (positive-level latch)

    Opening edge

    The clock rising edge: the latch becomes transparent

    Closing edge

    The clock falling edge: the latch holds the value

    Transparent window

    The high phase: duration = pulse width (50% of the period for a symmetric clock)

    Setup check

    Data must arrive before the closing edge less setup time

    D to Q

    While transparent, the output follows D after the latch's delay

    Hold check

    Data must not change just after the closing edge

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # Positive latch, period 10 ns, 50% duty: opens at 0, closes at 5. Setup 0.1.
    open_edge, close_edge, setup = 0.0, 5.0, 0.1
    window = close_edge - open_edge
    max_arrival = close_edge - setup
    assert window == 5.0 and abs(max_arrival - 4.9) < 1e-9
    # a signal arriving at 3.2 passes through transparently: it borrows 3.2 ns from the next stage
    arrival = 3.2
    borrowed = max(0.0, arrival - open_edge)
    assert abs(borrowed - 3.2) < 1e-9 and arrival <= max_arrival
    print("PASS: transparent window", window, "ns; maximum arrival", round(max_arrival, 2), "ns; borrowed", borrowed, "ns")

    The window is 5 ns; data may arrive up to 4.9 ns after the opening edge. A signal arriving 3.2 ns after the opening edge simply passes through, and downstream timing starts from 3.2 ns (plus the D-to-Q delay), not from the opening edge. That is borrowing: the next stage has 3.2 ns less than it would if the latch were an edge-triggered flop at the opening edge. A positive-level latch fed by a rising-edge flop on the same edge is a same-phase relationship: its capture is the next opening edge, not the opening edge it shares.

    What the review looks for

    • Every latch is intentional and listed; unintended latches from RTL (incomplete assignments) are design errors found by lint.

    • Transparent window and duty cycle are in the clock definition; asymmetric duty changes the borrowing limit.

    • The report distinguishes the opening-edge path (no borrowing) from the borrowing case.

    Common pitfall

    Treating a latch like a flop in constraints. Its setup is against the closing edge and the downstream path begins at the data arrival time if the latch is transparent; assuming a launch at the opening edge is optimistic in that case.

    Interview

    Be able to say what changes in STA for a latch: the capture edge moves to the closing edge, and a late arrival becomes a launch time for the next path.

    Check yourself A latch's clock has a 30% duty cycle on a 10 ns period. What is its transparent window?

    3 ns (30% of the period), so the latest data arrival is 3 ns after opening less the setup time.

    Related topics

    • Next: Time Borrowing Worked

    Previous

    58 / 183

    Next: Time Borrowing Worked

    Up next

    Up nextTime Borrowing Worked

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Borrowing Chains
    • Latch Signoff Rules