πŸ”§ Physical Design Blog

Part 8 of 10

Physical Verification

DRC, LVS, and other checks before tapeout

By Praveen Kumar Vagala

1,024 views

What is Physical Verification?

Physical verification ensures the layout can be manufactured and matches the design intent.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Physical Verification Checks β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ DRC (Design Rule Check) β”‚ β”‚ └── Can the foundry manufacture this? β”‚ β”‚ β”‚ β”‚ LVS (Layout vs Schematic) β”‚ β”‚ └── Does layout match the netlist? β”‚ β”‚ β”‚ β”‚ ERC (Electrical Rule Check) β”‚ β”‚ └── Any floating nodes? Shorts to power? β”‚ β”‚ β”‚ β”‚ Antenna Check β”‚ β”‚ └── Will long wires damage gates? β”‚ β”‚ β”‚ β”‚ DFM (Design for Manufacturing) β”‚ β”‚ └── Will the design yield well? β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

DRC (Design Rule Check)

Foundry provides rules that must be followed for manufacturing.

Common DRC Rules

RuleDescriptionExample
Minimum widthWire can't be too thinM1 width β‰₯ 0.1ΞΌm
Minimum spacingWires must be apartM1 space β‰₯ 0.1ΞΌm
EnclosureMetal around viaVia1 enc by M1 β‰₯ 0.05ΞΌm
AreaMinimum metal areaM1 area β‰₯ 0.01ΞΌmΒ²
DensityMetal fill percentageM1 density 20-80%
DRC violations: Minimum Width: Minimum Spacing: ══ ═══ ═══ Bad! Too thin Bad! Too close ═════ ═══ ═══ Good! Good! Via Enclosure: β”Œβ”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”‚β–£β–£β”‚ Bad! β”‚ β–£β–£ β”‚ Good! β””β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Via touches edge Metal surrounds via

LVS (Layout vs Schematic)

Verifies the layout matches the original netlist.

Netlist (Source) Layout (GDSII) β”Œβ”€β”€β”€β” β”Œβ”€β”€β”€β” β”Œβ”€β”€β”€β”β•β•β•β•β•β”Œβ”€β”€β”€β” β”‚ A │──────│ B β”‚ β”‚ A β”‚ β”‚ B β”‚ β””β”€β”€β”€β”˜ β””β”€β”€β”€β”˜ β””β”€β”€β”€β”˜ β””β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”Œβ”€β”€β”€β” β””β•β•β•β•β•β•β”Œβ”€β”€β”€β” β”‚ C β”‚ β”‚ C β”‚ β””β”€β”€β”€β”˜ β””β”€β”€β”€β”˜ LVS Tool compares them. βœ“ Same devices? βœ“ Same connections? βœ“ Same nets?

LVS Errors

ErrorMeaningCommon Cause
ShortExtra connectionRouting touches wrong net
OpenMissing connectionBroken route, missing via
Device mismatchWrong cell typeWrong cell placed
Port mismatchPin not connectedMissing pin connection

ERC (Electrical Rule Check)

Checks for electrical problems.

Antenna Check

Long metal wires can damage gates during manufacturing.

During plasma etching: Long metal antenna ═══════════════════════════════► β”‚ β”Œβ”€β”€β”΄β”€β”€β” β”‚Gate β”‚ ← Charge damages gate! β””β”€β”€β”€β”€β”€β”˜ Antenna Ratio = Metal Area / Gate Area If ratio > limit β†’ violation!

Antenna Fixes

# Check antenna
verifyProcessAntenna

# Auto-fix antenna
setAnalysisMode -checkAntennaEffects true
routeDesign -fix_antenna

Metal Fill

Add dummy metal to meet density rules.

Before fill: After fill: ═══ ═══ ═══ β–ͺ β–ͺ β–ͺ ═══ β–ͺ β–ͺ β–ͺ β–ͺ β–ͺ β–ͺ β–ͺ ═══════════════ ═══════════════ β–ͺ β–ͺ β–ͺ β–ͺ β–ͺ β–ͺ β–ͺ ═══ β–ͺ β–ͺ ═══ β–ͺ β–ͺ β–ͺ Uneven density Balanced density Fill metal is not connected to signals.
# Add metal fill
addFiller -cell FILL* -prefix FILL

# Or density-based fill
setFillerMode -density 0.5
addFiller

Verification Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 1. Export GDSII from P&R tool β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 2. Run DRC (Calibre, PVS, ICV) β”‚ β”‚ β€’ Fix all violations β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 3. Run LVS β”‚ β”‚ β€’ Compare layout to netlist β”‚ β”‚ β€’ Fix shorts/opens β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 4. Run Antenna check β”‚ β”‚ β€’ Insert diodes if needed β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 5. Add metal fill β”‚ β”‚ β€’ Meet density requirements β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 6. Final DRC/LVS clean check β”‚ β”‚ β€’ Must be 0 errors! β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Verification Tools

VendorToolPurpose
MentorCalibreDRC, LVS, DFM
CadencePVS/PegasusDRC, LVS
SynopsysICVDRC, LVS

Common Commands

# In P&R tool (Innovus)
verify_drc
verify_connectivity -type all

# Export for signoff tools
streamOut design.gds -mapFile tech.map

# Calibre (command line)
calibre -drc -hier design.drc
calibre -lvs design.lvs

Summary

CheckWhat It Verifies
DRCManufacturing rules
LVSLayout matches netlist
ERCElectrical connectivity
AntennaLong wire damage
Metal FillDensity requirements