IntermediateQuestion 201 of 222Source: Synopsys ICC2 Implementation User Guide X-2025.06-SP2: Defining the Layer Mapping for IC Validator In-Design Commands and Setting Options for Interactive Design Rule Checking

What does the In-Design layer mapping file do?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

The layer mapping file tells IC Validator In-Design which runset layer each ICC2 technology layer becomes. You point to it with signoff.physical.layer_map_file (ICC2). For signoff_check_drc (ICC2) it is needed whenever the technology file and the foundry runset use different layer numbers, and Live DRC requires it.

Technical Reference DiagramWhat does the In-Design layer mapping file do?
An annotated table of layer map lines, each mapping a technology file layer, purpose, use type and mask to a runset layer and data type, with comments explaining a PG line, a coloured metal line and a missing line.

Technical Explanation

  • ICC2 stores shapes by technology file layer numbers; the foundry runset checks its own layer numbers. The map bridges the two, and a wrong line means the runset receives shapes on the wrong layer or not where it expects them.
  • Each line has the form tf_layer[:tf_purpose][:use_type][:mask_type] runset_layer[:runset_data_type]. The technology file layer and the runset layer are required; the rest are optional.
  • use_type separates shapes by ICC2 usage: power, ground, signal, clock, boundary, hard or soft placement blockage, routing blockage, area_fill and track. This lets PG straps and signal routes go to different runset data types.
  • mask_type carries the multiple-patterning colour: mask_one, mask_two, mask_three or mask_same for metal, with MASK_FOUR to MASK_FIFTEEN also allowed on via layers. Coloured rules depend on this being right.
  • Anything after a semicolon is a comment. Use comments to name each layer so reviewers can read the numbers.
  • signoff_check_drc (ICC2) writes the mapping it used as layer.map (ICC2) in its run directory. Compare it against your file when results look odd.
  • The same option feeds Live DRC and In-Design metal fill. It is separate from the stream-out map used by write_gds -layer_map (ICC2) and the -lf (ICV) map of a standalone run, and the three must agree.

What To Check

  • Every routing and via layer in the technology file appears in the map, including PG and fill use types.
  • Mask types on coloured layers.
  • The generated layer.map (ICC2) in the run directory against the file you set.
  • A shape on each layer is flagged when drawn to break a known rule on purpose.

Command Checks & Actions

ICC2 (icc2_shell)set_app_options -name signoff.physical.layer_map_file -value icv_layer.map

Points In-Design signoff DRC, Live DRC and metal fill at the layer mapping file.

ICC2 (icc2_shell)set_app_options -name signoff.check_drc.runset -value drc_runset.rs

Sets the foundry runset, which is required for signoff DRC.

ICC2 (icc2_shell)signoff_check_drc -select_layers {M1 M2}

Runs a quick check on two layers to confirm the mapping before a full run.

IC Validator (icv)icv -lf layer_map.txt -i top.gds -c top drc_runset.rs

Standalone run whose own layer map must agree with the In-Design map.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): All routing, via and fill layers are mapped, colour masks match the technology file, and a seeded error on each layer is caught.
  • Suspicious (illustrative): A layer shows 0 violations in a block where its neighbours show dozens. Check its map line before celebrating.
  • Hard stop: PG shapes mapped to the signal data type, or coloured metal mapped with no mask type. Coloured spacing and PG-specific rules are not being checked as the foundry intends.

Common Mistake

The Trap: Reusing a layer map from an older metal stack after two thin layers were added. The new M3 maps to the runset's old M3 numbers, which now mean a different pitch, and signoff DRC reports M3 clean while standalone IC Validator on the GDS finds 1,900 spacing errors.

What The Interviewer Is Testing

  • Knowledge of the map line format and what use and mask types add.
  • Awareness that Live DRC requires the map and signoff DRC needs it when numbers differ.
  • Seeing that three maps must agree across In-Design, stream-out and standalone runs.

Follow-up Question & Model Response

"How do you prove the layer map is right?"

Candidate Model Response: Draw one small, known violation on each layer in a test block, then run signoff_check_drc (ICC2) and check that every one is flagged under the right rule. Compare the generated layer.map (ICC2) with your source file. Run standalone IC Validator on the streamed GDS of the same block and compare counts. If one layer disagrees, its map line is the first suspect.

Practical Example

Tapeout Scenario: A test block has 12 seeded errors, one per routing and via layer (illustrative). signoff_check_drc (ICC2) catches 11. The missing one is on V5, whose line in the map has the runset data type for V4, so V5 shapes were checked with V4 rules and passed. After fixing that line all 12 are flagged, and the standalone run on the same GDS agrees.

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. →