oaViaParam Class Reference


Public Methods

 oaViaParam ()
 oaViaParam (const oaViaParam &paramIn)
 ~oaViaParam ()
const oaVectorgetLayer1Enc () const
const oaVectorgetLayer2Enc () const
const oaVectorgetImplant1Enc () const
const oaVectorgetImplant2Enc () const
const oaVectorgetLayer1Offset () const
const oaVectorgetLayer2Offset () const
const oaVectorgetCutSpacing () const
const oaVectorgetOriginOffset () const
oaDist getCutWidth () const
oaDist getCutHeight () const
oaLayerNum getCutLayer () const
oaUInt4 getCutColumns () const
oaUInt4 getCutRows () const
oaBoolean getCutPatternVal (oaUInt4 cutRowNum, oaUInt4 cutColNum) const
oaBoolean hasDefaultCutPattern () const
void setLayer1Enc (const oaVector &layer1Enc)
void setLayer2Enc (const oaVector &layer2Enc)
void setImplant1Enc (const oaVector &imp1Enc)
void setImplant2Enc (const oaVector &imp2Enc)
void setLayer1Offset (const oaVector &layer1Offset)
void setLayer2Offset (const oaVector &layer2Offset)
void setCutSpacing (const oaVector &cutSpacing)
void setOriginOffset (const oaVector &originOffset)
void setCutWidth (oaDist width)
void setCutHeight (oaDist height)
void setCutLayer (oaLayerNum cutLayer)
void setCutColumns (oaUInt4 cutColumns)
void setCutRows (oaUInt4 cutRows)
void setDefaultCutPattern ()
void setCutPatternVal (oaUInt4 cutRowNum, oaUInt4 cutColNum, oaBoolean val)
oaBoolean hasDefault (oaViaParamType paramType) const
oaBoolean hasAnyDefaults () const
void setDefault (oaViaParamType paramType)
void setAllNonDefault ()
oaBoolean isEqual (const oaViaParam &params) const
oaViaParam & operator= (const oaViaParam &params)
oaBoolean operator== (const oaViaParam &param) const
oaBoolean operator!= (const oaViaParam &param) const

Friends

class oaDesign
class oaStdVia
class oaStdViaHeader
class oaStdViaDef
class oaStdViaVariant

Detailed Description

The oaViaParam class implements a set of standard via parameters used to create and manipulate standard via (oaStdVia) or standard via definition (oaStdViaDef) objects in the design and technology databases. oaViaParam objects are utility objects and are not persistent by themselves.

For information about using oaViaParam objects to create oaStdViaDef and oaStdVia objects, refer to Representing Vias in OpenAccess in the Programmers Guide.


Constructor & Destructor Documentation

oaViaParam::oaViaParam  
 

This is the constructor for the oaViaParam class and constructs an oaViaParam object. All the parameter fields are set to use default values. The parameter field values are set to 1 for cutRows and columns; the other parameter field values are set to 0.

oaViaParam::oaViaParam const oaViaParam &    paramIn
 

This is the copy constructor for the oaViaParam class and constructs an exact copy of the oaViaParam object whose reference is passed to it as a parameter.

Parameters:
paramIn The oaViaParam object to copy

oaViaParam::~oaViaParam  
 

This is the destructor for the oaViaParam class and gets invoked when an oaViaParam object is destroyed.


Member Function Documentation

oaUInt4 oaViaParam::getCutColumns   const [inline]
 

This function returns the number of columns in the via cut matrix on the cutLayer for this oaViaParam object.

oaUInt4 oaViaParam::getCutHeight   const [inline]
 

This function returns the height of each cut in the via cut matrix on the cut layer for this oaViaParam object.

oaLayerNum oaViaParam::getCutLayer   const [inline]
 

This function returns the layer number of the cutLayer previously specified for this oaViaParam object.

