oaBundleNet Class Reference

Inheritance diagram for oaBundleNet:

oaNet oaBlockObject oaDesignObject oaObject


Public Methods

oaUInt4 getNumMembers () const
oaUInt4 getRepeat (oaUInt4 index) const
oaNetgetMember (oaUInt4 index) const
void getName (oaBundleName &name) const
oaCollection< oaNet, oaBundleNet > getMembers () const
oaCollection< oaOccNet, oaBundleNet > getOccMembers () const
void getName (oaName &name) const
void getName (const oaNameSpace &ns, oaString &name) const

Static Public Methods

oaBundleNet * create (oaBlock *block, const oaBundleName &name, oaSigType sigType=oacSignalSigType, oaBoolean isGlobal=false, oaBlockDomainVisibility view=oacInheritFromTopBlock)
oaBundleNet * find (const oaBlock *block, const oaBundleName &name)
oaBoolean isValidName (oaBlock *block, const oaBundleName &name)

Detailed Description

This class implements a multi-bit net composed of one or more scalar nets, bus nets, or a combination of both. When an oaBundleNet is created, all member nets specified as part of the bundle name expression are added to it. The constituent scalar nets and bus nets are automatically created as implicit nets if they do not already exist. Refer to oaNet documentation for a general description of implicit nets.

An oaBundleNet object can be viewed as a collection of single bit net members and represents a collection of logical connections. The index and ordering of each member of a bundle net is indicated by the bundle name representation (refer to oaBundleName documentation for general description).

For example, a bundle net with the name of '2*A,2*B[5],2*C[1:0]' in the oaNative namespace consists of 8 single bit members: A A B[5] B[5] C[1] C[0] C[1] and C[0]. The single bit net 'C[1]' is the 5th member of that bundle net, it is also the 7th member because the busName representation 'C[1:0]' is set to have a repeat value of 2.


Member Function Documentation

oaBundleNet * oaBundleNet::create oaBlock *    block,
const oaBundleName &    name,
oaSigType    sigType = oacSignalSigType,
oaBoolean    isGlobal = false,
oaBlockDomainVisibility    view = oacInheritFromTopBlock
[static]
 

This function creates an oaBundleNet object in the specified block with the specified attributes. The name specifies the members of the oaBundleNet object and these member nets are automatically created if they do not already exist in the specified block. If all the members of the specified bundleName are hierarchical, they have the same path, and the path already exists in the occurrence domain, the net is created in the occurrence specified by the path.

An exception is thrown if an oaBundleNet object with the specified name already exists.

Parameters:
block The block in which to create the oaBundleNet
name The name of this oaBundleNet. The members of the BundleNet are derived from the name.
sigType The signal type to associate with this net
isGlobal Specifies if this is a global net
view Specifies whether this net is visible in the module domain
Returns:
A pointer to an oaBundleNet
Exceptions:
oacNetExists 
oacHierPathDoesNotExist 
oacHierPathCrossDesign 
oacDiffHierPathOfBundleMembers 

oaBundleNet * oaBundleNet::find const oaBlock *    block,
const oaBundleName &    name
[static]
 

This function searches the specified block for an oaBundleNet with the specified name. If a bundle with the specified name cannot be found directly, and all the members of the name have the same hierarchical path, the canonical net of the bundle reflected in the block domain is returned. A hierarchical name is considered an alias that identifies an oaOccNetBundle in the occurrence domain.

Parameters:
block The block to search
name The name of the oaBundleNet to find
Returns:
A pointer to an oaBundleNet; NULL is returned if not found

oaNet * oaBundleNet::getMember oaUInt4    memIndex const
 

This function returns the specified member of this net at the specified bundle member index.

Parameters:
memIndex The bundle member index of the net to be returned.
Returns:
A pointer to an oaNet
Exceptions:
oacInvalidBundleNetMemberIndex 

oaCollection< oaNet, oaBundleNet > oaBundleNet::getMembers   const
 

This function returns a collection of the member nets in this oaBundleNet.

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

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

void oaNet::getName oaName &    name const
 

This function returns the name of this net in the name argument.

void oaBundleNet::getName oaBundleName &    name const
 

This function returns the name of this oaBundleNet

Parameters:
name The name of the oaBundleNet returned

oaUInt4 oaBundleNet::getNumMembers   const
 

This function returns the number of members in this oaBundleNet. Each member net in an oaBundleNet can repeat.

Example: Assume an oaBundleNet with a oaCdbaNS bundleName of "a,2*b,c<5:0>". oaBundleNet::getNumMembers will return 3.

oaCollection< oaOccNet, oaBundleNet > oaBundleNet::getOccMembers   const
 

This function returns a collection of occNets in this oaBundleNet.

oaUInt4 oaBundleNet::getRepeat oaUInt4    memIndex const
 

This function returns the repeat count for the specified member of this oaBundleNet.

For example, for oaBundleNet a,b,c, the repeat count for each member is one. An oaBundleNet x,100*y[0:1] contains two members, and the repeat count for the second member is 100. The number of bits for the net is 201.

Parameters:
memIndex The member number for which to return the repeat count
Returns:
An unsigned value indicating the repeat count for the specified member of the oaBundleNet
Exceptions:
oacInvalidBundleNetMemberIndex 

oaBoolean oaBundleNet::isValidName oaBlock *    block,
const oaBundleName &    name
[static]
 

This function returns a boolean value that indicates whether the specified name is valid for a new oaBundleNet in the specified block. The return value is true if all the members specifed by the given bundle name are in the same occurrence, and a bundle net combining those oaOccNets does not already exist. If the name of any member is hierarchical, and there is no occurrence with that path name, the function returns false.

Parameters:
block The block in which to check the oaBundleNet name
name The name of the new oaBundleNet that might be created


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

Return to top of page