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

ViaRule Generate

 VIARULE viaRuleName GENERATE [DEFAULT]

   LAYER routingLayerName ;
     ENCLOSURE overhang1 overhang2 ;
     [WIDTH minWidth TO maxWidth ;]
   LAYER routingLayerName ;
     ENCLOSURE overhang1 overhang2 ;
     [WIDTH minWidth TO maxWidth ;]
   LAYER cutLayerName ;
     RECT pt pt ;
     SPACING xSpacing BY ySpacing ;
    [RESISTANCE resistancePerCut ;]

 END viaRuleName

The LEF VIARULE GENERATE construct maps to OpenAccess as an oaStdViaDef, with a set of oaViaParam parameters as specified by the ENCLOSURE, RECT, and SPACING attributes.

For dataModel 4, this oaStdViaDef is added to the oacValidRoutingVias constraint in the LEFSpecialRouteSpec constraint group. The value of the constraint is an oaViaTopology2DTblValue, which contains a two dimensional table of oaViaTopologyArrayValue. This is similar to how the the oaViaDef2DTblValue table is used on the oaViaSpec for dataModel 3.

For dataModel 3 and below, an oaStdViaDef is added to the oaViaSpec for the given layer pair. The oaViaSpec has an oaViaDef2DTblValue, which contains a two dimensional table of oaViaDef arrays, indexed by the two widths. If WIDTH is not specified, the oaStdViaDef is added to the default value of the table.

RESISTANCE resistancePerCut

The VIARULE LAYER RESISTANCE attribute is stored in OpenAccess using the oaStdViaDef::resistancePerCut attribute.