oaBoolean oaViaParam::getCutPatternVal oaUInt4    cutRowNum,
oaUInt4    cutColNum
const
 

This function returns the existence of a specific cut in the via cut matrix on the cutLayer. Each cut is identified by a cutRowNum and cutColNum indicating the row and column of the cut. A true is returned if the cut exists and a false is returned if the cut does not exist. Note that cutRowNum and cutColNum values start at 0 and should not exceed the number of cutRows and columns set for the oaViaParam object. An exception is thrown if this requirement is not met.

Parameters:
cutRowNum The row number in the cut matrix, 0 being the bottom row
cutColNum The column number in the cut matrix, 0 being the left column
Exceptions:
oacInvalidViaParamColumnNumber 
oacInvalidViaParamRowNumber 

oaUInt4 oaViaParam::getCutRows   const [inline]
 

This function returns the number of rows in the via cut matrix on the cutLayer for this oaViaParam object.

const oaVector & oaViaParam::getCutSpacing   const [inline]
 

This function returns the x and y spacing between the cuts in the via cut matrix as an oaVector object reference. The spacing applies only for multiple cut vias or via definitions.

oaUInt4 oaViaParam::getCutWidth   const [inline]
 

This function returns the width of each cut in the via cut matrix on the cut layer for this oaViaParam object.

const oaVector & oaViaParam::getImplant1Enc   const [inline]
 

This function returns the width and height of the implant enclosure for implant1 layer as a reference to an oaVector object whose x and y values indicate the width and height, respectively. This enclosure is relative to the bounding box of the shape on layer1.

When an oaViaParam for an implant1 enclosure is associated with an oaStdViaDef, the x and y values indicate that layer1 must be enclosed by at least the value of x on both sides in one direction, and by at least the value of y on both sides in the opposite direction.

When an oaViaParam is associated with an oaStdVia, the x value literally indicates enclosure in the x direction, and the y value literally indicates enclosure in the y direction.

When applications use an oaStdViaDef to create an oaStdVia, they can use the enclosure values provided in the oaStdViaDef's oaViaParams, but should choose the direction of the enclosure that best maximizes the number of cuts that can fit in the oaStdVia being created. The direction chosen must then be specified in the x,y vector associated with the oaStdVia's oaViaParam enclosure attribute.

Refer to Implant1 Enclosure in the Programmers Guide for more information.

const oaVector & oaViaParam::getImplant2Enc   const [inline]
 

This function returns the width and height of the implant enclosure for implant2 layer as a reference to an oaVector object whose x and y values indicate the width and height, respectively. This enclosure is relative to the bounding box of the shape on layer2.

When an oaViaParam for an implant2 enclosure is associated with an oaStdViaDef, the x and y values indicate that layer2 must be enclosed by at least the value of x on both sides in one direction, and by at least the value of y on both sides in the opposite direction.

When an oaViaParam is associated with an oaStdVia, the x value literally indicates enclosure in the x direction, and the y value literally indicates enclosure in the y direction.

When applications use an oaStdViaDef to create an oaStdVia, they can use the enclosure values provided in the oaStdViaDef's oaViaParams, but should choose the direction of the enclosure that best maximizes the number of cuts that can fit in the oaStdVia being created. The direction chosen must then be specified in the x,y vector associated with the oaStdVia's oaViaParam enclosure attribute.

Refer to Implant2 Enclosure in the Programmers Guide for more information.

const oaVector & oaViaParam::getLayer1Enc   const [inline]
 

This function returns the width and height of the layer1 enclosure as a reference to an oaVector object whose x and y values indicate the width and height, respectively. This enclosure is relative to the bounding box of the via cut matrix, which may consist of a single cut.

When an oaViaParam is associated with an oaStdViaDef, the x and y values indicate that the cut must be enclosed by layer 1 by at least the value of x on both sides in one direction, and by at least the value of y on both sides in the opposite direction.

