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

Via Rule

 VIARULE viaRuleName

      LAYER layerName ;
            DIRECTION {HORIZONTAL | VERTICAL} ;
            [WIDTH minWidth TO maxWidth ;]
      LAYER layerName ;
            DIRECTION {HORIZONTAL | VERTICAL} ;
            [WIDTH minWidth TO maxWidth ;]
      {VIA viaName ;} ...
      [PROPERTY propName propVal ;] ...

 END viaRuleName

The LEF VIARULE associates a layer and width pair with a set of vias specified by viaName. These vias must already exist in the technology database.

For dataModel 4, the VIARULE is mapped by adding the specified vias to the oacValidRoutingVias constraint in the LEFSpecialRouteSpec constraint group. The value of the constraint is an oaViaTopology2DTblValue that is a two dimensional table of oaViaTopologyArrayValues. This is similar to how the oaViaDef2DTblValue table is used on the oaViaSpec for dataModel 3.

The oacValidRoutingVias constraint also has a parameter of the type which represents the ViaLayerDirection. The value of that param is @oaIntDualIntArrayTblValue.

For dataModel 3, the VIARULE statement is mapped by adding the specified vias to the @oaViaSpec for the given layer pair. The oaViaSpec has an @oaViaDef2DTblValue that is a two dimensional table of @oaViaDef arrays that are indexed by the two WIDTH values. If WIDTH is not specified, the specified vias are added to the default value of the table.

LAYER layerName ;
       DIRECTION {HORIZONTAL | VERTICAL} ;
       [WIDTH minWidth TO maxWidth ;]
 LAYER layerName ;
       DIRECTION {HORIZONTAL | VERTICAL} ;
       [WIDTH minWidth TO maxWidth ;]

The VIARULE LAYER attribute is stored in OpenAccess by using the oaViaSpec::layer1 or oaViaSpec::layer2 attribute, dependent on the oaPhysicalLayer::maskNumber attribute. The oaPhysicalLayer with the lowest maskNumber is stored in oaViaSpec::layer1.

The VIARULE LAYER DIRECTION attribute is stored in OpenAccess as well, as a param of the ValidRoutingVias constraint. Previously, LEFIn does not store that and in those cases the directions can be derived from the defaultRoutingDirection of the physical layers.

PROPERTY propName propVal

See PROPERTIES.

VIA viaName

Note : During the search, if an oaStdViaDef with the same name exist we search for the oaCustomViaDef with <name>_via, since we rename LEF VIAs in the same way for conflicts.