dummy_fill_gdsii

ipkiss3.all.dummy_fill_gdsii(filename, fill_cell, target=None, ignore=None, density=0.5, design_buffer=10, edge_buffer=10, new_filename=None)

Applies a rectangular dummy fill to a gds file to achieve a specified local density.

Parameters:
filename: string

GDS file of the design to apply dummy filling to.

fill_cell: Box

The basic element (tile) used for filling. Only Boxes are supported. The layer of this Box, determines the layer on which the dummy elements are drawn.

target: Layer, optional, default=None

A layer which defines the bounding area of the filling operation. If None, the entire layout will be filled.

ignore: list[Layer], optional, default=None

List of layers to exclude/ignore during the fill operation. Elements on these layers will not be taken into account.

density: float, optional, default=0.5

Target density (0.0 to 1.0). Determines the pitch of the fill pattern.

design_buffer: float, optional, default=10

Keep-out distance (buffer) around existing design features where no dummy elements will be placed.

edge_buffer: float, optional, default=10

Keep-out distance (buffer) around outer perimeter.

new_filenamestr | None, optional, default=None

The filename to be given to the newly created gds fill containing the dummy elements. If None, _dummy_filled is appended to the original filename.

Returns:
new_filenamestr

The filename of the newly generated GDSII (e.g., ‘original_dummy_filled.gds’).

Examples

>>> import ipkiss3.all as i3
>>> import si_fab.all as pdk
>>>
>>> box = i3.Box(layer=pdk.TECH.PPLAYER.M1, box_size=(5, 5))
>>> new_file = i3.dummy_fill_gdsii("my_gds_file.gds", fill_cell=box)
>>> print(f"Dummy filled gdsii file: {new_file}")