When an oaViaParam is associated with an oaStdVia, the x value literally indicates enclosure in the x direction, and the y value literally indicates enclosure in the y direction.

When applications use an oaStdViaDef to create an oaStdVia, they can use the enclosure values provided in the oaStdViaDef's oaViaParams, but should choose the direction of the enclosure that best maximizes the number of cuts that can fit in the oaStdVia being created. The direction chosen must then be specified in the x,y vector associated with the oaStdVia's oaViaParam enclosure attribute.

Refer to Layer1 Enclosure in the Programmers Guide for more information.

const oaVector & oaViaParam::getLayer1Offset   const [inline]
 

This function returns the current x and y offsets for the layer1 enclosure as a reference to an oaVector object whose x and y values indicate the x and y offsets, respectively.

const oaVector & oaViaParam::getLayer2Enc   const [inline]
 

This function returns the width and height of the layer2 enclosure as a reference to an oaVector object whose x and y values indicate the width and height, respectively. This enclosure is relative to the bounding box of the via cut matrix, which may consist of a single cut.

When an oaViaParam is associated with an oaStdViaDef, the x and y values indicate that the cut must be enclosed by layer 1 by at least the value of x on both sides in one direction, and by at least the value of y on both sides in the opposite direction.

When an oaViaParam is associated with an oaStdVia, the x value literally indicates enclosure in the x direction, and the y value literally indicates enclosure in the y direction.

When applications use an oaStdViaDef to create an oaStdVia, they can use the enclosure values provided in the oaStdViaDef's oaViaParams, but should choose the direction of the enclosure that best maximizes the number of cuts that can fit in the oaStdVia being created. The direction chosen must then be specified in the x,y vector associated with the oaStdVia's oaViaParam enclosure attribute.

Refer to Layer2 Enclosure in the Programmers Guide for more information.

const oaVector & oaViaParam::getLayer2Offset   const [inline]
 

This function returns the current x and y offsets for the layer2 enclosure as a reference to an oaVector object whose x and y values indicate the x and y offsets, respectively.

const oaVector & oaViaParam::getOriginOffset   const [inline]
 

This function returns the originOffset specified for this oaViaParam object as a reference to an oaVector object whose x and y values indicate the x and y offsets that apply.

oaBoolean oaViaParam::hasAnyDefaults   const
 

This function returns true if the default flag bit for one or more parameters in the oaViaParam is set. If all parameter default flag bits have been cleared, false is returned. Note that the setting of the cutPattern is not taken into account in determining this function's value.

oaBoolean oaViaParam::hasDefault oaViaParamType    paramType const
 

This function returns true if the default flag bit for the specified parameter field is set; otherwise it returns false.

Parameters:
paramType The parameter type to query to see if it uses the default value

oaBoolean oaViaParam::hasDefaultCutPattern   const [inline]
 

This function returns a boolean indicating if a default cut pattern is in effect. A default cut pattern implies that all via cuts exist in the via cut matrix.

oaBoolean oaViaParam::isEqual const oaViaParam &    params const
 

This function compares the current object with another of the oaViaParam class returning true if the objects are equal and returning false if the objects are not equal. All parameters of the objects are compared except flags.

Note: The oaViaParameter::operator== function does compare the flags and returns false if the values in one of the viaParam objects were set explicitly and the other values were left at the default even if the actual values are the same. The isEqual function compares only the actual values and ignores the explicitness of the values.

oaBoolean oaViaParam::operator!= const oaViaParam &    param const [inline]
 

This is the inequality operator for the oaViaParam class. It compares this oaViaParam with the specified param oaViaParam, and returns true if the oaViaParam values are not equal.

oaViaParam & oaViaParam::operator= const oaViaParam &    paramsIn
 

This is the assignment operator for the oaViaParam class and assigns the parameter values of the other oaViaParam object to the current one.

oaBoolean oaViaParam::operator== const oaViaParam &    param const
 

