oaViaSpec Class Reference

Inheritance diagram for oaViaSpec:

oaTechObject oaObject


Public Methods

void destroy ()
oaPhysicalLayergetLayer1 () const
oaPhysicalLayergetLayer2 () const
oaLayerNum getLayer1Num () const
oaLayerNum getLayer2Num () const
oaViaDef2DTblValuegetValue () const
oaViaDefArrayValuegetDefaultValue () const
void setValue (oaViaDef2DTblValue *value)
void setDefaultValue (oaViaDefArrayValue *value)

Static Public Methods

oaViaSpec * create (const oaPhysicalLayer *layer1, const oaPhysicalLayer *layer2, oaViaDefArrayValue *defaultValue)
oaViaSpec * create (const oaPhysicalLayer *layer1, const oaPhysicalLayer *layer2, oaViaDef2DTblValue *value)
oaViaSpec * create (const oaPhysicalLayer *layer1, const oaPhysicalLayer *layer2, oaViaDefArrayValue *defaultValue, oaViaDef2DTblValue *value)
oaViaSpec * create (oaTech *tech, const oaPhysicalLayer *layer1, const oaPhysicalLayer *layer2, oaViaDefArrayValue *defaultValue)
oaViaSpec * create (oaTech *tech, const oaPhysicalLayer *layer1, const oaPhysicalLayer *layer2, oaViaDef2DTblValue *value)
oaViaSpec * create (oaTech *tech, const oaPhysicalLayer *layer1, const oaPhysicalLayer *layer2, oaViaDefArrayValue *defaultValue, oaViaDef2DTblValue *value)
oaViaSpec * find (const oaPhysicalLayer *layer1, const oaPhysicalLayer *layer2)
oaViaSpec * find (oaTech *tech, oaLayerNum layer1Num, oaLayerNum layer2Num, oaBoolean local=false)

Public Types

enum  { dtIndex = oacViaSpecDataType }

Detailed Description

The oaViaSpec class and corresponding infrastructure are deprecated and superseded by the LEFSpecialRouteSpec and the oacValidRoutingVias constraints it contains.

The oaViaSpec class provides a mechanism for defining the valid vias that can be used when routing geometric nets. A ViaSpec object is defined for a pair of layers, and potentially has two values associated with it: a default value (an oaViaDefArrayValue, which is a default array of pointers to oaViaDefs) and a lookup table value (an oaViaDef2DTblValue, which contains an oaViaDefArrayValue for each width-based key pair in the two-dimensional table). If the width-based lookup table is available, the user should lookup the list of valid vias using the width of layer1 and the width of layer2. If this returns NULL or if no lookup table is available, the default value should be used.

Note that the valid list of oaViaDefs pointed to in an oaViaDefArray is ordered by priority since power-via and other geometric routing applications choose the first viaDef in the array that matches the layers, size and other requirements of the via needed by the application.

The oaViaSpec class can be observed by deriving from oaObserver<oaViaSpec>.


Member Function Documentation

oaViaSpec * oaViaSpec::create oaTech *    tech,
const oaPhysicalLayer *    layer1,
const oaPhysicalLayer *    layer2,
oaViaDefArrayValue *    defaultValue,
oaViaDef2DTblValue *    value
[static]
 

This function creates an viaSpec object with the specified attributes in the specified tech database. layer1 and layer2 can be in different tech databases, but those databases must be in the graph of techs rooted at the tech in which the viaSpec will be created. Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Exceptions are thrown if the viaSpec of the given two layers already exists or if the value is already owned.

Parameters:
tech Technology database in which to create the viaSpec object
layer1 First layer for creating the viaSpec
layer2 Second layer for creating the viaSpec
defaultValue Default list of valid viaDefs
value Width-based viaDef lookup table
Exceptions:
oacLayerNotInReferencedTech 
oacConflictingLayerNamesInTech 
oacConflictingLayerNumbersInTech 
oacViaSpecAndViaDefNotInSameTech 
oacValueAlreadyOwned 
oacViaSpecExists 

