oaOccNet Class Reference

Inheritance diagram for oaOccNet:

oaOccObject oaDesignObject oaObject oaOccBitNet oaOccBundleNet oaOccBusNet oaOccBusNetBit oaOccScalarNet


Public Methods

oaBoolean isEmpty () const
oaBoolean isImplicit () const
oaBoolean isGlobal () const
oaSigType getSigType () const
oaUInt4 getNumBits () const
void getName (oaName &name) const
void getName (const oaNameSpace &ns, oaString &name) const
void getPathName (oaName &pathName) const
void getPathName (const oaNameSpace &ns, oaString &pathName) const
oaOccBitNetgetBit (oaUInt4 bitIndex) const
oaOccNet * getAssignedNet (oaBoolean ignoreDefault=false) const
oaOccNet * getAssignedNet (oaAssignedNetSpec &spec, oaBoolean ignoreDefault=false) const
oaNetgetNet () const
oaModNetgetModNet () const
oaCollection< oaOccNet, oaOccNet > getGlobalNets () const
oaCollection< oaOccInstTerm, oaOccNet > getInstTerms (oaUInt4 filterFlags=oacInstTermIterNotImplicit) const
oaOccMemNetCollection getMemberNets (oaBoolean unique=true) const
oaCollection< oaOccBitNet, oaOccNet > getSingleBitMembers () const
oaCollection< oaOccNet, oaOccNet > getSpan () const
oaCollection< oaOccTerm, oaOccNet > getTerms (oaUInt4 filterFlags=oacTermIterAllNotHidden|oacTermIterNotImplicit) const

Static Public Methods

oaOccNet * find (const oaOccurrence *occurrence, const oaName &name)

Public Types

enum  { dtIndex = oacNetDataType }

Detailed Description

The oaOccNet class is an abstract base class for scalar and multi-bit nets that are part of the design's occurrence description. Nets represent the logical connectivity within a occurrence of a design. Nets connect to terminals, which are the logical connection points on instances of the net's occurrence. Nets also connect to instTerms that represent connections to the lower-level instances in the net's occurrence.

oaOccNet objects are always in the occurrence domain. Nets span the domains in a design. An oaOccNet may be an occurrence of an oaNet in the block hierarchy and may be an occurrence of an oaModNet in the module hierarchy.

Multi-bit nets represent a collection of logical connections. Nets can include busNets having a single base name with an index range, or they can include bundleNets, which are a more complex grouping of nets. Multi-bit nets can have overlapping names. For example, busNets addr<7:0> and addr<3:0>.

All occBusNets with the same root name are managed by an oaOccBusNetDef. The occBusNetDef tracks:

The occBusNetBits are automatically created for each bit of a occBusNet, if they do not already exist. They are available for those applications performing scalarized connectivity traversal of the data.

The bundleNets can contain scalarNets or buses. When a bundleNet is created, the constituent scalarNets and busNets are automatically created in addition to the bundleNet itself. All automatically created net objects are considered "implicit." Implicit nets are more restricted in terms of the operations that are allowed to work with them.

Names are normally associated with occNets. The various net objects take and return names through the general oaName object but also use the oaScalarName, oaVectorBitName, oaVectorName, and oaBundleName objects. These name objects manage the mapping of names from one nameSpace to another. For example, a net is created using the name in CDBA nameSpace; another application can retrieve the net's name in the Verilog nameSpace.

You can have two or more occNets that are equivalent. Equivalent occNets are traversed separately or logically as the same net. You can only set single-bit nets equivalent to each other.

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


Member Function Documentation

oaOccNet * oaOccNet::find const oaOccurrence *    occurrence,
const oaName &    name
[static]
 

This function searches the specified occurrence for a occNet with the specified name. If name is hierarchical, then this function will descend into lower levels of occurrence hierarchy, expanding the hierarchy and binding the master designs as needed. If name is a bundle name, and any of its members is hierarchical, all of the members must have the same hierarchical path or an exception is thrown. If the net is found, the function returns the net. Otherwise, NULL is returned.

Parameters:
occurrence The occurrence in which to search
name The name of the net to find
Returns:
A pointer to the oaOccNet
Exceptions:
oacInvalidHierBundleNetName 

oaOccNet * oaOccNet::getAssignedNet oaAssignedNetSpec &    spec,
oaBoolean    ignoreDefault = false
const
 

This function returns the occurence net assigned to this net as per the inherited connections specification.

NULL will be returned in the following cases:

  • There is no effective connectDef associated with this net
  • There is an effective connectDef but no matching assignment, and 'ignoreDefault' is true.

Exceptions are thrown for cases when an assignment is found but a net with that name does not exist or if the default net name needs to be used, 'ignoreDefault' is false, but there is no net that matches the default net name specified.

This version is for diagnostic use and returns the set of connectDefs and/or assignments that were looked at in the hierarchy for resolving the assigned net via the 'spec' parameter. Clients can inspect the array which will consist of pointers to either connectDef or assignment objects in the occurrence domain.

Parameters:
spec An array that gets populated with pointers to design objects that indicate the assigned net specification
ignoreDefault Indicates if the default net name in the specification should be ignored
Exceptions:
oacCannotFindSpecAssignedDefOccNet 
oacCannotFindSpecAssignedOccNet 

oaOccNet * oaOccNet::getAssignedNet oaBoolean    ignoreDefault = false const
 

This function returns the occurence net assigned to this net as per the inherited connections specification.

NULL will be returned in the following cases:

  • There is no effective connectDef associated with this net
  • There is an effective connectDef but no matching assignment, and 'ignoreDefault' is true.

