Product Documentation
Virtuoso ADE Assembler User Guide
Product Version IC23.1, November 2023

3


Working with Design Variables and Instance Parameters

You can use design variables and Component Description Format (CDF) instance parameters to set component values for simulation. Design variable values apply to specific tests. The scope of a CDF parameter value depends on which Analog Expression Language (AEL) functions you use to refer to the parameter.

See the following topics for more information:

Working with Design Variables

You can add, change, and delete design variables on the Data View pane or the Variables tab of the Variables and Parameters pane in your ADE Assembler environment.

Adding a Design Variable

To add a design variable to a test, do the following:

  1. Choose Window – Assistant – Variables and Parameters.
    The Variables and Parameters pane appears.
  2. On the Variables tab of the Variables and Parameters pane, right-click the test and choose Add Variable.
    Alternatively, you can do one of the following:
    • Click where it says Click to add variable in an expanded test tree on the Data View pane or on the Variables tab of the Variables and Parameters pane.
    • In an expanded test tree on the Data View pane, right-click a design variable and choose Add Variable.
      Alternatively, click Click to add variable.

    The Create Test Variable form is displayed.
  3. In the Variable Name field, type a name for your design variable.
    The name must begin with a letter or the underscore character (_), and can contain only letters, numbers, or underscore characters.
  4. In the Variable Value field, type a value or expression for your design variable.
    The expression can be an equation, a function, or another variable. The simulator evaluates the expression which must follow Analog Expression Language (AEL) syntax.
    Values from the results of one test can be used in the expressions for the local variables of another test. For this, use the calcVal function. For example, if an output of test2 is output1, as shown below.
    calcVal("output1" "test1") 
    In such cases, simulations for test1 are run before other tests so that the results are available for calculations.
  5. Click OK to close the form.
    Your design variable and its value appears in the expanded test tree on the Data View pane and on the Variables tab of the Variables and Parameters pane.
    You can also define variables in a definitions file.
    By default, the design variables defined for your tests are not automatically promoted as global variables in the Global Variables tree on the Data View assistant pane and the Variables tab of the Variables and Parameters assistant pane. You can set the autoPromoteVarsToGlobal environment variable in maestro.cdsenv to t to automatically promote new design variables as global variables. The design variables are displayed with a strikethrough because the settings for a global variable override the settings of design variables that have the same name as the global variable. For example, in the following figure, the design variables specified for the test named myFirstTest are automatically added as global variables. The design variables are displayed with a strikethrough because the global variables override the design variables.
You can disable the default automatic copy of design variables to global variables by setting the autoPromoteVarsToGlobal environment variable to nil.
You can view a video demonstration on how to use the calcVal function for a design variable at Using the calcVal SKILL Function in a Design Variable in the ADE Assembler.
You can view a video demonstration on how to use the autoPromoteVarsToGlobal environment variable at Use the autoPromoteVarstoGlobal Environment Variable in the ADE Assembler.

Changing the Value of a Design Variable

By default, all the design variables use the value set for the corresponding global variables. However, if required, you can choose to use a different value for a design variable for a specific test.

If you want to change the value of a design variable that is overridden by a global variable, you must do one of the following:

To change a design variable, do the following:

  1. In an expanded test tree on the Variables tab of the Variables and Parameters pane, double-click in the Value cell of the design variable you want to change.
    Alternatively, in an expanded test tree on the Data View pane, double-click the value of the design variable you want to change.
  2. Type a new value or expression for the design variable.
    If required, you can specify multiple values, a range, or an inclusion or exclusion list for a design variable. For details, refer to Adding or Changing a Variable or Parameter Specification.
  3. Press Return or click anywhere outside that table cell.
    The new value appears in the Value cell for that design variable.

Alternatively, you can change the value of a design variable in the Editing Design Variables form as follows:

  1. In an expanded test tree on the Data View pane or on the Variables tab of the Variables and Parameters pane, right-click the design variable and choose Edit Variable.
    The Editing Design Variables form appears.
  2. In the Design Variables table, select the design variable you want to change.
    The row appears highlighted and the Selected Variable fields, Name and Value (Expr), contain the name and value of the design variable you selected.
  3. Click in the Value (Expr) field.
    The editing cursor appears where you clicked.
  4. Type a new value or expression.
    To specify a valid sweep value, ensure that:
    • The value is not a blank string or does not contain a whitespace
    • If contains a range, it has the start, step, and stop values separated by colons, commas, spaces, or a combination of these
    • If specified as an expression, it is written in correct SKILL syntax and contains balanced parenthesis and quotes
    • If contains a file path, it is enclosed in double quotes so that it is not evaluated
  5. Click Change.
    The new value appears in the Design Variables table.
  6. Click OK.

When a global variable is disabled for a test and the design variable uses sweep values, separate design points are created for that test on the Results tab. For more details on the results display, see Viewing Simulation Results When Design Variables Use Swept Values.

You can view a video demonstration for this feature at Global and Design Variable Sweeps in the ADE Assembler.
Using the Run Preview tab you can verify the values of the swept variable being used for each design point, as shown below.

Using Expression Builder for Design Variables and Global Variables

Design variables or global variables can contain static values or expressions that are evaluated to get values at the run time.

You can either directly type in expressions in the Value column for the variables or use the Expression Builder to use the expression building prompts.

  1. Click in the Value column of a variable.
  2. A text box is displayed to enter a value or expression. In addition, the Open expression builder ( ) command is also displayed to the right of that box.
  3. Click Open expression builder.
    The expression builder is displayed.
    Build an expression in the space given on the expression builder, as shown below.
    If you use an existing function in the expression, the tool shows prompts to add argument values or to balance the braces.
    You can use Alt + Enter to enter line breaks while creating an expression in the expression builder. This improves readability, and makes it easy to edit long expressions.
    These line breaks in the expression are retained even when you close and reopen Expression Builder. Line breaks in the expression are retained also when outputs are exported to the CSV file. When you import these outputs using the CSV file again, line breaks in the expression remain as they were earlier.
  4. After the expression is complete, click on the expression builder.
    The expression builder is closed and expression is displayed in the Value column.

