oaInstHeader Class Reference

Inheritance diagram for oaInstHeader:

oaRefHeader oaBlockObject oaDesignObject oaObject


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
void getParams (oaParamArray &params) const
void getAllParams (oaParamArray &params) const
oaBoolean findParam (const oaString &name, oaParam &param)
void setMasterBBox (const oaBox &bBox)
oaCollection< oaInst, oaInstHeader > getInsts (oaUInt4 filterFlags=oacInstIterNotImplicit) const
oaCollection< oaInstHeader, oaInstHeader > getSubHeaders () const

Static Public Methods

oaInstHeader * find (const oaBlock *block, const oaDesign *master)
oaInstHeader * find (const oaBlock *block, const oaScalarName &libName, const oaScalarName &cellName, const oaScalarName &viewName)
void setMaster (oaInstHeader *header, const oaDesign *master, const oaParamArray *params=NULL)

Public Types

enum  { dtIndex = oacInstHeaderDataType }

Detailed Description

The oaInstHeader class implements an object that contains information common to all the instances of a particular master design in a given parent design.

An oaInstHeader is an automatic object that is created and destroyed by the database. An oaInstHeader is automatically created whenever the first inst is created. An oaInstHeader is destroyed when the last inst of it is destroyed.

oaInstHeaders are always in the block domain. An oaInstHeader may have one or more equivalents in the module hierarchy and will have an equivalent oaOccInstHeader in the occurrence hierarchy.

For instances of Pcells, there are two kinds of instHeaders:

For more information about Pcells, refer to Support for Pcells in the Programmers Guide.

Every instance of a Pcell has exactly one subHeader, which, in turn, has exactly one superHeader. InstHeaders for instances that are not Pcells are neither subheaders nor superheaders.

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


Member Function Documentation

oaInstHeader * oaInstHeader::find const oaBlock *    block,
const oaScalarName &    libName,
const oaScalarName &    cellName,
const oaScalarName &    viewName
[static]
 

This function searches the specified block for an instHeader with the specified master design library, cell, and view names. If the specified master is a Pcell, the superHeader is returned.

oaInstHeader * oaInstHeader::find const oaBlock *    block,
const oaDesign *    master
[static]
 

This function searches the specified block for an instHeader with the specified master design. If the specified master is a Pcell, the superHeader is returned.

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

This function searches the parameter list of this inst header looking for a parameter with the specified 'name'. If found, it fills out 'param' with the appropriate attributes and returns true. Otherwise, it returns false.

Parameters:
name The name of the parameter to look for
param The parameter object to be populated if parameter is found

void oaInstHeader::getAllParams oaParamArray &    params const
 

This function fills out params with the complete set of parameters associated with this instHeader. The paramArray will contain the params for which this instHeader uses default values and the params for which it uses override values. If this instHeader is not associated with a Pcell master, params will have a numParams of zero.

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

This function returns the cell name of the master oaDesign referenced by this instHeader.

Parameters:
ns The namespace in which to return the cell name.
cellName The returned cell name.

void oaInstHeader::getCellName oaScalarName &    cellName const
 

This function returns the cell name of the master oaDesign referenced by this instHeader.

Parameters:
cellName The returned cell name.

oaCollection oaInstHeader::getInsts oaUInt4    filterFlags = oacInstIterNotImplicit const
 

This function returns a collection of instances associated with this instHeader. The filter flag bits are defined below and may be logically OR'd together to refine the contents of the collection.

Note: For a Pcell superHeader, the getInsts() collection will be empty since there are no instances under a superHeader.

Parameters:
filterFlags Specifies what the collection contains. The bit flags are defined as follows:
  • oacInstIterSingleBit: the collection contains single-bit instances
  • oacInstIterNotImplicit: the collection will not contain any implicitly created instances

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

This function returns the library name of the master oaDesign referenced by this instHeader.

Parameters:
ns The namespace in which to return the library name.
libName The returned library name.

void oaInstHeader::getLibName oaScalarName &    libName const
 

This function returns the library name of the master oaDesign referenced by this instHeader.

Parameters:
libName The returned library name.

void oaInstHeader::getParams oaParamArray &    params const
 

This function fills out params with the parameters associated with this instHeader. This call only returns the non-default parameters that were specified during creation or through calls to setParams() on the instances. If this instHeader is not associated with a Pcell master or uses all default parameters, params will have a numParams of zero.

Note that params also will have a numParams of zero if the instHeader is a superHeader.

oaCollection oaInstHeader::getSubHeaders   const
 

This function returns a collection of subHeaders in this superHeader.

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

This function returns the view name of the master oaDesign referenced by this instHeader.

Parameters:
ns The namespace in which to return the view name.
viewName The returned view name.

void oaInstHeader::getViewName oaScalarName &    viewName const
 

This function returns the view name of the master oaDesign referenced by this instHeader.

Parameters:
viewName The returned view name.

void oaInstHeader::setMaster oaInstHeader *    header,
const oaDesign *    master,
const oaParamArray *    params = NULL
[static]
 

This function specifies a new master for all the instances of a standard design or a Pcell master. After a remaster operation, the original header is destroyed, and a different header is used to group the instances.

The results of this function call vary depending on what sort of original master you have, and what sort of new master you are targeting. Specifically, the following scenarios produce different results.

  • Remastering all the instances of a standard oaDesign master to a different oaDesign master
  • Remastering all the instances of a standard oaDesign master to a Pcell superMaster
  • Remastering all the instances of a Pcell subMaster to a standard oaDesign master
  • Remastering all the instances of a Pcell subMaster to a different Pcell superMaster

The following figure shows the instances of a standard oaDesign master being set to a new standard oaDesign master (from an abstract view to a layout view). Note that an oacParamsSuppliedForNonPCellInstMaster error is thrown if params are specified in this case.

regToReg.gif

The header for the target INV/Layout design master is used to group the instances. Any properties on the instances remain unchanged after the remaster. Observer notifications are sent for each instance (as if oaInst::setMaster had been called on each individual instance).

Refer to Remastering Instances in the "Support for Pcells" section of the Programmers Guide for a complete explanation of the results of the scenarios for remastering instances when Pcells are involved.

Parameters:
header The header for the instances being remastered (cannot be a superHeader).
master The design that will become the new master for the instances (cannot be a subMaster).
params An optional array of parameters for the new master (only applicable if the new master is a superMaster).
Exceptions:
oacParamsSuppliedForNonPCellInstMaster 
oacInvalidHeaderForSetMaster 
oacInvalidSuperMaster 
oacInvalidDataTypeForParam 
oacNotExistInDefaultParam 
oacInstsInHierHaveDifferentProps 

void oaInstHeader::setMasterBBox const oaBox &    bBox
 

This function sets the bounding box of the master associated with this instHeader to the specified value. This function is a special purpose utility that should only be called when the master cannot or should not be bound, but the bounding box of the master is known.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 


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

Return to top of page