FREE — INTERVIEW QUESTIONS

STA interview questions, with worked answers and numericals

90+ free Static Timing Analysis questions, from the setup and hold equations to OCV, CPPR, MCMM and real debugging scenarios. Includes 18 worked answers, 8 solved numericals, a hold-report walkthrough and a live slack calculator.

550+ STA Interview Questions ebook cover
STA INTERVIEW QUESTIONS EBOOK · 621 QUESTIONS · 28 CHAPTERS

Get the full STA question bank, every question answered

621 questions with interview-ready answers and tips, 25 solved numericals, an annotated timing report and 30 debugging scenarios.

INSTANT PDF DOWNLOAD · 8 FREE PREVIEW PAGES
See the ebook

STA comes up in almost every physical design, STA, synthesis and ASIC interview. Interviewers rarely stop at "what is setup time?". They give you numbers, a timing report or a failing path, and listen to how you reason.

This page is built around that. Start with the formula sheet and the calculator, browse 50 questions across ten topics, then work through the worked answers, numericals and the report walkthrough. Try each one aloud before opening the answer.

HOW IT'S STRUCTURED

What an STA interview actually looks like

ROUND 1

Fundamentals & numericals

Setup and hold, skew, slack and the four path types, then at least one calculation: fmax, slack with skew, or a half-cycle path. Freshers are judged mostly here.

ROUND 2

Constraints & concepts

Write create_clock and set_input_delay, explain false vs multicycle paths, generated clocks, OCV derates, CPPR and why setup and hold are checked at different corners.

ROUND 3

Reports & debugging

Common from 2–3 years of experience: "walk me through this report", "hold exploded after CTS", "a false path suddenly fixed WNS". They're testing your method more than any single answer.

HOW TO ANSWER

Six habits that make STA answers land

01

Write the equation first

Before any number, write the setup or hold slack formula. It shows method, and it catches the most common mistake: using the setup formula for hold.

02

Draw the clock edges

Skew, half-cycle, multicycle and clock-ratio questions get easy once you sketch launch and capture edges. Interviewers like a quick waveform.

03

Say which corner and which delay

Setup: late launch, late data, early capture, slow corner. Hold: the reverse, at the fast corner. Naming this unprompted shows you understand OCV.

04

Read reports header first

Scenario, path type (max or min), start and end clocks, then the numbers. Many debugging mistakes come from reading the wrong scenario or check.

05

Pair every exception with its risk

A setup multicycle path without its hold partner, or a false path without design intent behind it, can hide a real silicon failure. Say so.

06

Verify, isolate, fix, re-verify

For any debug question: confirm the data and settings, find the source (constraint, clock, data path, SI), propose ranked fixes, re-check every scenario.

FORMULA SHEET

Every equation you'll be asked to write

T = clock period. Positive skew means the capture clock arrives later than the launch clock: it helps setup and hurts hold.

SETUP SLACK(T + Tcap − Tsetup − Tunc) − (Tlaunch + Tclk→q + Tcomb,max)Required time minus arrival time. Uses the latest (max) data arrival.
HOLD SLACK(Tlaunch + Tclk→q + Tcomb,min) − (Tcap + Thold + Tunc,hold)Arrival time minus required time. Uses the earliest (min) arrival. No T anywhere.
CLOCK SKEWTskew = capture latency − launch latency
MAX FREQUENCYTmin = Tclk→q + Tcomb,max + Tsetup + Tunc − Tskew;  fmax = 1 / Tmin
INPUT DELAYmax = ext Tclk→q,max + boardmax;  min = ext Tclk→q,min + boardmin
OUTPUT DELAYmax = boardmax + ext Tsetup;  min = boardmin − ext Thold
MULTICYCLEset_multicycle_path N -setup  +  set_multicycle_path N−1 -holdThe hold partner moves the hold check back to the launch edge.
CPPR CREDITlate − early delay on the common clock path, added back to slack
SYNCHRONISERMTBF = etr/τ / (T0 · fclk · fdata)
TRY IT

Setup & hold slack calculator

All values in ns. Change any number and the results update.

SETUP SLACK–
HOLD SLACK–
SKEW (CAP − LAUNCH)–
FMAX FOR THIS PATH–

