Setup & Hold Time Margin

Enter your timing numbers to compute setup/hold margins instantly. Includes optional uncertainty budgeting and Show Work.

How to Use

  1. Pick a timing model (common FF→FF defaults are included).
  2. Enter clock period, clock-to-Q, combinational delay (min/max), setup and hold requirements.
  3. Optionally include uncertainty (skew + jitter + margin).
  4. Review setup/hold margins and the worst-case margin; open Show Work for formulas.
Timing Window View
Visual overview of launch → capture with margins.
Setup Margin
Hold Margin
Worst Margin
Status
Result:
CLK Capture edge Setup Hold DATA Setup requires data stable BEFORE capture edge. Hold requires stable AFTER. Optional uncertainty shrinks margin.
Inputs & Settings
Timing is evaluated with min/max delays. Units default to ns. Tool works instantly without the API.
Example: 10 ns = 100 MHz, 5 ns = 200 MHz
Used for setup (latest launch)
Used for hold (earliest launch)
Capture FF needs data stable this long before edge
Capture FF needs data stable this long after edge
Used for setup (latest arrival)
Used for hold (earliest arrival)
Positive skew helps setup, hurts hold
Subtracts from available setup time; adds to hold risk

Show Work (step-by-step)
Work is shown in base units for consistency. Setup uses max path; hold uses min path.

Reference

Common FF→FF single-cycle checks (simplified):

  • Setup: Tclk + Tskew − Tjitter ≥ Tcq(max) + Tcomb(max) + Tsetup
  • Hold: Tcq(min) + Tcomb(min) − Tskew − Tjitter ≥ Thold
Positive skew (capture later than launch) generally improves setup and worsens hold.

FAQ

What does a negative margin mean?

It indicates a timing violation: your path cannot meet setup or hold under the given assumptions.

Why do we use max for setup and min for hold?

Setup is worst when signals arrive late; hold is worst when they arrive early.

What should I put for jitter/uncertainty?

Use a conservative total uncertainty number from your clock source/PLL plus any additional analysis margin your flow requires.

Tool Info

Last updated:

Updates may include additional timing models, constraint presets, and edge-case handling.