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

minDensityCheck

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

(Virtuoso Advanced Node for Layout Only) Specifies the absolute minimum 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_minDensity

The minimum 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.

'target f_target

The preferred minimum density, which should be more than or equal to f_minDensity. Checker treats this value as the minimum density. It acts as a buffer and ensures that all windows are slightly above the required minimum density.

Example

The minimum density of mask2 shapes on Metal1 as a percentage of the total area of a 4.62 by 7.2 checking window must be greater than or equal to 25.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. Because a target density is indicated, the checker reports any window that has density less than the target 32%.

spacings(
    ( minDensityCheck "Metal1"
     'winx 4.62 'winy 7.2
'stepx 2.31 'stepy 3.6
'mask2
'target 32
25.2
)
) ;spacings

Return to top
 ⠀
X