oaInst Class Reference

Inheritance diagram for oaInst:

oaRef oaPinFig oaConnFig oaFig oaBlockObject oaDesignObject oaObject oaBitInst oaVectorInst oaArrayInst oaScalarInst oaVectorInstBit


Public Methods

void getLibName (oaScalarName &libName) const
void getCellName (oaScalarName &cellName) const
void getViewName (oaScalarName &viewName) const
void getLibName (const oaNameSpace &ns, oaString &libName) const
void getCellName (const oaNameSpace &ns, oaString &cellName) const
void getViewName (const oaNameSpace &ns, oaString &viewName) const
oaInstHeadergetHeader () const
void getName (oaSimpleName &name) const
void getName (const oaNameSpace &ns, oaString &name) const
void getParams (oaParamArray &params) const
oaUInt4 getNumBits () const
oaPlacementStatus getPlacementStatus () const
oaUInt4 getPriority () const
oaSource getSource () const
oaUInt4 getUsage () const
oaClustergetCluster () const
oaBoolean isImplicit () const
oaBoolean usesTermPositions () const
oaBoolean findParam (const oaString &name, oaParam &param)
void setMaster (const oaDesign *master)
void setMaster (const oaScalarName &libName, const oaScalarName &cellName, const oaScalarName &viewName)
void setParams (const oaParamArray &params)
void setPlacementStatus (oaPlacementStatus status)
void setPriority (oaUInt4 priority)
void setSource (oaSource source)
void setUsage (oaUInt4 usage)
void addToCluster (oaCluster *cluster)
void removeFromCluster ()
void scalarize ()
oaOccInstgetOccInst () const
oaCollection< oaInstTerm, oaInst > getInstTerms (oaUInt4 filterFlags=oacInstTermIterNotImplicit) const
oaCollection< oaAssignment, oaInst > getAssignments () const
oaCollection< oaBlockage, oaInst > getBlockagesOwnedBy () const
oaCollection< oaOccInst, oaInst > getOccInsts (const oaOccurrence *top) const

Static Public Methods

oaInst * find (const oaBlock *block, const oaSimpleName &name)

Public Types

enum  { dtIndex = oacInstDataType }

Detailed Description

The oaInst class is an abstract base class for block domain instances. An instance represents the inclusion of one design as a part of the contents of another. The design containing the instance is the parent design and the design that is included is the master of the instance.

oaInst objects are always in the block domain. Thus they are contained in an oaBlock object. An oaInst may have one or more equivalent module instances in the module hierarchy and will have an equivalent oaOccInst in the occurrence hierarchy.

You can use instances to create hierarchical designs. The master of an instance can contain instances of other masters. This hierarchy can continue for as many levels as needed to express a complete design.

You can use instances to represent complex pin figures. These are often used in schematics where a shape more complicated than a polygon is wanted.

All instances have names. These names can be assigned by the creator. For scalar inst, instance names can be automatically assigned by the database.

Instances always have an oaInstHeader, which contains the attributes that are constant for all instances of a given master.

Instances of Pcells include a set of parameters values used to tailor the Pcell for each specific instance. A Pcell instance can be created with a subset of the parameters defined in the superMaster. Any parameters not specified will become default parameters, which will track changes in the superMaster's parameter value. When a parameter is specified during creation or any subsequence calls to setParam(), this parameter will not be classified as a default parameter even though its value is equal to the default value in the superMaster.

The superMaster of pcell Instances will be bound when they are created so that OpenAccess can verify the parameters supplied. If the binding fails, an oacParamsSuppliedForNonPCellInstMaster exception will be thrown.

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


Member Function Documentation

void oaInst::addToCluster oaCluster *    cluster
 

This function adds this instance to the specified cluster.

Exceptions:
oacClusterAndInstNotSameBlock 
oacInstAlreadyInCluster 

oaInst * oaInst::find const oaBlock *    block,
const oaSimpleName &    name
[static]
 

This function searches the specified block for an instance with the specified name. If found, the instance is returned. Otherwise, NULL is returned.

Parameters:
block The block to search
name The instance name to find
Returns:
A pointer to the instance, if found; otherwise, NULL

oaBoolean oaInst::findParam const oaString &    name,
oaParam &    param
 