Try raising the period: setup slack grows, hold slack doesn't move.

CHECKLAUNCH CLOCKDATA PATHCAPTURE CLOCKWORST WHEN
Setuplate (max)late (max)early (min)Slow corners, opposite-direction crosstalk, negative skew
Holdearly (min)early (min)late (max)Fast corners, same-direction crosstalk, positive skew
BROWSE BY TOPIC

50 STA interview questions across 10 topics

A sample of what interviewers draw from most. The full 621-question ebook covers each topic in much more depth, with every question answered.

STA Fundamentals

What STA is, what it needs and what it can't do.

  • What is static timing analysis, and why is it called "static"?
  • What are the inputs to an STA tool, and which one does signoff depend on most?
  • Why is STA preferred over gate-level simulation for timing signoff, and why is GLS still run?
  • Is the Q pin or the clock pin the startpoint of a register-to-register path?
  • What is the difference between a delay arc and a check arc?

Setup & Hold

The two checks every synchronous path must pass.

  • Define setup and hold time. What physically happens inside a flop when either is violated?
  • Why does hold not depend on clock frequency?
  • Can a flop have a negative setup or hold time? What does it mean?
  • Why do hold violations typically appear after CTS and not before?
  • Which delay, min or max, is used for the setup check, and why?

Clocks: Latency, Skew, Jitter, Uncertainty

How real clocks differ from the ideal waveform.

  • What is the difference between source latency and network latency?
  • Is positive skew good or bad? For which check?
  • What does set_clock_uncertainty model before CTS, and how should it change after?
  • What is the difference between cycle-to-cycle jitter and period jitter?
  • What is useful skew, and what must you re-check after applying it?

Slack, WNS & Reports

Turning a report into a decision.

  • What do WNS, TNS and the number of violating endpoints each tell you?
  • High TNS with a modest WNS: what does that usually mean?
  • What should you check first when you open any timing report?
  • What is the difference between GBA and PBA, and why can PBA slack be better?
  • How do you tell whether a violation is clock-dominated or data-dominated?

SDC: Clocks & Generated Clocks

Telling the tool what the clocks really are.

  • Write a create_clock for a 500 MHz clock with a 40% duty cycle.
  • Why do you need create_generated_clock on a divider output? What breaks without it?
  • How do you constrain a clock mux so both clocks aren't timed through it at once?
  • What is the difference between -asynchronous, -logically_exclusive and -physically_exclusive clock groups?
  • What is a virtual clock, and when do you use one?

I/O & Interface Timing

Budgeting time across the chip boundary.

  • How do you derive set_input_delay -max and -min from a datasheet?
  • Why must you always specify both min and max I/O delays?
  • Why does an input port often show a hold violation only after CTS?
  • What do set_driving_cell and set_load model, and what happens if they're missing?
  • How is source-synchronous interface timing different from system-synchronous?

Timing Exceptions

Where correct constraints and dangerous ones look alike.

  • What is the difference between a false path and a multicycle path?
  • Why must a -setup multicycle path normally be paired with a -hold one?
  • What do -start and -end mean on a multicycle path between clocks of different frequency?
  • When would you use set_max_delay -datapath_only instead of a false path?
  • Someone's new false path improved WNS dramatically. What do you check?

Corners, MCMM, OCV & CPPR

Variation: the topic that separates junior and senior answers.

  • What is the difference between a mode, a corner and a scenario?
  • What is temperature inversion, and how does it change which corner is worst for setup?
  • Which paths get late derates and which get early derates for a setup check?
  • What is the difference between OCV, AOCV and POCV (LVF)?
  • What is CPPR, and why is it pessimism rather than real margin?

Crosstalk, Special Checks & CDC

Checks beyond plain setup and hold.

  • Same-direction vs opposite-direction aggressor switching: which hurts setup and which hurts hold?
  • What is the difference between crosstalk delta delay and a crosstalk glitch?
  • What are recovery and removal checks? Which is setup-like?
  • What is time borrowing in a latch, and how much can be borrowed?
  • Does declaring a false path between two async clocks make the crossing safe?