Hiding Overridden Design Variables for a Test

If the autoPromoteVarsToGlobal environment variable is set to nil, a design variable for a test is automatically promoted as global variables and the variable appears with a strikethrough in the list of variables for that test.

You can choose to hide all the overridden variables for a test and to display only those variables for which the value specified for a test is used. For this, do any one of the following:

In both the Data View pane and the Variables and Parameters assistant, the overridden variables are hidden for the test.

Deleting a Design Variable

To delete a design variable, do the following:

You can also delete design variables from the Editing Design Variables form.

Changing the Order of Design Variables

You can change the order in which the design variables are listed in the Data View assistant. A change in the order of design variables in this assistant also changes the nesting of sweep points.

To change the order of design variables, do the following in the Data tab of the Data View assistant:

  1. Expand Global Variables to view all the variables.
  2. Click a variable name and drag it.
    A blue indicator line appears at the location where you have moved it. The tooltip also shows the name of the variable being moved.
  3. Drag the indicator line to the desired location and drop the variable.
You can hold down the Ctrl key to select multiple variables and then move them together.

Enabling or Disabling Design Variables

To enable or disable the design variables:

  1. In the Data View assistant, expand the Design Variables tree for a test.
  2. Select one or more variables, right-click and choose Enable/Disable from the context-sensitive menu.
  3. The current status of the selected variables is toggled.

For example, in the following scenario, the Enable/Disable command enables variables vdc and myStart, and disables vdchi.

Copying Variable Values to Other Tests

If you have edited the values of variables in one test and want to use the same values in other tests, you can copy variable values to those tests. The Copy Variable Value to Other Tests command in the context menu of a design variable lets you copy values of variables to all or selected tests in the setup.

To copy the values of variables from one test to all other tests in the setup:

  1. In the Data View assistant, select one or more variables in the source test from which you need to copy values.
  2. Right-click one of the selected variables and choose Copy Variable Value to Other TestsAll Tests.
    The values for the selected variables are copied from the source test to all other tests that have the same variable.

Similarly, you can copy values from one test to all enabled, all disabled, or a selected test by using the following commands in the same context menu of a design variable:

To copy the values of variables to multiple tests:

  1. Select one or more variables in the source test from which you need to copy values.
  2. Right-click one of the selected variables and choose Copy Variable Value to Other TestsSelect Tests.
    The Tests for Variable Copy form is displayed.
  3. In the Available Tests list of this form, select the names of the tests to which you want to copy the variable values.
  4. Click the right arrow to move the selected tests to the Copy Variable Values to Tests list.
  5. Click OK.
    The values of the variables are copied to the selected tests.

Observe the following:

Saving Design Variables

Your design variables are saved with your ADE Assembler setup. To perform an explicit save, do the following:

Toggling the View on the Variables tab of the Variables and Parameters Assistant Pane

To toggle the view of variables on the Variables tab of the Variables and Parameters assistant pane, do the following:

Finding Design Variables in Schematic

You can search for a design variable in the schematic to identify its location. To find a variable, do the following:

  1. In the Data View pane, expand the test tree.
  2. Expand the Design Variables tree.

Right-click a design variable and choose Find Variable.

Alternatively, do the following on the Variables tab of the Variables and Parameters assistant:

  1. Toggle the view to show the variables names. Expand a variable tree to show the test names.
  2. Right-click the test name and choose Find Variable.
    If the variable is found in the schematic, the design is opened in the design tab and all the instances are highlighted, as shown below.
    In case of a hierarchical design, if the variable is not found in the top level of design, the tool traverses down the hierarchy and highlights the variable in the lower level, where found.
    If the variable is not found in the schematic, a warning message, as shown below, is displayed in the CIW.
    Variable ‘<var-name>’ not found on the schematic.

Copying Design Variable Values to the Schematic

If you change design variables in your simulation setup and want to copy the values back to the cellview before you save the schematic, do the following:

Alternatively, you can do the following:

  1. On the Variables tab of the Variables and Parameters pane, right-click the test and choose Edit Variable.
    Alternatively, in an expanded test tree on the Data View pane, right-click a design variable and choose Edit Variable.
    The Editing Design Variables form appears.
  2. Select one or more variables you want to copy to the current cellview.
  3. In the Cellview variables section, click Copy To.
    The program copies the selected design variable values to the current cellview.
  4. When you are done with the form, click OK.

Copying Design Variable Values from the Schematic

If you change design variables on your schematic and want to use these values in your next simulation, do the following:

Alternatively, you can do the following:

  1. On the Variables tab of the Variables and Parameters pane, right-click the test and choose Edit Variable.
    Alternatively, in an expanded test tree on the Data View pane, right-click a design variable and choose Edit Variable.
    The Editing Design Variables form appears.
  2. Click Copy From.
    The program copies design variable values from the schematic to the Variables tab of the Variables and Parameters pane.
  3. When you are done with the form, click OK or Cancel.
You can disable copying design variables to global variables by setting the copyDesignVarsFromCellview environment variable to nil.

Importing Design Variables from an ADE State

For details on importing the design variables and parameters by using the Loading State form, see “Loading State Information”.

Displaying Design Variables on the Schematic

To display the values of instance parameters that are design variables on the schematic, do the following:

  1. In the CIW, choose Tools – CDF – Edit.
    The Edit CDF form appears.
  2. In the Scope group box, select the Library radio button.
  3. In the CDF Layer group box, select one of the following CDF types (see CDF Type in the CDF Commands chapter in the Component Description Format User Guide for information about these choices):
    • Effective
    • User
    • Base
  4. In the Library Name field, select the library whose CDF you want to edit.
  5. On the Edit CDF form, click the Interpreted Labels tab.
    You can use interpreted labels to display parameter values, evaluated parameter values, net connectivity information, backannotated simulation information, and more. For more information, see “Specifying Label Information in the Component Description Format User Guide.
  6. On the Interpreted Labels tab, click the Parameters(cdsParam) tab.
  7. For paramEvaluate, select the full check box.
    Design variables appear on your schematic.

