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

13


CDBA User Database Extensions

The database can be extended using properties and groups. You can notify an application of changes in the state of the database.

Find more information about database extensions in the following sections:

Properties

All database objects can have any number of properties attached to them. Each property is represented by a dbPropId and is defined by a name and a value. When a database object is deleted, all properties attached to this object are also automatically deleted.

No two properties attached to the same object can have the same name. Also, properties of the same name on different objects exist independently of each other (that is, there is no relationship between property X on object A and property X on object B). Therefore, the values, ranges, or enumerations can be changed on one property without affecting other properties of the same name.

Property Types

The three major types of properties are scalar, range, and enumerated.

Scalar Properties

A scalar property can have one of the following types of values. Each of these types is represented by a predefined enumerated constant of the type dbPropType.

A property value is represented by a predefined union of type dbPropValue:

union dbPropValue {
Boolean aBoolean;
float aFloat;
int aInt;
String aString;
String aFileName;
String aILExpr; /* not available in ITK:Database */
String aNLPExpr;
long aTime;
char *aILList; /* not available in ITK:Database */
};
typedef union dbPropValue dbPropValue;

The following table lists the scalar property types and their enumerated constants.

Scalar Property Types
Type Enumerated constants in type dbPropType

Boolean

dbcBooleanType

file name

dbcFileNameType

float

dbcFloatType

integer

dbcIntType

String

dbcStringType

IL expression

dbcILExprType (not available in ITKDB)

NLP expression

dbcNLPExprType

time

dbcTimeType

hierarchical property

dbcHierPropType

IL list

dbcILListType (not available in ITKDB)

Range Properties

A range property must be an integer, a floating-point number, or a time value. It also contains upper and lower boundary values that define the inclusive range of the property value. The upper and lower boundaries, as well as the range value, are defined by a dbPropValue union.

Enumerated Properties

An enumerated property contains a string value and an enumerated set (list) of strings. The value assigned to this property must be a string in this enumerated set.

Property Creation and Modification Functions

The following functions can be used to create or modify properties.

In all examples specified in this section,

dbCreateProp

dbPropId
dbCreateProp(
dbId id, String propName, dbPropType propType, dbPropValue propValue
);

Creates a scalar property belonging to the database object specified by the ID argument. The scalar property is given the name propName, the type defined in propType, and the value defined in propValue (where propType and propValue are defined). The function returns the dbPropId if the property was created successfully. The function returns NULL if a property named propName already exists on this object or if an error occurred.

Example

value.aInt = 5;
propId = dbCreateProp(id, "width", dbcIntType, value);
value.aTime = time(0);
propId = dbCreateProp(id, "timeCreated", dbcTimeType, value);
value.aILExpr = "if((x > 5) 1 0))";
propId = dbCreateProp(id, "ilFunc", dbcILExprType, value);

The property value must be passed as a dbPropValue. A scalar value passed directly can cause problems on some systems. In the following line of code, the value of 1 for the dbcIntType that is passed is not portable to any system.

/* The following line is NON-PORTABLE! */
propId = dbCreateProp(id, "ilFunc", dbcIntType, 1);

Rather, the line should read

propId = dbCreateProp(id, "ilFunc", dbcIntType, value);

dbCreateHierProp

dbPropId
dbCreateHierProp(
dbId id, String propName
);

Creates a hierarchical property belonging to the database object specified by the ID argument. The hierarchical property is named propName. The function returns the dbPropId if the property was created successfully. The function returns NULL if a property propName already exists on this object or if an error occurred.

Example

propId = dbCreateProp(id, "parameters");

dbCreateRangeProp

dbPropId
dbCreateRangeProp(
dbId id, String propName, dbPropType propType, dbPropValue propValue, dbPropValue lowerBound, dbPropValue upperBound
);

Creates a range property belonging to the database object specified by the ID argument. The range property is given the name propName, the type defined in propType, and the value defined in propValue.

The three types of range properties are integer, float, or time (dbcIntType, dbcFloatType, or dbcTimeType, respectively). This function specifies the lowerBound and upperBound of the range and defines them as dbPropValue unions. The boundaries must be the same type as the property value.

This function returns the dbPropId if the property was created successfully. The function returns NULL if a property named propName already exists on this object, if the specified value is not within the specified boundaries, or if an error occurred.

Example

value.aFloat = 32.5;
lowerBound.aFloat = 0.0;
upperBound.aFloat = 50.0;
propId = dbCreateRangeProp(id, "length", dbcFloatType, value, lowerBound, upperBound);

Example

value.aInt = 33;
lowerBound.aInt = 0;
upperBound.aInt = 100;
propId = dbCreateRangeProp(id, "numberOfRects", dbcIntType,value, lowerBound, upperBound);

dbCreateEnumProp

dbPropId
dbCreateEnumProp(
dbId id, String propName, String propString, unsigned int nStrings, String arrayOfStrings
);

Creates an enumerated property belonging to the database object specified by the ID argument. The enumerated property is named propName and given the value of propString. The number of strings in the enumerated set is specified in nStrings. The enumerated set is defined by the strings stored in arrayOfStrings. The function returns the dbPropId if the property was created successfully. The function returns NULL if a property named propName already exists on this object, if the specified value is not in the specified enumerated set, or if another error occurred.

Example

/*
* Create an enumerated property with current value
* of "Wednesday," where valid values are defined to
* be days of the week.
*/
static char *day = {    "Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
};
propId = dbCreateEnumProp(id,"dayInWeek","Wednesday",
7,day);

dbCopyProp

Boolean
dbCopyProp(
dbId srcId, dbId destId
);

Copies all properties attached to the database object identified by srcId to the database object identified by destId. The copy is performed recursively for all hierarchical properties found.

dbCopySingleProp

dbPropId
dbCopySingleProp(
dbId srcPropId, dbId destId
);

Copies a specified property identified by the srcPropId to the destination object identified by destId. The function returns the destination propId. This function is different from dbCopyProp, which copies all properties from the source object to the destination object. The copy is performed recursively for a hierarchical property.

dbMergeProp

Boolean
dbMergeProp(
dbId srcId, dbId destId
);

Merges all properties attached to the database object identified by srcId to the database object identified by destId. That is, the function copies the source property only if the property does not exist on the destination object. If the property exists, the property is not overwritten. This is different from dbCopyProp, which overwrites the destination property if one exists.

dbMergeSingleProp

dbPropId
dbMergeSingleProp(
dbId srcPropId, dbId destId
);

