antennaModels
antennaModels( ( "t_name"t_constraintName( (t_ratioNametx_layerf_value) ) … ( "factors" ( cumulativeRoutingPlusCutlx_layer) ( arealt_layerf_value) ( diffPluslt_layerf_value) ( diffMinuslt_layerf_value) ( diffAreaReducelt_layer( (f_areaf_value) … ) ) ;factors
) ;antennaModels
Defines antenna ratios for up to four oxide types, each specified in its own antennaModels group.
Antenna models must be specified only in the antennaModels constraint category of the foundry constraint group. The antenna models all follow the same syntax when specified in the ASCII technology file. For each antenna model, you can specify the antenna, cumulativeMetalAntenna, cumulativeViaAntenna, and cumPerLayerAntenna constraints, each of which specifies the areaRatio and diffAreaRatio ratios.
factors
Alternatively, you can specify factors by using the following syntax:
factors( ( cumulativeRoutingPlusCutlx_layer) ( arealt_layerf_value) ( diffPluslt_layerf_value) ( diffMinuslt_layerf_value) ( diffAreaReducelt_layer( (f_areaf_value) … )
) ;factors
This is because factors is a SKILL technology class function and can be defined as "name(…)" or "(name …)".
Types
-
Add cut layer cumulative area ratio to metal cumulative area ratio
The calculation of the cumulative metal area ratio for a particular metal layer adds the partial cut area contribution from the cut layer below the layer in question as well as the partial metal area from the metal layer. Similarly, for the cumulative cut area ratio, the partial metal area for the metal layer below is added to the contribution from the partial cut area of the cut layer. The use of this antenna model is indicated by thecumRoutingPlusCutattribute on the layer.Mi_CAR = Mi-1_CAR + Mi_PAR + C(i, i-1)_PAR
andC(i, i-1)_CAR = C(i-1, i-2)_CAR + C(i, i-1)_PAR + Mi-1_PAR
where,Mi_CARis the cumulative metal area ratio for metal layeri,Mi_PARis the partial metal for the same metal layer, andC(i, i-1)_PARis the partial cut area for the cut layer belowMi. -
Subtract diffusion area from antenna area
The diffusion area is subtracted from the metal or cut area in the calculation of the antenna ratio for metal and cut layers.antenna ratio = (metal_area - diff_minus_factor * diff_area) / gate_area
antenna ratio = (cut_area - diff_minus_factor * diff_area) / gate_area
The diffusion area that is subtracted from the area is controlled by thediff_minus_factor. The default value of this factor is0. -
Add diffusion area to gate area
The diffusion area is added to the area of the gate in the calculation of the antenna ratio.antenna ratio = metal_area / (gate_area + diff_plus_factor * diff_area)
Because the contribution from the diffusion area is taken into account in the antenna ratio, the antenna diff ratio (metal_area/diff_area) is not required to be calculated. This applies to both the layer antenna ratios and the cumulative antenna ratios for both metal and cut layers. The default value ofdiff_plus_factoris0. -
Reduce metal area with PWL diffusion factor
The metal area (and possibly cut area if the add via area of to the metal area model is applied) is multiplied by a factor calleddiff_metal_reduce, which depends on the diffusion area. Thediff_metal_reducefactor applies to themetal_areabefore the contribution fromdiff_minus_factoris subtracted. Thisdiff_metal_reducefactor is a piecewise linear model based on the diffusion area and typically ranges from 0 to 1. The default value is1. A similar factor can be defined for cut and cumulative antenna ratios.antenna ratio = metal_area * diff_metal_reduce / gate_area
-
Area factor and side area factor
The default value forarea_factoris1. Because the antenna ratio can either be side or non-side at one time, there is a need to store only onearea_factor, either the side or non-side factor. A Boolean operator indicates whether the factor is used for the side area factor.antenna ratio = area_factor * metal_area / gate_area
orantenna side ratio = area_factor * metal_side_area / gate_area
-
Combined antenna models
Adding all possible factors, the antenna ratio for a metal layer can be calculated as follows:antenna ratio = (area_factor * metal_area * diff_reduce_factorPWL - diff_minus_factor * diff_area) / (gate_area + diff_plus_factor * diff_area)
For a cut layer, the antenna ratio is calculated as follows:antenna ratio = (area_factor * cut_area * diff_reduce_factorPWL - diff_minus_factor * diff_area) / (gate_area + diff_plus_factor * diff_area)
These ratios are associated with a particular layer. However, when performing cumulative antenna calculations, the appropriate layer antenna factors should be used. These are not associated with particular oxide models.
Parameters
Example
antennaModels( ;( model ( "default" antenna( ;(ratioName layer value)
( areaRatio METAL1 450.0 )
( diffAreaRatio METAL1 ((0.45 0.4)(0.55 0.6)) )
( areaRatio VIA1 0.344 )
( diffAreaRatio VIA1 ((0.44 0.5)(0.57 0.8)) )
) ;antenna
cumulativeMetalAntenna(
;( ratioName value )
( areaRatio 0.544 'side )
( diffAreaRatio 0.888 )
) ;cumulativeMetalAntenna
cumulativeViaAntenna(
;( ratioName value )
( areaRatio 0.654 'side )
( diffAreaRatio 0.884 )
) ;cumulativeViaAntenna
);default
( "second" antenna( ;( ratioName layer value )
( areaRatio METAL1 1.345 'side )
( diffAreaRatio METAL1 ((0.455 0.4)(0.555 0.65)) )
) ;antenna
cumulativeMetalAntenna(
;( ratioName value )
( areaRatio (3.564 nil) )
( diffAreaRatio 7.888 )
) ;cumulativeMetalAntenna
cumulativeViaAntenna(
;( ratioName value )
( areaRatio (7.654 nil) )
( diffAreaRatio 1.884 )
) ;cumulativeViaAntenna
) ;second
( "third" antenna( ;( ratioName layer value )
( areaRatio METAL1 0.343 )
( diffAreaRatio METAL1 ((0.43 0.3)(0.53 0.6)) )
) ;antenna
cumulativeMetalAntenna(
;( ratioName value )
( areaRatio 9.765 'side )
( diffAreaRatio 0.188 )
) ;cumulativeMetalAntenna
cumulativeViaAntenna(
;( ratioName value )
( areaRatio 3.22 )
( diffAreaRatio ((0.421 0.4)(0.7 0.64)(0.81 0.59)) )
) ;cumulativeViaAntenna
) ;third
( "fourth" antenna( ;( ratioName layer value )
( areaRatio METAL2 0.645 'side )
( diffAreaRatio METAL2 ((0.47 0.4)(0.55 0.7)) )
) ;antenna
cumulativeMetalAntenna(
;( ratioName value )
( areaRatio 0.6 )
( diffAreaRatio ((0.127 0.23)(0.32 0.7)) )
) ;cumulativeMetalAntenna
cumulativeViaAntenna(
;( ratioName value )
( areaRatio 9.67 )
( diffAreaRatio 0.684 )
) ;cumulativeViaAntenna
) ;fourth
) ;antennaModels
cumPerLayerAntenna( ( areaRatio "via1" 0.64 'side ) ( diffAreaRatio "via1" ((30 0.3888) (25 0.6774)) 'side )
) ;cumPerLayerAntenna
Return to top