A late ECO lands after fill. How do you remove and repair fill safely?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Remove and refill fill only where the ECO touched, then re-check DRC, density and timing. signoff_create_metal_fill -auto_eco true (ICC2) does this automatically when less than 20 percent of the block changed since the last fill run, and -remove_by_rule drc_auto (ICC2) removes track-based fill that now causes DRC violations. A plain -mode remove (ICC2) takes out all fill, TCD structures included, unless you restrict it with -select_layers (ICC2).
Technical Explanation
- IC Validator fills from the on-disk block, not the one in memory, so
save_block(ICC2) comes first; otherwise ICV fills against the pre-ECO layout. Metal fill commands also need an IC Validator licence. -auto_eco true(ICC2) compares the block with the version used in the previous fill run, or with the block named by-pre_eco_design(ICC2), then removes and refills only the modified regions and layers. It is allowed only when the change is belowsignoff.create_metal_fill.auto_eco_threshold_value(ICC2), default 20 percent.- A metal change also triggers removal and refill on the adjacent via layers, so no floating or hanging vias remain. A changed cell instance is treated conservatively as a change on all layers.
-mode replace(ICC2) removes and refills only where you point it and must be given layers, regions, nets or a slack threshold. For example,signoff_create_metal_fill -mode replace -select_layers {M1 M3}(ICC2) refills two layers and leaves the others alone.-mode remove(ICC2) with no restriction removes all metal and via fill, TCD structures included. With-select_layers(ICC2) TCD structures stay unlesssignoff.create_metal_fill.tcd_fill(ICC2) is true. Removal can also honour NDRs with-remove_by_rule ndr(ICC2), for both fill styles.-remove_by_rule drc_auto(ICC2) removes track-based fill shapes or vias that cause DRC violations after an ECO, plus floating connections left behind by that removal.- For one stubborn violation, edit fill by hand:
remove_shapes(ICC2) deletes a fill shape andset_attribute(ICC2) on its bbox resizes it. Density can drop in that window, so runsignoff_report_metal_density(ICC2) afterwards. - Fill adds capacitance to nearby wires, so any refill near critical nets is followed by extraction with real fill and a timing check.
What To Check
save_block(ICC2) ran after the ECO and before the fill command.- The changed area estimated against the 20 percent auto-ECO threshold.
- TCD structures intact after a layer-restricted remove, or deliberately restored after a full remove.
- Density in and around the ECO windows after refill.
- Signoff DRC and a timing rerun with real metal fill extraction.
Command Checks & Actions
save_blockWrites the post-ECO block to disk, which is what IC Validator reads.
signoff_create_metal_fill -auto_eco trueRemoves and refills fill only in regions and layers changed since the last fill run.
signoff_create_metal_fill -mode replace -select_layers {M2 M3 M4}Explicit alternative: removes and refills fill on the ECO layers.
signoff_create_metal_fill -remove_by_rule drc_autoRemoves track-based fill shapes and vias that now violate DRC, plus the floating pieces left behind.
signoff_report_metal_densityReports metal density so the refilled windows can be checked against the density rules.
signoff_check_drcSignoff DRC on the final layout, fill included.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): Auto-ECO refills only the changed windows, about 2% of the block, density in them stays within the rule, signoff DRC shows 0 fill errors, and WNS moves by 2 ps or less and stays positive.
- Suspicious (illustrative): The change estimate sits near 20 percent so auto-ECO is refused, or a refilled window lands just above minimum density.
- Hard stop: The block was not saved before the fill command: fill follows the pre-ECO layout, and signoff DRC skips that older fill view unless
set_app_options -name signoff.check_drc.fill_view_data -value read(ICC2) is set. Or a full-mode remove(ICC2) removed TCD structures that were never restored.
Common Mistake
The Trap: Running signoff_create_metal_fill -mode remove (ICC2) on the whole block to start clean after a two-cell ECO. It removes every fill shape and the TCD structures, the full refill takes hours, and the new fill changes coupling on every critical net, so timing that was signed off must be redone for the whole block instead of one window.
What The Interviewer Is Testing
- Knowing the incremental options,
-auto_eco true(ICC2) and-mode replace(ICC2), and the 20 percent threshold. - Awareness that a plain
-mode remove(ICC2) also removes TCD structures. - Remembering to save the block, because IC Validator reads the on-disk design.
Follow-up Question & Model Response
"Why does auto-ECO refill via layers you did not touch?"
Candidate Model Response: Removing metal fill on one layer in the ECO area would leave via fill above or below it with nothing to land on. The tool therefore removes and refills the adjacent via layers too, so no floating or hanging vias remain. If a cell instance changed, it is conservative and treats all layers as changed.
Practical Example
Tapeout Scenario: A tapeout-week ECO adds 14 buffers and reroutes 22 nets on M2 to M4 inside two windows, about 2% of the block (illustrative). The block uses track-based fill, so after save_block (ICC2), signoff_create_metal_fill -track_fill generic -auto_eco true (ICC2) removes and refills M2 to M4 and the adjacent via layers V1 to V4 in those windows only. Signoff DRC then shows 3 track-fill spacing errors next to the new routes, cleared by -remove_by_rule drc_auto (ICC2). Density in the two windows reads 31% and 34% against a 25% minimum. Real-fill extraction and PrimeTime show WNS moving from +6 ps to +4 ps, still positive.
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