oaViaSpec * oaViaSpec::create oaTech *    tech,
const oaPhysicalLayer *    layer1,
const oaPhysicalLayer *    layer2,
oaViaDef2DTblValue *    value
[static]
 

This function creates a viaSpec object with the specified attributes in the specified tech database. layer1 and layer2 can be in different tech databases, but those databases must be in the graph of techs rooted at the tech in which the viaSpec will be created. Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases

Exceptions are thrown if the viaSpec of the given two layers already exists or if the value is already owned.

Parameters:
tech Technology database in which to create the viaSpec object
layer1 First layer for creating the viaSpec
layer2 Second layer for creating the viaSpec
value Width-based viaDef lookup table
Exceptions:
oacLayerNotInReferencedTech 
oacConflictingLayerNamesInTech 
oacConflictingLayerNumbersInTech 
oacViaSpecAndViaDefNotInSameTech 
oacValueAlreadyOwned 
oacViaSpecExists 

oaViaSpec * oaViaSpec::create oaTech *    tech,
const oaPhysicalLayer *    layer1,
const oaPhysicalLayer *    layer2,
oaViaDefArrayValue *    defaultValue
[static]
 

This function creates a viaSpec object with the specified attributes in the specified tech database. layer1 and layer2 can be in different tech databases, but those databases must be in the graph of techs rooted at the tech in which the viaSpec will be created. Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Exceptions are thrown if the viaSpec of the given two layers already exists or if the value is already owned.

Parameters:
tech Technology database in which to create the viaSpec object
layer1 The first layer for creating the viaSpec
layer2 The second layer for creating the viaSpec
defaultValue Default list of valid viaDefs
Exceptions:
oacLayerNotInReferencedTech 
oacConflictingLayerNamesInTech 
oacConflictingLayerNumbersInTech 
oacViaSpecAndViaDefNotInSameTech 
oacValueAlreadyOwned 
oacViaSpecExists 

oaViaSpec * oaViaSpec::create const oaPhysicalLayer *    layer1,
const oaPhysicalLayer *    layer2,
oaViaDefArrayValue *    defaultValue,
oaViaDef2DTblValue *    value
[static]
 

This function creates a new viaSpec for the two layers specified. Both layer1 and layer2 must be defined in the same tech database. The viaSpec is created in the same tech databases as the specified layers.

The default list, and the width-based lookup table of valid viaDefs, are set to the values specified.

Parameters:
layer1 First layer
layer2 Second layer
defaultValue Default list of valid viaDefs
value Width based viaDef lookup table
Exceptions:
oacLayerNotInReferencedTech 
oacConflictingLayerNamesInTech 
oacConflictingLayerNumbersInTech 
oacLayer1Layer2NotInSameTech 
oacViaSpecAndViaDefNotInSameTech 
oacValueAlreadyOwned 
oacViaSpecExists 

oaViaSpec * oaViaSpec::create const oaPhysicalLayer *    layer1,
const oaPhysicalLayer *    layer2,
oaViaDef2DTblValue *    value
[static]
 

This function creates a new viaSpec for the two layers specified. Both layer1 and layer2 must be defined in the same tech database. The viaSpec is created in the same tech databases as the specified layers.

The width-based lookup table of valid viaDefs is set to the value specified.

Parameters:
layer1 First layer
layer2 Second layer
value Width-based viaDef lookup table
Exceptions:
oacLayerNotInReferencedTech 
oacConflictingLayerNamesInTech 
oacConflictingLayerNumbersInTech 
oacLayer1Layer2NotInSameTech 
oacViaSpecAndViaDefNotInSameTech 
oacValueAlreadyOwned 
oacViaSpecExists 