Closure, ECO & Signoff

Fixing violations without creating new ones.

  • List setup fixes in the order you'd try them, with the side effect of each.
  • Where do you insert a hold buffer, and why there?
  • Why can a Vt swap that fixes setup at the slow corner break hold at the fast corner?
  • Timing passes in the P&R tool but fails in signoff STA. What differs?
  • What must be clean before you call a block timing-signed-off?

This is a sample. The full bank goes much deeper.

621 questions across 28 chapters, all answered: 25 solved numericals, an annotated setup report, 30 debugging scenarios, plus SDC, Tcl and low-power STA.

See the full question bank
N1 · MAX FREQUENCYBEGINNERTclk→q = 0.12, max logic = 1.60, setup = 0.08, uncertainty = 0.05, positive skew = 0.10. What is fmax?Show solution ↓
Tmin = Tclk→q + Tcomb + Tsetup + Tunc − Tskew
     = 0.12 + 1.60 + 0.08 + 0.05 − 0.10 = 1.75 ns
fmax = 1 / 1.75 ns ≈ 571 MHz

Note: positive skew helps setup here, but the same 0.10 ns comes straight off this pair's hold margin.

N2 · SETUP SLACKINTERMEDIATET = 2.0, launch latency 0.60, capture latency 0.55, Tclk→q 0.15, data path 1.10, setup 0.07, setup uncertainty 0.10. Find setup slack and the skew.Show solution ↓
Arrival  = 0.60 + 0.15 + 1.10        = 1.85
Required = 2.00 + 0.55 − 0.07 − 0.10 = 2.38
Slack    = 2.38 − 1.85               = +0.53 ns (met)
Skew     = 0.55 − 0.60               = −0.05 ns

Note: the 50 ps of negative skew cost 50 ps of setup margin. These are the default values in the calculator above.

N3 · HOLD SLACKINTERMEDIATESame flop pair: Tclk→q,min 0.12, min data path 0.02, hold 0.04, hold uncertainty 0.03. Find hold slack.Show solution ↓
Arrival  = 0.60 + 0.12 + 0.02 = 0.74
Required = 0.55 + 0.04 + 0.03 = 0.62
Slack    = 0.74 − 0.62        = +0.12 ns (met)

Note: the 2 ns period wasn't used. Interviewers often include it to see if you'll wrongly add it in.

N4 · HALF-CYCLE PATHINTERMEDIATET = 3 ns, 50% duty cycle. A rising-edge flop drives a falling-edge flop. Tclk→q = 0.2, setup = 0.1, ideal clocks. What's the maximum logic delay?Show solution ↓
Capture edge = falling edge at T/2 = 1.5 ns
Tcomb(max)   = 1.5 − 0.2 − 0.1   = 1.2 ns

Note: hold is checked against the previous falling edge at −1.5 ns, so it gains half a cycle of margin. Duty-cycle distortion shrinks the 1.5 ns window directly.

N5 · INPUT DELAY BUDGETINTERMEDIATEAn external flop has Tclk→q 0.5–0.9 and the board delay is 0.3–1.1. With T = 5 and capture setup 0.1 (ideal clock), find the input delays and the internal budget.Show solution ↓
input delay -max = 0.9 + 1.1 = 2.0
input delay -min = 0.5 + 0.3 = 0.8
Internal budget  = 5.0 − 2.0 − 0.1 = 2.9 ns

Note: the min value drives the hold check at the input flop. Leaving it out is a classic gap.

N6 · MULTICYCLE PATHINTERMEDIATET = 1 ns. A path needs Tclk→q + logic = 1.70 and setup 0.05. The design only samples it every second cycle. Constrain it and find setup slack.Show solution ↓
set_multicycle_path 2 -setup -from A -to B
set_multicycle_path 1 -hold  -from A -to B

Capture edge moves to 2 ns:
Slack = 2.00 − 0.05 − 1.70 = +0.25 ns

Note: without the -hold 1, hold is checked against the 1 ns edge, so any path faster than about 1 ns fails hold.

