oaModule Class Reference

Inheritance diagram for oaModule:

oaModObject oaDesignObject oaObject


Public Methods

void destroy ()
oaDesigndetach (const oaScalarName &libName, const oaScalarName &cellName, const oaScalarName &viewName, oaDetachVisibilityEnum view=oacInheritFromSourceModuleDetachVisibility)
void getName (oaScalarName &name) const
void getName (const oaNameSpace &nameSpace, oaString &nameStr) const
void getOrig (oaScalarName &name, oaScalarName &libName, oaScalarName &cellName, oaScalarName &viewName) const
oaBoolean isDerived () const
oaBoolean isEmbedded () const
oaBoolean isVariant (oaModule *module) const
oaBoolean isClone (oaModule *module) const
oaBoolean isOrigModified (oaModule *module) const
oaBlockgetBlock () const
void getTermsByPosition (oaModTermArray &array) const
oaBoolean hasDefaultConstraintGroup () const
oaConstraintGroupgetDefaultConstraintGroup () const
oaCollection< oaModAssignment, oaModule > getAssignments () const
oaCollection< oaModBusNetDef, oaModule > getBusNetDefs () const
oaCollection< oaModBusTermDef, oaModule > getBusTermDefs () const
oaCollection< oaModConnectDef, oaModule > getConnectDefs () const
oaCollection< oaModModuleInstHeader, oaModule > getModuleInstHeaders () const
oaCollection< oaModInst, oaModule > getInsts (oaUInt4 filterFlags=oacInstIterNotImplicit) const
oaCollection< oaModInstTerm, oaModule > getInstTerms (oaUInt4 filterFlags=oacInstTermIterNotImplicit) const
oaCollection< oaModNet, oaModule > getNets (oaUInt4 filterFlags=oacNetIterAll|oacNetIterNotImplicit) const
oaCollection< oaModTerm, oaModule > getTerms (oaUInt4 filterFlags=oacTermIterAll|oacTermIterNotImplicit) const
oaCollection< oaModVectorInstDef, oaModule > getVectorInstDefs () const
oaCollection< oaOccurrence, oaModule > getOccurrences (const oaOccurrence *top) const

Static Public Methods

oaModule * create (const oaDesign *design, const oaScalarName &name)
oaModule * create (const oaDesign *design)
oaModule * find (const oaDesign *design, const oaScalarName &name)
oaModule * embed (oaDesign *design, const oaDesign *master)

Public Types

enum  { dtIndex = oacModuleDataType }

Detailed Description

The oaModule class represents a level of hierarchy in the module domain of a design. The module domain is used to represent the logical hierarchy that may have several levels of hierarchy for each level in the block hierarchy.

OpenAccess will maintain the correspondence between the module hierarchy and the block hierarchy for all module objects that are underneath a design's top module. There are zero or one top modules in a design.

A module may be created directly through the oaModule API, by embedding the top module from a foreign design into a design, and through uniquification.

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

See Understanding EMH in the Programmers Guide for more information about the module domain.


Member Function Documentation

oaModule * oaModule::create const oaDesign *    design [static]
 

This function creates a module in the given design. The name of the module is automatically generated.

Parameters:
design The design in which to create the module

oaModule * oaModule::create const oaDesign *    design,
const oaScalarName &    name
[static]
 

This function creates a module in the given design with the specified name.

Parameters:
design The design in which to create the module
name The name of the module
Exceptions:
oacModuleExists 
oacInvalidDesign 

void oaModule::destroy  
 

This function destroys this module. If this module is the top module of the design, the top block of the design and all block-domain objects in the top block also will be deleted.

oaDesign * oaModule::detach const oaScalarName &    libName,
const oaScalarName &    cellName,
const oaScalarName &    viewName,
oaDetachVisibilityEnum    view = oacInheritFromSourceModuleDetachVisibility
 

This function detaches this module and the module domain hierarchy rooted under it by moving them from the owning design into a new design. The modules are removed from the original design and the module instances will become design instances. The new design is created with the specified lib/cell/view names and the pointer to it is returned. An exception is thrown if a design with the specified lib/cell/view names already exists.

