oaBitTerm Class Reference

Inheritance diagram for oaBitTerm:

oaTerm oaBlockObject oaDesignObject oaObject oaBusTermBit oaScalarTerm


Public Methods

void getAntennaData (oaAntennaData &data, oaAntennaModel model=oacDefaultAntennaModel) const
oaTermConnectDefgetConnectDef () const
oaBitTerm * getGroundSensitivity () const
oaPinConnectMethod getPinConnectMethod () const
oaRouteMethod getRouteMethod () const
oaBitTerm * getSupplySensitivity () const
void setMustJoin (const oaBitTerm *term)
void unsetMustJoin ()
void setGroundSensitivity (const oaBitTerm *term)
void setPinConnectMethod (oaPinConnectMethod method)
void setRouteMethod (oaRouteMethod routeMethod)
void setSupplySensitivity (const oaBitTerm *term)
void setAntennaData (const oaAntennaData &data)
void unsetAntennaData (oaAntennaModel model=oacDefaultAntennaModel)
oaBoolean isAntennaDataSet (oaAntennaModel model=oacDefaultAntennaModel) const
void hide ()
oaCollection< oaBitTerm, oaBitTerm > getMustJoinTerms () const

Detailed Description

The oaBitTerm class is the base class for single-bit terminals that are part of the design's physical description.

You can create associate a connection definition, oaTermConnectDef, with a bitTerm.


Member Function Documentation

void oaBitTerm::getAntennaData oaAntennaData &    data,
oaAntennaModel    model = oacDefaultAntennaModel
const
 

This function retrieves the antennaData associated with this terminal for the specified antennaModel. The given data is filled in if the terminal has the specified antennaData. If the terminal has no corresponding antennaData, data is set to have zero values.

Parameters:
data Returns the antenna data associated with this terminal
model Specifies which antenna data model to retrieve

oaTermConnectDef * oaBitTerm::getConnectDef   const
 

This function returns the connection definition associated with this terminal, if a connection definition exists. If the terminal does not have a connection definition, NULL is returned.

Returns:
A pointer to an oaTermConnectDef if it exists, otherwise NULL

oaBitTerm * oaBitTerm::getGroundSensitivity   const
 

This function returns the ground terminal to which this terminal is sensitized. If no ground sensitivity is set on this terminal, NULL is returned.

Returns:
A pointer to an oaBitTerm

oaCollection oaBitTerm::getMustJoinTerms   const
 

This function returns the collection of terminals on this block that must be connected at a higher level of hierarchy to this terminal. The collection does not include this terminal, and will be empty if this terminal does not belong to a set of must-join terminals. See setMustJoin() for more information about MustJoin terminals.

oaPinConnectMethod oaBitTerm::getPinConnectMethod   const
 

This function returns the pin connection method for this terminal.

oaRouteMethod oaBitTerm::getRouteMethod   const
 

This function returns the route method of this terminal.

oaBitTerm * oaBitTerm::getSupplySensitivity   const
 

This function returns the supply terminal to which this terminal is sensitized. If no supply sensitivity is set on this terminal, NULL is returned.

Returns:
A pointer to an oaBitTerm

void oaBitTerm::hide  
 

This function removes the term from the block domain. The term does not appear in any block domain collections, and it is not returned by any find() functions. The result of this function is not the same as destroy() since the corresponding terms in the module domain are unaffected by hide().

A term must be explicit to be hidden and it must have a corresponding term in the module domain. Hiding an explicit single-bit member of a scalarized multi-bit term hides all the implicit multi-bit owners of the term; however the member bits of the owner terms are not hidden.

Exceptions:
oacCannotBlockOverrideNonScalarizedDesign 
oacCannotHideImplicitTerm 
oacCannotHideBlockOnlyTerm 
oacCannotBlockOverrideNetSignalType 

oaBoolean oaBitTerm::isAntennaDataSet oaAntennaModel    model = oacDefaultAntennaModel const
 

This function returns a boolean indicating if this terminal has any antennaData associated with it for the specified oaAntennaModel.