Defining Variables in a File

You can define functions and global variables that are not design variables (such as model parameters and simulator parameters) in a definitions file. Cadence provides sample definition files for the Spectre circuit simulator in your_install_dir/tools/dfII/samples/artist/models/spectre (see defaults.scs and definitions.scs).

To set up a definitions file, do the following:

  1. Create the file in the directory you specify in the Include Paths field on the Simulation Files Setup form.
  2. In the Definition Files field on the Simulation Files Setup form, type the full UNIX path and name of the definitions file.

The simulator reads the definitions file when it starts.

Your definitions file can contain any of the following:

Simple passing parameters

real R(real l, real w) {
return (500*l/w);
}

Functions returning constant values

real PiRho() {
return 2500;
}
real Rpi(real l, real w) {
return PiRho()*l/w;
}

For more information about defining functions in a definitions file, see “User Defined Functions (functions)” in the Spectre Circuit Simulator Reference.

See also

Example of a Polynomial Resistor as a Function of Temperature

You can define a polynomial resistor as a function of temperature as follows:

real rpoly(real value, real tdc) {
value*(1+.01*(tdc-25)+.002*(tdc-25)**2);
}

You can use this function to specify the value of a resistor as follows:

rpoly(1k,tempdc)

You can set resistor properties tc1 and tc2 so that the system automatically models resistor temperature effects, rather than defining your own functions.

About Inherited Parameter Value Functions (iPar, pPar)

You can use inherited parameter value functions iPar and pPar in conjunction with built-in functions or user-defined functions.

The following diagram shows a schematic example using pPar:

For more information about iPar and pPar parameters, see Passing Parameters in a Design in the Component Description Format User Guide.

Adding Variable Tags

To filter or search through a long list of design and global variables, you can assign specific tags to them.

To do this, perform the following steps:

  1. Right-click a variable or a group of variables in the Data View assistant and choose Tags Add/Edit Tags. You can select both design and global variables at once.
    The Add/Edit Tags form is displayed.
  2. In the Assign New Tags field, specify the tag you want to assign to the variable.
    This tag is added to the Existing Tags section of the form as well as in the Tags submenu of the context menu for global variables.
    After adding tags for multiple variables you can choose to assign the existing tags to another variable by selecting the check boxes against them.
    Alternatively, you can right-click a variable or a group of selected variables and select the tag you want to assign from the Tags submenu.
    You can then hover over a variable to see the associated tag in the tooltip. This information can also be viewed in ADE Explorer.
    A tag added to a design variable is also visible for the global variable with the same name, and vice-versa.
    On exporting the variables to a CSV file, the tags related to the variables are also exported. You can then import that CSV file to a different session and retain the tag assignments.
    To clear the tags for specific variables, right-click the variable and choose Clear Tags from the Tags submenu.
    The Clear Tags command clears the tags associated with a variable but does not delete them.

Grouping Variables using Tags

You can group global and design variables according to the tags assigned to them. To do this:

To ungroup the tags, re-select the Group By Tags command from the Design Variables or Global Variables context menu.

Assigning Tags to Corners

  1. Open the Corners Setup form.
  2. Specify a tag or a space-separated list of tags for each corner in the Tags row.
    The tag names must be unique and alphanumeric with no blank spaces. You can use _,-, +, # and @ special characters in the tags for corners. The *, =, <, >, ?, |, ', \\, \", ~, (, ), /, ;, &, and $ special characters are not supported.

    For example, let us consider the following setup.
    Here, the tags 16nm, 20nm, and, 28nm have been assigned to the corner ff_28 while the tag 28nm has been assigned to the corners ss_28 and ss_20.
    Alternatively, you can edit the corner definitions through a CSV or SDB file and add a tags row as shown in the figure.
    On importing this CSV or SDB file through the Corners Setup form, the specified tags get added to the Tags row.
    You can then hover over a corner to see the associated tag in the tooltip. This information can also be viewed in ADE Explorer.
You can assign the existing corner tags to variables using the Tags submenu of the context menu for global or design variables.

To remove a tag, select it and press the Delete key.

Grouping Corners using Tags

You can group corners according to the tags assigned to them. To do this:

Related Topics

enableGroupByTagsForCorners

Filtering Variables and Corners

You can use tags, variable names, and corner names to sort or filter a long list of variables. There are two ways to do this.

  1. In the filter of the Name column of the Data View assistant, use the format variablename cornername tag:tagname.
  2. Right-click the filter and set the Find with criterion to filter out the variables and corners with all, any, exactly, or none of the specified names and tags.
    By default, the All Of The Words option is selected. However, it is recommended to select the Any Of The Words option.
    For example, setting the filter to Any Of The Words and using the command rload ff_28 tag:28nm in the filter of the Name column will filter out:
    • The variable with the name rload
    • The corner with the name ff_28
    • The variables and corners that have the tag 28nm assigned to them
    To filter variables using multiple tags, variable names, and, corner names, specify a space-separated list of variable and corner names followed by the format tag:tag1 tag:tag2.
    Alternatively, you can click the Toggle visibility of the Filter column In the Corners Setup form.
    In the resulting Filter column, specify the tags you want to filter the corners by.
    For example, let us consider the following setup.
    Here, on specifying the tag 20nm in the Tags row of the Filter column, the corner ff_28 will get filter out.

Working with Device Instance Parameters

In ADE Assembler, you can

See the following topics for more information:

Selecting Instance Properties to be Parameterized for Simulations

