Lumicron Documentation

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:

  1. A layer table - every named GDS layer your process exposes, with design rules attached.
  2. A layer stack - the physical reality (thicknesses, dispersive indices) for simulators.
  3. A route profile for every cross-section a router should know how to draw.
  4. 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 .lumpdk package 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 lv

Use 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.

Search documentation

Type to search all guides and API references.

↑ ↓ to select · Enter to open · Esc to close