Product Documentation
Virtuoso Abstract Generator User Guide
Product Version IC23.1, November 2023

Requirements for Antenna Calculation

This section describes the technology file requirements for using the antenna calculation capabilities of Abstract Generator.

In the technology file on OpenAccess 2.2, the antenna rules have been moved to the antennaModels section of the foundry constraint group. You specify a separate antennaModels group for each oxide type and can specify antennaModels for up to four oxide types.

If an alternate foundry constraint group (AFCG) is defined in the .cdsenv file, Abstract Generator replaces the foundry constraint group and uses the specified AFCG instead.

You can specify an AFCG by setting the following environment variable in your .cdsenv file:

cdba.layout AlternateFoundryCG string "AFCG_name"

The constraint specifies the antenna ratios for one oxide type corresponding to a specific thickness of the gate oxide. You can specify the thickness value in the techLayerProperties subsection in the layerDefinitions section if antenna side area calculation is to be performed.

In OpenAccess, you must specify either side antenna values or non-side antenna values. OpenAccess supports only one of them at a time.

During the Extract step, the following factors are supported while calculating the antenna value. These factors are defined in the antennaModels section of the foundry constraint group in the technology file.

The formula used to calculate the cumulative antenna ratio values for the metal layers is as follows:

areaCar[j] += (((antennaMetalFactor*cumMetalArea) + (antennaCutFactor*cumCutArea)) * antennaDiffAreaReduceFactor - diffArea * antennaDiffMinusFactor)/(cumGateAreaSharingCharge_[j] + antennaDiffPlusFactor * diffArea);

Example

constraintGroups(
 ( "foundry"
   antennaModels(
   ;( model
   ;( ----
    ( "default"
      antenna(
      ;( ratioName           layer       value )
;( ---------          -----      ----- )
( areaRatio METAL1      0.345 )
( 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
antenna( 
( areaRatio "poly" <value> ) 
); antenna 

      cumulativeMetalAntenna(
      ;( ratioName               value )
;( ---------      ----- )
( areaRatio 3.564      )
( diffAreaRatio 7.888      )
) ;cumulativeMetalAntenna cumulativeViaAntenna( ;( ratioName                         value ) ;( ---------                         ----- ) ( areaRatio 7.654                         )
( 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
   ( "factors"
( cumulativeRoutingPlusCut "METAL1" t )
( area "METAL1" 0.50 )
( diffPlus "METAL1" 0.60 )
( diffMinus "METAL1" 0.70 )
( diffAreaReduce "METAL1" (
( 0.0 20.0 )
( 0.5 30.0 )
( 1.0 40.0 )
))
) ;factors
) ;antennaModels

) ;antennaModels
) ;foundry
) ;constraintGroups

Related Topics

Technology File Structure

Processing Antenna Information in Standalone Abstract Generator

Calculating and Fixing Process Antenna Violations


Return to top
 ⠀
X