oaBusNet Class Reference

Inheritance diagram for oaBusNet:

oaNet oaBlockObject oaDesignObject oaObject


Public Methods

oaBusNetDefgetDef () const
oaUInt4 getStart () const
oaUInt4 getStop () const
oaUInt4 getStep () const
void getName (oaVectorName &name) const
void setBaseName (const oaScalarName &name)
void setRange (oaUInt4 start, oaUInt4 stop)
void getName (oaName &name) const
void getName (const oaNameSpace &ns, oaString &name) const

Static Public Methods

oaBusNet * create (oaBlock *block, const oaScalarName &baseName, oaUInt4 start, oaUInt4 stop, oaUInt4 step, oaSigType sigType=oacSignalSigType, oaBoolean isGlobal=false, oaBlockDomainVisibility view=oacInheritFromTopBlock)
oaBusNet * create (oaBlock *block, const oaVectorName &name, oaSigType sigType=oacSignalSigType, oaBoolean isGlobal=false, oaBlockDomainVisibility view=oacInheritFromTopBlock)
oaBusNet * create (oaBlock *block, const oaVectorBitName &name, oaSigType sigType=oacSignalSigType, oaBoolean isGlobal=false, oaBlockDomainVisibility view=oacInheritFromTopBlock)
oaBusNet * find (const oaBlock *block, const oaScalarName &baseName, oaUInt4 start, oaUInt4 stop, oaUInt4 step)
oaBoolean isValidName (const oaBlock *block, const oaScalarName &baseName, oaUInt4 start, oaUInt4 stop, oaUInt4 step)

Detailed Description

The oaBusNet class implements a net that can represent one or more bits that are associated with a common base name and vector range specification. A busNet has a corresponding busNetDef (refer to oaBusNetDef class) that manages all busNets that share the same base name. Once a busNet is created, the associated bus net bits are also created as implicit single bit nets if they do not exist already. Refer to oaNet for a general description of implicit nets.

Bus nets are named by the oaBusName convention, that is, it has a baseName and the start, stop, step value. A bus net object can be viewed as a collection of single bit logical connections.

An example of oaBusNet--"A[0:6:2]"--It is a bus net consisting of 4 oaBusNetBit objects: A[0] A[2] A[4] A[6].

The related oaBusNetDef object is what the database use to manage bus nets with the same base name.


Member Function Documentation

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

This function creates a oaBusNet with the specified attributes, using an oaVectorBitName as input to create a single-bit oaBusNet. If the vectorBitName is hierarchical, and the path already exists, and no oaOccNet with this name exists in the specified occurrence, the net is created in the specified occurrence.

Parameters:
block The block in which to create the busNet
name The base name and bit index to use to create the busNet
sigType The signal type of the busNet
isGlobal Specifies if this is a global net
view Specifies whether this net is visible in the module domain
Returns:
A pointer to an oaBusNet
Exceptions:
oacBusNetNameMatchesAutoName 
oacBusNetBaseNameMatchesScalarName 
oacNetExists 

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

This function creates an oaBusNet with the specified attributes using an oaVectorName as input to create a multi-bit oaBusNet. If the vectorName is hierarchical, and the path already exists, and no oaOccNet with this name exists in the specified occurrence, the net is created in the specified occurrence. Use one of the other create() functions to create single-bit nets.

Parameters:
block The block in which to create the busNet
name The base name, start, stop, and step values to use to create the busNet
sigType The signal type of the busNet
isGlobal Specifies if this is a global busNet
view Specifies whether this net is visible in the module domain
Returns:
A pointer to an oaBusNet
Exceptions:
oacBusNetNameMatchesAutoName 
oacBusNetBaseNameMatchesScalarName 
oacNetExists 

oaBusNet * oaBusNet::create oaBlock *    block,
const oaScalarName &    baseName,
oaUInt4    start,
oaUInt4    stop,
oaUInt4    step,
oaSigType    sigType = oacSignalSigType,
oaBoolean    isGlobal = false,
oaBlockDomainVisibility    view = oacInheritFromTopBlock
[static]
 

This function creates a single-bit or multi-bit oaBusNet with the specified attributes. The specified baseName and start, stop, and step indices are first checked to verify they are legal and do not specify an existing oaBusNet. If the baseName is hierarchical, and the path already exists, and no oaOccNet with this name exists in the specified occurrence, the net is created in the specified occurrence.