Exceptions are thrown for cases when an assignment is found but a net with that name does not exist or if the default net name needs to be used, 'ignoreDefault' is false, but there is no net that matches the default net name specified.

Parameters:
ignoreDefault Indicates if the default net name in the specification should be ignored
Exceptions:
oacCannotFindSpecAssignedDefOccNet 
oacCannotFindSpecAssignedOccNet 

oaOccBitNet * oaOccNet::getBit oaUInt4    bitIndex const
 

This function returns a pointer to the occNet that corresponds to the specified bitIndex bit of this net. For scalarNets, this function simply returns the net. For busNets, the busNetBit corresponding to the bitIndex position is returned. For example, if this net is a busNet "a[7:0]" and bitIndex is zero, this function will return the busNetBit corresponding to "a[7]". For bundleNets, a scalarNet or busNetBit is returned.

Parameters:
bitIndex Specifies which bit of the net to return.
Returns:
A pointer to an oaOccBitNet
Exceptions:
oacInvalidBusNetBitIndex 
oacInvalidNetIndex 

oaCollection oaOccNet::getGlobalNets   const
 

This function returns an oaOccNet collection consisting of all global nets with the same local name as this global net. An oacInvalidGlobalNet exception is thrown if this net is not a global net.

Exceptions:
oacInvalidGlobalNet 

oaCollection oaOccNet::getInstTerms oaUInt4    filterFlags = oacInstTermIterNotImplicit const
 

This function returns a collection of instTerms in this net. 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 bits flags are defined as follows:
  • oacInstTermIterNotImplicit: the collection will only contain instTerms that were explicitly created
  • oacInstTermIterEquivNets: the collection will also contain the instTerms on the nets that are equivalent to this one
Exceptions:
oacInstTermIterFlagNotApplicableOnNets 

oaOccMemNetCollection oaOccNet::getMemberNets oaBoolean    unique = true const
 

This function returns a collection of occurrence nets of which this occurrence net is a member. For example, if an occurrence hierarchy contains both scalar net a and bundle net x,y,a this collection for net a contains both of those nets.

The member net capability for occurrence nets exactly parallels the capability for oaNets in the block domain. See oaNet::getMemberNets for details on which nets are members of which other nets.

Parameters:
unique Specifies that only the preferred equivalent nets are included in the collection

oaModNet * oaOccNet::getModNet   const
 

This function returns a pointer to the corresponding net in the module domain. NULL will be returned if this net is an occurrence of a physical-only net.

Returns:
A pointer to an oaModNet

Reimplemented in oaOccBundleNet, oaOccBusNet, oaOccBusNetBit, and oaOccScalarNet.

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

This function returns the local name of this net in the specified nameSpace in the specified name string. The name is relative to the parent occurrence of this net.

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

void oaOccNet::getName oaName &    name const
 

This function returns the local name of this net within its parent occurrence.

Parameters:
name The returned net name

oaNet * oaOccNet::getNet   const
 

This function returns a pointer to the corresponding net in the block domain. NULL is returned if this occurrence net is not visible to the block domain.

Returns:
A pointer to an oaNet

Reimplemented in oaOccBundleNet, oaOccBusNet, oaOccBusNetBit, and oaOccScalarNet.

oaUInt4 oaOccNet::getNumBits   const
 

This function returns the number of bits in this net.

void oaOccNet::getPathName const oaNameSpace &    ns,
oaString &    pathName
const
 

This function returns the full path name of this net in the specified nameSpace in the specified pathName string. The pathName is relative to the top occurrence in the occurrence hierarchy containing this net.

Parameters:
ns The nameSpace used to map the name
pathName The returned path name

void oaOccNet::getPathName oaName &    pathName const
 

This function returns the full path name of this net, relative to the top occurrence in the occurrence hierarchy containing this net.

Parameters:
pathName The returned path name

oaSigType oaOccNet::getSigType   const
 

This function returns the signal type of this net, which is the signal type of the corresponding oaModNet.

oaCollection oaOccNet::getSingleBitMembers   const
 

This function returns a collection of single-bit member nets that are in this net. If this net is a single-bit net, the collection contains itself. If this net is a busNet, the collection contains all of the corresponding busNetBits.

oaCollection oaOccNet::getSpan   const
 

This function returns a collection of all occNets in the same span as this net. The span is defined as the set of nets connected across the module hierarchy. The span of nets does not cross the design hierarchy. The span of a net will change as the connectivity through occTerms and occInstTerms changes.

oaCollection oaOccNet::getTerms oaUInt4    filterFlags = oacTermIterAllNotHidden | oacTermIterNotImplicit const
 

This function returns a collection of terminals in this modNet. By default, the collection only contains explicit terminals associated with this net.

  • When oacTermIterAll is included in filterFlags, the collection will contain all terminals associated with this net, including implicit terminals.
  • When oacTermIterEquivNets is included in filterFlags, the collection will contain all terminals in the set of nets that are equivalent to this net.

Parameters:
filterFlags Specifies which types of terminals to include in the collection

oaBoolean oaOccNet::isEmpty   const
 

This function returns a boolean value that indicates if this net has any objects attached to it or associated with it.

oaBoolean oaOccNet::isGlobal   const
 

This function returns a boolean value that indicates if this net is designated as a global net. Global nets connect implicitly to all global nets of the same name no matter what cellView in a hierarchy they appear in.

oaBoolean oaOccNet::isImplicit   const
 

This function returns a boolean value that indicates if this occNet is an implicit net. Implicit nets only exist because they are components of an explicit busNet or bundleNet.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 


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

Return to top of page