This function searches the parameter list of this instance for a parameter with the specified name. If found, it fills out param with the appropriate attributes and returns true. Otherwise, the function returns false. Only Pcell instances have parameters.

Parameters:
name The parameter name to find
param The parameter class to fill out if the parameter is found

oaCollection oaInst::getAssignments   const
 

This function returns a collection of assignments in this instance.

oaCollection oaInst::getBlockagesOwnedBy   const
 

This function returns a collection of blockages owned by this instance.

void oaInst::getCellName const oaNameSpace &    ns,
oaString &    cellName
const
 

This function returns the cell name in the given namespace for the master design referenced by this instance.

Parameters:
ns The namespace for the name
cellName The cell name for the master design

void oaInst::getCellName oaScalarName &    cellName const
 

This function returns the cell name for the master design referenced by this instance.

Parameters:
cellName The cell name for the master design

oaCluster * oaInst::getCluster   const
 

This function returns a pointer to the cluster of which this instance is a member. If the instance is not in a cluster, NULL is returned.

oaInstHeader * oaInst::getHeader   const
 

This function returns the instHeader associated with this instance. The instHeader is a collection of the attributes that are common to all instances of a particular master. For Pcell instances, this function returns the subheader.

Returns:
The pointer to the instance header

Reimplemented from oaRef.

oaCollection oaInst::getInstTerms oaUInt4    filterFlags = oacInstTermIterNotImplicit const
 

This function returns a collection of instTerms associated with this instance.

Parameters:
filterFlags Specifies what the collection contains. The bits flags are defined as follows:
  • oacInstTermIterNotImplicit: the collection will only contain instTerms that were explicitly created
  • oacInstTermIterSingleBit: the collection will only contain instTerms that make a single-bit connection

void oaInst::getLibName const oaNameSpace &    ns,
oaString &    libName
const
 

This function returns the library name in the given namespace for the master design referenced by this instance.

Parameters:
ns The namespace for the library name
libName The library name for the master design

void oaInst::getLibName oaScalarName &    libName const
 

This function returns the library name for the master design referenced by this instance.

Parameters:
libName The library name for the master design

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

Reimplemented in oaArrayInst.

void oaInst::getName oaSimpleName &    name const
 

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

Parameters:
name The returned instance name

oaUInt4 oaInst::getNumBits   const
 

This function returns the number of bits of this instance. This function always returns '1' for scalar and array instances. The function can return '1' or more for vector instances.

oaOccInst oaInst::getOccInst   const
 

This function returns the occurrence instance that is the reflection of this block instance in the context of the top occurrence of the design that contains the instance.

oaCollection oaInst::getOccInsts const oaOccurrence *    top const
 

This function returns a collection of the occInsts that are occurrences of this instance in the occurrence hierarchy identified by top. The top occurrence does not have to be in the same design as the given instance.

Parameters:
top the top occurrence

void oaInst::getParams oaParamArray &    params const
 

This function fills out params with the parameters of this instance. Only Pcell instances have parameters. This call only returns parameters that were specified during creation or through calls to setParams(). If invoked on an inst that is not a Pcell or if no parameter is specified for the instance, the returned params paramArray will have a numParams of zero.

oaPlacementStatus oaInst::getPlacementStatus   const
 

This function returns the placement status for this instance.

oaUInt4 oaInst::getPriority   const
 

This function returns the placement priority for this instance.

oaSource oaInst::getSource   const
 

This function returns the source for this instance. This is used to indicate where the instance was created.

oaUInt4 oaInst::getUsage   const
 

This function returns a bit mask that indicates certain special reasons that instances can be used in a design. The defined bits are:

oacInstUsageFeedthru this instance simply connects its inputs to its outputs
oacInstUsageSpare this instance is a spare that is not currently used in the design's function
oacInstUsageJTag this instance is part of the JTAG test structures added to the design

These bits may be or'ed together in the value returned.

void oaInst::getViewName const oaNameSpace &    ns,
oaString &    viewName
const
 

This function returns the view name in the given namespace for the master design referenced by this instance.

Parameters:
ns The namespace for the name
viewName The view name for the master design

void oaInst::getViewName oaScalarName &    viewName const
 

