[VIAS numVias; [- viaName { [+ 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] ] | [+ RECT layerName pt pt | POLYGON layerName pt pt pt ] ... } ;] ... END VIAS]
Lists the names and geometry definitions of all generated vias in the design. The numVias information corresponds to the number of parameterized via objects in the design.
Turn Vias are recognized and stored in the turnViaNames list. CustomViaDefs are created instead of stdVias for the following cases :
The rectangle geometries are determined from certain parameters of a via. These parameter values are obtained using the following API members:
oaViaDef *oaViaHeader::getViaDef() const oaLayer *oaViaDef::getLayer1() const oaLayer *oaViaDef::getLayer2() const void oaLayer::getName(oaString &name) const oaLayerNum oaViaParam::getCutLayer() const const oaPoint &oaViaParam::getLayer1Enc() const const oaPoint &oaViaParam::getOriginOffset() const const oaPoint &oaViaParam::getCutSpacing() const oaUInt4 oaViaParam::getCutWidth() const oaUInt4 oaViaParam::getCutHeight() const oaUInt4 oaViaParam::getCutColumns() const oaUInt4 oaViaParam::getCutRows() const oaBoolean oaViaParam::getCutPatternVal(oaUInt4 cutRowNum, oaUInt4 cutColNum ) const
The VIARULE associates a layer and width pair with a set of vias. 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.
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.
cutPattern is determined from certain parameters of the via. These parameter values are obtained by using the following API members:
void oaViaHeader::getViaDefName(oaString &name) const void oaStdViaHeader::getParams(oaViaParam ¶ms) const const oaPoint &oaViaParam::getLayer1Enc() const const oaPoint &oaViaParam::getOriginOffset() const const oaPoint &oaViaParam::getCutSpacing() const oaUInt4 oaViaParam::getCutWidth() const oaUInt4 oaViaParam::getCutHeight() const oaUInt4 oaViaParam::getCutColumns() const oaUInt4 oaViaParam::getCutRows() const oaBoolean oaViaParam::getCutPatternVal(oaUInt4 cutRowNum, oaUInt4 cutColNum ) const
Copyright © 2003-2008 Cadence Design Systems, Inc.
All rights reserved.