This is the equality operator for the oaViaParam class. It compares this oaViaParam with the specified param oaViaParam, and returns true if the oaViaParam values are equal.

Parameters:
param the oaViaParam to compare to this oaViaParam

void oaViaParam::setAllNonDefault  
 

This function sets all the flags to indicate that the parameter values are to be considered as non default values. This is useful when working with via variants. Refer to Representing Vias in OpenAccess in the Programmers Guide for more information.

void oaViaParam::setCutColumns oaUInt4    cutColumnsIn
 

This function sets the number of columns for the cut matrix on the cutLayer for this oaViaParam object to the specified cutColumnsIn value. Note that this action is a change to the existing via cut matrix configuration and this action will turn on all the via cuts in the new cut matrix which is the default setting. An oaViaParam needs to have at least one column and an exception is thrown if zero columns are specified. The default flag bit for the cutColumns parameter is cleared.

Parameters:
cutColumnsIn The number of columns to be used for the via cut matrix
Exceptions:
oacZeroColumnsSpecifiedForViaParam 

void oaViaParam::setCutHeight oaDist    height
 

This function sets the height to be used for each via cut in the via cut matrix on the cutLayer for this oaViaParam object to the specified height value. The default flag bit for the cutHeight parameter is cleared.

Parameters:
height The height to be used for each cut in the via cut matrix

void oaViaParam::setCutLayer oaLayerNum    cutLayerIn
 

This function sets the layer that should be used as the cutLayer for this oaViaParam object to the specified cutLayerIn value. The default flag bit for the cutLayer parameter is cleared.

Parameters:
cutLayerIn The layer number of the layer to be used as the via cutLayer

void oaViaParam::setCutPatternVal oaUInt4    cutRowNum,
oaUInt4    cutColNum,
oaBoolean    val
 

This function specifies whether a particular via cut in the via cut matrix should exist or not. Each cut is identified by a cutRowNum and cutColNum indicating the row and column of the cut depending upon the specified val value. Note that cutRowNum and cutColNum values start at 0 and should not exceed the number of cutRows and columns set for the oaViaParam object. An exception is thrown if this requirement is not met.

Also note that this function should be used only after the rows and columns for the via cut matrix have been specified .

Parameters:
cutRowNum The row number in the cut matrix, 0 being the bottom row
cutColNum The column number in the cut matrix, 0 being the left column
val A boolean true indicates the existence of a cut and a boolean false indicates the absence of a cut.
Exceptions:
oacInvalidViaParamColumnNumber 
oacInvalidViaParamRowNumber 

void oaViaParam::setCutRows oaUInt4    cutRowsIn
 

This function sets the number of rows for the cut matrix on the cutLayer for this oaViaParam object to the specified cutRowsIn value. Note that this action is a change to the existing via cut matrix configuration and this action will turn on all the via cuts in the new cut matrix which is the default setting. An oaViaParam needs to have at least one row and an exception is thrown if zero rows are specified. The default flag bit for the cutRows parameter is cleared.

Parameters:
cutRowsIn The number of rows to be used for the via cut matrix
Exceptions:
oacZeroRowsSpecifiedForViaParam 

void oaViaParam::setCutSpacing const oaVector &    cutSpacing
 

This function sets the x and y spacing between the cuts in the via cut matrix for this object as per the specified x and y values in the oaVector cutSpacing parameter. The spacing applies only for multiple cut vias or via definitions. The default flag bit for the cutSpacing parameter is cleared.

Parameters:
cutSpacing The x and y spacing to be used between via cuts specified as an oaVector object

void oaViaParam::setCutWidth oaDist    width
 

This function sets the width to be used for each cut in the via cut matrix on the cut layer for this oaViaParam object to the specified width value. The default flag bit for the cutWidth parameter is cleared.

Parameters:
width The width to be used for each via cut in the via cut matrix

void oaViaParam::setDefault oaViaParamType    paramType
 

