Product Documentation
Cadence Application Infrastructure User Guide
Product Version IC23.1, November 2023

12


Occurrence Property Dictionary

An occurrence property dictionary is a central repository for simulation-control property definitions. Applications such as UltraSim register properties in the property dictionary via application-specific property dictionary files. Other applications, such as the Cadence Hierarchy Editor, which do not necessarily know the semantics of the properties, can then be used to set the properties.

The use of a property dictionary enables the Hierarchy Editor to provide the right error checks when users set properties. It also prevents multiple applications from using the same property name for different purposes or with different property characteristics, such as a different default value.

The property dictionary only contains property definitions, which include information such as the default value of a property, the applications it applies to, and any restrictions on its use. The property dictionary does not store the values of these properties; property values are stored in the property file prop.cfg.

You can also customize the property dictionary by providing property definitions in a user property dictionary file (propdict.def file). You typically do this only for properties that you use frequently with an application but that have not been added to the dictionary by the application. The propdict.def file is typically placed in a site-level directory; however, you can also have user property dictionary files at the personal or group levels. The Cadence Setup Search File mechanism (CSF) is used to find the file.

The occurrence property dictionary is only for simulation-control properties.

Property Dictionary File

The property dictionary comprises two types of files:

Both application and user property dictionary files have the same format.

The property dictionary file has the following format:

/* Comment */
// Comment
occPropDef propName
{     attribute;     attribute;     ...
}
occPropDef propName addAffectedApp “appName”;
include path;

Related Topics

Customizing the Property Dictionary

Property Definition Statements

Property definition include the following statements:

Comments

Comments have the following syntax:

Property definitions (occPropDef statements)

Property definitions specify the default value of a property, the value type and value range that is allowed, a description, a tool tip, the applications the property applies to, and any restrictions on its use.

Property definitions have the following syntax:

occPropDef propName
{     attribute;     attribute;     ...
}

where propName is the name of the property and attribute is one of the following:

valueType = int | double | enum | string;

Specifies the type of the property value. The following types are supported: integer, double, enumerated, and string.

Example:

valueType = int;

valueDefault = default;

Specifies the default value of the property. The type of the default value must correspond to the type specified by the valueType attribute.

Example:

valueDefault = 6;

valueRange = range;

Specifies the range of legal values. The syntax of range varies depending on the type of the value.

If valueType = int, then the syntax is:

valueRange = “integer <|<= value <|<= integer;

If valueType = double, then the syntax is:

valueRange = “double <|<= value <|<= double”;

If valueType = enum, then the syntax is:

valueRange = “word word ...”;

Examples:

valueRange = -6 <= value < 14;
valueRange = 1.54 < value <= 4.8;
valueRange = “standard accelerated fast”;

affectedApp: “appName”;

Specifies the application the property applies to. A property definition can have more than one affectedApp expression.

Example:

affectedApp: “AMSUltra”;

useRestrictions = restriction;

Specifies any restrictions on the use of the property.

Syntax for one restriction:

useRestrictions = restriction;

Syntax for more than one restriction:

useRestrictions = “restriction restriction ...”;

where restriction is one of the following:

cantBeOnOcc  (cannot be placed on an occurrence)
cantBeOnInst (cannot be placed on an instance)
cantBeOnCell (cannot be placed on a cell)
cantBeGlobal (cannot be a global property)
cantInherit  (cannot be inherited)

Example:

useRestrictions = “cantBeGlobal cantInherit”;

description = “description”;

Specifies a description of the property.

description is either a set of non-special characters that do not contain whitespace or a string of printable characters that is enclosed in double quotes. If description is in quotes and you want to include a double quote or a backslash in the string, escape it with a preceding backslash: \” or \\. To specify a newline, end the line with a backslash.

Example:

description = “Defines the simulation speed and accuracy\
within the chosen simulation mode.”;

toolTip = “tip”;

Specifies a tool tip for the property, that is, the descriptive text that will be displayed when the cursor is placed over the property.

tip is either a set of non-special characters that do not contain whitespace or a string of printable characters that is enclosed in double quotes. If tip is in quotes and you want to include a double quote or a backslash in the string, escape it with a preceding backslash: \” or \\.

If valueType is enum, toolTip has the following syntax:

toolTip = “General description; description for enum 1; description for enum 2; ...”;

The following general rules apply to attributes:

addAffectedApp statements

The addAffectedApp statement adds an application to an existing property definition. It does not have to be in the same file as the property definition.

The addAffectedApp statement has the following syntax:

occPropDef propName addAffectedApp “affectedApp”;

For example, the statement

occPropDef mos_method addAffectedApp “Hspice”;

adds the application Hspice to the previously-defined property mos_method.

include statements

A property dictionary file can include other property dictionary files with the include statement.

The include statement has the following syntax:

include path;

where path is the path to the property dictionary file to be included. If the path is relative, it is interpreted as being relative to the file that contains the include statement. path can include environment variables such as $HOME and installation root expressions such as $(inst_root_with: path). Included files do not have to be named propdict.def or appName.def.

Related Topics

Installation Root Expressions

Customizing the Property Dictionary

If you want to add properties to the property dictionary, you can do so by customizing the dictionary.

In general, you do not need to customize the dictionary. However, if there are properties that you use frequently with an application, and you want the ability to set them through the Hierarchy Editor, you can add them to the dictionary. Any properties you add will be displayed in, and can be set through, the Hierarchy Editor. Also, since the Hierarchy Editor uses the property definitions to do appropriate error checks such as checking whether a specified value is of the right type or is within the legal range, adding frequently-used properties to the dictionary provides a way of minimizing errors when the properties are set.

To customize the property dictionary, you create a user property dictionary file called propdict.def.

A propdict.def file can include other propdict.def files. Therefore, you can have multiple propdict.def files. For example, if you have customized the property dictionary at different levels such as the personal, group and site levels, your personal propdict.def file can include the group and site propdict.def files.

The Cadence Setup Search mechanism (CSF) is used to find the propdict.def file to use.

To create a propdict.def file:

  1. Create an ASCII file called propdict.def in any directory that is listed in your setup.loc file, for example, $HOME.
  2. In the propdict.def file, specify the changes you want to make to the property dictionary. You can do the following:
    • Add property definitions
      Specify property definitions with the occPropDef statement.
    • Include other user property dictionary files
      Include files with the include statement. Included files do not have to be named propdict.def.

You should only add simulation-control properties that are understood by a Cadence application.

Sample Property Dictionary File

//----------------------
// Property definitions
//----------------------
occPropDef speed
{
    valueType = enum;
    valueRange = "1 2 3 4 5 6 7 8";
    valueDefault = "5";
    description = "Sets the speed/accuracy tradeoff for simulation.";
    tooltip = "Sets the speed/accuracy tradeoff for simulation.";
    affectedApp: "UltraSim";
}  
occPropDef sim_mode
{ 
    valueType = enum;
    valueRange = "s a amr ms da df";
    valueDefault = "ms";
    toolTip = "Sets the simulation mode; SPICE mode; Analog mode; Analog \
       Multi-rate mode; Mixed signal mode; Digital accurate mode; \
Digital fast mode";
affectedApp: "UltraSim";
}

Related Topics

Cadence Setup Search File: setup.loc

Property Dictionary File


Return to top
 ⠀
X