max_density¶
The combined density of one or more layers must be at most value (%): over the
whole chip, in every window of a grid laid over it, or in each large connected region
of a base layer, as scope says.
Semantics¶
The dual of min_density, with the same scopes, denominators and boundary
convention: the listed layers’ merged coverage is summed and divided by the die - the
boundary layer’s own polygons, or the chip’s bounding box where no boundary is
named - by the die area within each window, or by each wide base region’s filled area. A min_density/max_density pair on the same layers, scope
and boundary forms the usual “keep fill density within [floor, ceiling]” rule pair, as
one chip-wide number or window by window.
Layers¶
As min_density: one or more layers summed for the numerator, or base and feature
layer with scope: region.
Parameters¶
As min_density: scope (chip, window, region), window,
step, min_size and layer_params: boundary.
Violation markers¶
As min_density: one chip-wide marker, one edge marker per offending window, or one point marker per region over the ceiling.
KLayout equivalent¶
layer.without_density(value, nil, tile_boundary) for the chip and
layer.without_density(value, nil, tile_size, tile_boundary) per window.
Examples¶
- id: TM2.d
check: max_density
layers: [TopMetal2, TopMetal2.filler, TopMetal2.mask]
value: 70.00
layer_params:
boundary: EdgeSeal.boundary
- id: M4Fil.k
check: max_density
layers: [Metal4, Metal4.filler, Metal4.mask]
value: 75.00
params:
scope: window
window: 800.0
layer_params:
boundary: EdgeSeal.boundary