Public

DRC and LVS

Connectivity-aware DRC and LVS fault isolation, reduced cases, hierarchy, labels, and reports.

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.

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 (Discord)
  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 (Discord) Warning (Discord)
  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 (Discord)
  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 (Discord)

LVS procedure

  1. Read lvs.netgen.rpt; in one case it contained more detail than the final summary. Evidence (Discord)
  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 (Discord)
  3. After the LibreLane top-netlist selection was corrected, Netgen reported equal device/net counts and Circuits match uniquely. Evidence (Discord)
  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 (Discord) Fix (Discord)
  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 (Discord) Result (Discord)

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 (Discord) Limitation (Discord)
  • 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 (Discord)
  • 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 (Discord)

Sources

  • 1443614548182568971 — 2025-11-27T14:48:49.348+00:00 — tnt (@246tnt) — reduced-cell KLayout command. Evidence (Discord)
  • 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 (Discord) Evidence 2 (Discord) Evidence 3 (Discord)
  • 1446446102734962835 — 2025-12-05T10:20:24.561+00:00 — Leo Moser (mole99) (@mole99) — PDK 1.4.1 connectivity and runtime fix. Evidence (Discord)
  • 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 (Discord) Evidence 2 (Discord) Evidence 3 (Discord)
  • 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 (Discord) Evidence 2 (Discord)
  • 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 (Discord) Evidence 2 (Discord)
  • 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 (Discord) Evidence 2 (Discord)