To select instance parameters for the design associated with your test, do the following:

  1. Click Click to add parameter in the Parameters tree on the Data View assistant.
    The schematic associated with the test is displayed in a new tab in the ADE Assembler window and the menu changes to that of Virtuoso Schematic Editor and the Parameterization workspace is set.
    In this workspace, the Circuit Prospector, and the Variables and Parameters assistant panes are displayed. The Parameters tab on the Variables and Parameters assistant pane is also opened.
  2. On the schematic, select one or more device instances.
    To select more than one instance, hold down the Shift key and click each instance one by one or by dragging a selection box around a set of instances. Alternatively, you can use the Navigator assistant pane to select the instances.
    The parameter properties of the selected devices are listed in the upper half of the Parameters tab of the Variables and Parameters assistant pane.
  3. Expand a property tree to view the device names.
  4. Right-click an instance name and choose Create Parameter.
    Alternatively, click Create Parameter on the toolbar.
    A parameter is created for the selected property of the selected device instance. The details of the added parameter appear in the lower half of the Variables and Parameters assistant pane.
    The value to be used (shown in the Value column) is same as that of the value of the parameter in the schematic (also shown in the Design Value column). You can specify a different value in the Value column to be used while running simulation.
    You can hover above an instance name to view the related test information along with the parameter name and prompt name for that instance.
    For more details, refer to Changing the Value of a Device Instance Parameter for Simulation.

Additional Points to Note

Changing the Value of a Device Instance Parameter for Simulation

To change the value of a device instance parameter for simulation, do the following:

  1. On the upper half of the Parameters tab on the Variables and Parameters pane, click the value of the device instance parameter you want to change and type a new value.
    You might have to expand the tree by clicking the plus sign to the left of the instance name at the root of the tree.
    To view only the parameters in the Parameters tab, see Sorting Parameters by Properties and Objects.
    For example, change the value of the Length parameter from 400n to 350n.

    The instance parameter and its new value (350n) appear in the lower half of the Parameters tab on the Variables and Parameters assistant pane. The simulator uses this value when run simulations.

As shown for the M6 instance in the above example, you can sweep the values of parameters.

To specify a valid sweep value, ensure that:

Alternatively, you can do the following:

  1. Right-click the instance parameter whose value you want to change and choose Create Parameter.
    The instance parameter and its value appear in the lower half of the Parameters tab on the Variables and Parameters assistant pane.
  2. Double-click the value in the lower half of the Parameters tab and type a new one.

The parameter is also displayed in the Parameters tree in the Data View pane.

Important Points to Note

Sweeping Pcell Parameters

You can sweep Pcell parameters in the same way as described above for other device parameters. The sweep values are used to create multiple design points for simulations. During netlist creation, ADE Explorer and ADE Assembler creates subcircuits for each swept Pcell parameter value.

This feature is helpful for advanced node designs that contain Pcells with parameters to adjust circuit topology changes, such as the number of stacked components represented by a device. You can run local or global optimization to identify the best value for the Pcell parameters to optimize your designs.

Disabling a Changed Device Instance Parameter Value for a Simulation

To disable a changed device instance parameter value for a simulation, do the following:

Deleting a Parameter

To delete a parameter, do the following:

Sorting Parameters by Properties and Objects

By default, in the upper part of the Parameters tab of the Variables and Parameters assistant pane, the parameters are sorted by property names, as shown below.

To sort the parameters by object names, do the following:

Filtering Device Instance Parameters

To filter the device instance parameters that appear on the upper half of the Parameters tab on the Variables and Parameters assistant pane, do the following:

Creating Custom Device Filters

To create a custom device instance parameter filter, do the following:

  1. Write a procedure to define your custom filter.
    For example, you want to filter out the Total Width, Threshold and S/D Metal Width parameters for all instances of the pmos2v cell, write the following procedure:
    (procedure (myCustomFilter inst simulator)
    (let (paramList libName cellName instName)
    (setq instName inst->name)
    (setq cellName inst->cellName)
    (setq libName inst->libName)
    (setq paramList list())
    ;;Example filter for hiding Total Width, Threshold and S/D Metal Width
    ;;parameters for instances of cells whose names start with pmos2v 
    (rexCompile "^pmos2v")
    (if (rexExecute cellName) then
         (setq paramList
              (list
                   (list "fw" (get inst "fw"))
                   (list "l" (get inst "l"))
                   (list "fingers" (get inst "fingers"))
                   (list "m" (get inst "m"))
              )))
    paramList
        )
    )

    You must specify the CDF parameter names and not the CDF prompt names in the procedure. For example, you must specify the CDF parameter name fw and not the CDF prompt name Finger Width in the procedure.
    You can also write procedures to filter parameters of instances starting with specific names (for example, all instances starting with the name PM), or to filter parameters of instances of cells in a library (for example, filter parameters of all instances of the pmos2v cell in the gpdk090 library).
  2. Call axlRegisterCustomDeviceFilter as follows:
    axlRegisterCustomDeviceFilter "My Filter" 'myCustomFilter
    The function returns t if the registration is successful; otherwise, nil.
    My Filter appears in the Filter drop-down list.

To load your custom filters each time the program starts, you can declare and register them in your .cdsinit file.

When you select My Filter in the Filter drop-down list, the device parameters Total Width, Threshold and S/D Metal Width do not appear on the upper half of the Parameters tab on the Variables and Parameters assistant pane for the selected device instance(s).

To set a custom filter as the default filter, use the defaultParametersAssistantFilter environment variable.

Changing the Order of Device Parameters

When there are multiple parameters in the Parameters list of the Data View assistant, you can change the order in which they are listed. A change in the order of device parameters in this assistant changes the nesting of sweep points as well.

To change the order of a parameter, do the following in the Data tab of the Data View assistant:

  1. Expand Parameters to view all the parameters.
  2. Click a parameter name and drag it.
    A blue indicator line appears at the location where you have moved it. The tooltip also shows the name of the parameter being moved.
    Since all the parameters for a device are placed together, you cannot move only a single parameter for a device to another location in the list. Therefore, while you are moving a device parameter, all the other parameters for the device are also highlighted and moved, as shown below.
    While you are dragging the parameters, you cannot drop the device parameters in the midst of a list of parameters for another device. The pointer changes from a blue line to a stop icon to indicate that the movement is not allowed.
  3. Drag the indicator line to the desired location and drop the parameter.

