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
      • Launch and Capture Edges
      • Setup Check Derivation
      • Hold Check Derivation
      • Slack and Criticality
    • Clocks in Timing Analysis
    • 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

‹Setup and Hold Checks
  1. Topics
  2. Static Timing Analysis
  3. Timing Paths and Checks
  4. Setup and Hold Checks
  5. Launch and Capture Edges

Part 1 · Timing Paths and Checks · All levels

Launch and Capture Edges

A path is timed between one launching clock edge and the next capturing edge; the relationship between those edges sets the time budget.

On this page

    Why it matters

    Before you can write a timing inequality you must know which edge launches the data and which edge captures it. Get this wrong and every number in the report is wrong, even if every delay is right. For the common case (positive-edge flops on one clock) the answer is simple. For half-cycle paths, different clocks and multicycle paths it is the first thing to check.

    The default relationship

    A flop launches new data at its active clock edge. The capturing flop samples at an active edge, and the tool chooses the closest later capture edge after the launch edge. With both flops on the rising edge of the same clock, that is exactly one period later. The data therefore has one period, adjusted by clock latencies and the flop's own delays, to cross the combinational logic.

    Launch edge

    Capture edge

    Edge relationship (same clock)

    Default budget (50% duty)

    Rising

    Rising

    One period later

    T

    Rising

    Falling

    Half a period later

    T / 2

    Falling

    Rising

    Half a period later

    T / 2

    Falling

    Falling

    One period later

    T

    With any other duty cycle the budget is the rising-to-falling (or falling-to-rising) edge difference from the clock waveform; the Waveform and Edge Cases works a 25% duty example.

    The same edge relationship sets the hold check. For same-edge paths on one clock the period cancels out of hold, but for half-cycle paths it does not: for rising launch to falling capture (and falling to rising), hold slack = dmin + T/2 - H at 50% duty, where dmin is the minimum data-path delay and H is the hold time. The previous capture edge sits half a period before the launch edge, so the period enters the hold check.

    Seeing it in simulation

    The waveform below is simulation output for a launch flop, a 4 ns combinational delay and a capture flop on a 10 ns clock. Lanes are sampled once per clock half-cycle: even slots show the clock low, odd slots high.

    How to read it: launch_q changes in every odd slot, right after a rising edge (slot 1 first, then 3, 5, and so on): that is the launch, one clock-to-Q after the edge. d follows in the next even slot, after the falling edge, because the 4 ns path pushes the change from 1 ns past the rising edge to 5 ns past it. cap_q changes in the odd slot after that (slot 3 first): the capture flop sampled d on the next rising edge, a full period after the launch. The value captured at slot 3 is the one launched at slot 1. The lanes show that the data arrives half a period before it is needed; that spare half period is the setup margin before the setup time is subtracted.

    What the review looks for

    • The edge relationship the tool used matches the design intent: a negative-edge flop in a path halves the budget, and the report shows it as a launch and capture edge pair.

    • Paths between different clocks have a derived relationship (the closest edges of both clocks); if the clocks are unrelated the check is meaningless and needs an exception or a clock group.

    • Multicycle paths change the capture edge on purpose; they are covered in the constraints section.

    Common pitfall

    Reading the period as the budget without checking the edges. A path launched on the rising edge and captured on the falling edge has half the time. A report that shows a launch at 0 ns and a capture at 5 ns on a 10 ns clock is a half-cycle path, not an error.

    Interview

    State the default rule in one sentence: the capture edge is the nearest active edge after the launch edge. Then give the half-cycle example, since it is the one candidates forget.

    Check yourself A positive-edge flop feeds a negative-edge flop on the same 8 ns clock. What is the default setup budget, and what is the hold check?

    Half a period, 4 ns, because the nearest capture edge after the rising launch edge is the falling edge 4 ns later. For this rising-launch-to-falling-capture relationship, hold slack = dmin + T/2 - H at 50% duty, so hold slack = dmin + 4 ns - H: the previous falling capture edge is half a period before the launch edge, so the period enters the hold check.

    Related topics

    • Next: Setup Check Derivation

    • RTL: Setup, Hold and Slack

    Previous

    10 / 183

    Next: Setup Check Derivation

    Up next

    Up nextSetup Check Derivation

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Hold Check Derivation
    • Slack and Criticality
    clklaunch_qdcap_q
    Simulation output: data launched at one rising edge, delayed 4 ns, and captured one period later