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 Boolean-valued property can have one of two values: TRUE or FALSE.
- A float-valued property is represented by a 32-bit floating-point number.
- An integer-valued property is represented by a 32-bit integer number.
- A string-valued property is a pointer to a null-terminated array of characters.
-
An
ilexpression-valued property is not available in ITKDB. - A file name-valued property is the path of a file and is represented by a string.
- An NLP-expression-valued property is represented by a string containing an NLP (netlist property) expression. These expressions are interpreted and used by Cadence® netlist generators.
- A time-valued property is represented by an unsigned 32-bit integer containing the number of seconds elapsed from 00:00:00 GMT, Jan. 1, 1970.
- A hierarchical property has other properties attached to it but has no value in itself.
- An IL list-valued property is not available in ITKDB.
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.
| Type | Enumerated constants in type dbPropType |
|---|---|
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,
-
id(or ID in text) is defined as a genericdbId. -
valueis defined as adbPropValueunion. -
propIdis defined as adbPropId.
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);
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( dbIdid, unsigned intnProps, dbParamRec*propList);
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:
- The values of already existing properties specified in the property list are updated with the new values.
- New properties in the specified property list are created on the object.
- The properties that already exist on the object, but are not specified in the property list, are deleted.
- If the specified property list is empty, all the existing properties on the object are deleted.
Arguments
|
Database ID of the object whose properties are being replaced. |
|
Return Value
|
|
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.
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.
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
- The group type (either a set or a collection)
- Whether the members of the group are ordered
- Whether the group name is unique within the cellview that contains it
- A deletion control attribute
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.
| Name | Enumerated constants in type dbGroupType |
|---|---|
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:
-
deleteNeverindicates the group must never be deleted automatically, even when it contains no members. -
deleteFirstindicates the group is automatically deleted when any member of the group is deleted. -
deleteLastindicates the group is automatically deleted when it contains no members.
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.
| Name | Enumerated constants in type dbGroupDeleteWhenType |
|---|---|
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.
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.
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.
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.
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.
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