Note: This operation cannot be undone and it is an explicit requirement that undo be disabled for the module's design before attempting this operation. An exception will be thrown if undo is not disabled before this operation. Undo can be re-enabled after the operation is complete.

For more information, see Embedding and Detaching Module Hierarchies in the Programmers Guide.

Parameters:
libName The library name of the new design
cellName The cell name of the new design
viewName The view name of the new design
view Specifies the visibility of the detached module
Exceptions:
oacModuleDetachDesignExists 
oacModuleDetachRequiresUndoToBeDisabled 

oaModule * oaModule::embed oaDesign *    destination,
const oaDesign *    master
[static]
 

This function takes the module hierarchy starting at the top module of the master design and copies it into the design specified by the first argument. The master design is unchanged, but it will no longer be referenced in hierarchies underneath the destination design.

Any oaModDesignInst of the master in the destination design will be converted to an oaModModuleInst after the embed. The top module from the master design will not be set as top in the destination design. If desired, the caller should use oaDesign::setTopModule() after the embed.

An exception is thrown if the master design does not exist, or it is the same as the target design, or it does not contain any module, or if any of the modules to be embedded already exist in the destination design. When any of these errors occur, the destination will be unchanged.

For more information, see Embedding and Detaching Module Hierarchies in the Programmers Guide.

Exceptions:
oacInvalidModuleEmbedMaster 
oacEmbedDesignConflictingModuleNames 

oaModule * oaModule::find const oaDesign *    design,
const oaScalarName &    name
[static]
 

This function searches the given design for a module that matches the specified name. If found, a pointer to the oaModule is returned, otherwise NULL is returned.

Parameters:
design The design in which to search for the module
name The name of the module to search

oaCollection oaModule::getAssignments   const
 

This function returns a collection of assignments in this module.

oaBlock * oaModule::getBlock   const
 

This function returns the block that corresponds to this module. Only top modules may have a corresponding block -- the top block in the same design. The correspondence of a top module and a top block is established by the visibleToBlock parameter passed to oaDesign::setTopModule and the visibleToModule parameter passed to oaBlock::create.

This function returns NULL if this module is not a top module or if it is a top module but does not have a corresponding block.

oaCollection oaModule::getBusNetDefs   const
 

This function returns a collection of busNetDefs in this module.

oaCollection oaModule::getBusTermDefs   const
 

This function returns a collection of busTermDefs in this module.

oaCollection oaModule::getConnectDefs   const
 

This function returns a collection of connectDefs in this module.

oaConstraintGroup * oaModule::getDefaultConstraintGroup   const
 

This function returns the default constraint group for this module. If no constraints have been set on the default constraint group, a new constraint group is created and returned.

oaCollection oaModule::getInsts oaUInt4    filterFlags = oacInstIterNotImplicit const
 

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

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

oaCollection oaModule::getInstTerms oaUInt4    filterFlags = oacInstTermIterNotImplicit const
 

This function returns a collection of instTerms in this module.

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

oaCollection oaModule::getModuleInstHeaders   const
 

This function returns a collection of moduleInstHeaders in this module.

void oaModule::getName const oaNameSpace &    nameSpace,
oaString &    nameStr
const
 

This function returns the name of this module in the specified string in the given nameSpace.

Parameters:
nameSpace The nameSpace used to generate the name string.
nameStr The name of the module.

void oaModule::getName oaScalarName &    name const
 

This function returns the name of this module.

Parameters:
name The returned module name

oaCollection oaModule::getNets oaUInt4    filterFlags = oacNetIterAll | oacNetIterNotImplicit const
 

This function returns a collection of nets in this module. The filter flag bits are defined below:

Parameters:
filterFlags This specifies what the collection contains. The bit flags are defined as follows:
  • oacNetIterAll: the collection contains all nets
  • oacNetIterSingleBit: the collection contains single-bit nets
  • oacNetIterBundle: the collection contains all the bundleNets in the module
  • oacNetIterGlobal: the collection contains a representative occNet for every global signal referenced anywhere in the occurrence hierarchy containing this occurrence
  • oacNetIterPreferred: the collection only contains the preferred nets; equivalent nets are omitted
  • oacNetIterNotImplicit: the collection contains explicitly created nets
