oaModBusTermDef Class Reference

Inheritance diagram for oaModBusTermDef:

oaModObject oaDesignObject oaObject


Public Methods

void destroy ()
oaUInt4 getMinIndex () const
oaUInt4 getMaxIndex () const
oaUInt4 getNumBits () const
void getName (oaScalarName &name) const
void getName (const oaNameSpace &ns, oaString &name) const
oaBitOrder getBitOrder () const
oaBoolean isImplicit () const
void setBitOrder (oaBitOrder order)
oaCollection< oaModBusTerm, oaModBusTermDef > getBusTerms () const
oaCollection< oaModBusTermBit, oaModBusTermDef > getBusTermBits () const

Static Public Methods

oaModBusTermDef * create (const oaModule *module, const oaScalarName &name, oaBitOrder order)
oaModBusTermDef * find (const oaModule *module, const oaScalarName &name)

Public Types

enum  { dtIndex = oacBusTermDefDataType }

Detailed Description

The oaModBusTermDef class defines an object that manages all oaModBusTerms with the same base name in the module domain. An oaModBusTermDef also tracks the least significant and most significant bits of all of its oaModBusTerms, as well as all of the corresponding oaModBusTermBits.

A bus definition can be 'sparse' (have missing bits). Busses do not have to start or end at zero. For example, a<22:25> is a legal bus name. Bus indexes must be non-negative.

An oaModBusTermDef is automatically created if necessary whenever applications create oaModBusTerms. Implicitly created oaModBusTermDefs have no bitOrder. Applications may explicitly create an oaModBusTermDef in order to specify that it has a specific bitOrder.

The bit order of an explicit oaModBusTermDef is independent of the order within individual oaModBusTerms with the same base name. Verilog requires a single wire declaration for a given base name, and the range of that declaration covers all of the bit indices used by the sub-ranges that correspond to oaModBusTerms.

Implicitly created busTerm definitions are automatically destroyed when the last busTerm with the same base name is destroyed. Explicitly created busTerm definitions must be explicitly destroyed.

oaModBusTermDef, oaOccBusTermDef, and oaBusTermDef each manage the bus terminals on a different kind of master, where in each case the master represents a level of hierarchy in the design.

For oaModBusTermDef, the master is an oaModule, and each module in a design will have a set of zero or more modBusTermDefs. For oaOccBusTerm, the master is an oaOccurrence.

For oaBusTermDef, the master is an oaBlock, and the top block for the design will have a set of zero or more modBusTermDefs. Typically, many of the oaBusTermDefs on the top oaBlock have a corresponding oaModBusTermDef on the top oaModule. All of the oaBusTerms on the top oaBlock have a corresponding oaOccBusTerm on the top oaOccurrence.

OpenAccess requires a consistent definition of bus terminals shared between the top module and the top block in a design. When an oaBusTerm has been created that is not visible in the module domain, it is not possible to create an oaModBusTerm that uses the same base name.


Member Function Documentation

oaModBusTermDef * oaModBusTermDef::create const oaModule *    module,
const oaScalarName &    name,
oaBitOrder    order
[static]
 

This function creates an oaModBusTermDef in the specified block with the given base name and bit order. An exception is thrown if an oaModBusTermDef already exists with the specified name. Explicitly creating an oaModBusTermDef also means that the oaModBusTermDef be explicitly destroyed.

Parameters:
module The module to create the oaModBusTermDef object in
name The base name for the oaModBusTermDef
order The bit order for the oaModBusTermDef
Exceptions:
oacBusTermDefAlreadyExists 

void oaModBusTermDef::destroy  
 

This function destroys this oaModBusTermDef, removing it from the database. An exception is thrown if the oaModBusTermDef is implicit or if there are still oaModBusTerms associated with it.

Exceptions:
oacCannotDestroyImplicitBusTermDef 
oacCannotDestroyBusTermDefWithTerms 

oaModBusTermDef * oaModBusTermDef::find const oaModule *    module,
const oaScalarName &    name
[static]
 

This function searches the specified design for a busTermDef with the specified name. The busTermDef is returned if found. Otherwise, NULL is returned.

oaBitOrder oaModBusTermDef::getBitOrder   const
 

This function returns the bitOrder associated with this oaModBusTermDef object.

oaCollection oaModBusTermDef::getBusTermBits   const
 

This function returns a collection of busTermBits in this busTermDef.

oaCollection oaModBusTermDef::getBusTerms   const
 

This function returns a collection of busTerms in this busTermDef.

oaUInt4 oaModBusTermDef::getMaxIndex   const
 

This function returns the largest bit number in use for this oaModBusTermDef object. This is the largest index used across all oaModBusTerms associated with this oaModBusTermDef object.

oaUInt4 oaModBusTermDef::getMinIndex   const
 

This function returns the smallest bit number in use for this oaModBusTermDef object. This is the smallest index used across all oaModBusTerms associated with this oaOccBusTermDef object.

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

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

Parameters:
ns The nameSpace to use when getting the name string
name Returns the string name of this oaModBusTermDef

void oaModBusTermDef::getName oaScalarName &    name const
 

This function returns the name of this oaModBusTermDef object.

Parameters:
name The scalar name in which to return the name of this oaModBusTermDef

oaUInt4 oaModBusTermDef::getNumBits   const
 

This function returns the number of bits covered by the busses in this oaModBusTermDef. The number of bits is equal to abs(maxIndex - minIndex) + 1; it is not necessarily the number of busTermBits present in this busTermDef. To get the number of busTermBits in this busTermDef, use oaModBusTermDef::getBusTermBits().getCount().

void oaModBusTermDef::isImplicit   const
 

This function returns a boolean indicating whether this oaModBusTermDef was implicitly created or not.

void oaModBusTermDef::setBitOrder oaBitOrder    order
 

This function changes the bitOrder value associated with the oaModBusTermDef. An exception is thrown if this busTermDef was implicitly created.

Parameters:
order The new bitOrder value for this busTermDef
Exceptions:
oacBitOrderBusTermDefImplicit 


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 


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

Return to top of page