ExpertQuestion 157 of 161Source: Synopsys ICC2 Implementation User Guide: Multiple-Patterning Concepts, IC Validator In-Design (Automatically Fixing Double-Patterning Odd-Cycle Violations, Layer Mapping), Inserting Filler Cells

What double-patterning problems show up only at signoff?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

ICC2 prevents odd cycles in what it can see: its own routes, pins and cell abstracts. Signoff checks the full layout, including macro internals, cell metal that the abstract simplifies, and fill added late, so odd cycles that span those shapes appear only there. Wrong mask mapping between ICC2 and the runset shows up the same way. Fix other rules first, then run DP fixing as its own pass.

Technical Reference DiagramWhat double-patterning problems show up only at signoff?
A lower metal layer with two mask colours, showing an odd cycle formed by a top-level route, a cell pin and a macro shape that ICC2 never saw, plus a fill shape closing another cycle, and the separate DP fixing pass that resolves them.

Technical Explanation

  • An odd cycle is a loop of an odd number of shapes that are each closer than the multiple-patterning spacing, so they cannot be split across two masks. Double patterning usually applies only to the lowest metal layers.
  • ICC2 prevents odd cycles during placement and routing, but only among shapes it knows. Macro metal behind a frame view and fill inserted after routing can close a cycle that ICC2 never evaluated.
  • Library flow matters. In the uncolored flow ICC2 assumes a correct-by-construction library with enough spacing to the cell boundary. In the precolored flow cell shapes carry masks and ICC2 uses them as mask constraints. A library that is precolored but run as uncolored loses that information.
  • The signoff layer map carries a mask_type (ICC2) field (mask_one (ICC2), mask_two (ICC2), mask_three (ICC2), mask_same (ICC2)) for coloured layers. A wrong entry makes the runset see colours that do not match the design, and every coloured shape on that layer can report violations.
  • Fillers matter too: remove_stdcell_fillers_with_violation (ICC2) checks DP rules only when route.common.color_based_dpt_flow (ICC2) is true and the tech file defines DP rules.
  • Fixing order: run signoff_check_drc (ICC2) and signoff_fix_drc (ICC2) with -unselect_rules for DP rules first, then set signoff.fix_drc.custom_guidance (ICC2) to dpt and run both with -select_rules for the DP rules, then verify with a full check.
  • Some odd cycles cannot be broken by rerouting because the conflict is inside a macro or between two fixed cells. Those go back to the macro owner or to placement.

What To Check

  • Where the cycles sit: top-level routes, cell boundaries, macro edges or fill.
  • Layer map mask entries against the runset colour layers.
  • Uncolored or precolored library flow, and whether it matches the library.
  • DP violations remaining after the separate DP fixing pass.

Command Checks & Actions

ICC2 (icc2_shell)signoff_check_drc -unselect_rules {list_of_dpt_rules}

Checks all rules except DP so ordinary violations are fixed first.

ICC2 (icc2_shell)signoff_fix_drc -unselect_rules {list_of_dpt_rules}

Fixes non-DP violations.

ICC2 (icc2_shell)set_app_options -name signoff.fix_drc.custom_guidance -value dpt

Targets DP odd-cycle violations in the next fix run.

ICC2 (icc2_shell)signoff_check_drc -select_rules {list_of_dpt_rules}

Checks only DP rules for the DP fixing pass.

ICC2 (icc2_shell)signoff_fix_drc -select_rules {list_of_dpt_rules}

Fixes the odd-cycle violations.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): DP violations drop from 340 to 6 after the DP pass, and the 6 all sit inside one macro that the owner is fixing.
  • Suspicious (illustrative): Violations cluster on one layer uniformly across the die, which points at the mask mapping rather than real cycles.
  • Hard stop: Odd cycles left between fixed cells or macros with no owner and no schedule, or DP rules never run separately.

Common Mistake

The Trap: Running signoff_fix_drc (ICC2) on all rules at once, DP included. The router trades odd cycles against ordinary spacing violations in each loop and the count bounces, when the guide asks for non-DP rules first and a separate DP pass.

What The Interviewer Is Testing

  • Can the candidate explain why ICC2 cannot see every cycle?
  • Knowledge of the two-pass DP fixing flow.
  • Awareness of the mask mapping in the layer map.

Follow-up Question & Model Response

"A DP violation sits between a top-level route and a pin inside a macro. What are your options?"

Candidate Model Response: Moving the route is the usual fix: add a routing blockage along the macro edge or a wider spacing rule for that layer near the macro, and reroute. If the pin itself is the problem and many routes must reach it, the macro owner may need to change the pin shape or its colour. Merging the macro GDS into signoff DRC in ICC2 makes the cycle visible to the fixing loop, so the router sees what it is avoiding.

Practical Example

Tapeout Scenario: A block on a DP node shows 340 DP violations at signoff and none in ICC2 routing checks (illustrative). 290 sit on M1 at the edges of four macros whose frame views omit internal M1; merging their GDS and blocking a 0.2 um strip clears them. 44 involve fill on M2 added after routing; refilling with colored fill clears 40 and the DP fixing pass clears the other 4. The last 6 are inside one macro and go to its owner.

PnR Flow Mentor Guide

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.

PnR Flow Physical Design Mentor Guide — eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out. →