Product Documentation
Virtuoso Technology Data Constraints Reference
Product Version IC23.1, November 2023

maxDensityCheck

spacings(
( maxDensityCheck tx_layer
 ['step f_step | 'stepx f_stepx 'stepy f_stepy] 
 ['win f_win | 'winx f_winx 'winy f_winy] 
 ['mask1 | 'mask2 | 'mask3] 
 f_maxDensity
)
) ;spacings

(Virtuoso Advanced Node for Layout Only) Specifies the absolute maximum density of shapes on a layer against a specified checking window that is moved by defined steps until the entire design is checked.

The absolute density of a layer is calculated as follows:

Total area of shapes in checking window / Area of checking window

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. The checking window may be rectangular or square. 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.

Values

tx_layer

The layer on which the constraint is applied.

Type: String (layer and purpose names) or Integer (layer number)

f_maxDensity

The maximum density or percentage of the design area that the total shapes of a specified layer and mask must occupy.

Parameters

'step f_step | 'stepx f_stepx 'stepy f_stepy

The size of the steps by which the checking window is moved.

  • For a square checking window, specify f_step, which indicates the size of the step in both x and y directions. Also, ensure that f_win is specified.
  • For a rectangular window, specify f_stepx and f_stepy, which indicate the size of the step in x and y directions, respectively. Also, ensure that f_winx and f_winy are specified.

'win f_win | 'winx f_winx 'winy f_winy

The dimensions of the checking window.

  • For a square checking window, specify f_win, which indicates the dimension of the window on each side. Also, ensure that f_step is specified.
  • For a rectangular window, specify f_winx and f_winy, which indicate the x and y dimensions of the window, respectively. Also, ensure that f_stepx and f_stepy are specified.

'mask1 | 'mask2 | 'mask3

The mask to which the constraint applies.

Example

The maximum density of mask2 shapes on Metal1 as a percentage of the total area of the 4.62 by 7.2 window must be less than or equal to 65.2. The checking window is stepped across the entire layout in increments of half the checking window size until the entire layout has been analyzed.

spacings(
    ( maxDensityCheck "Metal1"
     'winx 4.62 'winy 7.2
'stepx 2.31 'stepy 3.6
'mask2
65
)
) ;spacings

Return to top
 ⠀
X