N7 · CPPR CREDITADVANCEDLaunch and capture clocks share a segment with late delay 0.84 and early delay 0.76. Reported setup slack without CPPR is −0.05. What's the real slack?Show solution ↓
CPPR credit = 0.84 − 0.76 = 0.08 ns
Slack       = −0.05 + 0.08 = +0.03 ns (met)

Note: the shared buffers can't be slow for launch and fast for capture in the same cycle, so the difference was never real.

N8 · CLOCK RATIOINTERMEDIATECLKA (5 ns) launches data to CLKB (3 ns), both rising at 0. What's the most restrictive setup relationship?Show solution ↓
Common period = LCM(5, 3) = 15 ns
CLKA edges: 0, 5, 10      CLKB edges: 0, 3, 6, 9, 12, 15
Launch 0  → capture 3  = 3 ns
Launch 5  → capture 6  = 1 ns   ← tightest
Launch 10 → capture 12 = 2 ns

Note: both clocks are slow, but the path only gets 1 ns. If the crossing is really asynchronous, it needs synchronisers and a clock group instead.

Startpoint: u_ctrl/cnt_reg_3_ (rising edge-triggered flip-flop clocked by CLK)
Endpoint:   u_ctrl/st_reg_0_ (rising edge-triggered flip-flop clocked by CLK)
Path Group: CLK   Path Type: min   Scenario: func_ff_0p88v_m40c_cbest

  Point                                  Incr      Path
  ------------------------------------------------------------
  clock CLK (rise edge)                 0.000     0.000
  clock network delay (propagated)      0.284     0.284   (1)
  u_ctrl/cnt_reg_3_/CK (DFFRQX1)        0.000     0.284 r
  u_ctrl/cnt_reg_3_/Q  (DFFRQX1)        0.061     0.345 f (2)
  u_ctrl/U58/Y (INVX1)                  0.018     0.363 r
  u_ctrl/st_reg_0_/D (DFFQX1)           0.004     0.367 r
  data arrival time                               0.367   (3)

  clock CLK (rise edge)                 0.000     0.000   (4)
  clock network delay (propagated)      0.331     0.331   (5)
  clock reconvergence pessimism        -0.009     0.322   (6)
  clock uncertainty                     0.030     0.352
  u_ctrl/st_reg_0_/CK (DFFQX1)                    0.352 r
  library hold time                     0.027     0.379   (7)
  data required time                              0.379
  ------------------------------------------------------------
  data arrival time                               0.367
  data required time                             -0.379
  ------------------------------------------------------------
  slack (VIOLATED)                               -0.012   (8)
  1. Launch clock latency through the real clock tree: 284 ps.
  2. Clock-to-Q at the fast corner: 61 ps. The whole data path is only 83 ps (0.367 − 0.284): one inverter.
  3. Arrival is the earliest time data can change at D.
  4. Capture uses the same edge at 0 ns. No period appears anywhere in a hold report.
  5. Capture latency is 331 ps: 47 ps later than launch. That positive skew is the real problem.
  6. CPPR is subtracted here because, for hold, removing pessimism lowers the required time.
  7. Uncertainty and hold time are added: they push the required time later.
  8. Slack = arrival − required = 0.367 − 0.379 = −12 ps.
Why is this path failing, in one sentence?

A very short data path (83 ps) meets 47 ps of positive clock skew, so the data changes before the capture flop's hold window, pushed later by the skew, has closed.

What fix would you propose, and what would you check afterwards?