You can also select the parameters for more than one device and move them together.

Creating Parameter Ranges

You can view a video demonstration for this feature at Create Design Parameter Ranges in the ADE Assembler.

You can specify a parameter range for an individual parameter by editing the value field in the Data View pane or the Variables and Parameters assistant, as shown below.

However, if the parameter list is long, applying a parameter range for each parameter individually can take a long time. Instead, you can use the Create Parameter Range command in the context-sensitive menu of the Parameters list. This command applies a standard parameter range to a set of selected or all the parameters in the Parameters list.

To create a parameter range for more than one or all the parameters together, perform the following steps in Data View pane or the lower part of the Variables and Parameters assistant:

  1. Select one or more variables in the Parameters list for which you want to create parameter range. Press the Shift or Ctrl key and select the parameter names.
  2. Right-click a parameter in the Parameters list and choose Create Parameter Range.

Alternatively, click Create Parameter Range ( ) on the toolbar given on the Parameters tab of the Variables and Parameters assistant.

The Create Parameter Ranges form appears, as shown below.

  1. In this form, you can specify parameter ranges in one of the following two ways:
    • Parameter range as percentage of the design value: This is the default way. In this case, the Percentage of design value option is selected and the parameter range is relative to the value of variable. If the variable is assigned any value in the Data View pane, that value is taken as a reference. If there is no value assigned to this variable in the Data View pane, the value for this variable is taken from the design.
      By default, you can specify a common percentage value for both the upper and the lower limit in the +/- % field. The lower limit is the value of a parameter in the design minus the specified % of the same design value. Similarly, the upper limit is the value of a parameter in the design added to the specified % of the value of parameter in the design.
      The +/- % field can contain only an integer value between 1 and 100, including these two values.
      Alternatively, select the Specify +/- % separately option. When you select this option, the following fields appear in the form.
      In these fields, you can specify separate % values for the upper and lower range limits.
      The -% field can contain an integer between 0 and 100, including these two values, and the +% can be set to any non-negative integer.
    • Parameter range with a specific minimum and maximum value: This option is used to specify specific minimum and maximum value for the parameter range. These values might not be relative to the value of a parameter in the design. To specify these values, select the Specify minimum/maximum values option. The Minimum Value and Maximum Value fields appear in the form.
      Specify the minimum and maximum values of the parameter range in their respective fields.
      To set the value of a parameter same as given in the design, right click the parameter name and choose Set to Design Value.
  2. Next, you can specify how to create intermediate values within the range. For this, you have the following two options in the drop-down list displayed in the lower section of the form:
    • Step Size: Use this option to specify a step size between two steps. The tool automatically creates steps between the two outer limits of the range at a gap of the given step size. In this case, ranges of all the design parameters will have the same step size, but the number of step values will depend on the minimum and maximum values.
    • Number of Step Values: Use this option to specify the number of step values to be created between the two range limits. The tool automatically calculates the required step size and creates the intermediate values. In this case, the number of step values will remain same for all the design parameters, but the step size will vary.
  3. Select the Limit to Integer Values option to specify that the step values should be only integer numbers. This would be required for parameters that cannot have decimal values, such as mfactor and number of fingers. When you select this option, parameter range is not created if the step values contain decimal values.
    An alternate way to limit the creation of range for parameters defining m-mfactorfactor and number of fingers to only integer values is to add the names of such parameters in the layoutXL.mFactorNames and layoutXL.lxFingeringNames environment variables. ADE Assembler automatically sets only integer ranges for the parameters listed in these variables.
  4. Click OK to close the form.

ADE Assembler creates the parameter ranges for all the parameters and updates the Data View and the Variables and Parameters assistants.

When the Variables and Parameters assistant is open in the schematic view and you select an instance to create a parameter, you can right-click the instance in the top area of the assistant and use the Create Parameter Range command to create a parameter as well as to apply a range of values for it.

Working with Parametric Sets

By default, ADE Assembler creates all possible sweep combinations by pairing each value of a variable or parameter with all values of the other variables or parameters. By using parametric sets, you can create a selected set of sweep combinations by picking values from the same ordinal position for all the variables or parameters in that parametric set. This reduces the number of design points, therefore, reducing the number of simulations.

You can create parametric sets when you need to run simulations for a specific set of sweep values for different parameters. This helps in saving the simulation run time.

In ADE Assembler, you can create parametric sets for the design variables at the test or global level, and for device parameters.

You can view a video demonstration for this feature at Creating Parameter Sets in the ADE Assembler.

Creating Parametric Sets in ADE Assembler

Consider an example where two global variables, vdd and vin_ac, are grouped together to create a parametric set as shown below.

In this case, ADE Assembler creates three sweep value sets that you can view in the Run Preview tab, as shown below.

The sweep value sets are created by picking values from the same ordinal position for all the variables or parameters in a parametric set.

The following figure shows that while running simulations, ADE Assembler creates three design points.

As compared to this, if the parametric sets are not created, ADE Assembler creates nine design points, where each value of vdd is paired with all three values of vin_ac.

If a parametric set is specified for global variables in ADE Assembler, all the variables that are the part of that parametric set must have same number of variable values. Otherwise, the simulation run fails with an error.

Using Parametric Sets Created in ADE Explorer

If you create parametric sets for the design variables of a test in ADE Explorer, they are reflected in the Data View assistant in ADE Assembler.

For details on how to create and manage parametric sets in ADE Explorer, refer to Working with Parametric Sets in the Virtuoso ADE Explorer User Guide.

A parametric set created for test-level design variables is not propagated to the global level. However, in a scenario when the parametric set created for global variables is a duplicate of a test-level parametric set and the test variables are not overridden, the local parametric set takes precedence. This is shown in the example given below.