This function sets the specified parameter field to the default value. It also sets the default flag bit for this parameter field. oaViaParam::hasDefault() returns true if the specified parameter field is set. The default parameter value for cutRows and cutColumns is 1; the default value for the other parameters is 0.

Parameters:
paramType The parameter type on which to set the default value

void oaViaParam::setDefaultCutPattern  
 

This function removes any cut pattern customization that may exist for this oaViaParam object and makes the default cut pattern apply. All via cuts are then assumed to exist.

void oaViaParam::setImplant1Enc const oaVector &    imp1Enc
 

This function sets the width and height of the implant enclosure for the implant1 layer based on the specified imp1Enc oaVector object whose x and y values indicate the width and height, respectively. This enclosure is relative to the bounding box of the layer1 rectangle. The implant1 rectangle is generated by subtracting the imp1Enc vector from the lower left corner and adding it to the upper right corner of the layer1 bounding box. The default flag bit for the implant1 enclosure parameter is cleared.

When an oaViaParam for an implant1 enclosure is associated with an oaStdViaDef, the x and y values indicate that layer1 must be enclosed by at least the value of x on both sides in one direction, and by at least the value of y on both sides in the opposite direction.

When an oaViaParam is associated with an oaStdVia, the x value literally indicates enclosure in the x direction, and the y value literally indicates enclosure in the y direction.

When applications use an oaStdViaDef to create an oaStdVia, they can use the enclosure values provided in the oaStdViaDef's oaViaParams, but should choose the direction of the enclosure that best maximizes the number of cuts that can fit in the oaStdVia being created. The direction chosen must then be specified in the x,y vector associated with the oaStdVia's oaViaParam enclosure attribute.

Refer to Implant1 Enclosure in the Programmers Guide for more information.

Parameters:
imp1Enc A reference to an oaVector object whose x and y values indicate the enclosure

void oaViaParam::setImplant2Enc const oaVector &    imp2Enc
 

This function sets the width and height of the implant enclosure for the implant2 layer based on the specified imp2Enc oaVector object whose x and y values indicate the width and height, respectively. This enclosure is relative to the bounding box of the layer2 rectangle. The implant2 rectangle is generated by subtracting the imp2Enc vector from lower left corner and adding it to the upper right corner of the layer2 bounding box. The default flag bit for the implant2 enclosure parameter is cleared.

When an oaViaParam for an implant2 enclosure is associated with an oaStdViaDef, the x and y values indicate that layer2 must be enclosed by at least the value of x on both sides in one direction, and by at least the value of y on both sides in the opposite direction.

When an oaViaParam is associated with an oaStdVia, the x value literally indicates enclosure in the x direction, and the y value literally indicates enclosure in the y direction.

When applications use an oaStdViaDef to create an oaStdVia, they can use the enclosure values provided in the oaStdViaDef's oaViaParams, but should choose the direction of the enclosure that best maximizes the number of cuts that can fit in the oaStdVia being created. The direction chosen must then be specified in the x,y vector associated with the oaStdVia's oaViaParam enclosure attribute.

Refer to Implant2 Enclosure in the Programmers Guide for more information.

Parameters:
imp2Enc A reference to an oaVector object whose x and y values indicate the enclosure

void oaViaParam::setLayer1Enc const oaVector &    layer1Enc
 

This function sets the width and height of the layer1 enclosure based on the specified layer1Enc oaVector object whose x and y values indicate the width and height, respectively. This enclosure is relative to the bounding box of the via cut matrix, which may consist of a single cut. The layer1 rectangle is generated by subtracting the layer1Enc vector from the lower left corner and adding it to the upper right corner of the cut bounding box; then the rectangle is shifted by applying the layer1 offset. The default flag bit for the layer1 enclosure parameter is cleared.

When an oaViaParam is associated with an oaStdViaDef, the x and y values indicate that the cut must be enclosed by layer 1 by at least the value of x on both sides in one direction, and by at least the value of y on both sides in the opposite direction.