Insert a small delay cell or buffer on the D input of st_reg_0_ (near the capture flop, so other fan-outs aren't slowed), sized to give at least 12 ps plus margin at this fast corner. Then check this pair's setup at the slow corners and confirm no other endpoint shares the delayed segment. If the 47 ps skew isn't intentional useful skew, reducing it is the cleaner fix.

Would slowing the clock help?

No. The capture edge in this report is the same edge as launch, at 0 ns. Nothing here depends on the period.

What is different about reading this vs a setup report?

Path type is min, the scenario is a fast corner, capture uses the same edge rather than the next one, uncertainty and the library check add to the required time instead of subtracting, and slack is arrival minus required. The ebook walks through a full setup report with ten callouts.

Does hold time depend on clock frequency?

No. Hold is checked on the same edge, so the period cancels out.

Positive skew helps which check?

Setup. It hurts hold by the same amount.

Max or min delay for setup?

Max (late) data arrival, and early capture clock.

Max or min delay for hold?

Min (early) data arrival, and late capture clock.

What is the period of a 1.25 GHz clock?

0.8 ns (800 ps).

What do WNS and TNS stand for?

Worst Negative Slack and Total Negative Slack.

Which file carries extracted parasitics?

SPEF.

Which file carries calculated delays for simulation?

SDF.

What does an NLDM table index on?

Input transition (slew) and output load capacitance.

Which SDC command declares asynchronous clocks?

set_clock_groups -asynchronous.

Which SDC command models jitter and skew margin?

set_clock_uncertainty.

What's the default hold partner for an N-cycle setup MCP?

set_multicycle_path N-1 -hold.

What does CPPR stand for?

Clock Path Pessimism Removal (also CRPR: Clock Reconvergence Pessimism Removal).

Opposite-direction aggressor switching hurts which check?

Setup. It slows the victim.

Is recovery like setup or hold?

Setup: reset must de-assert early enough before the clock edge. Removal is hold-like.

Can a latch borrow time? Can a flop?

A latch can, while it's transparent. A flop can't.

Main cause of hold violations in scan chains?

Flop-to-flop shift paths with almost no logic between them, plus clock skew.

Is a false path the same as CDC safety?

No. It only stops timing checks. Synchronisers and CDC verification make a crossing safe.

Why is PBA slack usually better than GBA?

PBA uses the real slews and depth of one path instead of worst-case values merged at each pin.

First command on a new STA setup?

check_timing (plus the log warnings): find unclocked, unconstrained and looping paths before trusting any slack.

COMMON MISTAKES

What costs candidates the most in STA rounds

×

Using the setup formula for hold

Hold slack is arrival minus required, with min delays, on the same edge. Writing the setup form, or adding the period, is the fastest way to lose a numerical.

×

Getting the sign of skew wrong

Skew is capture latency minus launch latency. Positive skew helps setup and hurts hold. Say the definition before you use it.

×

Saying a slower clock fixes hold

It doesn't, at all. Interviewers ask this specifically to find candidates who memorised without understanding.

×

Writing a setup MCP without the hold MCP

The default hold check moves along with the setup edge. Without -hold N-1 you get large, fake hold violations, and over-fixing them hurts setup.

×

Treating false paths as harmless

A false path removes checks entirely. Without documented design intent it can hide a real failure, and it never proves a clock crossing is safe.

×

Forgetting units under pressure

ps vs ns slips are common in live numericals. Write the given values with units, then the formula, then substitute.

QUICK FAQ

Before you start preparing

How many rounds does an STA interview usually have?

Usually two or three: a fundamentals round with setup/hold equations and a numerical or two, a constraints and concepts round (SDC, exceptions, OCV, MCMM), and for experienced candidates a report-reading or debugging round.

Is STA asked separately from Physical Design?

Often yes. PD interviews usually include a dedicated timing section, and STA or signoff roles go much deeper into constraints, variation and timing reports than a general PD round. See our Physical Design questions for the rest of the flow.

Will I get numerical questions in an STA interview?

Almost always. Expect at least one calculation: maximum frequency, setup or hold slack with skew, a half-cycle path, I/O delay budgets or a multicycle path. Write the formula first, substitute step by step and state units.

Do I need to know a specific STA tool?

No. Interviewers test concepts that transfer across tools: equations, SDC, exceptions, OCV, reports. Mention the tools you actually used, including open-source ones like OpenSTA, and focus on what you did with them.

How should a fresher prepare for STA questions?

Master the setup and hold equations, skew and slack first, then practise numericals until they are automatic. After that, learn basic SDC, how to read a timing report, and OCV and MCMM at a conceptual level.

Can hold violations be fixed by slowing the clock?

No. The hold check compares launch and capture on the same clock edge, so the clock period does not appear in the hold equation. Hold is fixed by adding data-path delay or adjusting clock skew.

Want to be tested on these live?

Book a 1:1 mock interview with a mentor working in this exact domain.

Book a mock interview