Flag Usage: The oacNetIterAll, oacNetIterSingleBit, oacNetIterBundle, and oacNetIterGlobal flags are mutually exclusive, and only one of these four flags may be specified. The selected flag may be logically OR'd with oacNetIterPreferred and oacNetIterNotImplicit.

Exceptions:
oacInvalidModuleNetIterFlags 

oaCollection oaModule::getOccurrences const oaOccurrence *    top const
 

This function returns a collection of all the occurrences of this module in the design hierarchy under the specified top occurrence. It is an error if the top occurrence specified is not in the same design as the module.

Note: The resulting collection will be empty unless the occurrence hierarchy under the specified top occurrence has been expanded in the current session. For more information see oaOccInst::getMasterOccurrence.

void oaModule::getOrig oaScalarName &    name,
oaScalarName &    libName,
oaScalarName &    cellName,
oaScalarName &    viewName
const
 

This function returns the name of the original module and the library, cell, and view names of the design containing the original module. An exception is thrown if this module is not derived from another module.

Parameters:
name The name of the original module
libName The library name of the design containing the original module
cellName The cell name of the design containing the original module
viewName The view name of the design containing the original module
Exceptions:
oacModuleNotDerived 

oaCollection oaModule::getTerms oaUInt4    filterFlags = oacTermIterAll | oacTermIterNotImplicit const
 

This function returns a collection of terms in this module. The filter flag bits are defined below:

Parameters:
filterFlags Specifies what the collection contains. The bit flags are defined as follows:
  • oacTermIterAllNotHidden: the collection contains all terminals that are not hidden
  • oacTermIterAll: the collection contains all terminals
  • oacTermIterSingleBit: the collection contains single-bit terminals
  • oacTermIterBundle: the collection contains all the bundleTerms in the module
  • oacTermIterNotImplicit: the collection contains explicitly created terminals
Flag Usage: The oacTermIterAllNotHidden, oacTermIterAll, oacTermIterSingleBit, and oacTermIterBundle flags are mutually exclusive, and only one of these four flags may be specified. The selected flag may be logically OR'd with oacTermIterNotImplicit.

Exceptions:
oacInvalidModuleTermIterFlags 

void oaModule::getTermsByPosition oaModTermArray &    array const
 

This function retrieves the terminals in this module that have been assigned a position and returns them in the specified oaModTermArray. A position in the array may be NULL to reflect that there is no terminal assigned to that position. The position of a terminal in the array reflects the position assigned to the terminal.

oaCollection oaModule::getVectorInstDefs   const
 

This function returns a collection of vectorInstDefs in this module.

oaBoolean oaModule::hasDefaultConstraintGroup   const
 

This function returns a boolean indicating whether there is a default constraint group for this module.

oaBoolean oaModule::isClone oaModule *    module const
 

This function returns true if this module originated from the specified module (via a detach, uniquify, or embed operation), and neither this module nor the specified module has been changed since that operation. Otherwise it returns false.

It is an error if the current module did not originate from the specified module.

Exceptions:
oacModuleNotDerived 
oacModuleNotDerivedFromModule 

oaBoolean oaModule::isDerived   const
 

This function indicates whether this module was created with a uniquify call on another module in the same design.

oaBoolean oaModule::isEmbedded   const
 

This function indicates whether this module was created by an embed() call that copied it from another design into its current database.

oaBoolean oaModule::isOrigModified oaModule *    module const
 

This function returns true if this module was derived from the specified module, and the specified module has been changed since that derivation, otherwise it returns false. It is an error if the current module was not derived from the specified module.

Exceptions:
oacModuleNotDerived 
oacModuleNotDerivedFromModule 

oaBoolean oaModule::isVariant oaModule *    module const
 

This function returns true if this module originated from the specified module (via a detach, uniquify, or embed operation), and this module has been changed since that operation. Otherwise it returns false.

It is an error if the current module did not originate from the specified module.

Exceptions:
oacModuleNotDerived 
oacModuleNotDerivedFromModule 


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 


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

Return to top of page