cumPerLayerAntennaRatio
spacings(
( cumPerLayerAntennaRatio
tx_layer
'OXIDEn
['isSide]
['diffAreaRatio g_table]
['areaFactor f_areaFactor]
['diffuseOnly]
[['diffPlusFactor f_diffPlusFactor]
| ['gatePlusDiffPWL g_gatePlusDiffTable]
]
['diffMinusFactor f_diffMinusFactor]
['diffAreaReduceFactor g_table]
['gatePWL g_gatePWLTable]
['cumRoutingPlusCut]
f_areaRatio
)
) ;spacings
Defines cumulative antenna ratios on a per-layer basis. This constraint adds all partial area ratios measured for each net in each layer below the specified layer and flags those that exceed the specified permissible ratios. Unique constraints can be specified for each of the 32 permissible OXIDE models. For detailed information about antenna model constraints, see antennaModels.
When gatePWL and either diffPlusFactor or gatePlusDiffPWL are specified, the gate area used to calculate f_areaRatio is determined using the following formula:
gatePWL(gate) + plusDiffProtect(diff)
Here:
-
gatePWL(gate) indicates the gate area defined using gatePWL. -
plusDiffProtect(diff) indicates the diffusion area that is added to the gate area value.
If diffPlusFactor is specified, then:
plusDiffProtect = plusDiffFactor * diffArea
If gatePlusDiffPWL is specified, then:
plusDiffProtect = interpolated PWL value indexed by diffArea
Values
|
tx_layer
|
The metal layer to which the constraint applies.
|
|
f_areaRatio
|
The area ratio of the metal area to the connected gate area.
|
Parameters
|
'OXIDEn
|
Indicates the antenna model to which the constraint applies. It can be one of 32 values ranging from OXIDE1 to OXIDE32.
|
|
'isSide
|
By default, the antenna ratio specifies the ratio of the metal area to the gate area. If isSide is specified, it indicates that the ratio is measured from the metal side area as follows:
(perimeter x thickness) / gate area
|
|
'diffAreaRatio g_table
|
|
|
The g_table row is in this format:
( (("area") ) ( f_diffArea1 f_metalToDiffAreaRatio1 ) ( f_diffArea2 f_metalToDiffAreaRatio2 ) … )
The index f_diffArea is the diffusion area, and the table value f_metalToDiffAreaRatio is the required metal area-to-diffusion area ratio. The table represents a piecewise linear model, in which the diffAreaRatio ratio is calculated using a linear interpolation of the diffusion areas.
Type: A 1-D table indexed by a float value.
|
|
'areaFactor f_areaFactor
|
|
|
Area ratios can be raised or lowered by the specified f_areaFactor value. When checking antenna rules, partial area ratios are calculated by multiplying the metal or gate ratio by f_areaFactor. These calculated ratios are stored on abstract pins.
|
|
'diffuseOnly
|
Indicates that the f_areaFactor value is applied only to partial area ratios for the metal attached to the diffusion.
|
|
['diffPlusFactor f_diffPlusFactor] | ['gatePlusDiffPWL g_gatePlusDiffTable]
|
|
|
Indicates the diffusion area that is added to the gate area value. By default, the metal to gate ratio is measured.
If a f_diffPlusFactor value is specified, the gate area used to calculate the ratio is adjusted by adding the value obtained by multiplying f_diffPlusFactor by f_diffAreaRatio.
Instead, values can be specified separately for each oxide in the g_gatePlusDiffTable 1-D table. Each row in the table is in this format:
( (("area") ) ( f_diffArea1 f_plusDiffProtect1 ) ( f_diffArea2 f_plusDiffProtect2 ) … )
The index f_diffArea is the diffusion area, and the table value f_plusDiffProtect is the additional protection provided by the diffusion area to the gate area.
For example:
'gatePlusDiffPWL ((( "area" )) ( 0.45 0.03 1.1 0.1 ) ) )
|
|
'diffMinusFactor f_diffMinusFactor
|
|
|
By default, the metal or gate ratio is measured. If an f_diffMinusFactor value is specified, the metal area used to calculate the ratio is adjusted by subtracting the value obtained by multiplying f_diffMinusFactor by f_diffAreaRatio.
|
|
'diffAreaReduceFactor g_table
|
|
|
The g_table row is in this format:
( (("area") ) ( f_diffArea1 f_diffAreaReduceFactor1 ) ( f_diffArea2 f_diffAreaReduceFactor2 ) … )
The index f_diffArea is the diffusion area, and the table value f_diffAreaReduceFactor is the factor used to adjust the diffusion area. The diffusion area used to calculate the ratio is adjusted by multiplying it by the diffAreaReduceFactor calculated from the table. The table represents a piecewise linear model, in which the required diffAreaReduceFactor value is calculated using a linear interpolation of the diffusion areas.
Type: A 1-D table indexed by a float value.
|
|
'gatePWL g_gatePWLTable
|
|
|
Specifies a PWL (piece-wise linear) table on the given antenna model that is indexed by the real gate area, and returns an effective gate area interpolated from the table. Each row in the table is in this format:
( (("area") ) ( f_gateArea1 f_effectiveGateArea1 ) ( f_gateArea2 f_effectiveGateArea2 ) … )
The index f_gateArea is the real gate area, and the table value f_effectiveGateArea is the effective gate area interpolated from the PWL table.
For example:
'gatePlusDiffPWL ((( "area" )) ( 0.45 0.03 1.1 0.1 ) ) )
Type: A 1-D table indexed by a float value.
|
|
'cumRoutingPlusCut
|
By default, this constraint includes the partial area ratios from the metal layer below. If cumRoutingPlusCut is specified, the cumulative antenna ratio of the cut layer immediately below is included for the cumulative antenna calculation for the specified layer.
|
Example
The cumulative antenna ratio for VIA1 is specified as follows.
spacings(
;OXIDE3 rules
( cumPerLayerAntennaRatio "VIA1" 'OXIDE3
'isSide
'diffAreaRatio
( (("area") )
(
0.0 100.0
)
)
'areaFactor 0.4
'diffuseOnly
'diffPlusFactor 0.5
'diffMinusFactor 0.6
'diffAreaReduceFactor
( (("area") )
(
0.0 0.8
)
)
'cumRoutingPlusCut
100.0
)
Return to top