Module 43 min

LVS - Layout vs. Schematic

LVS extracts a netlist from your physical layout (by tracing metal connectivity and identifying transistors) and compares it against your reference schematic/ne

LVS extracts a netlist from your physical layout (by tracing metal connectivity and identifying transistors) and compares it against your reference schematic/netlist. Any mismatch is a critical bug that would cause chip failure.

How LVS Works - Step by Step

Click to enlarge

Common LVS Error Types and Root Causes

LVS ErrorWhat It MeansRoot CauseHow to Debug
Open NetA connection present in the schematic is missing in the layout - net is brokenMissing wire segment, broken via, net not routed, missing metal fill connectionHighlight the net in layout viewer. Find the discontinuity. Add missing wire/via segment.
Short CircuitTwo nets that should be separate are electrically connected in layoutRouting DRC waiver created a short, accidentally connected polygons, missing wire cutIdentify which two nets are shorted. Find where they touch. Remove the connection or add a cut.
Device MismatchDevice exists in schematic but not in layout (or vice versa)Cell not placed, wrong cell reference, flatten/unflatten issue, macro not properly instantiatedCompare instance counts. Find missing instance in layout. Check hierarchy mapping.
Port MismatchPort name or type doesn't match between layout and schematicWrong pin label on layout port, renaming in synthesis not propagated to layout, case mismatchCheck label text on layout pins vs netlist port names. Calibre is case-sensitive.
Unconnected PortA port declared in the netlist has no connection in the layoutI/O pad not connected to core, power domain port not properly tied, spare gate left floatingFind the port in the layout. Verify it has a metal label and is connected to the correct net.
Parameter MismatchDevice dimensions differ between layout and schematic (W/L, capacitor value)Standard cell used wrong size, analog cell manually edited without updating schematicCheck transistor W/L in layout vs SPICE netlist. Typically only affects analog blocks.
SHELL - Calibre LVS Run + Key Report Fields
# Calibre LVS run
calibre -lvs \
    -hier \
    -turbo 16 \
    -64 \
    -runset    ./lvs_runset.svrf \
    -gds       ./out/chip_final.gds \
    -top       chip_top \
    -netlist   ./out/chip_netlist.v  # reference from synthesis

# LVS report sections to check:
# 1. CIRCUIT COMPARISON RESULTS  -  Overall PASS/FAIL
# 2. SHORTS  -  nets merged that shouldn't be
# 3. OPENS  -  nets split that should be connected
# 4. UNMATCHED NETS  -  present in one side only
# 5. UNMATCHED INSTANCES  -  devices missing

# LVS clean confirmation in report:
# "CORRECT" → clean
# "INCORRECT" → failures exist

# Quick grep for errors:
grep -E "INCORRECT|SHORTS|OPENS|Unmatched" lvs_summary.rep