Lumicron Documentation

Glossary

Terms used throughout this guide.

AREF - Array reference. A GDS construct that places a child cell on a regular grid as a single record, instead of N independent SRefs. lm.ARRAY emits one AREF per call.

Bend - How a route makes a turn. "circular" is a constant-radius arc; "euler" is a clothoid where curvature ramps linearly from zero at entry, peaks mid-bend, and ramps back to zero at exit. Custom bends are 90° PCells.

Bundle - A group of parallel routes. Created with c.Route(...).

Cell - A reusable hierarchical container of geometry, ports, sub-cells, and bookmarks. lm.CELL("Name") creates one.

Datatype - The second number in a (layer, datatype) pair. Foundries often use it to subclassify shapes on the same layer (e.g. layer 9 datatype 0 = drawn silicon, datatype 1 = exclusion).

Direct routing - A route geometry that uses Dubins arcs (arc-straight-arc) instead of Manhattan elbows. Picked automatically for non-cardinal port pairs.

Dubins path - The shortest curve connecting two oriented points subject to a turning radius constraint. Lumicron’s direct router uses Dubins paths to route between non-cardinal ports.

Fanout - The geometry that absorbs a port-pitch mismatch at the entry / exit of a bundle. Manhattan fanout uses staircased U-detours; S-bend fanout uses a 4-point diagonal bridge.

FlexRoute / FlexPath - gdstk’s parameterized polyline-with-bends primitive. Lumicron’s auto-router emits FlexRoute records for most paths.

Handle - The object returned by c.add(...). For sub-cells and arrays it carries placement and port-access methods.

Layer - A (layer_number, datatype) pair that names a process step (silicon, metal-1, oxide, …). PDK layers are Layer objects with design rules attached.

Manhattan routing - A route geometry where every segment is axis-aligned and turns are 90° elbows.

OASIS - A GDS-II successor format, more compact for large layouts. to_gds("foo.oas") writes OASIS.

PCell - A parametric cell. In Lumicron, any function decorated with @lm.pcell is a PCell - its parameters are hashed into the cell name so distinct calls produce distinct GDS cells.

PDK - Process Design Kit. A package of layers, design rules, components, route profiles, and transitions for a specific foundry process.

Bookmark - A named bbox bookmark on a cell. Surfaces in the Lumicron viewer’s Bookmarks panel. Not a GDS label.

Port - A named, oriented connection point on a cell. Carries a position, direction, width, layer, and optional route profile.

BookmarkGroup - A collection of bookmarks sharing a group="..." tag. Surfaces as a collapsible section in the viewer.

Route - A connection between two ports, emitted as one or more FlexRoute records plus optional taper / transition / bend PCells.

Route profile - A cross-section recipe: layers, widths, periodic features. Built with the @route_profile decorator (covered in the PDK Authoring Guide).

S-bend - A two-curve transition that shifts a route laterally without changing its primary direction. c.Route(a, b).go("NE", by=(dx, dy)) lays one.

SRef - Single Reference. A GDS placement of a child cell. c.add(child).Place(...).at(...) emits an SRef.

Section (of a route) - A stretch of a Route() chain between two .go() / .jog() calls (or between the start / a .go(), or a .go() / the end). Section-level chain modifiers (.style(), .radius(), .bend(), .width()) apply to the next section.

Transition - A PCell that bridges two layers (e.g. SiLC-to-SiLN). Registered in a TransitionRegistry; the router consults it when a route crosses layers.

Search documentation

Type to search all guides and API references.

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