BeginnerQuestion 16 of 187

Why check libraries and units before reading timing numbers?

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

Short Answer

A library gives every cell its meaning — what a NAND2X4 actually does electrically and logically — while units give every number its scale. You need both settled before a timing number means anything at all. If the wrong library (or wrong corner within the right library) is loaded, delay numbers can look completely plausible while describing a cell that isn't the one actually in your design.

Technical Reference DiagramWhy check libraries and units before reading timing numbers?

Technical Explanation

  • If units are misinterpreted — nanoseconds read as picoseconds, or a capacitance unit mismatch — a delay, load, or slew value can be off by a constant factor (often 1000x) while still looking like a real number on a report.
  • Both failure modes share the same danger: they don't crash or obviously error, they just quietly produce wrong-but-believable numbers, which is far worse than an obvious failure.
  • This is why any serious timing debugging session starts with the boring checks (right library? right corner? ) before trusting a single slack value — it's cheap insurance against chasing a phantom bug.
  • Practically: confirm the resolved library identity and reported units at the very start of any analysis session, the same way you'd confirm the currency before trusting a price.

Visual Verification

Visual VerificationLibrary Unit Consistency & Silent Scale Mismatch

Inconsistent time (ps vs ns) or capacitance (fF vs pF) units across libraries cause silent 1000x calculation errors in internal delay lookup tables and slew calculation without syntax warnings.

What To Check

  • Warning sign: A delay or capacitance is plausible but scaled incorrectly, or a same-named cell resolves from the wrong library.
  • Inspect: Start with one named object in the report and trace it to the netlist, library, or SDC statement that created it.
  • Correct: Load the approved compatible libraries, correct the unit boundary, relink if required, and re-read representative values.

Command Checks & Actions

  • report_ref_libs: shows the reference libraries used for linking
  • report_user_units: shows the units ICC2 uses when reading and printing values

Run the commands in order. Each line answers a separate part of the check.

Healthy, Suspicious & Hard-stop Results

  • Expected: Library identity and user units determine how cell behaviour and numeric constraint values are interpreted.
  • Stop before floorplanning when required logic or timing coverage is missing or unexplained.

Common Mistake

The Trap: Do not assume the check passed just because ICC2 continued. Fix or narrowly justify the named objects, then rerun the same command.

What The Interviewer Is Testing

Be ready to explain why this matters before floorplanning.

Physical Design & Planning Handbook

Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.

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.