oaheader.gif
topics.gif classes.gif classes.gif exceptions.gif progguide.gif infomodel.gif index.gif help.gif
 
 
 

Via

 VIA viaName

   [DEFAULT]
   [[TOPOFSTACKONLY]]
       { VIARULE viaRuleName ;
           CUTSIZE xSize ySize ;
           LAYERS botMetalLayer cutLayer topMetalLayer ;
           CUTSPACING xCutSpacing yCutSpacing ;
           ENCLOSURE xBotEnc yBotEnc xTopEnc yTopEnc ;
           [ROWCOL numCutRows numCutCols ;]
           [ORIGIN xOffset yOffset ;]
           [OFFSET xBotOffset yBotOffset xTopOffset yTopOffset ;]
           [PATTERN cutPattern ;]
       }
   | { [RESISTANCE resistValue ;]
       {LAYER layerName ;
           { RECT pt pt ;
           | POLYGON pt pt pt ...;} ...
       } ...
   }
       PROPERTY propName propVal ... ;

 END viaName

The LEF VIA objects are stored in OpenAccess by using an oaCustomViaDef or as an oaViaVariant for dataModel 4 and higher.

DEFAULT

The oaCustomViaDef or oaViaVariant created for VIAs with the DEFAULT keyword are added to the oacValidRoutingVias constraint in the LEFDefaultRouteSpec constraintGroup.

LAYER layerName ;
         { RECT pt pt ;
         | POLYGON pt pt pt ...;} ...
     } ...
 

The VIA layer geometries are stored in OpenAccess using a separate oaDesign referenced by the oaViaDef::CellView attribute. The RECT shapes are created as oaRect objects in this oaDesign, on the oaPhysicalLayer specified by the LAYER statement.

PROPERTY propName propVal ...

See PROPERTIES.

| { [RESISTANCE resistValue ;]

The VIA RESISTANCE attribute is stored in OpenAccess using the oaViaDef::resistancePerCut attribute. The resistancePerCut value is calculated by multiplying the total VIA resistance value times the number of cuts to obtain the OpenAccess resistancePerCut value.

TOPOFSTACKONLY

The TOPOFSTACKONLY keyword on LEF VIAs is stored as an oaBooleanProp named TOPOFSTACKONLY on the oaCustomViaDef or oaStdViaVariant created for the VIA.

VIARULE viaRuleName ;
         CUTSIZE xSize ySize ;
         LAYERS botMetalLayer cutLayer topMetalLayer ;
         CUTSPACING xCutSpacing yCutSpacing ;
         ENCLOSURE xBotEnc yBotEnc xTopEnc yTopEnc ;
         [ROWCOL numCutRows numCutCols ;]
         [ORIGIN xOffset yOffset ;]
         [OFFSET xBotOffset yBotOffset xTopOffset yTopOffset ;]
         [PATTERN cutPattern ;]
     

For dataModel 4 and above, the VIA VIARULE maps to an oaStdViaVariant object containing an oaViaParam object and a reference to an oaStdViaDef. When a VIA is used in a MACRO, the oaStdViaDef/oaViaParam pair is retrieved from the oaStdViaVariant.

Before dataModel 4, the VIA VIARULE is not stored persistently in OpenAccess. Instead, the viaRuleName and the parameters are stored in a private table, and when the via is used, the table is searched using the viaRuleName as the index for getting the parameters and creating an oaStdVia.

Note: The viaRuleName must be unique. In dataModel 4 and above, if the technology database already contains an oaViaVariant with the same name but different parameters, the oaStdViaVariant is given a different, unique name, and any use of this VIA VIARULE is mapped to the new name.