When an oaViaParam is associated with an oaStdVia, the x value literally indicates enclosure in the x direction, and the y value literally indicates enclosure in the y direction.

When applications use an oaStdViaDef to create an oaStdVia, they can use the enclosure values provided in the oaStdViaDef's oaViaParams, but should choose the direction of the enclosure that best maximizes the number of cuts that can fit in the oaStdVia being created. The direction chosen must then be specified in the x,y vector associated with the oaStdVia's oaViaParam enclosure attribute.

Refer to Layer1 Enclosure in the Programmers Guide for more information.

Parameters:
layer1Enc A reference to an oaVector object whose x and y values indicate the enclosure

void oaViaParam::setLayer1Offset const oaVector &    layer1Offset
 

This function sets the current x and y offsets for the layer1 enclosure rectangle. The x and y values of the specified layer1Offset oaVector indicate the x and y offsets, respectively. The layer1 rectangle that is generated by applying the layer1 enclosure is offset by adding the layer1Offset vector to the lower left and upper right corners. The default flag bit for the layer1 offset parameter is cleared.

Parameters:
layer1Offset A reference to an oaVector object whose x and y values indicate the respective offsets

void oaViaParam::setLayer2Enc const oaVector &    layer2Enc
 

This function sets the width and height of the layer2 enclosure based on the specified layer2Enc oaVector object whose x and y values indicate the width and height, respectively. This enclosure is relative to the bounding box of the via cut matrix, which may consist of a single cut. The layer2 rectangle is generated by subtracting the layer2Enc vector from the lower left corner and adding it to the upper right corner of the cut bounding box; then the rectangle is shifted by applying the layer2 offset. The default flag bit for the layer2 enclosure parameter is cleared.

When an oaViaParam is associated with an oaStdViaDef, the x and y values indicate that the cut must be enclosed by layer 1 by at least the value of x on both sides in one direction, and by at least the value of y on both sides in the opposite direction.

When an oaViaParam is associated with an oaStdVia, the x value literally indicates enclosure in the x direction, and the y value literally indicates enclosure in the y direction.

When applications use an oaStdViaDef to create an oaStdVia, they can use the enclosure values provided in the oaStdViaDef's oaViaParams, but should choose the direction of the enclosure that best maximizes the number of cuts that can fit in the oaStdVia being created. The direction chosen must then be specified in the x,y vector associated with the oaStdVia's oaViaParam enclosure attribute.

Refer to Layer2 Enclosure in the Programmers Guide for more information.

Parameters:
layer2Enc A reference to an oaVector object whose x and y values indicate the enclosure

void oaViaParam::setLayer2Offset const oaVector &    layer2Offset
 

This function sets the current x and y offsets for the layer2 enclosure rectangle. The x and y values of the specified layer2Offset oaVector indicate the x and y offsets, respectively. The layer2 rectangle that is generated by applying the layer2 enclosure is offset by adding the layer2Offset vector to the lower left and upper right corners. The default flag bit for the layer2 offset parameter is cleared.

Parameters:
layer2Offset A reference to an oaVector object whose x and y values indicate the respective offsets

void oaViaParam::setOriginOffset const oaVector &    originOffset
 

This function sets the originOffset for this oaViaParam object based on the specified originOffset oaVector object whose x and y values indicate the x and y offsets that apply. The bounding box of the via cut matrix, which may consist of a single cut rectangle, is centered at this origin. The default flag bit for the originOffset parameter is cleared.

Parameters:
originOffset A reference to an oaVector object whose x and y values indicate the respective offsets


Friends And Related Function Documentation

friend class oaDesign [friend]
 

friend class oaStdVia [friend]
 

friend class oaStdViaDef [friend]
 

friend class oaStdViaHeader [friend]
 

friend class oaStdViaVariant [friend]
 


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

Return to top of page