This function returns the view name for the master design referenced by this instance.

Parameters:
viewName The view name for the master design

oaBoolean oaInst::isImplicit   const
 

This function returns a boolean value that indicates if this instance is implicit, having been automatically created as a result of the creation of a vectorInst.

void oaInst::removeFromCluster  
 

This function removes this instance from the cluster with which it is associated. If this instance is not associated with a cluster, this function does nothing.

void oaInst::scalarize  
 

This function insures that the bitInsts associated with this instance have been promoted to the explicit state so that they can support implementation data.

If this instance is a multibit instance, this function insures that all constituent bitInsts are promoted to the explicit state. The multibit instance is then demoted to the implicit state so that no implementation data can be associated with it. When an instance is demoted to the implicit state, associated implementation data is removed from it.

When an instance is scalarized, all of its connections are also scalarized. Each bit of any multi-bit connection associated with the instance is promoted to the explicit state and is available for editing.

void oaInst::setMaster const oaScalarName &    libName,
const oaScalarName &    cellName,
const oaScalarName &    viewName
 

This function sets the master of this instance. This version sets the master to the design specified by the specified library, cell, and view names and does not force the master to open.

Note: If the target master is in memory or if it has an oaInstHeader that is a superHeader, then OpenAccess performs some conversions between parameters and properties. If the target master is not in memory and does not have an oaInstHeader that is a superHeader, then no conversions between parameters and properties are performed. In this case, if the current header is a subHeader, all the subHeader's non-default parameters are converted to properties. Refer to Remastering Instances in the "Support for Pcells" section of the Programmers Guide for more information.

Parameters:
libName The library name for the new instance master
cellName The cell name for the new instance master
viewName The view name for the new instance master
Exceptions:
oacCannotSetMasterImplicitInst 
oacInstMustBeInUniqueOccHier 

void oaInst::setMaster const oaDesign *    master
 

This function sets the master of this instance. This version sets the master to the specified design.

Note: If the current master or the target master is a Pcell, OpenAccess performs some conversions between parameters and properties. Refer to Remastering Instances in the "Support for Pcells" section of the Programmers Guide for more information.

Parameters:
master The pointer to the new instance master
Exceptions:
oacInvalidSuperMaster 
oacCannotSetMasterImplicitInst 
oacInstMustBeInUniqueOccHier 

void oaInst::setParams const oaParamArray &    params
 

This function sets the parameters of this instance to the specified list. If this instance already has parameters attached to it, the existing parameters are replaced.

The oaParamArray can be any subset of the master's oaParamArray definition. Any parameter omitted becomes a default parameter and gets its value from the superMaster.

If a parameter included in the params array is not defined in the master's oaParamArray definition (whose name and type is not found in the master's definition), an oacInvalidDataTypeForParam exception is thrown.

Parameters:
params The array of parameters to apply to the instance
Exceptions:
oacInvalidDataTypeForParam 
oacInvalidPcellMaster 
oacPcellMasterNotBound 
oacCannotSetParamsImplicitInst 
oacInstMustBeInUniqueOccHier 

void oaInst::setPlacementStatus oaPlacementStatus    status
 

This function sets the placement status of this instance to the specified value.

Parameters:
status The new placement status for the instance
Exceptions:
oacCannotSetPlacementStatusImplicitInst 

void oaInst::setPriority oaUInt4    priority
 

This function sets the priority for this instance to the specified value. The priority is used during placement.

Exceptions:
oacCannotSetPriorityImplicitInst 

void oaInst::setSource oaSource    source
 

This function sets the source for this instance to the specified value. The source is used to indicate where the instance was created.

Exceptions:
oacCannotSetSourceImplicitInst 

void oaInst::setUsage oaUInt4    usage
 

This function sets a bit mask that indicates certain special reasons for instances to be created in a design. See oaInst::getUsage for details.

Exceptions:
oacCannotSetUsageImplicitInst 

oaBoolean oaInst::usesTermPositions   const
 

This function returns a boolean indicating how connections to this instance have been made. If the instTerms associated with this instance connect to terminal positions, this function returns 'true'. Otherwise, this function returns 'false'. Note that if the collection of instTerms for this instance is empty, this function will also return 'false'.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 


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

Return to top of page