Creating Parametric Sets

To create a parametric set, do the following in the Data View pane or the Variables and Parameters assistant:

  1. Hold down the Ctrl key and select two or more variables or parameters that you want to group together.
  2. Right-click and choose Group as Parametric Set.
    If you are using the Variables and Parameters assistant, click the test name or variable value in the rows under the variable name, as shown below.
  3. If required, specify sweep values for the variables.
    For different variables, you can specify sweep values in different format. For example, you can specify values for variables as shown below.

However, it is important that the number of sweep points is same for all the variables or parameters in a parametric set. If the number of sweep values are not equal, ADE Assembler flags an error during the simulation run.

Note the following changes in the Data View pane and the Variables and Parameters assistant:

A parametric set is formed and two more variables M7/l and M8/l are also added to that set. This is because M4/l and M6/l are matched with M7/l and M8/l, respectively.

Adding a Variable to a Parametric Set

To add a variable to an existing parametric set:

  1. Right-click a variable and choose Add to Parametric Set.
  2. From the list of existing parametric sets shown in the submenu, select the name of the parametric set to which you want to add the parameter.

The variable is added to the specified parametric set. In addition, all the variables are realigned to display all variables or parameters of a group together.

Including a Dependent Variables in a Parametric Set

Dependent variables that have the same number of values as that of the other variables are supported in the parametric sets. The following examples show how dependent variables can be used in parametric sets:

Example 1:

A: 1, 2

B: 7, 8

C: A, B

D: 4, 5

In this example, a parametric set that includes variables C and D, is a valid set. This simulation will create 8 design points, as listed below.

Design point 1: A1=1, B1= 7, {C1=1, D1=4}

Design point 2: A1=1, B1= 7, {C1=7, D1=5}

Design point 3: A1=1, B1= 8, {C1=1, D1=4}

Design point 4: A1=1, B1= 8, {C1=8, D1=5}

Design point 5: A1=2, B1= 7, {C1=2, D1=4}

Design point 6: A1=2, B1= 7, {C1=7, D1=5}

Design point 7: A1=2, B1= 8, {C1=2, D1=4}

Design point 8: A1=2, B1= 8, {C1=8, D1=5}

Example 2:

A: 1, 2

B: 7

C: A, B

D: 4, 5

In this example, a parametric set that includes variables C and D, is a valid set. This simulation will create 4 design points, as listed below.

Design point 1: A1=1, B1= 7, {C1=1, D1=4}

Design point 2: A1=1, B1= 7, {C1=7, D1=5}

Design point 3: A1=2, B1= 7, {C1=2, D1=4}

Design point 4: A1=2, B1= 7, {C1=7, D1=5}

Unsupported Dependent Variables

Dependent variables are not supported when:

For example:

A: 1, 2

B: A

C: 3, 4

In this example, A, B, and C cannot make a parametric set because B has only one value whereas A and C have two values.

For example:

A: 1, 2

B: A, A

C: 3, 4

In this example, A, B, and C cannot make a parametric set because there is cyclic dependency between A and B.

Removing a Variable from a Parametric Set

To remove a variable from a parametric set:

The variable is removed from the parametric set and moved to its original location in the list.

Ungrouping Parametric Sets

To ungroup the parametric set:

The group is dissolved and the variables are moved back to their original location in the Global Variables or Parameters list.

Enabling or Disabling Parametric Sets

You can disable or enable all parametric sets present in the Global Variables or Parameters list in the Data View pane.

To disable all parametric sets:

After the parametric sets are disabled, the variables are moved back to their original location in the list.

If the parametric sets are disabled, you can enable all the sets together. To do this, right-click the list name, Global Variables or Parameters and choose Enable All Parametric Sets. All the parametric sets become visible again.

Enabling and Disabling Parameters

You can enable or disable parameters before starting your simulation. This allows you to specify the set of parameters you want to be used for a particular simulation.

To enable a parameter,

To disable a parameter,

To toggle the enabling or disabling of one or more parameters,

To disable all parameters, do any of the following:

Adding Notes for Parameters

If you need to save some additional reference information about a device parameters, you can add notes for it. For this, do the following:

  1. On the Data tab of the Data View assistant pane, expand the Parameters tree, right-click the parameter for which you want to add notes, and choose Notes.
    The Add/Edit Notes form is displayed.
  2. In the Notes field, add notes for the device parameter.
    By default, the notes field can accept only 512 characters. To change the default maximum characters limit, you can set the maxNotesLength environment variable.
  3. Click OK.

The notes is added to the parameter. This is displayed in the tooltip for the parameter and is saved with the setup state.

For related information, see Adding Notes to a Test.

Adding or Changing a Variable or Parameter Specification

To add or change the specification for a variable or device parameter you want to vary (sweep), do the following:

  1. In the Global Variables tree on the Data View pane or the Variables tab of the Variables and Parameters pane, right-click the global variable for which you want to add or change the specification and choose Edit Variable.
    Alternatively, double-click the Value field next to the global variable, then click the browse button.
    The Parameterize form appears.
  2. Click Add Specification and choose one of the following from the drop-down menu:

    You can specify a set of values through which you want to sweep your design variable.

    You can specify a set of values to exclude from your parametric sweep.

    You can specify a range of values through which you want to sweep your design variable and a method for stepping through that range.

    You can specify a center value and a span value for varying your design variable.

    You can specify a center value and a percentage span value for varying your design variable.

Specifying an Inclusion List of Values

To specify an inclusion list of values, do the following:

  1. From the Add Specification drop-down menu, choose Inclusion List.
    A row appears on the Parameterize form for defining the specification type you selected. The Inclusion radio button is on.
  2. In the Values field, type a list of values you want to include in your sweep.
    You can separate the values in the list with either a comma or a space.
  3. (Optional) Click Add Specification to add another parameter specification.
  4. Click OK.
    The list of values appears in the Value column beginning and ending with the {Inclusion List} text string.
