oaVectorInst Class Reference

Inheritance diagram for oaVectorInst:

oaInst oaRef oaPinFig oaConnFig oaFig oaBlockObject oaDesignObject oaObject


Public Methods

oaVectorInstDefgetDef () const
oaUInt4 getStart () const
oaUInt4 getStop () const
oaVectorInstBitgetBit (oaUInt4 bitIndex) const
void getName (oaVectorName &name) const
void setBaseName (const oaScalarName &baseName)
void setRange (oaUInt4 start, oaUInt4 stop)
oaVectorInst * copy (const oaScalarName &baseName, const oaTransform &xform)
oaVectorInst * copy (const oaScalarName &baseName, const oaTransform &xform, oaBlock *block)
void getName (oaSimpleName &name) const
void getName (const oaNameSpace &ns, oaString &name) const

Static Public Methods

oaVectorInst * create (oaBlock *block, oaDesign *master, const oaScalarName &baseName, oaUInt4 start, oaUInt4 stop, const oaTransform &xform, const oaParamArray *params=NULL, oaBlockDomainVisibility view=oacInheritFromTopBlock, oaPlacementStatus status=oacNonePlacementStatus)
oaVectorInst * create (oaBlock *block, const oaScalarName &libName, const oaScalarName &cellName, const oaScalarName &viewName, const oaScalarName &baseName, oaUInt4 start, oaUInt4 stop, const oaTransform &xform, const oaParamArray *params=NULL, oaBlockDomainVisibility view=oacInheritFromTopBlock, oaPlacementStatus status=oacNonePlacementStatus)
oaVectorInst * find (const oaBlock *block, const oaScalarName &baseName, oaUInt4 start, oaUInt4 stop)
oaBoolean isValidName (const oaBlock *block, const oaScalarName &baseName, oaUInt4 start, oaUInt4 stop)

Detailed Description

The oaVectorInst class implements a vector instance in a block hierarchy. A vector instance represents several copies of the instance master with a range of index numbers to differentiate them.

oaVectorInst objects are always in the block domain. They may be physical-only instances that are only in the block hierarchy, or they can be cross-domain instances that directly correspond to an oaModVectorInst in the module domain and an oaOccVectorInst in the occurrence domain.

Note that there are many differences between the structure of VectorInsts and BusNets. A single VectorInst must have contiguous index numbers. While there can be multiple VectorInsts with the same base name, they must have no overlapping index numbers. A gap between the index numbers is allowed. For example, a block may have instances Ireg<3:0> and Ireg<7:6> (in a namespace that uses <> for bit indexes). However, it may not also have Ireg<5:3> since that would create 2 copies of Ireg<3>.


Member Function Documentation

oaVectorInst * oaVectorInst::copy const oaScalarName &    baseName,
const oaTransform &    xform,
oaBlock *    block
 

This function creates a copy of this instance. The baseName of the copied instance is specified in baseName. Note that that the start, stop and step parameters are the same as the original instance. The new copied instance is copied to the location based on the specified transform. This function creates a copy of the instance in the specified block which may be in a different design.

Parameters:
baseName The baseName for the new instance
xform The transform for the new instance
block The oaBlock for the new instance

oaVectorInst * oaVectorInst::copy const oaScalarName &    baseName,
const oaTransform &    xform
 

This function creates a copy of this instance. The baseName of the copied instance is specified in baseName. Note that that the start, stop and step parameters are the same as the original instance. The new copied instance is copied to the location based on the specified transform. This function creates a copy of the instance within the same block.

Parameters:
baseName The baseName for the new instance
xform The transform for the new instance

oaVectorInst * oaVectorInst::create oaBlock *    block,
const oaScalarName &    libName,
const oaScalarName &    cellName,
const oaScalarName &    viewName,
const oaScalarName &    baseName,
oaUInt4    start,
oaUInt4    stop,
const oaTransform &    xform,
const oaParamArray *    params = NULL,
oaBlockDomainVisibility    view = oacInheritFromTopBlock,
oaPlacementStatus    status = oacNonePlacementStatus
[static]
 

