---
page_id: curated-drc-lvs
type: context-page
schema_version: 1
template_id: curated-knowledge
template_version: template-0.1.0
title: DRC and LVS
slug: curated-drc-lvs
route: /troubleshooting/drc-and-lvs
section: reference
access: public
summary: Connectivity-aware DRC and LVS fault isolation, reduced cases, hierarchy, labels, and reports.
status: published
asset_base: .
home_href: /
md_url: /troubleshooting/drc-and-lvs.md
toc_enabled: true
talk_enabled: false
agent_view_enabled: true
copy_buttons_enabled: true
footer_enabled: true
search_indexed: true
tags: [wafer-space, knowledge-base, curated]
last_updated: 2026-08-19
talk_url: /troubleshooting/drc-and-lvs.talk.md
talk_route: /troubleshooting/drc-and-lvs/talk
---

# DRC and LVS

## Scope

This page covers DRC and LVS fault isolation: connectivity-aware rules, reduced DRC cases, LEF labels, layout hierarchy, stale netlists, and Netgen reports. Signoff authority belongs on [Precheck and Signoff](/submission-procedures/precheck-and-signoff).

## DRC procedure

1. Keep the marker database, full log, deck/PDK versions, and exact failing cell.
2. Run the failing cell alone with the same KLayout deck. A 2025-11-27 thread recorded the exact reduced-cell method and used it to isolate an I/O-cell problem. [Evidence](/evidence/i-information/general/threads/using-gf180mcuocdio-in-librelane#message-1443614548182568971) ([Discord](https://discord.com/channels/1361349522684510449/1443243481744277565/1443614548182568971))
3. **Diagnostic only:** `conn_drc false` skips netlist-object construction, but removes connectivity knowledge. The rule deck then uses conservative worst-case assumptions and may show false positives. [Bypass](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1445398457929171079) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1445398457929171079)) [Warning](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1445398872594579530) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1445398872594579530))
4. For a connectivity-dependent `NW.2b_MV` finding, the recorded review checked Dualgate use and measured the required nwell spacing. This was a case-specific check, not a general waiver. [Evidence](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1445489370319818833) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1445489370319818833))
5. **Confirmed fix — 2025-12-05:** PDK 1.4.1 corrected the KLayout connectivity setup and reduced one tested run from several hours to about 1.5 hours. Therefore, old `conn_drc false` advice is obsolete as a default. [Evidence](/evidence/designing/project-template#message-1446446102734962835) ([Discord](https://discord.com/channels/1361349522684510449/1423348662318272592/1446446102734962835))

## LVS procedure

1. Read `lvs.netgen.rpt`; in one case it contained more detail than the final summary. [Evidence](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1446665494374646050) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1446665494374646050))
2. Confirm that extracted layout and Verilog come from the same flow state. After ECO work, different standard-cell counts exposed a stale top-level netlist. [Evidence](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1446673863537590324) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1446673863537590324))
3. After the LibreLane top-netlist selection was corrected, Netgen reported equal device/net counts and `Circuits match uniquely`. [Evidence](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1446759526102597692) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1446759526102597692))
4. Check LEF labels when a pad net appears shorted. A wayward `DVSS` label in an I/O LEF created a virtual short to `ASIG5V`; the corrected LEF removed the Magic short. [Cause](/evidence/i-information/general/threads/using-gf180mcuocdio-in-librelane#message-1443330703466037389) ([Discord](https://discord.com/channels/1361349522684510449/1443243481744277565/1443330703466037389)) [Fix](/evidence/i-information/general/threads/using-gf180mcuocdio-in-librelane#message-1443343283567984671) ([Discord](https://discord.com/channels/1361349522684510449/1443243481744277565/1443343283567984671))
5. Check hierarchy. Magic extracts devices where they occur in the hierarchy; foundry I/O cells required selected `gds flatglob` handling so layers at different levels could be seen together. The reported case then passed. [Cause](/evidence/i-information/questions/threads/running-lvs-for-padframe#message-1444697426312040569) ([Discord](https://discord.com/channels/1361349522684510449/1444423485182050415/1444697426312040569)) [Result](/evidence/i-information/questions/threads/running-lvs-for-padframe#message-1444800415777558669) ([Discord](https://discord.com/channels/1361349522684510449/1444423485182050415/1444800415777558669))

## Warnings and conflicts

- **Workaround with limitation:** `extract unique notopports` can avoid unique suffixes on top ports, but it can also hide a missing internal connection. Use it only with further connectivity checks. [Workaround](/evidence/i-information/general/threads/using-gf180mcuocdio-in-librelane#message-1443358315735154828) ([Discord](https://discord.com/channels/1361349522684510449/1443243481744277565/1443358315735154828)) [Limitation](/evidence/i-information/general/threads/using-gf180mcuocdio-in-librelane#message-1443359367863734343) ([Discord](https://discord.com/channels/1361349522684510449/1443243481744277565/1443359367863734343))
- **Conflict:** A DRC result made without connectivity is not signoff evidence. It may be useful for speed diagnosis, but the deck applies worst-case rules without net knowledge. [Evidence](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1445398872594579530) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1445398872594579530))
- **Open question:** These remedies are dated cases. The current PDK may contain later changes; record the actual PDK and deck versions with each result. This caution follows from the recorded PDK 1.4.1 behavior change. [Evidence](/evidence/designing/project-template#message-1446446102734962835) ([Discord](https://discord.com/channels/1361349522684510449/1423348662318272592/1446446102734962835))

## Related pages

- [Troubleshooting](/troubleshooting)
- [Precheck and Signoff](/submission-procedures/precheck-and-signoff)
- [LibreLane and Tooling](/librelane-and-tooling)
- [Tool Failures](/troubleshooting/tool-failures)
- [Analog Layout, Verification, and PEX](/analog-design/layout-verification-and-pex)

## Sources

- `1443614548182568971` — 2025-11-27T14:48:49.348+00:00 — tnt (@246tnt) — reduced-cell KLayout command. [Evidence](/evidence/i-information/general/threads/using-gf180mcuocdio-in-librelane#message-1443614548182568971) ([Discord](https://discord.com/channels/1361349522684510449/1443243481744277565/1443614548182568971))
- `1445398457929171079` — 2025-12-02T12:57:26.575+00:00 — Leo Moser (mole99) (@mole99); `1445398872594579530` — 2025-12-02T12:59:05.439+00:00 — Leo Moser (mole99) (@mole99); `1445489370319818833` — 2025-12-02T18:58:41.778+00:00 — Leo Moser (mole99) (@mole99) — connectivity bypass, false-positive warning, and manual review. [Evidence 1](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1445398457929171079) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1445398457929171079)) [Evidence 2](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1445398872594579530) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1445398872594579530)) [Evidence 3](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1445489370319818833) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1445489370319818833))
- `1446446102734962835` — 2025-12-05T10:20:24.561+00:00 — Leo Moser (mole99) (@mole99) — PDK 1.4.1 connectivity and runtime fix. [Evidence](/evidence/designing/project-template#message-1446446102734962835) ([Discord](https://discord.com/channels/1361349522684510449/1423348662318272592/1446446102734962835))
- `1446665494374646050` — 2025-12-06T00:52:11.604+00:00 — bailey (@bailey8889); `1446673863537590324` — 2025-12-06T01:25:26.968+00:00 — bailey (@bailey8889); `1446759526102597692` — 2025-12-06T07:05:50.515+00:00 — Lofty (@ravenslofty) — detailed report, stale netlist, and clean match. [Evidence 1](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1446665494374646050) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1446665494374646050)) [Evidence 2](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1446673863537590324) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1446673863537590324)) [Evidence 3](/evidence/designing/project-template/threads/pure-digital-no-hard-macros-no-sram#message-1446759526102597692) ([Discord](https://discord.com/channels/1361349522684510449/1445210755434549288/1446759526102597692))
- `1443330703466037389` — 2025-11-26T20:00:55.494+00:00 — Tim Edwards (@rtimothyedwards_19428); `1443343283567984671` — 2025-11-26T20:50:54.824+00:00 — Tim Edwards (@rtimothyedwards_19428) — LEF-label cause and fix. [Evidence 1](/evidence/i-information/general/threads/using-gf180mcuocdio-in-librelane#message-1443330703466037389) ([Discord](https://discord.com/channels/1361349522684510449/1443243481744277565/1443330703466037389)) [Evidence 2](/evidence/i-information/general/threads/using-gf180mcuocdio-in-librelane#message-1443343283567984671) ([Discord](https://discord.com/channels/1361349522684510449/1443243481744277565/1443343283567984671))
- `1444697426312040569` — 2025-11-30T14:31:47.613+00:00 — bailey (@bailey8889); `1444800415777558669` — 2025-11-30T21:21:02.215+00:00 — LuighiV (@luighiv) — hierarchy cause, `gds flatglob`, and successful result. [Evidence 1](/evidence/i-information/questions/threads/running-lvs-for-padframe#message-1444697426312040569) ([Discord](https://discord.com/channels/1361349522684510449/1444423485182050415/1444697426312040569)) [Evidence 2](/evidence/i-information/questions/threads/running-lvs-for-padframe#message-1444800415777558669) ([Discord](https://discord.com/channels/1361349522684510449/1444423485182050415/1444800415777558669))
- `1443358315735154828` — 2025-11-26T21:50:38.772+00:00 — Tim Edwards (@rtimothyedwards_19428); `1443359367863734343` — 2025-11-26T21:54:49.619+00:00 — tnt (@246tnt) — `notopports` workaround and limitation. [Evidence 1](/evidence/i-information/general/threads/using-gf180mcuocdio-in-librelane#message-1443358315735154828) ([Discord](https://discord.com/channels/1361349522684510449/1443243481744277565/1443358315735154828)) [Evidence 2](/evidence/i-information/general/threads/using-gf180mcuocdio-in-librelane#message-1443359367863734343) ([Discord](https://discord.com/channels/1361349522684510449/1443243481744277565/1443359367863734343))
