Product Documentation
Cadence Integrators Toolkit Database Reference
Product Version IC23.1, June 2023

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

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 Virtuoso Schematic Editor L User Guide.

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

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

sigId

The database identifier of the signal.

netExpression

The inherited net expression.

Return Values

Boolean

TRUE is returned if the inherited net expression is successfully attached to the signal. FALSE is returned if the given signal does not exist, the given net expression has illegal syntax, or if the signal already has an inherited net expression associated with it.

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

cellViewId

The identifier of a given cellview which is checked for inheriting signals.

Return Values

Boolean

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

cellViewId

The identifier of a given cellview in which signals and their inherited net expressions are deleted.

Return Values

Boolean

TRUE is returned if all inherited signals have been deleted from the given cellview. FALSE is returned if the given cellview cannot be accessed; if there are no inherited signals in the given cellview; if any of the inherited net expressions associated with the inherited signals are not removed successfully.

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

sigId

The identifier of the signal to which an inherited net expression is associated.

Return Values

Boolean

TRUE is returned if the inherited net expression exists on the object and is successfully deleted. FALSE is returned if no inherited net expression belongs to the object or if the given signal cannot be found.

dbGenInheritedSig

Boolean
dbGenInheritedSig(
dbGenStateId pState,
dbSigId sigId,
);

Description

This function returns the identifier of a signal whose connection is inherited.

Arguments

pState

The state indicating whether there are inherited signals to check.

sigId

The identifier of a signal whose connection is inherited.

Return Values

Boolean

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

sigId

The identifier of the signal used to retrieve the inherited net expression associated with the signal.

Return Values

String

The inherited net expression, if found, is returned. NULL is returned if none is found or if the given signal cannot be found. The inherited net expression is stored as a permanent string and should not be freed by the caller.

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

sigId

The identifier of the signal which is checked for an inherited net expression.

Return Values

Boolean

TRUE is returned if an inherited net expression is found to be attached to the given signal. FALSE is returned if the given signal cannot be found or if there is no inherited net expression attached to the given signal.

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

netExpression

The inherited net expression checked for syntax.

Return Values

Boolean

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

inheritedNetExpression

The inherited net expression that is parsed.

*searchScope

The search scope of the inherited net expression.

*propName

The lookup property name of the inherited net expression.

*formatString

The format string of the inherited net expression.

*defaultNetName

The default net name of the inherited net expression.

Return Values

Boolean

The name of the property to be searched is returned in propName; the format string in formatString, the search scope in searchScope, and the default net name in defaultNetName.

FALSE is returned if the syntax of the given inherited net expression is illegal.

propName, formatString and defaultNetName are stored as permanent strings and should not be freed by the calling function.

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

sigId

The identifier of the signal to which an inherited net expression is associated.

netExpression

The inherited net expression to replace an existing expression, if one is associated with a terminal, or attached to the specified terminal, if no expression is associated with the terminal.

Return Values

Boolean

TRUE is returned if either an existing inherited net expression on the object is successfully replaced, or if there is not any existing inherited net expression on the object and the given inherited net expression is successfully attached to the signal. FALSE is returned if the given signal does not exist or the given net expression is of illegal syntax.

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

cellViewId

The identifier of the cellview containing signals with inherited net expressions attached.

Return Values

dbGenStateId

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

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

termId

The database identifier of the terminal.

netExpression

The inherited net expression.

Return Values

Boolean

TRUE is returned if the inherited net expression is successfully attached to the terminal. FALSE is returned if the given terminal does not exist, the given net expression has illegal syntax, or if the terminal already has an inherited net expression associated with it.

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

cellViewId

The identifier of a specific cellview.

Return Values

Boolean

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

cellViewId

The identifier of a specific cellview.

Return Values

Boolean

TRUE is returned if all inherited terminals have been deleted from the given cellview. FALSE is returned if the given cellview cannot be accessed; if there are no inherited terminals in the given cellview; if any of the inherited net expressions associated with the inherited terminals.

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

termId

The identifier of the terminal associated with the inherited net expression.

Return Values

Boolean

TRUE is returned if the inherited net expression is successfully removed from the given terminal. FALSE is returned if the given terminal does not exist or if no net expression is found associated with the given terminal.

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

pState

The indication of whether an inherited terminal is identified.

*termId

The identifier of a terminal whose connection is inherited in the current cellview.

Return Values

Boolean

The identifier of a terminal whose connection is inherited is returned in termId. TRUE is returned if the generator functions correctly. FALSE is returned when there are no more inherited terminals.

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

termId

The identifier of the terminal associated with the inherited connection.

Return Values

String

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

termId

The identifier of the terminal being checked for an inherited net expression attached.

Return Values

Boolean

TRUE is returned if an inherited net expression is found to be associated with the given terminal. FALSE is returned on error, indicating that the given terminal does not exist, or that the given terminal is not an inherited terminal.

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

netExpression

The inherited net expression checked for valid syntax.

Return Values

Boolean

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

inheritedNetExpression

The inherited net expression attached to a terminal.

*searchscope

The search scope of the inherited net expression.

*propName

The lookup property name of the inherited net expression.

*formatString

The format string of the inherited net expression.

*defaultNetName

The default net name of the inherited net expression.

Return Values

Boolean

The name of the property to be searched is returned in propName; the format string in formatString, the search scope in searchScope, and the default net name in defaultNetName. FALSE is returned if the given inherited net expression is of illegal syntax.

propName, formatString and defaultNetName are stored as permanent strings and should not be freed by the caller.

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

termId

The terminal identifier to be associated with the net expression (by replacement or attachment).

netExpression

The inherited net expression to replace an existing expression, if one is associated with a terminal, or attached to the specified terminal, if no expression is associated with the terminal.

Return Values

Boolean

TRUE is returned under the following two scenarios: if an existing inherited net expression on the terminal is successfully replaced, or if there is not any existing inherited net expression on the object and the given inherited net expression is successfully attached to the terminal.

FALSE is returned if there is an error, such as if a termId is bad, if the syntax of a given net expression is illegal, or if the inherited net expressions on the formal terminal and the formal terminal signal is connected to not match.

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

cellViewId

The identifier for a cellview that is being checked for inherited terminals.

Return Values

dbGenStateId

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
 ⠀
X