Merges the property specified by srcPropId to the database object identified by destId. The difference between this function and dbCopySingleProp is that if the property already exists in the destination object, this function does not overwrite it. The function just returns the propId. However, dbCopySingleProp overwrites the property in the destination object.

dbResetPropList

Boolean
dbResetPropList(
dbId            id,
unsigned int    nProps,
dbParamRec      *propList
);

Description

Resets a list of properties on a given object with the specified list of properties. The function works in the following ways in different scenarios:

Arguments

id

Database ID of the object whose properties are being replaced.

nprops

Number of properties in the propList.

propList

List of properties.

Return Value

Boolean

TRUE, if the list of properties on a given object are reset with the specified list of properties.

FALSE, in case of failure.

Property Information Replacement Functions

The following functions retrieve information about properties and potentially overwrite existing information.

dbReplaceProp

dbPropId
dbReplaceProp(
dbId id, String propName, dbPropType propType, dbPropValue propValue
);

Creates a scalar property belonging to the database object specified by the ID argument (like dbCreateProp), except that if a property named propName already exists on the object, propType and propValue overwrite its type and value. The function returns the dbPropId of the property created or replaced if the action was successful. Otherwise, the function returns NULL.

dbReplaceProp always overwrites a hierarchical, range, or enumerated property with a scalar property and does not issue a warning.

dbReplacePropList

Boolean
dbReplacePropList(
dbId id, unsigned int nProps, dbParamRec *propList
);

Replaces a list of properties of a database object specified by id with the list specified by propList. The number of properties is specified by nProps. If a property already exists, update it’s type and value, otherwise, create it.

This function should not be used to replace properties of a pCell instance because the pCell parameters will not be evaluated by this function. To update pCell parameters, use dbReplaceInstParamList.

dbReplaceInstParamList

Boolean
dbReplaceInstParamList(
dbId id, unsigned int nParams, dbParamExtRec *params
);

Replaces a list of parameters for the instance with the list specified by params. The number of parameters is specified by nParams. The parameters should contain all parameters including a parameter having a default value. If a parameter already exists, update the type and value, otherwise, create it.

Use this function to update pCell parameters instead of the dbReplacePropList function.

dbReplaceHierProp

dbPropId
dbReplaceHierProp(
dbId id, String propName
);

Creates a hierarchical property belonging to the database object specified by the ID argument (like dbCreateHierProp), except that if a property named propName already exists on the object, dbcPropertyType overwrites its type and the value is deleted. The function returns the dbPropId of the property created or replaced if the action was successful. Otherwise, the function returns NULL.

dbReplaceHierProp always overwrites a scalar, range, or enumerated property with a hierarchical property and does not issue a warning.

dbReplaceRangeProp

dbPropId
dbReplaceRangeProp(
dbId id, String propName, dbPropType propType, dbPropValue propValue, dbPropValue lowerBound, dbPropValue upperBound
);

Creates a range property belonging to the database object specified by the ID argument (such as dbCreateRangeProp), except that if a property named propName already exists on the object, the property’s propType, propValue, lowerBound, and upperBound are overwritten by the given propType, propValue, lowerBound, and upperBound.

The function returns the dbPropId of the property created or replaced if the action was successful. Otherwise, it returns NULL.

dbReplaceRangeProp always overwrites a scalar, hierarchical, or enumerated property with a range property and does not issue a warning.

dbReplaceEnumProp

dbPropId
dbReplaceEnumProp(
dbId id, String propName, String propString, unsigned int nStrings, String arrayOfStrings
);

Creates an enumerated property belonging to the database object specified by the ID argument (like dbCreateEnumProp), except that if a property named propName already exists on the object, propString, nStrings, and arrayOfStrings overwrite its type and value. The function returns the dbPropId of the property created or replaced if the action was successful. Otherwise, the function returns NULL.

dbReplaceEnumProp always overwrites a scalar, hierarchical, or range property with an enumerated property and does not issue a warning.

Property Information Retrieval Functions

The following functions retrieve information about properties.

dbGetProp

Boolean
dbGetProp(
dbPropId propId, String pPropName, dbPropType pPropType, dbPropValue pPropValue
);

Finds the property specified by propId and returns the name, type, and value of this property in the specified PropName, PropType, and PropValue arguments when the value type equals a String type. If you need a permanent copy of the property name or the property value, you must explicitly copy the value into your own storage area. The function returns TRUE if the retrieval was successful. The function returns FALSE if propId is not valid or if another error occurred.

dbGetProp returns any type of property, including hierarchical, range, and enumerated. In the case of a hierarchical property, PropValue is undefined.

Example

