Language Reference

Dummy Fill

Fill the free space of a layer with dummy tiles as the layout is written, keeping clear of the design, without changing the source or the IR.

Many processes need an even pattern density on each layer for etching and polishing. Dummy fill puts square tiles wherever a layer leaves room. In Laylight it is an option of the commands that write a layout, so the source and the Laylight IR stay as they are; the tiles appear only in the output.

laylight build chip.lyl -o chip.gds --dummy si:size=2um,space=2um,keepout=3um
laylight build received.gds -o filled.gds --dummy si --dummy metal:size=5um,space=5um,keepout=5um
laylight unbox chip.gds --whitebox mmi.lyl -o full.gds --dummy si:keepout=3um,area=chip,margin=20um

--dummy can be given once per layer on laylight build, laylight ir and laylight unbox. The input of build and ir can be Laylight source, IR (.lyir) or GDSII, so an existing layout can be filled too.

Rules

A rule is a layer, a name of the layer table or <layer>/<datatype>, followed by options:

OptionDefaultMeaning
size2umthe edge of a square tile
space2umthe gap between neighboring tiles; the pitch is size + space
keepout2umthe least distance from a tile to existing geometry
margin0the least distance from a tile to the edge of the fill area
excludenonefurther layers to keep out of, joined by +: exclude=slab+heater
areanonefill only inside the shapes of this layer, such as a chip outline; otherwise the bounding box of the top cell
datatypethe layer'swrite the tiles on this datatype of the same layer number
staggeroffshift every other row by half a pitch

Lengths take units like Laylight literals: 500nm, 2um, 0.

Where tiles go

  • Tiles lie on a grid anchored at the origin of the top cell, so editing one part of a design leaves the tiles elsewhere where they were.
  • A tile is kept when it lies inside the fill area and its square, grown by keepout on every side, does not overlap the layer's geometry, the geometry of the exclude layers or the footprint of a blackbox. The geometry of the whole hierarchy counts, with every rotation, mirror and array. Distances are measured along x and y, so diagonal distances are at least keepout too; a tile exactly keepout away is kept.
  • Blackboxes are avoided on every layer, since their contents are not known. Fill after unbox to fill around the real cells instead.

Output

Each rule adds a tile cell DUMMY_<layer> holding one square, and in each top cell an instance dummy_<layer> of a cell <top>$DUMMY_<layer> that places the tiles. Runs of tiles in a row are joined into arrays, and equal runs in the rows above into two-dimensional arrays, written as GDS array references: filling around a million-member array of the test fixtures takes about half a second and a few thousand references. Each rule reports its tiles and the share of the fill area they cover:

dummy si in Top: 2261 tiles in 11 instances, 19.4% of the fill area

On this page