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

maxACCurrentDensity

layerRules(
currentDensity(
 ( rmsACCurrentDensity tx_layer f_value )
) ;currentDensity

currentDensityTables(
 ( rmsACCurrentDensity tx_metalLayer
  (( "frequency" nil nil ["width" nil nil] ))
  ( g_table )
 )
 ( rmsACCurrentDensity tx_cutLayer
  (( "frequency" nil nil ["cutArea" nil nil] ))
  ( g_table )
 )
) ;currentDensityTables
) ;layerRules
spacings(
( maxACCurrentDensity tx_layer
 {'peak | 'rms | 'average}
 ['tempFactor ( (( "temperature" )) (f_temp f_mult …) )]
 ['hoursFactor ( (( "hours" )) (f_hour f_mult …) )] 
 f_value
)
) ;spacings
spacingTables(
( maxACCurrentDensity tx_metalLayer
 (( "frequency" nil nil ["width" nil nil] )
  {'peak | 'rms | 'average}
  ['tempFactor ( (( "temperature" )) (f_temp f_mult …) )]
  ['hoursFactor ( (( "hours" )) (f_hour f_mult …) )]
  [f_default]
 )
 (g_table)
) ;maxACCurrentDensity

( maxACCurrentDensity tx_cutLayer
 (( "frequency" nil nil ["cutArea" nil nil] )
  {'peak | 'rms | 'average}
  ['tempFactor ( (( "temperature" )) (f_temp f_mult …) )]
  ['hoursFactor ( (( "hours" )) (f_hour f_mult …) )]
  [f_default]
 )
 (g_table)
) ;maxACCurrentDensity
) ;spacingTables

Defines the maximum allowable AC current density.

In some processes, the allowable AC current density is either defined as a simple value or is dependent on the frequency and width of the shape through which the current is flowing. In more advanced processes, the allowable current density can be a function of the operating temperature and the number of hours for which the circuit is in operation. The temperature is measured in degree Celsius. When the operating temperature is greater than or equal to a given temperature, the corresponding multiplier is applied to the current value obtained from the constraint. The length of time of circuit operation is measured in number of hours. When the number of operating hours is greater than or equal to a certain value, the corresponding multiplier is applied to the current value obtained from the constraint (for a given frequency and width if the current density is defined as a function of these parameters).

Values

tx_layer, tx_metalLayer, tx_cutLayer

The layer on which the constraint is applied.

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

f_value

The maximum allowable AC current density.

"frequency" nil nil ["width" nil nil]

This identifies the index for table.

"frequency" nil nil ["cutArea" nil nil]

This identifies the index for table.

g_table

Each row in the current density table has the following format:

( f_frequency f_value f_currentValue )

where,

  • f_frequency is the frequency, in megahertz. The value must be greater than or equal to the index value for the corresponding current density value to apply.
  • f_value is width if the layer specified is a metal layer and area if the layer specified is a cut layer. The value must be greater than or equal to the index value for the corresponding current density value to apply.
  • f_currentValue is the maximum allowable AC current density, in milliampere per micron.

Type: A 1-D table specifying floating-point frequency and current density values, or a 2-D table specifying floating-point frequency and width, or area, and current density values

Parameters

'peak | 'rms | 'average

  

The current density type.

  • 'peak: The peak AC current density that the wire can handle.
  • 'rms: The RMS AC current density that the wire can handle.
  • 'average: The average AC current density that the wire can handle.

Type: Boolean

'tempFactor ( (( "temperature" )) (f_temp f_mult …) )

A multiplier table that is indexed on the temperature. When the temperature is greater than or equal to an index value in the table, the current is scaled by multiplying it with the corresponding multiplier.

Type: A 1-D table specifying temperature in degree Celsius and a unitless multiplicative factor

'hoursFactor ( (( "hours" )) (f_hour f_mult …) )

A multiplier table that is indexed on the number of hours of operation. When the number hours of operation is greater than or equal to an index value in the table, the current is scaled by multiplying it with the corresponding multiplier.

Type: A 1-D table specifying the number of hours and a unitless multiplicative factor

f_default

The AC current density value to be used when no table entry applies.

Example

Define the peak current density by using a piecewise model at 100 Mhz and 400 MHz for widths 0.3, 0.8, and 1.6. A temperature factor with values at 50, 100, and 120 degrees Celsius and an hours of operation factor at 5000, 10000 and 15000 hours is also defined. For example, the maximum peak AC current density for a 0.9 micron wide wire running for 5000 hours of operation at 120 degrees at 100 MHz is 10.125 mA/micron (7.5*1.8*0.75).

spacingTables(
    ( maxACCurrentDensity "Metal2" 
     (( "frequency" nil nil "width" nil nil )
'peak
'tempFactor ( (( "temperature" ))
(
50 2.2
100 1.0
120 0.75
)
)
'hoursFactor ( (( "hours" ))
(
     5000   1.8
10000 1.0
15000 0.8
)
)
4.0
)
(
(100.0 0.3) 9.0
(100.0 0.8) 7.5
(100.0 1.6) 6.5
(400.0 0.3) 7.5
(400.0 0.8) 6.8
(400.0 1.6) 6.0
     )
) ;maxACCurrentDensity
) ;spacingTables

Return to top
 ⠀
X