ExpertQuestion 142 of 161Source: Synopsys IC Validator User Guide: Command-Line Options, Output Files and Explorer LVS; Synopsys ICC2 Implementation User Guide: Routing (check_lvs)

LVS fails with thousands of errors. Where do you start?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Start with shorts, and among shorts start with power to ground. One VDD-to-VSS short merges both supplies into a single extracted net, so every cell in the block stops matching and one defect shows up as thousands of errors. Clear supply shorts, then signal shorts, then opens, then device and label problems, rerunning after each class, because the count usually collapses long before you reach the bottom of the list.

Technical Reference DiagramLVS fails with thousands of errors. Where do you start?
A decision tree that starts from an LVS run with thousands of errors and branches through power-to-ground shorts, other supply shorts, signal shorts, opens, and finally device and label problems, each branch naming the IC Validator output that answers it.

Technical Explanation

  • Read the header of cell.RESULTS (ICV) first: LVS Compare Results: PASS | FAIL (ICV) and DRC and Extraction Results: CLEAN | NOT CLEAN (ICV). If extraction is not clean, fix that before trusting any compare error.
  • Shorts come first because they corrupt the extracted netlist for everything attached to them. A supply short makes the power pins of every standard cell look wrong, while an open only affects the nets it splits.
  • icv -create_lvs_short_output ALL (ICV) runs LVS Short Finder and writes a cellname.vue (ICV) file under ./run_details/short_out_db (ICV). Without ALL the default limit is 200 shorts, reported power-to-ground first, then power-to-power or ground-to-ground, then supply-to-signal, then signal-to-signal, lowest hierarchy level first. Work in that order.
  • Check for text shorts before hunting geometry. The text_net() (ICV) function reports text shorts, opens and unused text, so a VDD label dropped on a VSS strap shows up as a short whose fix is the label, not the metal.
  • Once shorts are gone, open cell.LVS_ERRORS (ICV). It lists failed equivalence points sorted into high and low priority with diagnostics. A failing low-level cell can drag its parents down with it, so fix the smallest failing cell first and rerun.
  • Opens come next, since a missing via leaves cells unpowered and they appear as extra nets. Device and property mismatches rarely explain a large count, so they come last.
  • Explorer LVS (icv -explorer_lvs (ICV)) runs a text-based short check on the SOC top cells and skips device extraction, so it turns around fast on a full chip. It needs Elite licensing and does not replace final signoff LVS.
  • Inside ICC2, check_lvs (ICC2) finds routing-level shorts, opens and floating routes. It is not transistor-level LVS, but it tells you whether the short exists in the ICC2 database or only appears after the GDS merge.

What To Check

  • Both header lines of cell.RESULTS (ICV): compare result and extraction result.
  • Short counts by class in the Short Finder output, power-to-ground first.
  • Text shorts versus geometric shorts on each supply net.
  • High-priority failed equivalence points in cell.LVS_ERRORS (ICV) and the lowest failing level.
  • Whether check_lvs (ICC2) shows the same short in the ICC2 database.

Command Checks & Actions

ICC2 (icc2_shell)check_lvs -checks {short open}

Routing-level short and open check in the ICC2 database, run before stream-out to see whether the short is already there.

IC Validator (icv)icv -i top.gds -c top -s top.sp -sf SPICE -create_lvs_short_output ALL lvs.rs

Signoff LVS run that also writes Short Finder output for every short, not just the default 200.

IC Validator (icv)icv -i top.gds -c top -explorer_lvs lvs.rs

Fast text-based short check on the SOC top cells with no device extraction; triage only, Elite licensing.

IC Validator (icv)cell.RESULTS

Compare and extraction header lines; the first file to read.

IC Validator (icv)cell.LVS_ERRORS

Failed equivalence points by priority, read after the shorts are cleared.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): After two supply shorts are fixed the error count falls from 6,214 to 14, extraction reports CLEAN, and a few failed equivalences remain.
  • Suspicious (illustrative): The count drops but several hundred errors stay spread across unrelated cells, which usually means a second supply short or a missing power connection.
  • Hard stop: Any power-to-ground short still reported, or LVS Compare Results: FAIL (ICV) on the tapeout GDS.

Common Mistake

The Trap: Opening cell.LVS_ERRORS (ICV) and working down the first few hundred net mismatches one at a time. With a VDD-to-VSS short in the block every one of them is a symptom, and a day of debugging ends only when someone runs Short Finder and finds one via stack dropped across both straps.

What The Interviewer Is Testing

  • Does the candidate rank error classes by how many other errors each one can cause?
  • Familiarity with the IC Validator outputs: the cell.RESULTS (ICV) header, Short Finder output and cell.LVS_ERRORS (ICV).
  • A strong answer keeps the ICC2 routing check apart from transistor-level signoff LVS.

Follow-up Question & Model Response

"How do you locate a power-to-ground short on a large block?"

Candidate Model Response: Rerun LVS with -create_lvs_short_output (ICV) and step through the VUE output from the lowest hierarchy level up. Then check the same area with check_lvs (ICC2). If ICC2 sees it, fix it there and stream out again. If ICC2 is clean, the short came in with merged GDS, often a macro, a fill cell or a pad ring, so compare the merged layer data at that spot.

Practical Example

Tapeout Scenario: A block returns 6,214 LVS errors (illustrative). Short Finder reports two power-to-ground shorts, both at the edge of an SRAM where an M5 VSS strap overlaps internal VDD metal inside the macro GDS. check_lvs (ICC2) is clean because the macro frame view carries pins and blockages, not that internal metal as net shapes. Trimming the strap and rerunning drops the count to 14, all in one analog cell with a swapped label. After the label fix, cell.RESULTS (ICV) reads PASS and CLEAN.

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