oaViaSpec * oaViaSpec::create const oaPhysicalLayer *    layer1,
const oaPhysicalLayer *    layer2,
oaViaDefArrayValue *    defaultValue
[static]
 

This function creates a new viaSpec for the two layers specified. Both layer1 and layer2 must be defined in the same tech database. The viaSpec is created in the same tech databases as the specified layers. The default list of valid viaDefs is set to the value specified.

Parameters:
layer1 First layer
layer2 Second layer
defaultValue Default list of valid viaDefs
Exceptions:
oacLayerNotInReferencedTech 
oacConflictingLayerNamesInTech 
oacConflictingLayerNumbersInTech 
oacLayer1Layer2NotInSameTech 
oacViaSpecAndViaDefNotInSameTech 
oacValueAlreadyOwned 
oacViaSpecExists 

void oaViaSpec::destroy  
 

This function destroys this viaSpec, removing it from the technology database and destroying its associated values.

oaViaSpec * oaViaSpec::find oaTech *    tech,
oaLayerNum    layer1Num,
oaLayerNum    layer2Num,
oaBoolean    local = false
[static]
 

This function searches the specified technology database looking for an oaViaSpec with the specified layer1 and layer2 numbers. The local argument specifies whether (if true) to look only in the specified technology database or (if false) to look in the specified technology database and all of its referenced databases. If a viaSpec is found, a pointer to the viaSpec is returned, otherwise NULL is returned.

Refer to Incremental Technology Databases in the Using Technology Databases section of the Programmers Guide for more information about referenced tech databases.

Parameters:
tech The technology database to search
layer1Num The layer number of the first layer
layer2Num The layer number of the second layer
local Specifies whether (if true) to look only in the specified technology database or (if false) to look in the specified technology database and all of its referenced databases.

oaViaSpec * oaViaSpec::find const oaPhysicalLayer *    layer1,
const oaPhysicalLayer *    layer2
[static]
 

This function searches the technology database associated with the given layers looking for an oaViaSpec with those layers. For this variant of the find function, the given layers must be in the same technology database, and the oaViaSpec lookup is local to that database. If a viaSpec is found, a pointer to the viaSpec is returned, otherwise NULL is returned.

Parameters:
layer1 First layer
layer2 Second layer
Exceptions:
oacLayer1Layer2NotInSameTech 

oaViaDefArrayValue * oaViaSpec::getDefaultValue   const
 

This function returns the default list of valid viaDefs associated with this viaSpec.

oaLayer * oaViaSpec::getLayer1   const
 

This function returns the first layer associated with this viaSpec.

To get the layer1 number associated with this viaSpec even if the tech database containing the layer is unbound, refer to getLayer1Num.

oaLayerNum oaViaSpec::getLayer1Num   const
 

This function returns the layer1 number of this viaSpec object even if the tech database containing the layer is unbound.

oaLayer * oaViaSpec::getLayer2   const
 

This function returns the second layer associated with this viaSpec.

To get the layer1 number associated with this viaSpec even if the tech database containing the layer is unbound, refer to getLayer2Num.

oaLayerNum oaViaSpec::getLayer2Num   const
 

This function returns the layer2 number of this viaSpec object even if the tech database containing the layer is unbound.

oaViaDef2DTblValue * oaViaSpec::getValue   const
 

This function returns the width base lookup table associated with this viaSpec.

void oaViaSpec::setDefaultValue oaViaDefArrayValue *    value
 

This function sets the default list of valid viaDefs for this viaSpec to the specified value.

Parameters:
value Value to set
Exceptions:
oacViaSpecAndViaDefNotInSameTech 
oacValueAlreadyOwned 

void oaViaSpec::setValue oaViaDef2DTblValue *    value
 

This function sets the width based lookup table for this viaSpec to the value specified

Parameters:
value Value to set
Exceptions:
oacViaSpecAndViaDefNotInSameTech 
oacValueAlreadyOwned 


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 


The documentation for this class was generated from the following files:

Return to top of page