Skip to content

feat(process): vcad-process — planar TCAD-lite process simulation#395

Merged
ecto merged 4 commits into
mainfrom
claude/process-sim
Jul 3, 2026
Merged

feat(process): vcad-process — planar TCAD-lite process simulation#395
ecto merged 4 commits into
mainfrom
claude/process-sim

Conversation

@ecto

@ecto ecto commented Jul 3, 2026

Copy link
Copy Markdown
Owner

What

New vcad-process crate: planar ("TCAD-lite") semiconductor process simulation — the digital twin of a fab, and M2 of the chip-design arc that produced vcad-gdsii (#387/#394).

  • Recipe as data (serde): Deposit, PatternEtch, GrowOxide (0.46 Si-consumption rule), Implant, Planarize over a substrate.
  • Photolithography steps: SpinResist (positive/negative tone), Expose (mask layer + dose), Develop, EtchThroughResist, Strip — with an equivalence test proving the full litho sequence reproduces the idealized PatternEtch film-by-film (both tones/polarities). Resist renders amber while present.
  • Mask engine from vcad-gdsii::flatten + pure-Rust geo booleans, clipped to the region of interest before any boolean so full-die cuts stay cheap.
  • Outputs as vcad_ir::Document: simulate_3d (windowed 3D film stack) and cross_section / cross_section_scaled (textbook cut with exact analytic interval extraction; etched-away intervals genuinely absent; optional vertical exaggeration).

Validated against a real librelane sky130 die (haiku_gen): the cross-section shows implant wells under field-oxide openings, poly, li1, met1/met2 with correct gaps.

Testing

35 tests: interval extraction (holes → gaps, span clipping, Y cuts, merging), etch subtraction, GrowOxide consumption math, Planarize, implant inset, mask clipping/union, window crop, resist tone semantics, litho↔PatternEtch equivalence, z-scale emission, serde round-trips, bad-input rejection. Clippy -D warnings + fmt clean.

Known planar-v0 limitations documented in the README (scalar top surface — no conformal deposition, anisotropic etch only, box implants, blanket oxidation).

🤖 Generated with Claude Code

ecto and others added 3 commits July 3, 2026 11:37
New vcad-process crate: GDS masks + a serializable process recipe
(Deposit, PatternEtch, GrowOxide with 0.46 Si consumption, Implant,
Planarize) run through a planar film-stack simulator built on geo
boolean ops. Emits vcad-ir documents in the gdsii-bridge sketch+extrude
style: simulate_3d for a windowed die film stack, cross_section for the
textbook process cross-section with exact per-interval gaps where
material was etched. Includes a sky130-ish end-to-end example over the
haiku_gen die.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
New ProcessSteps: SpinResist (positive/negative tone film on the top
surface), Expose (records pattern + dose on the resist; dose is
bookkeeping until dose-to-clear lands), Develop (tone-aware boolean on
the resist footprint), EtchThroughResist (etches the film below where
resist is absent — the physically honest PatternEtch), and Strip.
Resist films carry a public ResistState, render as classic amber in
both emitters, and the full spin→expose→develop→etch→strip sequence is
tested to land on geometry identical to the idealized PatternEtch for
both tones. PatternEtch itself is unchanged (now sharing an etch_film
helper for the through/partial split).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ble sections

Real film stacks are ~7 um tall on cuts hundreds of um long — a ribbon
at true aspect. z_scale multiplies each film's z-extent at emission
only; simulation footprints and thickness math stay physical.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

4 Skipped Deployments
Project Deployment Actions Updated (UTC)
mecheval Ignored Ignored Jul 3, 2026 5:00pm
vcad Ignored Ignored Jul 3, 2026 5:00pm
vcad-docs Ignored Ignored Jul 3, 2026 5:00pm
vcad-mcp Ignored Ignored Jul 3, 2026 5:00pm

Request Review

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ecto ecto merged commit e1f21a3 into main Jul 3, 2026
12 checks passed
@chojiai

chojiai Bot commented Jul 3, 2026

Copy link
Copy Markdown

What shipped

You can now simulate a semiconductor fabrication process directly from a chip layout file. Give the tool a layout and a process recipe — describing steps like depositing films, etching patterns, growing oxide, implanting dopants, and planarizing — and it produces two outputs:

  • A 3D view of the resulting film stack over any region of the die, with each material rendered in a distinct color.
  • A cross-section cut through the stack at any position, showing exactly which materials are present or absent at that slice — the kind of diagram you'd see in a textbook or process audit.

Recipes are plain, readable files that can be saved alongside the layouts they describe, and the full photolithography sequence (spin coat, expose, develop, etch, strip) is now supported as an alternative to the simplified one-step etch shortcut.


Plain-English summary generated by Choji from this pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant