Glyph

Fill Empty Regions with Dummy Density Tiles

A layer with a large fraction of open space — sparse metal, a mostly-empty active area, a die with wide scribe lanes — can misbehave in CMP (chemical-mechanical polishing) or plasma etch: polish rate and etch rate both depend on local pattern density, so a region with almost nothing on it polishes or etches at a different rate than a dense one nearby, and that difference shows up as a real process defect, not a cosmetic one. The standard fix is dummy fill: scatter small, electrically inert shapes across the empty space so local density stays closer to uniform, while staying clear of anything that actually matters — real routing, contacts, alignment structures.

Arrange → Fill empty regions… (since v0.132.0) automates exactly that: pick a small cell to tile, a pitch, a keep-out halo, and which layers count as "real geometry" to stay clear of, and Glyph computes every site that fits before you commit to placing anything.

Time: ~8 min. You'll need: Glyph open on any document with at least one layer holding some real geometry — the keep-out geometry is what makes the halo behaviour visible. A blank document works too; you'll just be filling open space with nothing to avoid.

The dialog, field by field

Open Arrange → Fill empty regions…. Every field maps directly onto a decision you'd otherwise make by hand:

Preview, then place — never the other way round

The submit button reads Preview the first time, and only becomes Place N tiles once a preview has been computed for the exact input currently in the dialog. Changing any field — pitch, halo, region, the fill cell itself — invalidates that cached preview immediately and the button reverts to Preview, so there is no way to commit a stale count against inputs you've since edited. The preview line states the split honestly: "Would place N of M candidate sites — as A AREFs + S SREFs." The empty-region derivation behind this is a real whole-cell boolean (merge everything, then dilate by the halo), which is deliberately not recomputed on every keystroke — that's why it's a two-step Preview/Place flow rather than a live-updating count.

A rejected candidate site is a genuinely conservative call, not a best guess: the keep-out test is bounding-box based, so a non-rectangular keep-out shape (or several rectangles that merge into a non-rectangular footprint) can skip a site that would have geometrically fit — never the reverse. If you find fewer sites than you expected, that conservatism is usually why; widening the pitch or shrinking the halo recovers them, at the cost of a less dense fill.

Why the toast says "AREFs" as well as "SREFs"

Placement is capped at 10,000 candidate sites, and the dialog refuses up front, naming the number, if your pitch and region would ask for more. Below that cap, Glyph doesn't place one SREF per site — it looks for regular, unbroken rectangular runs of at least 4 contiguous sites and compresses each run into a single AREF, the same record GDSII already uses for a rectangular array. Only the ragged remainder — sites broken up by keep-out geometry, or too small a run to qualify — stays as individual SREFs. This is why a dense, mostly-obstacle-free fill of thousands of sites can still cost only a handful of AREF records: the toast and the preview both report the honest split, e.g. "as 2 AREFs + 6 SREFs," so you can see exactly how much the compression actually bought you on your specific layout. The whole placement — however many AREFs and SREFs it ends up as — lands as one undo step.

When to reach for this, and its honest limits

Use it for CMP or etch-loading dummy fill, density-matching between adjacent dies, or filling a scribe lane so it doesn't stand out as an obvious low-density strip on an otherwise uniform wafer. It is not a density calculator: the preview reports a region-coverage estimate — the checked keep-out layers' existing coverage plus the fill tiles' own footprint over the region — but that is an areal estimate of what you're about to place, not a per-layer density target from your process design kit. If your process has a hard density-window spec, check the result against that spec separately; this tool gets you to a reasonable fill pattern fast, it doesn't certify one.

Next steps

Boolean and layer operations covers the other whole-layer, non-destructive tools this dialog's own merge-and-dilate step borrows from. Cells, instances and arrays explains what an AREF actually is and why it's cheap regardless of how many instances it represents. For the width>0-path keep-out behaviour and layer statistics generally, see Layers. Then open the editor and fill the open space on your own design.

Updated 2026-08-30

Open Glyph — free, no install Your files never leave your computer.
Open Glyph →