Parameters:
model Specifies the antenna model to query data for.

void oaBitTerm::setAntennaData const oaAntennaData &    data
 

This function adds the given antennaData to this terminal. If this terminal already has corresponding antennaData, it is replaced. An exception is thrown if the terminal is implicit.

Parameters:
data antenna data object to set on this terminal
Exceptions:
oacCannotSetAntennaDataOnImplicitTerm 

void oaBitTerm::setGroundSensitivity const oaBitTerm *    term
 

This function sets the ground terminal to which this terminal is sensitized. A hierarchy of sensitivity terminals is not allowed.

Parameters:
term The terminal to sensitize this terminal to.
Exceptions:
oacTermSensitivityTermNotInSameBlock 
oacCannotSensitizeImplicitTerm 

void oaBitTerm::setMustJoin const oaBitTerm *    term
 

This function specifies that this terminal must be connected at a higher level of hierarchy to the specified bit terminal. It adds this bit terminal to a set of MustJoin terminals where every terminal in the set can be accessed by oaTerm::getMustJoinTerms from every other terminal in the set.

For example, take 3 terminals on distinct nets: termA, termB, and termC. If a caller calls setMustJoin from termA with termB as an argument, and calls it from termC with termB as an argument, then all 3 of these terminals are in the MustJoin set. The collection returned by getMustJoinTerms() from termA includes termB and termC. The collection from termB includes termA and termC and the collection from termC includes termA and termB.

No two MustJoin terminals in a set can be on the same net or on two equivalent nets. In other words, all the nets with terminals in a MustJoin set must be disjoint. This also implies, though OpenAccess does not check this specific situation, that there should not be 2 different MustJoin sets that touch any given pair of nets. (It would require two nets that both have multiple terminals to create this illegal situation).

MustJoins are used in standard cells where there is not enough room to make the desired connection in the design layers that are used for the standard cell design. The connection must be made by a router that will use other layers - usually a higher metal layer - for that purpose.

In the case of MustJoins on terminals of nets with multiple terminals, the MustJoin indicates the specific terminals that are intended to be connected. The router that satisfies the MustJoin should not use a different terminal on the net unless it is capable of determining that its choice will be electrically correct.

Parameters:
term The terminal to establish a must-join relationship with.
Exceptions:
oacTermMustJoinTermNotInSameBlock 
oacTermMustJoinCannotBeImplicit 
oacTermMustJoinSameNet 

void oaBitTerm::setPinConnectMethod oaPinConnectMethod    method
 

This function sets the pin connection method for this terminal.

Parameters:
method The new oaPinConnectMethod for this terminal.
Exceptions:
oacCannotSetPinConnectMethodOnImplicitTerm 

void oaBitTerm::setRouteMethod oaRouteMethod    routeMethod
 

This function changes the route method for this terminal.

Parameters:
routeMethod The new oaRouteMethod value for this terminal.
Exceptions:
oacCannotSetRouteMethodOnImplicitTerm 

void oaBitTerm::setSupplySensitivity const oaBitTerm *    term
 

This function sets the supply terminal to which this terminal is sensitized. A hierarchy of sensitivity terminals is not allowed.

Parameters:
term The terminal to sensitize this terminal to.
Exceptions:
oacTermSensitivityTermNotInSameBlock 
oacCannotSensitizeImplicitTerm 

void oaBitTerm::unsetAntennaData oaAntennaModel    model = oacDefaultAntennaModel
 

This function removes the antennaData associated with this terminal that corresponds to the specified antennaModel. If this terminal has no antennaData corresponding to the specified model, this function does nothing.

Parameters:
model antenna model whose data, if any, will be removed from this term
Exceptions:
oacCannotSetAntennaDataOnImplicitTerm 

void oaBitTerm::unsetMustJoin  
 

This function removes this terminal from the set of terminals that must be externally connected. If this terminal is not part of such a set of terminals an exception is thrown.

Exceptions:
oacTermHasNoMustJoinTerm 
oacTermMustJoinCannotBeImplicit 


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

Return to top of page