Welcome
This is the PDK Authoring Guide for lumicron. It tells you how to package a process design kit - layers, route profiles, components, layer transitions - that end users can import and use without thinking.
If you’re an end user looking to write layouts (not author a PDK), the companion Lumicron API User Guide is what you want.
What “PDK” means in this guide
A PDK in lumicron is, at minimum, four things:
- A layer table - every named GDS layer your process exposes, with design rules attached.
- A layer stack - the physical reality (thicknesses, dispersive indices) for simulators.
- A route profile for every cross-section a router should know how to draw.
- A component library -
@pcell-decorated factories whose ports already carry the right route profiles.
Optional but encouraged:
- A transition registry so cross-layer routes auto-insert the right PCell.
- A
.lumpdkpackage with a manifest, so the Lumicron Mac app can install it as a process.
When all five are in place, an end user’s script is just import lumicron.pdks.<your_pdk>.all as pdk followed by component placement and routing - every kwarg they don’t pass picks up the right default from the PDK.
Here <your_pdk> is META["package-name"]. It is a Python identifier and is deliberately separate from the human META["name"] shown in Lumicron.
Tip
The single biggest investment a PDK author makes is route profiles attached to component ports. When every component publishes ports that already carry their cross-section, end-user scripts shrink dramatically: chip.Route(coupler.ports["o1"], modulator.ports["i1"]) does the right thing with no kwargs.
Every code listing in this book is a real, executable file in pdk_authoring_docs/examples/. The build script runs them, regenerates figures, and rebuilds this PDF.
The PDK developer package
import lumicron as lm
import lumicron_pdk as lpdk
import lumicron_validate as lvUse lpdk for layers, process stacks, route profiles, display styles, compact models, packaging and qualification. Use lm for PCell geometry and design construction. Use lv for fabrication/semantic rule authoring. These packages ship in Lumicron’s bundled runtime; this guide does not promise a separate PyPI distribution.
See the Layout API guide for placement/routing, and the Validation API guide for DRC/DFX. The standard qualification chapter explains lpdk.tests.run and its generated inspection artifacts.