fix(submission): archive v6-v11 wrapper experiments, add LVS waiver
Some checks failed
CI / rtl-lint (push) Has been cancelled

The May 7-11 series of wrapper-hardening attempts (cf_wrapper_v6
through v11) all failed to eliminate the 208 cosmetic LVS pin-match
errors. The root cause is a Magic SPICE-extraction limitation: it
collapses constant-tied output nets into shared global power/ground
nets, losing per-pin labels. Per-pin conb_1 cells (v8) and placement
tweaks don't change this behavior; v9/v10 regressed to 1300-1800
routing DRC errors; v11 was interrupted.

This commit:
- Restores the working tree to the May 7 PDN-fix wrapper (HEAD before
  experiments started).
- Archives the v6-v11 experiment files under experiments/ with a
  per-file README explaining what was tried and why it failed. Large
  binary debris (mag, multicorner spef, uncompressed wrapper GDS) is
  preserved locally but excluded from git via a local .gitignore.
- Adds docs/LVS_WAIVER.md formally requesting the 208 cosmetic LVS
  errors be accepted as Magic-extraction artifacts. Cites netgen's own
  "Device classes equivalent" / "Cell pin lists altered to match"
  lines, the v8 disproof that per-pin tieoffs cannot fix this, and
  the 17/19 mpw_precheck PASS at cf_wrapper_v5 (May 1, 2026).
- README.md now links the waiver from the Precheck Results section.
- .gitignore adds /precheck_logs/ for local snoke run logs.

The submission ships with the May 7 cf_wrapper_v5 + PDN-fix wrapper
(commit 8cc8414). All 5 GLS cocotb tests pass (GPIO=0xAB). Magic DRC
clean. 17/19 mpw_precheck. The cosmetic LVS pin-match issue is
documented in the waiver and not fixable by wrapper-only hardening.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
cah
2026-05-12 23:14:22 -06:00
parent f7989d3570
commit ebec884751
7 changed files with 1784 additions and 1 deletions

View File

@@ -0,0 +1,47 @@
# Archived: v6v11 Wrapper LVS-Fix Experiments (May 711, 2026)
These files are from a failed series of attempts to eliminate the 208 cosmetic LVS pin-match errors on `user_project_wrapper`. **None succeeded.** They are archived here for reference; do not re-introduce them into the build.
## Why this is archived (not deleted)
Future sessions may be tempted to re-try this approach. These files document exactly what was tried and exactly what failed, so we don't repeat the exercise. See also:
- `../../../docs/hardening-results.md` — "Wrapper Hardening Attempts (May 7-11, 2026)" section
- `~/.claude/projects/-home-cah-r2d2-code-fpga-claude-project-ldpc-optical/memory/wrapper-lvs-cosmetic.md`
## Contents
### `verilog_rtl/manual_tieoffs.vh`
206 explicit `sky130_fd_sc_hd__conb_1` instantiations, one per wrapper output pin (`io_out[37:0]`, `io_oeb[37:0]`, `la_data_out[127:0]`, `user_irq[2:1]`). Was `\`include`-ed from `verilog/rtl/user_project_wrapper.v` during the v8 attempt.
**Why it failed:** Magic's SPICE-extraction step resolves each `conb_1` output back to the global VPWR / VGND net, collapsing all 206 distinct logical nets into 2 shared power nets at the extracted layout level. The wrapper's output ports lose their individual labels in extraction, producing the same 208 pin-match errors as the bulk `assign la_data_out = 128'b0` tieoff it was meant to replace.
### `openlane_wrapper/manual_placements.json`
Hand-coded `MANUAL_GLOBAL_PLACEMENTS` for the 206 tieoff cells, distributing them along the wrapper's edges adjacent to their target pins. Used by the v8 attempt with the wrapper config's `mprj` location shifted from `[60, 15]` → `[60, 200]` to make room.
**Why it didn't help:** Placement doesn't change Magic's extraction behavior. The cells were placed where requested but their outputs still merged into the global power/ground nets.
### `mag/user_project_wrapper.mag`
121 MB uncompressed Magic layout from the v8 run (May 8 03:17). Replaces `mag/user_project_wrapper.mag.gz` which contains the v5-era wrapper layout.
### `spef/multicorner/user_project_wrapper.{max,min,nom}.spef`
Wrapper-level SPEFs from the v8 run (May 8 03:17), ~15 MB each. The v5-era wrapper SPEFs that should ship with the submission have different blob hashes and would need to be restored from gitea commit `32b469d` if needed for `cf verify`.
### `user_project_wrapper.gds`
Uncompressed wrapper GDS from the v8 run (May 8 03:17), 436 MB. Originally written to `gds/user_project_wrapper.gds`, which conflicted with HEAD's `gds/user_project_wrapper.gds.gz` and broke `cf precheck` with `Both compressed and uncompressed GDS exist. Keep only one.` The committed `.gz` (commit `8cc8414`, May 7 PDN swap) is the canonical wrapper GDS for the submission. This uncompressed v8 copy is preserved here for reference only and not tracked in git.
## Per-run summary
| Run | Date | Strategy | Outcome |
|-----|------|----------|---------|
| v6 | May 7 | First post-PDN-swap retry; same wrapper RTL as v5 | Flow completed; KLayout crashed in final manufacturability step; same 208 LVS errors |
| v7 | May 7 | Retry of v6 | Aborted mid-routing on `[DRT-0349]` LEF58_ENCLOSURE warnings |
| **v8** | May 8 | `manual_tieoffs.vh` + `manual_placements.json` + mprj at `[60, 200]` | Flow completed; STA failed on `min_ss_100C_1v60` + `nom_tt_025C_1v80`; **same 208 LVS errors** |
| v9 | May 9 | Same as v8 + `ERROR_ON_TR_DRC=false` to push through routing | 1780 routing DRC errors (deferred) |
| v10 | May 11 | Variant placement tweaks | 1362 routing DRC errors (deferred) |
| v11 | May 11 | One more attempt | Interrupted at step 01 (yosys-jsonheader) |
## What to do instead
The May 12, 2026 pivot: stop trying to fix LVS through wrapper hardening. Document the 208 errors as cosmetic in `chip_ignite/docs/LVS_WAIVER.md`, verify HEAD's signoff with `cf precheck` + `cf verify`, then `cf push` to ChipFoundry SFTP before the May 13 deadline.
If a future shuttle requires clean LVS, the only viable approach is to drive the 206 unused wrapper outputs from inside `ldpc_decoder_top` as dummy zero ports — this forces distinct extracted macro pins. Cost: full macro re-harden with the risk of Yosys non-determinism breaking Run 6's golden timing. Don't attempt this under deadline pressure.