maxDensity
spacings(
( maxDensity tx_layer
f_density
)
) ;spacings
spacingTables( ( maxDensitytx_layer(( "step" nil nil ["window" nil nil] ) [f_default] ) (g_table) )
) ;spacingTables
Specifies the maximum percentage of the design area that the metal on the specified layer can occupy. Density is calculated as follows:
Density = Metal area / Total area
Density constraints are usually represented in two ways. They can apply either across the area of the whole design or specifically to the region covered by the checking window, which is moved incrementally across the design to check for localized problems.

Checking density by using a stepped value requires that you start at a corner of the design, as shown above, and validate the density percentage for an area (window) whose height and width are each twice the step size or equal to the window size. You then continue to step across the design incrementally, moving the window by the step size, each time validating that the density percentage in the window is within the maximum required value.
The maxDensity constraint is used in conjunction with the minDensity constraint to ensure that the metal density for a design is neither too dense nor too sparse.
Values
Parameters
Examples
Example 1: maxDensity with step
The density of Metal1 as a percentage of the total area of the design must be less than or equal to 65.0 when the step size is 60.0. The density check window is a square with side equal to 120.0.
spacingTables( ( maxDensity "Metal1" (( "step" nil nil ) )
(60.0 65.0)
)
) ;spacingTables
Example 2: maxDensity with step and window
The density of Metal2 as a percentage of the total area of the design must be less than or equal to:
- 65.0 when the step size is 60.0 and the window size is 100.0. The density check window is a square with side equal to 100.0.
- 130.0 when the step size is 120.0 and the window size is 200.0. The density check window is a square with side equal to 200.0.
spacingTables( ( maxDensity "Metal2" (( "step" nil nil "window" nil nil )
65.0
)
(
(60.0 100.0) 65.0
(120.0 200.0) 130.0
)
)
) ;spacingTables
Return to top