π RUNNING LOG (Production Phase)
This document is the single source of truth for production-phase execution in this repository.
It records what was done, what was observed, and what was decided in a layout-first HV IC exploration.
- β This is NOT a design specification.
- π This is a decision + result ledger to make progress reproducible.
π§ How to Use This Log (Operating Rules)
- π§Ύ Every significant action must be logged as a Run (Run ID increments).
- β A Run is valid even if it fails (e.g., DRC FAIL). Failure is still a result.
- π Do not overwrite history. When plans change, create a new Run or add a Revision Note.
- β‘ Use VβI notation consistently for electrical discussion (VoltageβCurrent).
π― Scope and Intent
- π Target object: HV_SW_UNIT
- 𧬠Process: GF180MCU Open PDK
- π§± Focus: Layout-first, GDS-oriented
- π Priority: Physical robustness / arrayability > performance optimization
π« Explicitly Out of Scope
- Circuit-level performance optimization
- Tape-out readiness
- Reliability qualification
- Commercial usability / warranty
π Global Objectives
- π§± Establish a physically valid HV_SW_UNIT layout
- π Identify layout-driven constraints invisible at schematic level
- π Accumulate reusable layout patterns and check items for future iterations
βΉ Note: Formal DRC closure under GF180 is not a requirement in this phase due to the
absence of an official KLayout DRC deck in the current environment.
π Run Index (Master Table)
| Run ID |
Date |
Target |
Description |
Status |
DRC |
LVS |
Artifacts |
Notes |
| 001 |
2026-01-12 |
HV_SW_UNIT |
Probe layout to expose dominant constraints |
Done |
NOT PERFORMED |
NOT PERFORMED |
py / gds / png |
Guard dominance |
| 002 |
2026-01-12 |
HV_SW_UNIT |
Guard strategy: per-cell β shared |
Done |
NOT PERFORMED |
NOT PERFORMED |
py / gds / png |
Guard removed |
| 003 |
2026-01-12 |
HV_SW_UNIT |
Poly gate end isolation |
Done |
NOT PERFORMED |
NOT PERFORMED |
py / gds / png |
Poly isolated |
| 004 |
2026-01-12 |
HV_SW_UNIT |
X-tiling & pitch evaluation (Run003 base) |
Done |
NOT PERFORMED |
NOT PERFORMED |
py / gds / png |
M1 emerges |
| 005 |
2026-01-12 |
HV_SW_UNIT |
Metal1 stub trimming & pitch sweep |
Done |
NOT PERFORMED |
NOT PERFORMED |
py / gds / png |
Limiter fixed |
π§ͺ Run 001
π Identification
- Run ID: 001
- Date: 2026-01-12
- Tool: KLayout 0.30.x (Windows)
π Key Result
- P+ guard ring dominates cell footprint
- Naive tiling is impossible
π§ Conclusion
- Arrayable (X): β No
- Next: Guard strategy isolation β Run 002
π§ͺ Run 002
π Key Result
- Shared outer guard removes guard-dominated pitch inflation
π§ Conclusion
- Arrayable (X): β Potentially yes
- Next: Poly gate end isolation β Run 003
π§ͺ Run 003
π Key Result
- Poly gate over-extension trimmed
- No new boundary artifacts introduced
π§ Conclusion
- Poly is not conclusively dominant
- Next: Tiling-based pitch measurement β Run 004
π§ͺ Run 004
π§± Layout Conditions
- Base cell: HV_SW_UNIT_RUN003
- Tiling direction: X
- Tiles: N = 5
- Tested pitch: 16 Β΅m
π Observations
- 16 Β΅m pitch is geometrically feasible
- Guard and poly no longer limit pitch
- β Metal1 edge stub approaches spacing limit
π§ Conclusion
- Arrayable (X) at 16 Β΅m: β
Yes (marginal)
- Dominant pitch limiter: Metal1 stub
- Next: Metal1-only single-knob experiment β Run 005
π§ͺ Run 005
π 1) Identification
- Run ID: 005
- Date: 2026-01-12
- Tool: KLayout 0.30.x (Windows)
π§± 2) Layout Conditions
- Base cell: HV_SW_UNIT_RUN003 (unchanged)
- Single knob: Metal1 stub geometry only
- Array direction: X
- Tiles: N = 5
- Pitch sweep: 16 Β΅m β 14 Β΅m β 12 Β΅m
- Guard / Poly: Frozen (from Run 003)
π 3) Verification Status
- DRC / LVS: NOT PERFORMED
- Method: Visual inspection + ruler-based spacing confirmation
π 4) Observations
β
16 Β΅m
- Fully clean margin
- No M1 proximity concern
β 14 Β΅m
- M1 stub spacing reduced but still acceptable
- No overlap or edge-touch
β 12 Β΅m
- Geometry remains non-overlapping
- M1 stub becomes clear dominant limiter
- Spacing margin approaches practical minimum
π§ 5) Conclusions
- Minimum safe pitch (manual): β12β14 Β΅m
- Final dominant constraint: Metal1 stub geometry
- Guard ring and poly gate end are fully de-risked
- Pitch scaling below 12 Β΅m would require:
- π M1 topology redesign, or
- π§ Vertical routing layer migration (e.g., M2)
π¦ 6) Artifacts
π Macros
layout/hv_nmos_gr/klayout/hv_sw_unit_run005_m1_stub_trim.py
layout/hv_nmos_gr/klayout/hv_sw_unit_run005_m1_stub_trim_sweep.py
π GDS
layout/hv_nmos_gr/gds/hv_sw_unit_run005_m1_stub_trim_16um.gds
layout/hv_nmos_gr/gds/hv_sw_unit_run005_m1_stub_trim_14um.gds
layout/hv_nmos_gr/gds/hv_sw_unit_run005_m1_stub_trim_12um.gds
πΌ Images
docs/images/12_hv_sw_unit_run005_m1_stub_trim_16um_gds.png
docs/images/13_hv_sw_unit_run005_m1_stub_trim_14um_gds.png
docs/images/14_hv_sw_unit_run005_m1_stub_trim_12um_gds.png
π Final Decision Summary
- Pitch limiter progression:
Guard β Poly β Metal1
- HV_SW_UNIT is physically arrayable
- Layout-first objective achieved
β
This concludes the HV_SW_UNIT pitch discovery phase.
Any further run would be architectural, not exploratory.
π Revision Notes
| Rev |
Date |
Change |
| 1 |
2026-01-12 |
Initial structure |
| 2 |
2026-01-12 |
Locked Run 001β003 |
| 3 |
2026-01-12 |
Added Run 004 (tiling evaluation) |
| 4 |
2026-01-12 |
Added Run 005 (Metal1 stub sweep) |
| 5 |
2026-01-12 |
Declared pitch discovery phase complete |
End of document.