You can change an inclusion list of values to an exclusion list (to exclude the list of values from the sweep) by selecting the Exclusion radio button in the row where your inclusion list is specified. See “Specifying an Exclusion List of Values”.

Specifying an Exclusion List of Values

One application of the exclusion list is to define a From/To parameter specification (see “Specifying a Range of Values”) and exclude some values from the range by defining an exclusion list.

To specify an exclusion list of values, do the following:

  1. From the Add Specification drop-down menu, choose Exclusion List.
    A row appears on the Parameterize form for defining the specification type you selected. The Exclusion radio button is on.
  2. In the Values field, type a list of values you want to exclude from your sweep.
    You can separate the values in the list with either a comma or a space.
  3. (Optional) Click Add Specification to add another parameter specification.
  4. Click OK.
    The list of values appears in the Value column beginning and ending with the {Exclusion List} text string.
You can change an exclusion list of values to an inclusion list (to include the list of values in the sweep) by selecting the Inclusion radio button in the row where your exclusion list is specified. See “Specifying an Inclusion List of Values”.

Specifying a Range of Values

To specify a range of values and how to sweep through those values, do the following:

  1. From the Add Specification drop-down menu, choose From/To.
    A section appears on the Parameterize form for defining the specification type you selected.
  2. In the From field, type the starting value for your range.
  3. In the To field, type the ending value for your range.
  4. From the Step Type drop-down menu, select how you want the simulator to step from one value to the next:

    Linear

    Linear steps from the From value to the To value

    Decade

    Decade steps from the From value to the To value

    Octave

    Octave steps from the From value to the To value

    Logarithmic

    Logarithmic steps from the From value to the To value

    Times

    Steps taken according to a specified multiplier from the From value to the To value

  5. Depending on the Step Type you selected, type the remaining value for your parameter specification in the field that appears:
    Step Type Field that appears Value

    Auto

    Total Steps

    Total number of steps to take

    Linear

    Step Size

    Size of steps to take when sweeping

    Decade

    Steps/Decade

    How many steps to take per decade

    Octave

    Steps/Octave

    How many steps to take per octave

    Logarithmic

    Total Steps

    Total number of steps to take

    Times

    Multiplier

    Multiplier for taking steps

    Typing 10 for Multiplier is tantamount to selecting Decade and specifying 1 step per decade.
  6. (Optional) Click Add Specification to add another parameter specification.
  7. Click OK.
You can change the specification type from From/To to Center/Span or Center/Span% by selecting a different item from the drop-down menu in the added section. See “Specifying Center and Span” and “Specifying Center and Span as a Percentage” for more information.

Specifying Center and Span

To specify a center value and a span value, do the following:

  1. From the Add Specification drop-down menu, choose Center/Span.
    A section appears on the Parameterize form for defining the specification type you selected.
  2. In the Center field, type the center value.
  3. In the Span field, type a span value.
    The simulator can vary your parameter between Center-Span and Center+Span according to the Step Type you select (next).
  4. From the Step Type drop-down menu, select how you want the simulator to vary the parameter value:

    Linear

    Linear steps from Center-Span/2 to Center+Span/2

    Decade

    Decade steps from Center-Span/2 to Center+Span/2

    Octave

    Octave steps from Center-Span/2 to Center+Span/2

    Logarithmic

    Logarithmic steps from Center-Span/2 to Center+Span/2

    Times

    Steps taken according to a specified multiplier from Center-Span/2 to Center+Span/2

  5. Depending on the Step Type you selected, type the remaining value for your parameter specification in the field that appears:
    Step Type Field that appears Value

    Auto

    Total Steps

    Total number of steps to take

    Linear

    Step Size

    Size of steps to take when varying

    Decade

    Steps/Decade

    How many steps to take per decade

    Octave

    Steps/Octave

    How many steps to take per octave

    Logarithmic

    Total Steps

    Total number of steps to take

    Times

    Multiplier

    Multiplier for taking steps

    Typing 10 for Multiplier is tantamount to selecting Decade and specifying 1 step per decade.
  6. (Optional) Click Add Specification to add another parameter specification.
  7. Click OK.
You can change the specification type from Center/Span to Center/Span% or From/To by selecting a different item from the drop-down menu in the added section. See “Specifying Center and Span as a Percentage” and “Specifying a Range of Values” for more information.

Specifying Center and Span as a Percentage

To specify a center value and a span percentage, do the following:

  1. From the Add Specification drop-down menu, choose Center/Span%.
    A section appears on the Parameterize form for defining the specification type you selected.
  2. In the Center field, type the center value.
  3. In the Span field, type a span value.
    The simulator can vary your parameter between and according to the Step Type you select (next).
  4. From the Step Type drop-down menu, select how you want the simulator to vary the parameter value:

    Linear

    Linear steps from
    to

    Decade

    Decade steps from
    to

    Octave

    Octave steps from
    to

    Logarithmic

    Logarithmic steps from
    to

    Times

    Steps taken according to a specified multiplier from to

  5. Depending on the Step Type you selected, type the remaining value for your parameter specification in the field that appears:
    Step Type Field that appears Value

    Auto

    Total Steps

    Total number of steps to take

    Linear

    Step Size

    Size of steps to take when varying

    Decade

    Steps/Decade

    How many steps to take per decade

    Octave

    Steps/Octave

    How many steps to take per octave

    Logarithmic

    Total Steps

    Total number of steps to take

    Times

    Multiplier

    Multiplier for taking steps

    Typing 10 for Multiplier is tantamount to selecting Decade and specifying 1 step per decade.
  6. (Optional) Click Add Specification to add another parameter specification.
  7. Click OK.
You can change the specification type from Center/Span% to Center/Span or From/To by selecting a different item from the drop-down menu in the added section. See “Specifying Center and Span” and “Specifying a Range of Values” for more information.

Deleting a Parameter Specification

