Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

vyges-fin — density fill

Physical construction — opt-in, and not part of vyges install loom. These engines build the design database that the sign-off and verification engines read, so they install as their own group:

vyges install physical   # all six
vyges install fin        # just this one

It is also a standalone vyges-fin binary on your PATH, which is what the dispatch calls and what a flow author targets directly. Source: vyges-tools/fin.

vyges-fin fills the empty space on each metal layer with fill shapes, so every layer meets the foundry’s density rules. It is a finishing step: it runs on a routed design and adds metal that carries no signal.

Run it

vyges fin density-fill design.odb --rules fill.json
vyges fin density-fill design.odb --rules fill.json --area '100 100 400 400'   # a sub-region

The rules file states, per layer, the shape sizes allowed and the spacing to keep from anything already there.

Where it sits

Routed database in, the same database with fill added out. Fill is regenerated wholesale rather than patched, so re-running is idempotent rather than cumulative.

Verdicts that are not verdicts

status is filled, planned, vacuous or error. vacuous is not a pass: it means no shape was placed at all. Zero can be right — a design already above every density floor needs no fill — so read fills and layers_filled and decide.

Known bounds

  • prune() is conservative: it forbids fill near two regions closer together than the fill spacing, which may exclude a position that would in fact have been legal.
  • The tiling is a fixed grid anchored at each sub-area’s bounding box, rather than sweeping the tile origin to find a denser packing.

See the full CLI reference (generated from --help and --describe).