This function creates an oaVectorInst object with the specified attributes. The specified baseName, start, and stop indices are first checked to verify they are legal and do not specify an instance that already exists. This form of the create specifies its library, cell, and view names so the master does not need to be open to create instances. You can also specify an optional paramArray that will apply if the master is a pCell. Exceptions are thrown if the new name is the name of an existing scalarInst or an arrayInst, or if another vectorInst exists whose indices overlap with this vectorInst, or if the given baseName matches the form of the system-generated scalarInst name.

Exceptions:
oacParamsSuppliedForNonPCellInstMaster 

oaVectorInst * oaVectorInst::create oaBlock *    block,
oaDesign *    master,
const oaScalarName &    baseName,
oaUInt4    start,
oaUInt4    stop,
const oaTransform &    xform,
const oaParamArray *    params = NULL,
oaBlockDomainVisibility    view = oacInheritFromTopBlock,
oaPlacementStatus    status = oacNonePlacementStatus
[static]
 

This function creates an oaVectorInst object with the specified attributes. The specified baseName, start, and stop indices are first checked to verify they are legal and do not specify an instance that already exists. This form of the create specifies the master design so the master needs to be open to use it. You can also specify an optional paramArray if the master is a pCell. Exceptions are thrown if the new name is the name of an existing scalar, an arrayInst, or if another vectorInst exists whose indices overlap with this vectorInst, or if the given baseName matches the form of the system generated scalarInst name.

Exceptions:
oacInvalidSuperMaster 
oacParamsSuppliedForNonPCellInstMaster 

oaVectorInst * oaVectorInst::find const oaBlock *    block,
const oaScalarName &    baseName,
oaUInt4    start,
oaUInt4    stop
[static]
 

This function searches the specified block for a vectorInst with the specified name and start or stop bits. The function returns the instance if it finds one. Otherwise, NULL is returned.

oaVectorInstBit * oaVectorInst::getBit oaUInt4    bitIndex const
 

This function returns a pointer to the vectorInstBit that corresponds to the specified bitIndex bit of this vectorInst. For example, if this is a vectorInst "i[7:0]" and bitIndex is zero, this function will return the vectorInstBit corresponding to "i[7]".

Parameters:
bitIndex Specifies which bit of the instance to return
Returns:
A pointer to an oaVectorInstBit
Exceptions:
oacInvalidBitIndexIntoInst 

oaVectorInstDef * oaVectorInst::getDef   const
 

This function returns the vectorInstDef for this vectorInst. The vectorInstDef is used to access all vectorInts with the same baseName.

void oaInst::getName const oaNameSpace &    ns,
oaString &    name
const
 

This function fills out name with the name of this instance. The name is mapped according to the specified nameSpace.

Parameters:
ns The nameSpace used to map the name
name The returned instance name

void oaInst::getName oaSimpleName &    name const
 

This function fills out name with the name of this instance.

Parameters:
name The returned instance name

void oaVectorInst::getName oaVectorName &    name const
 

This function returns the vectorName of this vectorInst.

Parameters:
name The vectorName of the vectorInst to return

oaUInt4 oaVectorInst::getStart   const
 

This function returns the start index of this vectorInst.

oaUInt4 oaVectorInst::getStop   const
 

This function returns the stop index of this vectorInst.

oaBoolean oaVectorInst::isValidName const oaBlock *    block,
const oaScalarName &    baseName,
oaUInt4    start,
oaUInt4    stop
[static]
 

This function returns a boolean value that indicates if the specified baseName, combined with the start and stop values, is a valid new oaVectorInst in the specified design.

void oaVectorInst::setBaseName const oaScalarName &    baseName
 

This function changes the base name of this vectorInst. Exceptions are thrown if the new name is the name of an existing scalar, an arrayInst, or if another vectorInst exists whose indices overlap with this vectorInst, or if the given baseName matches the form of the system-generated scalarInst name.

Parameters:
baseName The new base name to give this instance
Exceptions:
oacCannotSetNameOfImplicitInst 

void oaVectorInst::setRange oaUInt4    start,
oaUInt4    stop
 

This function sets the start and stop bit indices of this vectorInst.

Parameters:
start The new start value to give this instance
stop The new stop value to give this instance
Exceptions:
oacInstNameOverlapsOtherInst 
oacCannotSetNameOfImplicitInst 
oacInvalidBusStartStopRange 


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

Return to top of page