To delete a parameter specification, do the following:

To delete the last parameter specification listed in the form, do the following:

  1. On the Parameterize form, click Delete Spec.
    The last specification listed in the form is deleted.
  2. Click OK.
You can delete all but one specification in the form. If you want to delete the only remaining specification in the form, delete the values specified for the specification and click OK.

Creating Matched Device Parameters

You can create matched parameters for device matching such that one device’s parameters track with another’s. To specify two or more devices to match, do the following:

  1. On your schematic, click to add the first device, then Shift+click to add one or more additional devices.
    As you click, each device and its parameters appear on the upper half of the Parameters tab of the Variables and Parameters assistant pane.
  2. In the upper half of the Parameters tab of the Variables and Parameters assistant pane, select (highlight) the device you want to be the primary device against which all other devices are matched.
  3. In the upper half of the Parameters tab, click a property that you want to match between the selected devices.
  4. Click Match Parameters on the toolbar.
    The instance name of the primary device for which matched parameters exist appears in the lower half of the Parameters tab of the Variables and Parameters assistant pane.
  5. (Optional) To view the devices whose parameters are matched to an instance, select the instance and parameter combination and click the plus sign to the left of an instance name in the lower half of the Parameters tab.
    The value of a matched parameter appears in the Value column as follows to indicate the matching relationship:
    primaryInstName/deviceParam@
    For example, in the above figure, the value M6/l@ for instance M7 indicates that the length parameter of instance M7 is matched to the l parameter of instance M6 (the primary device).
    You can also match parameters across different levels of design hierarchy.
    You can also right-click in the lower half of the Parameters tab and choose Expand All to view the devices whose parameters are matched to all primary devices. Right-click and choose Collapse All to collapse the expanded view.

For information about using matched device parameters in the context of optimization, see Matching Devices and Device Properties.

Creating Ratio-Matched Device Parameters

You can create ratio-matched parameters for device tracking such that one device’s parameters track with the ratio of another’s. To specify two or more devices to ratio-match, do the following:

  1. On your schematic, click to add the first device. Next, Shift+click to add each additional device.
    As you click, each device and its parameters appears in the panel on the upper section of the Parameters tab of the Variables and Parameters assistant pane.
    You can also create ratio-matched parameters for the devices in different hierarchy levels of the design. For more details, see .
  2. Select a device in the upper section on the Parameters tab of the Variables and Parameters assistant pane.
  3. Click Ratio Matched Parameters .
    The ratio-matched parameters are created. A row is created in the lower section of the assistant pane and name of the primary device (that appeared on top in the upper section of this pane) and the parameter name is displayed in that.
    For example, if you selected three devices, M3, M4, and M5, and created a ratio-matched parameter for the parameter length, a new row displaying M3 and l is created, as shown below.
  4. (Optional) To view the devices whose parameters are ratio-matched to the primary device, click the plus (+) sign to the left of an instance name in the lower half of the Parameters tab.
    The value of a ratio-matched parameter appears in the Value column as follows to indicate the matching relationship:
    ratio*primaryInstName/deviceParam@
    For example, in the above figure, the value 3.5*M3/l@ for instance M4 indicates that the l parameter of instance M4 is ratio-matched to the l parameter of instance M3 (the primary device).
    You can also right-click in the lower half of the Parameters tab and choose Expand All to view the devices whose parameters are matched to all primary devices. Right-click and choose Collapse All to collapse the expanded view.

For information about using ratio-matched device parameters in the context of optimization, see Ratio-Matching Device Properties.

Disabling Callbacks on Swept Device Parameters

By default, the program executes callbacks on device parameters that you sweep.

To disable callbacks on swept device parameters, do the following:

For more information about callbacks in parameter expressions, see also

Scope of Parameters

You can use design variables and CDF parameters to set component values.

Do not use callbacks on parameters whose values are expressions, particularly expressions that use pPar. The expressions might not be evaluated correctly and the system does not detect the errors. In general, try to avoid callbacks whenever possible.

Inheriting from the Same Instance: iPar()

When a parameter value must depend on the value of another parameter on the current instance, use the iPar function.

iPar( "CDF_parameter_name" )

The value of this expression is the value of this parameter on the current instance, or its value on the cell’s effective CDF.

For example, suppose the parameter AD of a MOS transistor is a function of its channel width. You could define AD in the Schematic window using the Edit – Properties command as

iPar("w")*5u

The resulting value is the value of w on the instance times 5u.

The iPar expression is substituted with the value of the parameter, enclosed by parentheses, during netlisting. If no value is found, the system reports an error.

Passed Parameter Value of One Level Higher: pPar()

When a parameter expression must depend on the value of a passed parameter, use the pPar function.

pPar( "CDF_parameter_name" )

The value of this expression is the value of the passed parameter.

For example:

pPar("vss") 

value of the “DC Voltage” parameter on the v27 instance in the aExamples opamp schematic is specified for the aExamples lowpass schematic as 15.

When you create new symbols using automatic symbol generation (the Create Cellview – From Cellview command in the Schematic window), the system creates component parameters for the parameters you defined with pPar. The following illustration gives an example of the automatic symbol generation process.

During netlisting, the pPar expression is substituted by the name of the parameter.

Using Ppar

Passed Parameters from Any Higher Level: atPar()

You should avoid using atPar. Use pPar instead.

Inheriting from the Instance Being Netlisted: dotPar()

You should avoid using dotPar. Use iPar instead.

Table of Functions

Parameters can be inherited by algebraic expressions that are used as component values. The Analog Expression Language (AEL) provides functions to control how parameters are inherited. The AEL inheritance functions are compatible with the corresponding NLP functions shown in the following table.

Functions Meaning Scope Rules
AEL NLP (OSS)

iPar

[~

Instance parameter

Search the instance carrying iPar, then the effective cell CDF

pPar

[+

Parent parameter

Search the parent instance, then the effective cell CDF of the parent instance


Return to top
 ⠀
X