10
CDBA Inherited Connection Functions
Inherited connections provide an extension to the connectivity model. Inherited connections allow you to create global signals and to override the names for global signals for selected branches of the design hierarchy. The flexibility of inherited connections allows you to
- Use multiple power supplies in a design
- Override substrate connections
- Use parameterized power and ground symbols
For a description of connectivity and naming conventions for inherited connections in Composer, and for a description of how to add and edit net expressions in a design, see the
This chapter gives you database API functions for inherited connections (presented alphabetically within each section), and examples for some of these functions. These functions cover the following general relationships:
Signals and Inherited Net Expressions
The following functions primarily involve the relationship between signals and inherited net expressions.
-
dbCreateSigNetExpr -
dbCVHasInheritedSig -
dbDeleteCVInheritedSigs -
dbDeleteSigNetExpr -
dbGenInheritedSig -
dbGetSigNetExpr -
dbIsSigInherited -
dbIsValidSigNetExpr -
dbParseSigNetExpr -
dbReplaceSigNetExpr -
dbStartGenInheritedSig
dbCreateSigNetExpr
Boolean
dbCreateSigNetExpr( dbSigId sigId, String netExpression );
Description
Given an inherited net expression in netExpression and a signal identifier in sigId, this function attaches the inherited net expression to the given signal.
This function checks the syntax of the given net expression, but it does not detect whether the given default net name is global or whether the evaluation of the property results in a valid scalar net name.
This function also checks whether the inherited net expressions on the given signal and the formal terminal signal is connected to match or not.
Arguments
Return Values
dbCVHasInheritedSig
Boolean
dbCVHasInheritedSig( dbCellViewId cellViewId );
Description
Given a cellview identifier in cvId, this function checks if there is any inheriting signal in the given cellview.
Arguments
|
The identifier of a given cellview which is checked for inheriting signals. |
Return Values
|
TRUE is returned if there is any inheriting signal in the given cellview. FALSE is returned if there is none or if the given cellview cannot be accessed. |
dbDeleteCVInheritedSigs
Boolean
dbDeleteCVInheritedSigs( dbCellViewId cellViewId );
Description
Given a cellview identifier in cellViewId, this function deletes inherited net expressions from all inherited signals in the given cellview.
Arguments
|
The identifier of a given cellview in which signals and their inherited net expressions are deleted. |
Return Values
dbDeleteSigNetExpr
Boolean
dbDeleteSigNetExpr( dbSigId sigId );
Description
Given a signal identifier in sigId, this function deletes any existing inherited net expression associated with this signal.
Arguments
|
The identifier of the signal to which an inherited net expression is associated. |
Return Values
dbGenInheritedSig
Boolean
dbGenInheritedSig( dbGenStateId pState, dbSigId sigId, );
Description
This function returns the identifier of a signal whose connection is inherited.
Arguments
|
The state indicating whether there are inherited signals to check. |
|
Return Values
|
TRUE is returned if the generator functions correctly. FALSE is returned when there are no more inherited signals. |
dbGetSigNetExpr
String
dbGetSigNetExpr( dbSigId sigId, );
Description
Retrieves the inherited net expression associated with the signal.
Arguments
|
The identifier of the signal used to retrieve the inherited net expression associated with the signal. |
Return Values
dbIsSigInherited
Boolean
dbIsSigInherited( dbSigId sigId );
Description
Given a signal identifier in sigId, this function checks if there is an inherited net expression attached to it.
Arguments
|
The identifier of the signal which is checked for an inherited net expression. |
Return Values
dbIsValidSigNetExpr
Boolean
dbIsValidSigNetExpr( String netExpression );
Description
Given an inherited net expression in netExpression, this function checks whether its syntax is valid or not. This function does as much local checking as possible but it does not detect whether the given default net name is global nor whether the evaluation of the property results in a valid net name.
Arguments
Return Values
|
The function returns TRUE if the syntax is valid. Otherwise, it returns FALSE. |
dbParseSigNetExpr
Boolean
dbParseSigNetExpr( String inheritedNetExpression, dbPropScope *searchScope, String *propName, String *formatString, String *defaultNetName );
Description
Given an inherited net expression, this function parses the expression to return the individual components of the expression which include the search scope, the lookup property name, the format string and the default net name.
Arguments
Return Values
Example
Given the net expression found in the schematic view of the cell inv, [@vdd:%:vdd!], this function returns:
searchScope dbcHierarchy
propName “vdd”
formatString “%”;
defaultNetName “vdd!”
dbReplaceSigNetExpr
Boolean
dbReplaceSigNetExpr( dbSigId sigId, String netExpression );
Description
Given a signal identifier in sigId, this function replaces any existing inherited net expression already associated with the signal. If none exists, the given netExpression is attached to the given signal of sigId.
This function checks the syntax of the given net expression, but it does not detect whether the given default net name is global or whether the evaluation of the property results in a valid scalar net name. This function also checks whether the inherited net expressions on the given signal and the formal terminal signal is connected to match or not.
Arguments
Return Values
dbStartGenInheritedSig
dbGenStateId
dbStartGenInheritedSig( dbCellViewId cellViewId );
Description
This function starts up the generator for all signals which have inherited net expressions attached to them in the given cellview.
Arguments
|
The identifier of the cellview containing signals with inherited net expressions attached. |
Return Values
|
The identifier of the newly started-up generator is returned. NULL is returned if there are no inherited signals in the given cellview. |
Terminals and Inherited Net Expressions
The following functions primarily involve the relationship between terminals and inherited net expressions.
-
dbCreateTermNetExpr -
dbCVHasInherited Term -
dbDeleteCVInheritedTerms -
dbDeleteTermNetExpr -
dbGenInheritedTerm -
dbGetTermNetExpr -
dbIsTermInherited -
dbIsValidTermNetExpr -
dbParseTermNetExpr -
dbReplaceTermNetExpr -
dbStartGenInheritedTerm
dbCreateTermNetExpr
Boolean
dbCreateTermNetExpr( dbTermId termId, String netExpression );
Description
Given an inherited net expression in netExpression and a terminal identifier in termId, this function attaches the inherited net expression to the given terminal.
This function checks the syntax of the given net expression, but it does not detect whether the given default net name is global or whether the evaluation of the property results in a valid scalar net name.
This function also checks whether the inherited net expressions on the given terminal and the formal terminal signal is connected to match or not.
Arguments
Return Values
dbCVHasInherited Term
Boolean
dbCVHasInheritedTerm( dbCellViewId cellViewId );
Description
Given a cellview identifier in cellViewId, this function checks whether there is any inherited terminal in the given cellview.
Arguments
Return Values
|
TRUE is returned if there are inherited terminals in the given cellview. FALSE is returned if there is none or if the given cellview cannot be accessed. |
dbDeleteCVInheritedTerms
Boolean
dbDeleteCVInheritedTerms( dbCellViewId cellViewId );
Description
Given a cellview identifier in cellViewId, this function deletes inherited net expressions from all inherited terminals in the given cellview.
Arguments
Return Values
dbDeleteTermNetExpr
Boolean
dbDeleteTermNetExpr( dbTermId termId );
Description
This function removes from the given terminal designated by termId the inherited net expression associated with it. Once removed, the given terminal is no longer an inherited terminal.
Arguments
|
The identifier of the terminal associated with the inherited net expression. |
Return Values
dbGenInheritedTerm
Boolean
dbGenInheritedTerm( dbGenStateId pState, dbTermId *termId );
Description
This function returns the identifier of a terminal whose connection is inherited in the current cellview.
Arguments
|
The indication of whether an inherited terminal is identified. |
|
|
The identifier of a terminal whose connection is inherited in the current cellview. |
Return Values
|
The identifier of a terminal whose connection is inherited is returned in |
dbGetTermNetExpr
String
dbGetTermNetExpr( dbTermId termId );
Description
Given a terminal identifier in termId, this function retrieves the inherited net expression associated with the given terminal.
Arguments
|
The identifier of the terminal associated with the inherited connection. |
Return Values
|
The inherited net expression, if found, is returned. NULL is returned if none is found. The inherited net expression is stored as a permanent string and should not be freed by the calling function. |
dbIsTermInherited
Boolean
dbIsTermInherited( dbTermId termId );
Description
Given a terminal identifier in termId, this function checks whether there is an inherited net expression attached to the given terminal.
Arguments
|
The identifier of the terminal being checked for an inherited net expression attached. |
Return Values
dbIsValidTermNetExpr
Boolean
dbIsValidTermNetExpr( String netExpression );
Description
Given an inherited net expression in netExpression associated with a terminal, this function checks whether its syntax is valid or not. This function does as much local checking as possible, but it does not detect whether the given default net name is global or whether the evaluation of the property results in a valid net name.
Arguments
Return Values
|
TRUE is returned if the syntax of the given implicit terminal expression is valid; otherwise, FALSE is returned. |
Example
[@bulk:%:gnd!] is legal syntax.
[@bulk:%] is illegal since the required default net name is missing.
[&bulk:%:bulk!] is illegal because the & character is not a valid search scope designator.
dbParseTermNetExpr
Boolean
dbParseTermNetExpr( String inheritedNetExpression, dbPropScope *searchScope, String *propName, String *formatString, String *defaultNetName );
Description
Given an inherited net expression attached to a terminal, this function parses the expression to return the individual components of the expression which include the search scope, the lookup property name, the format string and the default net name.
The enum in CDBA for the search scope is:
“@” dbcHierarchy
Arguments
Return Values
Example
Given the net expression found in the schematic view of the cell inv, [@vdd:%:vdd!], this function returns:
searchScope dbcHierarchy
propName "vdd"
formatString "%";
defaultNetName "vdd!"
In the case where there are prefix and suffix in the format string, as in [@gnd:my%:gnd!], this function returns:
searchScope dbcHierarchy
propName "gnd"
formatString "%";
defaultNetName "gnd!"
dbReplaceTermNetExpr
Boolean
dbReplaceTermNetExpr( dbTermId termId, String netExpression );
Description
Given a terminal identifier in termId, this function replaces any existing inherited net expression already associated with the terminal. If none exists, the given netExpression is attached to the given terminal.
This function does as much local checking as possible on the syntax of the given inherited net expression, but it does not detect whether the given default net name is global nor whether the evaluation of the property results in a valid scalar net name.
This function also checks whether the inherited net expressions on the formal terminal and the formal terminal signal is connected to match or not.
Arguments
Return Values
dbStartGenInheritedTerm
dbGenStateId
dbStartGenInheritedTerm( dbCellViewId cellViewId );
Description
Given a cellview identifier in cellViewId, this function starts up the generator for all terminals which have inherited net expressions associated with them.
Arguments
|
The identifier for a cellview that is being checked for inherited terminals. |
Return Values
|
The identifier of the newly started-up generator is returned. NULL is returned if there is no inherited terminal in the given cellview. |
Return to top