Parameters:
block The block in which to create the busNet
baseName The base name for the busNet
start The starting index of the busNet
stop The stopping index of the busNet
step The index increment value from start to step; step should be greater than zero
sigType The signal type of the busNet
isGlobal Specifies if this is a global busNet
view Specifies whether this net is visible in the module domain
Returns:
A pointer to the oaBusNet created
Exceptions:
oacBusNetNameMatchesAutoName 
oacBusNetBaseNameMatchesScalarName 
oacNetExists 

oaBusNet * oaBusNet::find const oaBlock *    block,
const oaScalarName &    baseName,
oaUInt4    start,
oaUInt4    stop,
oaUInt4    step
[static]
 

This function searches the specified block for a oaBusNet with the specified baseName and start, stop, step indices. The oaBusNet is returned if found. Otherwise, NULL is returned. The path portion of the name must specify the path to an existing occurrence in the design. A hierarchical name is considered an alias that identifies an oaOccNet in the occurrence domain. If the specified name is hierarchical, the return value is the canonical net in the block domain for the specified alias.

Parameters:
block The block in which to find the busNet
baseName The base name for the net
start The starting index of the net
stop The stopping index of the net
step The index increment value from start to step; step should be greater than zero
Returns:
A pointer to the oaBusNet

oaBusNetDef * oaBusNet::getDef   const
 

This function returns the busNetDef for this busNet.

Returns:
A pointer to an oaBusNetDef

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 oaBusNet::getName oaVectorName &    name const
 

This function returns the name of this oaBusNet.

Parameters:
name The name of the oaBusNet to return

oaUInt4 oaBusNet::getStart   const
 

This function returns the starting index for this oaBusNet. The bit order of an oaBusNet is implied by the values returned by getStart and getStop.

Returns:
The starting index of this busNet

oaUInt4 oaBusNet::getStep   const
 

This function returns the step value for this busNet.

Returns:
The step value for this busNet

oaUInt4 oaBusNet::getStop   const
 

This function returns the ending index for this oaBusNet. The bit order of an oaBusNet is implied by the values returned by getStart and getStop.

Returns:
The ending index for this busNet

oaBoolean oaBusNet::isValidName const oaBlock *    block,
const oaScalarName &    baseName,
oaUInt4    start,
oaUInt4    stop,
oaUInt4    step
[static]
 

This function returns a boolean value indicating whether the specified name is valid for a new oaBusNet in the specified block. False is returned if the specified baseName is hierarchical and an oaOccNet with the specified name already exists, or if an oaOccScalarNet with the same baseName already exists. False is also returned if the specified baseName is hierarchical, and there is no occurrence with that path name. These checks are done in the occurrence given by the path portion of the baseName not in the top occurrence.

Parameters:
block The block to search
baseName The base bus net name
start The starting index of the net
stop The stopping index of the net
step The index increment value from start to step; step should be greater than zero

void oaBusNet::setBaseName const oaScalarName &    name
 

This function changes the base name of this oaBusNet. If the specified name is hierarchical, and the path is identical to the current path name of the busNet, the baseName of the corresponding oaOccNet is set.

Parameters:
name The base name for the net
Exceptions:
oacBusNetBaseNameMatchesScalarName 
oacBusNetNameMatchesAutoName 
oacCannotRenameToImplicitBusNet 
oacCannotSetNameOfImplicitNet 
oacCannotSetNameOfNetInBundleNet 
oacNetExists 
oacNetSetBaseNameConflictsInTerms 
oacNetSetBaseNameConflictsInInstTerms 
oacHierPathDoesNotExist 
oacHierPathCrossDesign 
oacMismatchedHierPath 

void oaBusNet::setRange oaUInt4    start,
oaUInt4    stop
 

This function changes the vector range for this busNet. The new number of bits implied by the specified start and stop bits must match the current number of bits. This restriction is necessary so that any terminals or instance terminals that are associated with this busNet are not affected.

Parameters:
start The starting index of the net
stop The stopping index of the net
Exceptions:
oacCannotRenameToImplicitBusNet 
oacCannotSetRangeOfImplicitBus 
oacCannotSetRangeOfBusInBundleNet 
oacInvalidBusStartStopRange 
oacNetExists 
oacNetSetRangeConflictsWithOtherNets 


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

Return to top of page