String         name;
dbPropType type;
dbPropValue value;
/* Print out the value of propId */
if (dbGetProp(propId, &name, &type, &value)) {
printf("property name = %s\n", name);
switch (type) {
case dbcBooleanType:
printf("boolean value is %s\n",
(value.aBoolean) ? "TRUE" : "FALSE");
break;
case dbcIntType:
printf("integer value is %d\n", value.aInt);
break;
case dbcFloatType:
printf("floating point value is %f\n",
value.aFloat);
break;
case dbcStringType:
printf("string value is %s\n", value.aString);
break;
case dbcFileNameType:
printf("file name value is %s\n", value.aFileName);
break;
case dbcILExprType:
printf("IL expression value is %s\n", value.aILExpr);
break;

case dbcNLPExprType:
printf("NLP expression value is %s\n", value.
aNLPExpr);
break;
case dbcTimeType:
printf("time value is %s\n", ctime(&value.aTime));
break;
case dbcHierPropType:
printf("hierarchical property value is
undefined\n");
break;
case dbcILListType:
{
char printBuffer[MAX_LIST_STRING_SIZE];
ilSprintf(printBuffer, MAX_LIST_STRING_SIZE,
ilCons(ilMakeString("%L"),value.aILList));
printf("IL list value is %s\n", printBuffer);
}
break;
default:
printf("ERROR: unknown property value type %d\n",
type);
break;
}
}

dbGetPropByName

dbPropId
dbGetPropByName(
dbId id, String propName, dbPropType pPropType, dbPropValue pPropValue
);

Searches for the property named propName belonging to the database object specified by id and returns the type and value of this property in the specified PropType and PropValue arguments. The function returns the dbPropId if the retrieval was successful. The function returns NULL if the property does not exist on this object or if another error occurred.

dbGetPropByName returns any type of property, including hierarchical, range, and enumerated. In the case of a hierarchical property, PropValue is undefined.

dbGetPropRange

Boolean
dbGetPropRange(
dbPropId propId, String pPropName, dbPropType pPropType, dbPropValue pPropValue, dbPropValue pLowerBound, dbPropValue pUpperBound
);

Finds the range property specified by propId and returns the name, type, value, and range boundaries of this property in the specified PropName, PropType, PropValue, LowerBound, and UpperBound arguments. If you need a permanent copy of the property name, you must explicitly copy the value into your own storage area. The function returns TRUE if the retrieval was successful. The function returns FALSE if propId is not valid, if the property is not a range property, or if another error occurred.

Example

String         name;
dbPropType type;
dbPropValue value, min, max;
/* Print out the value and range of propId */
if (dbIsRangeProp(propId) &&
dbGetPropRange(propId, &name, &type, &value, &min,
&max)) {
switch (type) {
case dbcFloatType:
printf("prop %s = %f; range is from %f to %f\n",
name, value.aFloat, min.aFloat,max.aFloat);
break;
case dbcIntType:
printf("prop %s = %d; range is from %d to %d\n",
name, value.aInt, min.aInt, max.aInt);
break;
case dbcTimeType:
printf("prop %s = %s; range is from %s to %s\n",
name, ctime(&value.aTime),
ctime(&min.aTime), ctime(&max.aTime));
break;
default:
printf("range prop %s has invalid type\n", name);
break;
}
}

dbGetPropEnum

Boolean
dbGetPropEnum(
dbPropId propId, String pPropName, String pPropString, unsigned int pNStrings, String pArrayOfStrings
);

Finds the enumerated property specified by propId and returns the name and value of this property in the specified PropName and PropString arguments. The argument NStrings returns the number of strings in the enumerated set. The argument ArrayOfStrings returns the enumerated set (an array of strings).

If you need a permanent copy of the property name, value, or the enumerated set, you must explicitly copy the value into your own storage area. It returns TRUE if the retrieval was successful. It returns FALSE if propId is not valid, if the property is not an enumerated property, or if another error occurred.

Example

...
String          name, value, *enumSet;
unsigned int num;
/* Print the value and enumerated set of propId */
if (dbIsEnumProp(propId) && dbGetPropEnum(propId, &name,    &value, &num,&enumSet)) {
printf("prop %s = %s, enumerated set is:\n", name, value);
for (i = 0; i < num; i++) {
printf("\t%s\n", *enumSet++);
}
}

Predicate Functions for Properties

The following functions return predicate (Boolean) information about properties.

dbObjHasProp

Boolean
dbObjHasProp(
dbId id
);

Returns TRUE if the object specified has one or more properties associated with it. Otherwise, the function returns FALSE.

dbIsScalarProp

Boolean
dbIsScalarProp(
dbPropId propId
);

Returns TRUE if propId refers to a scalar property. Otherwise, the function returns FALSE.

dbIsHierProp

Boolean
dbIsHierProp(
dbPropId propId
);

Returns TRUE if propId refers to a hierarchical property. Otherwise, the function returns FALSE.

dbIsRangeProp

Boolean
dbIsRangeProp(
dbPropId propId
);

Returns TRUE if propId refers to a range property. Otherwise, the function returns FALSE.

dbIsEnumProp

Boolean
dbIsEnumProp(
dbPropId propId
);

Returns TRUE if propId refers to an enumerated property. Otherwise, the function returns FALSE.

Property Deletion Functions

The following functions delete properties attached to database objects.

dbDeleteProp

Boolean
dbDeleteProp(
dbId id, dbPropId propId
);

Deletes the property specified by propId, which is attached to the object specified by ID. The function returns TRUE if the property exists on the object and is successfully deleted. The function returns FALSE if either the property does not belong to the object or another error occurs.

dbDeletePropByName

Boolean
dbDeletePropByName(
dbId id, String propName
);

Deletes the property named propName belonging to the database object specified by the ID argument. The function returns TRUE if a property of that name exists on the object and is successfully deleted. The function also returns TRUE if the object does not have a property of that name. Thus, you can use dbDeletePropByName to delete properties of a specified name without having to first test if all objects you are going to operate on have properties of that name attached to them. The function returns FALSE if an error occurs.

Property Generator Functions

The following pair of functions work together to generate properties.

dbStartGenProp

dbGenStateId
dbStartGenProp(
dbId id
);

The dbStartGenProp function works with the dbGenProp function to generate all properties associated with the database object specified by id. Because the function dbGenProp is not recursive, recursion on hierarchical properties must be handled explicitly as demonstrated in the dbGenProp example.

dbGenProp

Boolean
dbGenProp(
dbGenState state, dbPropId pPropId
);

Generates all properties associated with the database object specified by id in the dbStartGenProp function. Because dbGenProp is not recursive, recursion on hierarchical properties must be handled explicitly as demonstrated in the following example.

Example

processAllProps(id)
dbId id;
{
dbGenStateId state; /* generator state */
String propName;
dbPropId propId;
dbPropValue propValue;
dbPropType propType;
   state = dbStartGenProp(id);
while (dbGenProp(state, &propId)) {
dbGetProp(propId, &propName, &propType, &propValue);
if (propType == dbcHierPropType) {
/* Process hierarchical property name */
...
processAllProps((dbId)propId); /* recurse */
}
else {
/* Process non-hierarchical property name and
* value */
...
}
}
dbStopGen(state);
}

Groups

A group is a mechanism by which various objects in the same cellview can be related to one another. The user determines the purpose of the relationship. Groups provide a way to create and maintain the relationships in the database. Just as properties provide a way for the user to create user-defined attributes, groups provide a way for the user to create user-defined relationships.

A group is represented by a dbGroupId and has a name, group members, and attributes that control how the database maintains the group. The dbCreateGroup function creates groups. A dbGroupMemId represents every occurrence of an object as a member of a group.

Group Attributes

The attributes of a group include

Groups as Sets or Collections

A group can be either a set or a collection. A set is a group in which an ID can appear only once. A collection is a group in which an ID can appear more than once. The type of group is represented by a predefined enumerated constant in the enumerated type dbGroupType. An ID can be contained in more than one group.

The following table gives the enumerated constants for the set and collection group types.

Group Types
Name Enumerated constants in type dbGroupType

Set

dbcGroupSet

Collection

dbcGroupCollection

Deleting Groups

The deleteWhen attribute indicates the conditions under which a group is deleted. This attribute is represented by a predefined enumerated constant of the enumerated type dbDeleteWhenType.

A group can have one of three deleteWhen attribute values:

Groups created with dbCreateGroup have the deleteWhen attribute set to deleteNever by default. Use dbSetGroupDeleteWhen to set a different value after the group is created.

The following table gives the enumerated constants for the three deleteWhen attribute values.

Group deleteWhen Types
Name Enumerated constants in type dbGroupDeleteWhenType

deleteNever

dbcDeleteNever

deleteFirst

dbcDeleteFirst

deleteLast

dbcDeleteLast

Group Member Order

A group can be ordered or unordered. An ordered group implies there is significance to the order of the group members stored in the group. You establish and maintain the order using calls to add ids to a group and calls to move group members within the ordered group. You specify the order when generating members of an ordered group.

Group Names

Each group has a name, which might or might not be unique within the cellview containing the group. If a group is designated to have a unique name, then no other group in the same cellview can share its name.

Group Members

Because the collection type group can contain multiple occurrences of the same object, dbGroupMemId uniquely identifies each occurrence of an ID in a group. When an ID is added to a group by calling the dbAddIdToGroup function, the function returns a dbGroupMemId type value.

An object can be a member of more than one group. An object can even be a member of two groups with the same name (if the groups were created without the unique name restriction). If a group is a collection, an object can belong to the same group more than once.

Group Creation Functions

The following function creates a group.

dbCreateGroup

dbGroupId
dbCreateGroup(
dbCellViewId cellViewId, String name, dbGroupType groupType, Boolean ordered, Boolean uniqueName
);

Creates a group in the specified cellview. If you specify a group to have a unique name (if uniqueName is TRUE) and a group with the same name already exists in the specified cellview, no group is created and dbcNullGroupId is returned. By default, the group created is of the groupDef unrestricted type.

The deleteWhen attribute is set to dbcDeleteNever by default. To change the value, use the function dbSetGroupDeleteWhen.

dbCreateGroupWithDef

dbGroupId
dbCreateGroupWithDef(
dbCellViewId cellViewId, const char *groupDefName, const char *groupName, dbGroupType groupType, Boolean ordered, Boolean uniqueName
);

Creates a group of the specified group definition in the specified cellview. If the groupDefName is an invalid string or the specified group definition is not found, no group is created and dbcNullGroupId is returned. The group is created only if the specified group definition is found, either as an OpenAccess built-in groupDef or as a user-defined groupDef that exists in that session.

Valid OpenAccess built-in groupDefs include unrestricted, diffNetPair, net, matchedNet, nestedNet, and symmtericNet.

Group Modification Functions

The following functions modify groups.

dbAddIdToGroup

dbGroupMemId
dbAddIdToGroup(
dbGroupId groupId, dbId id
);

Includes the ID as a member of the specified group. If the group is ordered, it adds the ID to the end of the group. The groupId and the ID must belong to the same cellview. If the group is type dbcGroupSet, the function fails if the ID is already a member of the group. If the function succeeds, it returns a dbGroupMemId, which you use to uniquely identify this reference to the specified ID in the group. Otherwise, the function returns dbcNullGroupMemId.

The following ID types cannot be added to any group:

dbDeleteGroupMemFromGroup

Boolean
dbDeleteGroupMemFromGroup(
dbGroupMemId groupMemId
);

Deletes a particular group member from the group to which it belongs. The function returns TRUE if groupMemId refers to a valid group member.

If the deleteWhen attribute has a value of deleteFirst and TRUE is returned, the group is also deleted. If the group is empty from being deleted and the deleteWhen attribute has the value deleteLast, the group is also deleted. Otherwise, the group remains in the database.

dbDeleteIdFromGroup

Boolean
dbDeleteIdFromGroup(
dbGroupId groupId, dbId id
);

Deletes all references to the specified ID from the specified group. The group ID (specified by groupId) and the ID (specified by id) must belong to the same cellview. If the ID occurs more than once in the group and you want to delete a particular occurrence of the ID from the group, you must call dbDeleteMemFromGroup.

If the deleteWhen attribute has a value of deleteFirst and TRUE is returned, the group is also deleted. If the group is empty because its members are deleted and the deleteWhen attribute has the value deleteLast, the group is also deleted. Otherwise, the group remains in the database.

dbDeleteIdFromAllGroup

Boolean
dbDeleteIdFromAllGroup(
dbId id
);

Deletes all references to the specified ID from all groups that reference the ID. This function is automatically called when an object is deleted from the database.

If FALSE is returned, some references might have been deleted, as well as some groups. You can prevent this situation by setting the deleteWhen attribute to deleteNever for those groups. If TRUE is returned, all groups containing the ID and that had the deleteWhen attribute set to deleteFirst are deleted. All groups that had the deleteWhen attribute set to deleteLast (which were made empty by deleting the ID) are also deleted.

dbMoveGroupMem

Boolean
dbMoveGroupMem(
dbGroupMemId groupMemId, dbGroupMemId afterGroupMemId
);

Moves groupMemId to just behind afterGroupMemId and returns TRUE if both group members belong to the same group and the group is ordered. If groupMemId equals afterGroupMemId, nothing is done and the function returns TRUE. To move groupMemId to the head of the group, set afterGroupMemId equal to dbcNullGroupMemId.

dbSetGroupType

Boolean
dbSetGroupType(
dbGroupId groupId, dbGroupType type
);

Sets the type of the group identified by groupId. If the group type is changed from dbcGroupCollection to dbcGroupSet and an ID appears in the group more than once, the function fails and returns FALSE.

dbSetGroupOrdered

Boolean
dbSetGroupOrdered(
dbGroupId groupId, Boolean ordered
);

Sets the ordered attribute for the group identified by groupId, indicating whether the group is ordered or unordered. If groupId is not valid, the function fails and returns FALSE.

dbSetGroupUniqueName

Boolean
dbSetGroupUniqueName(
dbGroupId groupId, Boolean uniqueName
);

Sets the unique name attribute for groupId, indicating whether or not the group name must be unique in the cellview containing the group. If uniqueName is TRUE and there is another group with the same name in the cellview containing the group, the function fails and returns FALSE.

dbSetGroupDeleteWhen

Boolean
dbSetGroupDeleteWhen(
dbGroupId groupId, dbDeleteWhenType deleteWhen
);

Sets the deleteWhen attribute for groupId, indicating whether the group must be automatically deleted when any member is deleted or when the group becomes empty.

Group Information Retrieval Functions

The following functions retrieve information about groups.

dbGetGroupName

String
dbGetGroupName(
dbGroupId groupId
);

Returns the name of the group as a cellview string. Returns dbcNullString if groupId is invalid.

dbGetGroupGroupDefName

String
dbGetGroupGroupDefName(
dbGroupId groupId
);

Returns the name of the group definition of the specified group as a string. Returns dbcNullString if groupId is invalid.

dbGetGroupByName

dbGroupId
dbGetGroupByName(
dbCellViewId cellViewId, String name
);

Searches for the group name belonging to the specified cellview. Returns the dbGroupId if the group exists. Returns dbcNullGroupId if the group does not exist in the cellview.

dbGetGroupType

dbGroupType
dbGetGroupType(
dbGroupId groupId
);

Returns the type of the group identified by groupId. If groupId is not valid, dbcUnknownGroupType is returned.

dbGetGroupOrdered

Boolean
dbGetGroupOrdered(
dbGroupId groupId
);

Returns TRUE if the group is ordered. Returns FALSE if groupId is invalid or if the group is unordered.

dbGetGroupUniqueName

Boolean
dbGetGroupUniqueName(
dbGroupId groupId
);

Returns TRUE if the group must have a unique name. Returns FALSE if groupId is invalid or if other groups in the same cellview can use the same name.

dbGetGroupDeleteWhen

dbDeleteWhenType
dbGetGroupDeleteWhen(
dbGroupId groupId
);

Returns the deleteWhen attribute of the group unless groupId is invalid, in which case it returns dbcUnknownDeleteWhenType.

dbGetGroupMemGroup

dbGroupId
dbGetGroupMemGroup(
dbGroupMemId groupMemId
);

Returns the groupId for the group that contains the group member identified by groupMemId, or returns dbcNullGroupId if groupMemId is invalid.

dbGetGroupMemId

dbId
dbGetGroupMemId(
dbGroupMemId groupMemId
);

Returns the dbId of the database object referred to by groupMemId or returns dbcNullId if groupMemId is invalid.

Predicate Functions for Groups

The following function retrieves predicate information about groups; that is, it returns the result of a query about the group.

Boolean
dbIsGroupEmpty(
dbGroupId groupId
);

Returns TRUE if the group identified by groupId does not contain any group members. Returns FALSE if groupId is invalid or if there are members in the group.

Group Deletion Functions

The following functions delete groups according to the criteria specified.

dbDeleteGroup

Boolean
dbDeleteGroup(
dbGroupId groupId
);

Deletes the group referred to by groupId and returns TRUE if successful. If groupId is invalid or the delete fails for any reason, the function returns FALSE.

dbDeleteGroupByName

Boolean
dbDeleteGroupByName(
dbCellViewId cellViewId, String name
);

Deletes all groups in the cellview identified by cellViewId named name. Returns TRUE even if no groups were deleted because no groups in the cellview were named name. Returns FALSE if cellViewId is invalid or name is dbcNullString.

Group ID Generator Functions

The following functions generate IDs of groups.

dbStartGenGroup

dbGenStateId
dbStartGenGroup(
dbCellViewId cellViewId
);

The dbStartGenGroup function works with the dbGenGroup function to generate the dbGroupId of all groups contained in the specified cellview.

dbStartGenGroupWithDef

dbGenStateId
dbStartGenGroupWithDef(
dbCellViewId cellViewId
const char *groupDefName
);

Generates the groups contained in the design of the specified groupDef. If the specified groupDef cannot be found, a NULL dbGenStateId is returned.

dbGenGroup

Boolean
dbGenGroup(
dbGenStateId pState, dbGroupId pGroupId
);

Generates the dbGroupId of all groups contained in the specified cellview.

dbGenGroupWithDef

Boolean
dbGenGroupWithDef(
dbGenStateId stateId,
dbGroupId *groupId
);

Generates all groups of the specified groupDef in the cellview.

dbStartGenGroupByName

dbGenStateId
dbStartGenGroupByName(
dbCellViewId cellViewId, String name
);

Starts the generator for the dbGroupId of all groups with the specified name contained in the specified cellview.

dbGenGroupByName

Boolean
dbGenGroupByName(
dbGenStateId pState, dbGroupId pGroupId
);

Generates the dbGroupId of all groups with the specified name contained in the specified cellview.

dbStartGenGroupToId

dbGenStateId
dbStartGenGroupToId(
dbGroupId groupId
);

Starts the generator for the dbId of all objects contained in the specified group. If an object is a member of the group more than once, it is generated as many times as it is a member in the group. You generate, in the order you specify, IDs in an ordered group by creating, deleting, and moving group members.

dbGenGroupToId

Boolean
dbGenGroupToId(
dbGenStateId pState, dbId pId
);

Generates the dbId of all objects contained in the specified group. If an object is a member of the group more than once, it is generated as many times as it is a member in the group. You generate, in the order you specify, IDs in an ordered group by creating, deleting, and moving group members.

dbStartGenGroupToGroupMem

dbGenStateId
dbStartGenGroupToGroupMem(
dbGroupId groupId
);

Starts the generator for the GroupMemId of all members in the specified group. Each GroupMemId is generated once. However, if the group is a collection, the same object can have more than one GroupMemId. You generate, in the order you specify, GroupMemIds in an ordered group by creating, deleting, and moving group members.

dbGenGroupToGroupMem

Boolean
dbGenGroupToGroupMem(
dbGenStateId pState, dbGroupMemId pGroupMemId
);

Generates the GroupMemId of all members in the specified group. Each GroupMemId is generated once. However, if the group is a collection, the same object can have more than one GroupMemId. You generate, in the order you specify, GroupMemIds in an ordered group by creating, deleting, and moving group members.

dbStartGenIdToGroup

dbGenStateId 
dbStartGenIdToGroup(
dbId id
);

Starts the generator for the GroupId of all groups containing the specified ID as a member. If a group is a collection and it contains multiple GroupMemIds for this object, the group is generated once for each GroupMemId that represents the object.

dbGenIdToGroup

Boolean
dbGenIdToGroup(
dbGenStateId pState, dbGroupId groupId
);

Generates the GroupId of all groups containing the specified ID as a member. If a group is a collection and it contains multiple GroupMemIds for this object, the group is generated once for each GroupMemId that represents the object.

dbStartGenIdToGroupMem

dbGenStateId
dbStartGenIdToGroupMem(
dbId id
);

Starts the generator for the GroupMemId of all group members corresponding to the specified ID in all groups that contain the object as a member.

dbGenIdToGroupMem

Boolean
dbGenIdToGroupMem(
dbGenStateId pState, dbGroupMemId pGroupMemId
);

Generates the GroupMemId of all group members corresponding to the specified ID in all groups that contain the object as a member.

Pin Group Guides

Pin Group Guides provide a model for specifying the location, ordering, layers, and spacing of pins in a design. Pin group guides can be area pin group guides or edge pin group guides.

An area pin group guide represents the regions where pins should be placed. In addition to pins and pinFigs, areaBoundary objects can be used to represent the regions for placing the pins/pinFigs.

An edge pin group guide represents a region around the edge of a prBoundary where pins can be placed.

A set of associated constraints can be defined to determine the layer assignment, keepout spacing, minimum pin spacing, and pin width for the pins in a pin group guide.

Functions for Adding, Removing, and Accessing Pins

The following functions can be used for adding, removing, and accessing pins and pin figures in a pin group guide:

dbAddPinToPinGroupGuide

Boolean
dbAddPinToPinGroupGuide(
dbPinGroupGuideId pggId, 
dbPinId pinId
);

Adds a pin to the specified pin group guide.

dbSubPinFromPinGroupGuide

Boolean
dbSubPinFromPinGroupGuide(
dbPinGroupGuideId pggId, 
dbPinId pinId
);

Removes a pin from the specified pin group guide.

dbAddFigToPinGroupGuide

Boolean
dbAddFigToPinGroupGuide(
dbPinGroupGuideId pggId, 
dbFigId figId
);

Adds a via or a non-text shape to the specified pin group guide.

dbSubFigFromPinGroupGuide

Boolean
dbSubFigFromPinGroupGuide(
dbPinGroupGuideId pggId, 
dbFigId figId
);

Removes a via or a non-text shape from the specified pin group guide.

dbStartGenPinGroupGuidePins

dbGenStateId
dbStartGenPinGroupGuidePins(
dbPinGroupGuideId pinGroupGuideId 
);

This function starts and generates the list of pin group guides in a specified pin.

dbGenPinGroupGuideFigs

Boolean
dbGenPinGroupGuideFigs(
dbGenStateId stateId, 
dbFigId *pinFigId 
);

This function generates the list of pin group guides in a specified pin.

dbDeletePinGroupGuide

Boolean
dbDeletePinGroupGuide(
dbPinGroupGuideId pggId 
);

This function deletes the specified pin group guide.

Functions for Accessing Pin Group Guide Attributes

The following functions can be used for accessing the pin group guide attributes, such as otherFigAllowed, pin group guide name, and pin group guide type:

dbFindPinGroupGuideByName

dbPinGroupGuideId
dbFindPinGroupGuideByName(
dbCellViewId cellviewId, 
constString name 
);

Returns the dbPinGroupGuideId, if the pinGroupGuide object exists in the specified cellview with the specified name.

dbGetPinGroupGuideType

dbPinGroupGuideType
dbGetPinGroupGuideType(
dbPinGroupGuideId pggId 
);

Returns the dbPinGroupGuideType of the specified pin group guide. The possible return values are area and edge.

dbGetPinGroupGuideName

String
dbGetPinGroupGuideName(
dbPinGroupGuideId pggId, 
);

Returns the name of the specified pin group guide.

dbSetPinGroupGuideName

Boolean
dbSetPinGroupGuideName(
dbPinGroupGuideId pggId, 
constString name
);

Sets the name of the specified pin group guide.

dbGetPinGroupGuidePreservePinOrder

Boolean
dbGetPinGroupGuidePreservePinOrder(
dbPinGroupGuideId pggId 
);

This functions returns a boolean value indicating whether the pin placement should preserve the pin ordering of the Pin Group Guide.

dbSetPinGroupGuidePreservePinOrder

Boolean
dbSetPinGroupGuidePreservePinOrder(
dbPinGroupGuideId pggId, 
Boolean value
);

This function sets the preservePinOrder attribute for the specified pin group guide.

dbGetPinGroupGuideEvenPinSpread

Boolean
dbGetPinGroupGuideEvenPinSpread(
dbPinGroupGuideId pggId 
);

This functions returns a boolean value indicating whether the pin placement should be spread evenly across the pin placement region or areas. The default value is true.

dbSetPinGroupGuideEvenPinSpread

Boolean
dbSetPinGroupGuideEvenPinSpread(
dbPinGroupGuideId pggId, 
Boolean value
);

This function sets the evenPinSpread attribute for the specified pin group guide.

Functions for Specifying Pin Group Guide Constraints

The following functions can be used for specifying the validRoutingLayers, layerPriorityOrder, keepoutSpacing, minSpacing, and minWidth constraints for pin group guides:

dbPinGroupGuideHasValidRoutingLayers

Boolean
dbPinGroupGuideHasValidRoutingLayers(
dbPinGroupGuideId areaPGGId 
);

This function returns a boolean value indicating whether the validRoutingLayers constraint is set on the specified area pin group guide.

dbGetPinGroupGuideValidRoutingLayers

Boolean
dbGetPinGroupGuideValidRoutingLayers(
dbPinGroupGuideId areaPGGId, 
unsigned int *numLayers,
dbLayer **layers
);

This function returns the value of the validRoutingLayers constraint set on the specified area pin group guide.

dbSetPinGroupGuideValidRoutingLayers

Boolean
dbSetPinGroupGuideValidRoutingLayers(
dbPinGroupGuideId areaPGGId, 
unsigned int numLayers,
dbLayer *layers
);

This function sets the value of the validRoutingLayers constraint on the given area pin group guide.

dbUnsetPinGroupGuideValidRoutingLayers

Boolean
dbUnsetPinGroupGuideValidRoutingLayers(
dbPinGroupGuideId areaPGGId 
);

This function unsets the validRoutingLayers constraint on the specified area pin group guide.

dbPinGroupGuideHasLayerPriorityOrder

Boolean
dbPinGroupGuideHasLayerPriorityOrder(
dbPinGroupGuideId areaPGGId 
);

This function returns a boolean value indicating that the layerPriorityOrder constraint is set on the specified area pin group guide.

dbGetPinGroupGuideLayerPriorityOrder

Boolean
dbGetPinGroupGuideLayerPriorityOrder(
dbPinGroupGuideId areaPGGId 
);

This function returns the value of the layerPriorityOrder constraint set on the specified area pin group guide.

dbSetPinGroupGuideLayerPriorityOrder

Boolean
dbSetPinGroupGuideLayerPriorityOrder(
dbPinGroupGuideId areaPGGId, 
Boolean value 
);

This function sets the value of the layerPriorityOrder constraint on the specified area pin group guide.

dbUnsetPinGroupGuideLayerPriorityOrder

Boolean
dbUnsetPinGroupGuideLayerPriorityOrder(
dbPinGroupGuideId areaPGGId 
);

This function unsets the layerPriorityOrder constraint on the specified area pin group guide.

dbPinGroupGuideHasKeepoutSpacing

Boolean
dbPinGroupGuideHasKeepoutSpacing(
dbPinGroupGuideId pggId, 
dbLayer layer
);

Returns a boolean value indicating that the keepoutSpacing constraint is set on the specified pin group guide.

dbGetPinGroupGuideKeepoutSpacing

dbDistance
dbGetPinGroupGuideKeepoutSpacing(
dbPinGroupGuideId pggId, 
dbLayer layer
);

Returns the keepoutSpacing value for the given layer on the specified pin group guide.

dbSetPinGroupGuideKeepoutSpacing

Boolean
dbSetPinGroupGuideKeepoutSpacing(
dbPinGroupGuideId pggId, 
dbLayer layer,
dbDistance value
);

This function sets the keepoutSpacing constraint value for the given layer on the specified pin group guide.

dbUnsetPinGroupGuideKeepoutSpacing

Boolean
dbUnsetPinGroupGuideKeepoutSpacing(
dbPinGroupGuideId pggId, 
dbLayer layer
);

This function unsets the keepoutSpacing constraint for the specified layer on the specified pin group guide.

dbPinGroupGuideHasMinPinSpacing

Boolean
dbPinGroupGuideHasMinPinSpacing(
dbPinGroupGuideId pggId, 
dbLayer layer
);

This function returns a boolean value indicating whether the minSpacing constraint is set for the given layer on specified pin group guide.

dbGetPinGroupGuideMinPinSpacing

dbDistance
dbGetPinGroupGuideMinPinSpacing(
dbPinGroupGuideId pggId, 
dbLayer layer,
);

This function returns minimum pin spacing value for the given layer on the specified pin group guide.

dbSetPinGroupGuideMinPinSpacing

Boolean
dbSetPinGroupGuideMinPinSpacing(
dbPinGroupGuideId pggId, 
dbLayer layer,
dbDistance value
);

This function sets the minSpacing constraint value for the given layer on the specified pin group guide.

dbUnsetPinGroupGuideMinPinSpacing

Boolean
dbUnsetPinGroupGuideMinPinSpacing(
dbPinGroupGuideId pggId, 
dbLayer layer
);

This function unsets the minSpacing constraint for the given layer on the specified pin group guide.

dbPinGroupGuideHasMinPinWidth

Boolean
dbPinGroupGuideHasMinPinWidth(
dbPinGroupGuideId pggId, 
dbLayer layer
);

This function returns a boolean value indicating whether the minWidth constraint is set for the given layer on the specified pin group guide.

dbGetPinGroupGuideMinPinWidth

dbDistance
dbGetPinGroupGuideMinPinWidth(
dbPinGroupGuideId pggId, 
dbLayer layer
);

This function returns the minWidth constraint value for the given layer on the specified pin group guide.

dbSetPinGroupGuideMinPinWidth

Boolean
dbSetPinGroupGuideMinPinWidth(
dbPinGroupGuideId pggId, 
dbLayer layer,
dbDistance value
);

This function sets the minWidth constraint value for the given layer on the given pin group guide.

dbUnsetPinGroupGuideMinPinWidth

Boolean
dbUnsetPinGroupGuideMinPinWidth(
dbPinGroupGuideId pggId, 
dbLayer layer
);

This function unsets the minWidth constraint for the given layer on the specified pin group guide.

Area Pin Group Guides Functions

The following functions are specifc to area pin group guides:

dbCreateAreaPinGroupGuide

dbPinGroupGuideId
dbCreateAreaPinGroupGuide(
dbCellViewId cellViewId, 
constString name
);

Creates an area pin group guide with the specified name in the given cellview.

dbAddAreaToPinGroupGuide

Boolean
dbAddAreaToPinGroupGuide(
dbPinGroupGuideId areaPGGId, 
dbAreaBoundaryId area
);

This function adds an area boundary to the specified area pin group guide. The boundary must be in the same design as this pin group guide.

dbSubAreaFromPinGroupGuide

Boolean
dbSubAreaFromPinGroupGuide(
dbPinGroupGuideId areaPGGId, 
dbAreaBoundaryId area
);

This function removes an area boundary from the specified pin group guide.

dbGetAreaBoundaryPinGroupGuide

Boolean
dbGetAreaBoundaryPinGroupGuide(
dbAreaBoundaryId id 
);

This function returns the area pin group guide associated with the specified area boundary.

dbAreaBoundaryHasValidRoutingLayers

Boolean
dbAreaBoundaryHasValidRoutingLayers(
dbAreaBoundaryId id 
);

This function returns a boolean value indicating that the validRoutingLayers constraint is set on the specified area boundary.

dbGetAreaBoundaryValidRoutingLayers

Boolean
dbGetAreaBoundaryValidRoutingLayers(
dbAreaBoundaryId id, 
unsigned int *numLayers, 
dbLayer **layers 
);

This function returns the value of the validRoutingLayers constraint on the specified area boundary.

dbSetAreaBoundaryValidRoutingLayers

Boolean
dbSetAreaBoundaryValidRoutingLayers(
dbAreaBoundaryId id, 
unsigned int numLayers, 
dbLayer *layers 
);

This function sets the value of the validRoutingLayers constraint on the specified area boundary.

dbUnsetAreaBoundaryValidRoutingLayers

Boolean
dbUnsetAreaBoundaryValidRoutingLayers(
dbAreaBoundaryId id 
);

This function unsets the validRoutingLayers constraint value on the specified area boundary.

dbAreaBoundaryHasLayerPriorityOrder

Boolean
dbAreaBoundaryHasLayerPriorityOrder(
dbAreaBoundaryId id 
);

This function returns a boolean value indicating that the layerPriorityOrder constraint is set on the specified area boundary.

dbGetAreaBoundaryLayerPriorityOrder

Boolean
dbGetAreaBoundaryLayerPriorityOrder(
dbAreaBoundaryId id 
);

This function returns the value of the layerPriorityOrder constraint that is set on the specified area boundary.

dbSetAreaBoundaryLayerPriorityOrder

Boolean
dbSetAreaBoundaryLayerPriorityOrder(
dbAreaBoundaryId id, 
Boolean value 
);

This function sets the value of the layerPriorityOrder constraint on the specified area boundary.

dbUnsetAreaBoundaryLayerPriorityOrder

Boolean
dbUnsetAreaBoundaryLayerPriorityOrder(
dbAreaBoundaryId id 
);

This function deletes the layerPriorityOrder constraint on the specified area boundary.

dbStartGenPinGroupGuideAreas

dbGenStateId
dbStartGenPinGroupGuideAreas(
dbPinGroupGuideId pinGroupGuideId 
);

This function starts and generates the list of areas in a specified pin group guide.

dbGenPinGroupGuideAreas

Boolean
dbGenPinGroupGuideAreas(
dbGenStateId stateId, 
dbAreaBoundaryId *areaBoundaryId 
);

This function generates the list of areas in the specified pin group guide.

Edge Pin Group Guide Functions

The following functions are specific to edge pin group guides:

dbCreateEdgePinGroupGuide

dbPinGroupGuideId
dbCreateEdgePinGroupGuide(
dbCellViewId cellViewId, 
constString name
);

Creates an edge pin group guide with the specified name in the given cellview.

dbGetPinGroupGuideEdgeBoundary

dbPRBoundaryId
dbGetPinGroupGuideEdgeBoundary(
dbPinGroupGuideId edgePGGId 
);

Returns the prBoundary associated with the specified edge pin group guide.

dbGetPinGroupGuideEdgeName

String
dbGetPinGroupGuideEdgeName(
dbPinGroupGuideId edgePGGId 
);

Returns the edge name of the specified edge pin group guide.

dbGetPinGroupGuideEdgeStartOffset

dbCoord
dbGetPinGroupGuideEdgeStartOffset(
dbPinGroupGuideId edgePGGId 
);

Returns the start offset of the edge for the specified edge pin group guide.

dbGetPinGroupGuideEdgeStopOffset

dbCoord
dbGetPinGroupGuideEdgeStopOffset(
dbPinGroupGuideId edgePGGId 
);

Returns the stop offset of the edge for the specified edge pin group guide.

dbSetPinGroupGuideEdgeStartOffset

Boolean
dbSetPinGroupGuideEdgeStartOffset(
dbPinGroupGuideId edgePGGId, 
dbCoord offset 
);

This function sets the start offset of the edge on the edge pin group guide.

dbSetPinGroupGuideEdgeStopOffset

Boolean
dbSetPinGroupGuideEdgeStopOffset(
dbPinGroupGuideId edgePGGId, 
dbCoord offset 
);

This function sets the stop offset of the edge on the edge pin group guide.

dbRemovePinGroupGuideEdge

Boolean
dbRemovePinGroupGuideEdge(
dbPinGroupGuideId edgePGGId 
);

This function removes the prBoundary and edge name specification from the specified edge pin group guide.

dbSetPinGroupGuideEdge

Boolean
dbSetPinGroupGuideEdge(
dbPinGroupGuideId edgePGGId, 
dbPRBoundaryId prBoundaryId 
);

This function specifies new or updates existing prBoundary edge information for the edge pin group guide.

Pin Group Guide Functions for Other Objects

You can use the following functions to retrieve information about objects associated with pin group guides:

dbPinHasMinPinSpacing

Boolean
dbPinHasMinPinSpacing(
dbPinId pinId, 
dbLayer layer 
);

This function returns a boolean value indicating whether the minSpacing constraint is set on the specified pin.

dbGetPinMinPinSpacing

dbDistance
dbGetPinMinPinSpacing(
dbPinId pinId, 
dbLayer layer 
);

This function returns the value of the minSpacing constraint set on the specified pin.

dbSetPinMinPinSpacing

Boolean
dbSetPinMinPinSpacing(
dbPinId pinId, 
dbLayer layer, 
dbDistance value
);

This function sets the value of the minSpacing constraint on the specified pin.

dbUnsetPinMinPinSpacing

Boolean
dbUnsetPinMinPinSpacing(
dbPinId pinId, 
dbLayer layer 
);

This function deletes the minSpacing constraint on the specified pin.

dbPinHasMinPinWidth

Boolean
dbPinHasMinPinWidth(
dbPinId pinId, 
dbLayer layer 
);

This function returns a boolean value indicating whether the minWidth constraint has been applied to the specified pin.

dbGetPinMinPinWidth

dbDistance
dbGetPinMinPinWidth(
dbPinId pinId, 
dbLayer layer 
);

This function returns the minWidth constraint value for the specified pin.

dbSetPinMinPinWidth

Boolean
dbSetPinMinPinWidth(
dbPinId pinId, 
dbLayer layer, 
dbDistance value
);

This function sets the value of the minWidth constraint on the given pin.

dbUnsetPinMinPinWidth

Boolean
dbUnsetPinMinPinWidth(
dbPinId pinId, 
dbLayer layer 
);

This function unsets the minWidth constraint on the specified pin.

dbGetFigPinGroupGuide

dbPinGroupGuideId
dbGetFigPinGroupGuide(
dbFigId figId
);

Returns the pin group guide associated with the specified figure.

dbStartGenCellViewPinGroupGuides

dbGenStateId
dbStartGenCellViewPinGroupGuides(
dbCellViewId cvId
);

This function starts and generates the list of pin group guides in a specified cellView.

dbGenCellViewPinGroupGuides

Boolean
dbGenCellViewPinGroupGuides(
dbGenStateId stateId, 
dbPinGroupGuideId *pinGroupGuideId 
);

This function generates the list of pin group guides in the specified cellView.

dbStartGenPinToPinGroupGuides

dbGenStateId
dbStartGenPinToPinGroupGuides(
dbPinId pinId 
);

This function starts and generates the list of pin group guides in a specified pin.

dbGenPinToPinGroupGuides

Boolean
dbGenPinToPinGroupGuides(
dbGenStateId stateId, 
dbPinGroupGuideId *pinGroupGuideId 
);

This function generates the list of pin group guides in the specified pin.

dbStartGenPRBoundaryPinGroupGuides

dbGenStateId
dbStartGenPRBoundaryPinGroupGuides(
dbPRBoundaryId prBoundaryId 
);

This function starts and generates the list of pin group guides in a specified prBoundary.

dbGenPRBoundaryPinGroupGuides

Boolean
dbGenPRBoundaryPinGroupGuides(
dbGenStateId stateId, 
dbPinGroupGuideId *pinGroupGuideId 
);

This function generates the list of pin group guides in the specified prBoundary.


Return to top
 ⠀
X