How does incremental signoff DRC work, and when does it fall back?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
signoff_check_drc -auto_eco true (ICC2) checks only the areas changed since the previous signoff DRC run. It works only after a previous run and only while the change is below signoff.check_drc.auto_eco_threshold_value (ICC2), which defaults to 20 percent. Above that you are back to a full-block run, and final signoff is always a full run.
Technical Explanation
- Incremental checking needs a baseline. The tool compares the current block with the version used for the previous
signoff_check_drc(ICC2) run, and takes change-detection data from the error data file of that block. -pre_eco_design(ICC2) names a different block to compare against, useful when the baseline was saved under another name.- The threshold is the maximum percentage of change for which incremental checking is allowed. The default is 20; the guide notes the option can be used only if the change since the last run is below it.
- By default the results cover only the changed areas. Set
signoff.check_drc.merge_incremental_error_data(ICC2) to true to merge them with the earlier results, which are read fromsignoff_check_drc.err(ICC2) unlesssignoff.check_drc.merge_base_error_name(ICC2) names another file. - For manual control,
-coordinatesand-excluded_coordinates(ICC2) check or skip given regions. Overlapping regions are not checked. - Incremental results are fast feedback for ECO loops. A change can affect density windows and long-range rules beyond the edited region, so final signoff needs a full run.
What To Check
- That a full baseline run exists for the version you are comparing against.
- Estimated percent change against the threshold before choosing incremental.
- Whether results were merged with the baseline, so clean does not just mean the region was clean.
- A full-block run before the final gate.
Command Checks & Actions
save_blockSaves the ECO state to disk so the check sees the edits.
set_app_options -name signoff.check_drc.merge_incremental_error_data -value trueMerges incremental results with the baseline errors instead of showing only the changed regions.
signoff_check_drc -auto_eco trueChecks only areas changed since the previous run, allowed while the change is under the threshold.
signoff_check_drc -auto_eco true -pre_eco_design top_pre_ecoUses a named pre-ECO block as the comparison baseline.
signoff_check_drcFull-block run for the final gate or when the change exceeds the threshold.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): A 3% ECO checks in 25 minutes against a 6-hour full run, and the merged error list matches the next full run.
- Suspicious (illustrative): Change is close to 20% and the incremental run shows 0 errors while a density rule was near its limit before the ECO.
- Hard stop: Tapeout signed on an incremental result with no full run after the last change. The gate needs a full-block check.
Common Mistake
The Trap: Reading an incremental run as whole-block clean. With merging off, the report covers only the ECO regions, so 40 baseline violations elsewhere were never shown. The team found them in the final full run two days before tapeout.
What The Interviewer Is Testing
- Knowledge of the 20% default and that a baseline run is required.
- Understanding that default results cover only changed areas.
- Insisting on a full run for signoff.
Follow-up Question & Model Response
"Why might a small ECO still need a full run?"
Candidate Model Response: Some rules look at windows or long distances, such as density and gradient checks, so a small edit can change results outside the edited area. The incremental mode checks where the block changed, not every place the change can influence. If the ECO touched fill or large metal, a full check is safer. For the final signoff gate you run the full block anyway.
Practical Example
Tapeout Scenario: A block takes 6 hours for a full signoff DRC (illustrative). A timing ECO changes about 3% of the block, so signoff_check_drc -auto_eco true (ICC2) checks the changed regions in 25 minutes and finds 4 new spacing errors, which are fixed. A second ECO changes about 24%, above the 20% default, so the next check is a full run. A final full run before handoff reports 0 errors.
PnR Flow Mentor Guide
Master the Physical Design Implementation Flow
Read the complete 8-chapter PnR Flow Mentor Guide free on the web — library setup through placement, clock tree synthesis, routing, chip finishing, hierarchical implementation, and ECO, all the way to stream-out.

Continue practising