Weak timing answers are unordered facts: a derate mentioned, a corner named, no argument connecting them. The framework forces an order. State the assumptions so the interviewer can correct them, explain the mechanism so the fix follows from it, name the trade-off to show seniority, and finish with the evidence that would close the question.
Step | What you say | Example |
|---|---|---|
Assumption | Clocks, edges, scenario, constraints and the check in question | "I assume both flops are on the same rising edge, ideal clocks, setup in the slow corner." |
Mechanism | How the check works on this circuit, with numbers where you can | "Data launches at 0, arrives at 1.02 ns; the capture edge is at 1.25 ns less 0.06 ns setup." |
Trade-off | What each remedy costs | "Upsizing gains delay but costs input capacitance upstream; useful skew moves slack but costs hold." |
Evidence | The report, check or run that would close it | "The path report in the slow scenario plus the same endpoint in the other views." |
Question: "A path fails setup by 40 ps. What do you do?" A framework answer: Assumption, same clock, slow corner, SI and derates already on, so the 40 ps is real. Mechanism, I read the path report: where is the slack lost (cell and wire delay on the data side, skew and uncertainty on the clock side), and do other failing paths share its segments? Trade-off, upsize the shared cells first (cheap, local), then buffering or a faster threshold (power), then structure or useful skew if the setup-plus-hold sum allows. Evidence, the same endpoint across all scenarios, the hold slack at the same endpoint after the fix, and a before-and-after table of endpoints. Notice that the answer does not start with a fix: the fix follows from where the delay is.
# The mechanism step is arithmetic: check the numbers you quote.
T, arrival, setup, skew = 1.25, 1.02, 0.06, 0.0
slack = T + skew - setup - arrival
assert round(slack, 3) == 0.17
# the same path with a 40 ps deficit
arrival_bad = arrival + 0.21
assert round(T + skew - setup - arrival_bad, 3) == -0.04
print("PASS: slack", round(slack, 3), "ns; with 0.21 ns more delay", round(T + skew - setup - arrival_bad, 3), "ns")Whether you reason from mechanism or from vocabulary. Candidates who start with the circuit can be steered to a new variation of the question; candidates who start with a tool feature stall. Stating the assumption tests whether you check intent before acting, which is the heart of signoff work.
All four are thin: no assumption (are the clocks really unrelated), no mechanism (why the path is false), no trade-off (what the exception hides), no evidence (how many paths it covers).