Inheritance diagram for oaTerm:
Public Methods | |
void | destroy () |
oaBoolean | isImplicit () const |
oaBoolean | isInterface () const |
oaNet * | getNet (oaBoolean preferred=false) const |
oaBitTerm * | getBit (oaUInt4 bitIndex) const |
oaUInt4 | getNumBits () const |
oaTermType | getTermType () const |
oaUInt4 | getPosition () const |
void | getName (oaName &name) const |
void | getName (const oaNameSpace &ns, oaString &name) const |
void | moveToNet (oaNet *net) |
void | setTermType (oaTermType termType) |
void | setIsInterface (oaBoolean isInterface) |
void | setPosition (oaUInt4 position) |
void | unsetPosition () |
void | scalarize () |
oaOccTerm * | getOccTerm () const |
oaCollection< oaPin, oaTerm > | getPins () const |
oaCollection< oaRoute, oaTerm > | getConnRoutes () const |
oaCollection< oaOccTerm, oaTerm > | getOccTerms (const oaOccurrence *top) const |
Static Public Methods | |
oaTerm * | create (oaNet *net, const oaName &name, oaTermType termType=oacInputOutputTermType, oaBlockDomainVisibility view=oacInheritFromTopBlock) |
oaTerm * | find (const oaBlock *block, const oaName &name) |
oaTerm * | find (const oaBlock *block, oaUInt4 position) |
oaBoolean | isValidName (const oaNet *net, const oaName &name) |
oaUInt4 | getMaxPosition (const oaBlock *block) |
Public Types | |
enum | { dtIndex = oacTermDataType } |
All terminals are required to have a net even if there is nothing else attached to that net.
Multi-bit terminals represent a group of logical connections to import or export from the block. The terminals can consist of busTerms having a single root name with an index range, or they can include bundleTerms that are a more complex grouping of terminals. Multi-bit terminals can have overlapping names. For example, you can have the busTerms "addr<7:0>" and "addr<3:0>" as long as the overlapping bits are connected to the same nets.
All busTerms with the same root name are managed by a busTermDef. The busTermDef tracks the least significant and most significant bits of all the associated busTerms, all of the busTerms with the same base name, and all of the associated busTermBits.
BusTermBits are automatically created for each bit of a busTerm, if they do not already exist. BusTermBits are available for those applications performing scalarized connectivity traversal of the data.
BundleTerms can contain scalarTerms and busTerms. When a bundleTerm is created, the constituent scalarTerms and busTermBits are automatically created in addition to the bundleTerm itself. All automatically created terminal objects are considered implicit.
Names are associated with terminals. The various terminal 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, you can create a terminal using a name in the CDBA nameSpace. Another application can retrieve the terminal name in the Verilog nameSpace directly from the database.
oaTerm objects are always in the block domain. oaTerms may be physical-only terminals that are only in the block hierarchy, or they can be cross-domain terminals that directly correspond to an oaModTerm in the module domain and an oaOccTerm in the occurrence domain.
The oaTerm class can be observed by deriving from oaObserver<oaTerm>.
|
This function creates a terminal for the specified net. This function accepts a name object and creates the corresponding terminal. When creating a hidden term, the view argument must be set to oacExcludeFromModuleDomain.
|
|
This function destroys this terminal, removing it from the database. Calling this function on a term that is not explicit throws an exception.
|
|
This function searches the specified block for a terminal assigned to the specified position. The terminal is returned if found. Otherwise, NULL is returned. This function never returns a terminal that is hidden.
|
|
This function searches the specified block for a terminal with the specified name. The terminal is returned if found. Otherwise, NULL is returned. This function never returns a terminal that is hidden.
|
|
This function returns a pointer to the terminal that corresponds to the specified bitIndex bit of this terminal. For single-bit terminals, this function returns this terminal. For multi-bit terminals, a busTermBit is returned if this terminal is a busTerm, or a single-bit terminal is returned if this terminal is a bundleTerm. This function returns a pointer to the oaOccBitTerm that corresponds to the domain in which the multibit occTerm has a reflection.
|
|
This function returns a collection of routes that are connected to this terminal. Each route in the collection has this terminal as either its startConn, endConn, or both. |
|
This function returns the highest position occupied by a terminal in the specified block. If there are no terminals in the block or no position has been assigned a terminal, the value oacNullIndex is returned.
|
|
This function fills in name with the name of this terminal mapped to the specified nameSpace. |
|
This function fills out name with the name of this terminal. |
|
This function returns the net to which this terminal is attached. If preferred is true, the preferred equivalent net associated with the net will be returned instead.
|
|
This function returns the number of bits in this terminal. |
|
This function returns the occurrence term that is the reflection of this block term in the context of the top occurrence of the design that contains the term. |
|
This function returns a collection of occTerms on this term in the given top occurrence.
|
|
This function returns the collection of pins associated with this terminal. |
|
This function returns the position that this terminal is assigned to. The value oacNullIndex is returned if this terminal has not been assigned to a position. |
|
This function returns the terminal type of this terminal. |
|
This function returns a boolean value that indicates if this terminal is implicit. An implicit terminal is automatically created by the database as part of the explicit creation of a multi-bit terminal. |
|
This function returns a boolean indicating whether this terminal is an interface terminal. An interface terminal is one that was explicitly created by an application calling one of the create functions on the objects derived from oaTerm. Explicitly created terminals define the interface to the block that contains them. Note that an interface terminal that is scalarized is still considered an interface terminal. Implementation data may be added to the resulting bitTerms after scalarization, but the interface terminal remains as a reference to how the interface was originally defined. Further edits to the block may delete the interface terminal, indicating that the interface to the block has indeed changed. |
|
This function returns a boolean value that indicates if the specified name, associated with the specified net, is valid for a new oaTerm object. This function also returns true if the name corresponds to a term that was hidden but not overridden. |
|
This function moves this terminal to the specified net.
|
|
This function insures that the bitTerms associated with this terminal have been promoted to the explicit state so that they can support implementation data such as pins and routes. If this terminal is a multibit terminal, this function insures that all constituent bitTerms are promoted to the explicit state. The multibit terminal is then demoted to the implicit state so that no implementation data can be associated with it. When a terminal is demoted to the implicit state, associated implementation data is removed from it. The demotion of a multi-bit terminal has no affect on whether the terminal is an interface terminal (a terminal that was explicitly created defines the original interface for its corresponding block).
|
|
This function changes the isInterface value for this terminal. For more information, see oaTerm::isInterface.
|
|
This function assigns or changes the position of this terminal to the specified position. It is an error to assign a position to an implicit terminal or to a terminal that is visible only to the block domain. It is also an error to specify a position that is assigned to another terminal.
|
|
This function changes the terminal type for this terminal.
|
|
This function clears the position this terminal is assigned to, freeing the position so that another terminal can be assigned to it. Nothing is done if this terminal is not currently assigned a position.
|
|
|
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.