BeginnerQuestion 6 of 187

What are NDM, reference libraries, and design libraries in ICC2?

From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide

Short Answer

NDM is ICC2's library/database framework — the container system, not a specific library itself. Reference libraries are the toolbox: standard cells, macros, anything reusable that your design draws from.

Technical Reference DiagramWhat are NDM, reference libraries, and design libraries in ICC2?

Technical Explanation

  • NDM is ICC2's library/database framework — the container system, not a specific library itself.
  • Reference libraries are the toolbox: standard cells, macros, anything reusable that your design draws from.
  • The design library is the actual project you're building — your block, its saved versions, and its own technology/reference setup.
  • One design library can hold multiple blocks, and in a hierarchical flow a design library can itself act as a reference library for something higher up.
  • Different views expose different levels of detail: a design view carries full layout, a frame view is the lighter abstraction placement/routing actually needs, and other abstract views support specific top-level tasks without loading everything underneath.
  • Creating an NDM library doesn't prove all needed timing/physical data is present, and creating it in memory isn't the same as saving it to disk — verify reference lists, available views, technology compatibility, and scale-factor agreement, and keep both setup scripts and saved databases for a reproducible handoff.

Visual Verification

Visual VerificationICC2 NDM Container Hierarchy: Design vs. Reference Libraries

In ICC2 NDM architecture, reference libraries provide read-only standard-cell and tech views, bound directly into the active read-write design library (soc_work.ndm) to record incremental flow snapshots.

Command Checks & Actions

ICC2create_lib ../my_lib_dir/my_libA

Creates a new design library in memory -- the container ICC2 uses to hold one block's physical/functional data.

ICC2create_lib lib_B -ref_libs {../LIBS/lib_C ../STND/stdhvt.ndm}

Creates a design library that references NDM reference libraries, the concrete syntax that ties a design library to the lower-level libraries it depends on.

ICC2report_ref_libs

Shows which reference libraries are attached, which one is currently open, and which carries technology info -- the fastest way to confirm an NDM/reference-library setup actually matches what you intended.

Common Mistake

The Trap: Candidates often mistakenly calling NDM simply another name for LEF, or assuming every NDM is a complete, interchangeable technology package.

Follow-up Question & Model Response

"How would you debug a missing macro view?"

Candidate Model Response: Inspect the reference-library setup and the views in the intended macro library before changing the netlist.

Practical Example

Tapeout Scenario: soc_work is the editable design library; stdcells.ndm and sram.ndm are references. soc_top_initial and soc_top_placed can be separate saved blocks. Updating a reference should be controlled because it may change many instances at once.

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.

Offline PDF Bundle

Want all 1109 questions offline?

Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

See what's inside the bundle
PnR Flow Physical Design Mentor Guide — eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out.