The interviewer describes one red path a week before tape-out and asks for a gate-level ECO or an RTL change. The question tests risk judgment under schedule pressure. The answer weighs locality against fragility.
Check the constraint first. A wrong clock definition makes STA report a violation the hardware never sees, and no design change fixes that.
Then classify by locality. A single failing path takes a local gate edit; a structural shortfall repeated across many paths takes an RTL change. Repeated ECOs on the same logic are the signal that the structure is wrong.
Start at the top. The arrow from the ECO check back to the RTL change is the escalation rule.
The constraint check comes first because no design change can fix a wrong constraint.
Locality decides the first attempt, not the final answer.
An ECO that breaks hold or creates nearby violations sends you to RTL instead of another edit.
Symptom | Gate-level ECO | RTL change |
|---|---|---|
One setup path misses by a small margin | Resize or buffer cells on that path | Not needed |
A few hold violations | Add delay cells on those paths | Rarely needed for hold |
Violations spread across many paths | Each edit risks new damage | Restructure the logic or add a pipeline stage |
A wrong or missing constraint | Fix the constraint and re-run STA | No design change |
A functional bug found late | A functional ECO can patch logic using available cells and permitted routing/masks; size and physical feasibility limit it | Correct the golden RTL/specification and verify the patched implementation against that intended behavior |
The fix needs a new flop. Can an ECO do it? Only if a spare flop (or spare cells that can form one) sits near the logic. A metal-only ECO rewires pre-placed spares; a base-layer change costs new masks. The new flop must be stitched into scan or explicitly excluded, and equivalence checking must still match the corrected RTL.
The ECO fixes setup but breaks hold on the same path. What now? The path has no room for a local edit. That fragility is the escalation signal: take the RTL change instead of stacking edits.
What evidence closes an ECO? Formal equivalence to the intended golden RTL, affected functional regressions, all required setup/hold views and physical checks. A timing-only ECO preserves function; a functional ECO implements the documented corrected behavior. Neither simulation alone nor clean timing proves the patch correct.
“ECO is always cheaper.” A gate edit is cheaper only while it stays local. Stacked edits interact, and each one re-opens verification.
“Restructure the RTL; it is cleaner.” Cleanliness is not the metric a week before tape-out. A localized, verified ECO beats a correct-looking rewrite that misses the window.
Stop editing gates and change the RTL. Nearby new violations mean the edits are disturbing shared logic; the structure cannot absorb a local fix.
Nothing. The hardware was never broken; the check was. Re-run full STA on the corrected constraints as the closing evidence.