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

13


Performing Circuit and Device Checks

ADE Explorer provides an interactive user interface where you can define circuit or device checks that are performed using the simulation results. The violations of these checks are highlighted on the Checks/Asserts view on the Results tab. You can view and analyze the violations by using the various features of this view, such as, filtering violations using the built-in or custom filters, finding the critical instances or nets on the schematic, or highlighting the violation results on the waveforms. Next, waive or resolve the violations as per your requirements, and rerun simulations to verify the results.

This chapter describe how to use the tools and features in ADE Explorer to perform circuit and device checks, and to resolve violations:

An Introduction to Checks and Asserts

This section provides an introduction to the types of checks supported by ADE Explorer. It also introduces the Checks/Asserts tree in the Setup assistant.

Checks

Checks (or circuit checks) enable you to analyze typical design problems, such as high impedance nodes, leakage paths between power supplies, setup and hold timing errors, power issues, connectivity problems, or extreme rise and fall times.

Circuit checks are of two types shown below.

For more details on the circuit checks that can be performed by the Spectre simulator, refer to Circuit Checks in Spectre Classic Simulator, Spectre APS, Spectre X, and Spectre XPS User Guide.

Asserts

Asserts (or device checks) are used to perform checks on design parameters, node voltages, element currents, model parameters, operating point parameters, and expressions. In Spectre, the assert and checklimit statements are used to define and run device checks.

For details and examples on the device checks that can be performed by the Spectre simulator, refer to Device Checks in Spectre Classic Simulator, Spectre APS, Spectre X, and Spectre XPS User Guide.

Dependency on Simulators

In ADE Explorer, you can perform all the circuit and device checks that are supported by the MMSIM 14.1 ISR11 or later releases. The checks should be defined using the required syntax and keywords, and can include wildcards, subcircuits, and instance scoping. Spectre writes the results of these checks into the SQLite database in XML format. ADE Explorer reads that data and displays it in tabular format on the Results tab.

The static checks are supported only in APS and XPS.

Viewing Checks and Asserts in the Setup Assistant

The Checks/Asserts tree in the Setup assistant shows the cellviews for which checks and asserts have been defined. By default, this check box is disabled.

You can enable or disable checks for selected cellviews by selecting or clearing the check boxes next to them.

You can define checks for cellviews in the Checks/Asserts assistant. For more details, see Adding Checks and Asserts.

Adding Checks and Asserts

Checks can be added in the following two ways:

Any custom or default system constraint created in the Constraint Manager assistant can be propagated automatically to the Checks/Asserts assistant. For information about how to enable the automatic propagation, see Propagating Constraints to the Checks/Asserts Assistant in Virtuoso Unified Custom Constraints Configuration Guide.

Adding Checks using the Checks/Asserts Assistant

To add checks, perform the following steps:

  1. In the Setup assistant, expand the Checks/Asserts tree.
    The Cellviews tree appears including all the available cellviews.
  2. Click Click to edit checks.

The schematic view of that cell is opened in a new tab.

By default, the Checks-Edit workspace is opened. This workspace shows the Checks/Asserts assistant on the left.

To add new checks, perform the following steps:

  1. In the Checks/Asserts assistant, click the checks drop-down list, and choose the type of check you need to create. For example, Circuit Checks - Dynamic.
    The list of dynamic checks for which templates are available in Spectre are shown in the submenu.
    The check is added to the top section of the Checks/Asserts assistant. Its corresponding parameters are displayed in the bottom section, which is also called as the Editor pane of this assistant.
    There is no list of checks for Device Check. For this type of checks, you can directly provide parameters in the Editor pane.
  2. Move the pointer over a check name in the top area of the assistant to view its definition and parameters in a tooltip.
    If the Editor pane is not visible, click Checks/Asserts Editor ( ) on the assistant toolbar.
  3. Edit the check parameters as required. You can define the scope for a check by setting the Node, Device, and Inst fields.
    Either type the names of nodes, devices, and instances, or directly select these from the schematic.
    To apply a check for all the nodes or instances, enter * in the respective field.
    If a field value for a parameter is unchanged, it will use the default values for that parameter as defined in the simulator file. The default values can be found in two ways:
    • By using the spectre -help <checkName> command, as shown below.
      spectre -help assert
      spectre -help dyn_highz
    • By moving the pointer over any check parameter in the Editor pane. The definition and default value for a parameter is displayed in the tooltip.
  4. Repeat steps 1 to 3 to add more checks.
  5. Click Save in the toolbar to save the checks.
    It is required to save the checks to ensure they are netlisted correctly. If you run simulation without saving changes in the constraints view, ADE Explorer displays a message and prompts you to save changes.
    The Checks/Asserts — Cellviews tree lists all the cellviews contained in the design. The numerical value next to each cellview shows the count of checks defined for each. To edit the checks for a cellview, right-click it and choose Edit Checks. The cellview is opened in the schematic view where you can add or edit checks in the Checks/Asserts assistant.
    An example displaying a circuit check and a device check is shown below.
    The checks and asserts defined for a cell using the Checks/Asserts assistant are stored in a special partition of the constraint view for the cell. These checks will be netlisted using the subcircuit parameter to keep the scope of the check to the cellview in which it is created. These checks are included in the simulation whenever that cell is instantiated in a design.

Copying Checks or Asserts

If the check or assert you need to create for a cellview already exists for another cellview instantiated in the design, you can copy that and customize it, if required.

To copy a check or assert, perform the following steps:

  1. Right-click the source cellview from which you need to copy the check or assert, and choose Edit Checks.
    The constraint view of the cellview is opened in a new tab and the checks/Asserts assistant is displayed.
  2. Right-click one or more checks and asserts to be copied and choose Copy Checks/Asserts from the context-sensitive menu.
    The copied check or assert is saved in the memory.
  3. Reopen the maestro cellview tab.
  4. Right-click the cellview to which you need to copy or reuse the copied check or assert, and choose Edit Checks.
  5. The constraint view of the target cellview is also opened in a new tab and the Checks/Asserts assistant is displayed
  6. Ensure that the constraint view is editable. If not, click Save Checks/Asserts – Make Editable.
  7. Right-click anywhere in the checks/asserts pane and choose Paste Checks/Asserts.
    The copied check or assert is added to the cellview. You can view and edit its parameters in the parameter editor pane of the Checks/Asserts assistant.

Importing Asserts from Text Files Included in the Setup

If you have defined device checks or Spectre asserts in model files, you can include those files.

To import device checks, perform the following steps:

  1. Right-click the test name and choose Model Libraries.
    The Model Library Setup form is displayed.
  2. Click <Click here to add model file> to view the Browse button.
  3. Click Browse and select a model file that contains the definitions of device checks.
  4. (Optional) If you want to view or edit the asserts, select the name of the model file and click Edit/View Selected Files.
  5. Click OK to apply the changes and close the form.

The asserts included from the model file will now be included in the netlist and used in simulation runs.

After creating circuit checks, the next steps are to:

Filtering Violations

Violation filters provide a way to visualize the different metrics for checks, such as the number, duration, or any user-specified categories of violations. Each violations filter can have its own specification and is treated like any other output.

To create a violation filter, perform the following steps:

  1. On the Add Outputs drop-down on the Run toolbar, choose click Violation Filter to add a new output to show violation filters for checks or asserts.
    A new row is created with its type set as violations.
  2. Enter a name in the Name column for the violation output.
  3. Double-click the Details column for this row.
    The following three drop-down lists are displayed:
    • The first drop-down list is the type of operation you want to perform. For example, you can select Count to count the number of violations. Other operations available in this drop-down list are Avg, Min, Max, or Sum.
    • The second drop-down list specifies the field you want to access within the violation result. For example, for the Avg such as Duration or PeakValue. If the first value is Count, the second value defaults to *. Otherwise, the choices in the second list vary depending on the item select in the third list.
    • The third drop-down list shows the list of checks defined. Choose a check on which you want to run the operation selected in the first drop-down list. You can select an individual violation type, for example, Dynamic HighZ Node Check or a grouped category, such as Dynamic Checks or All Checks/Asserts. The second list of fields is updated depending on the selection in this list.
  4. Select values from the drop-down lists to build an expression for the violation filter.
    Example expressions:
    • Count ‘Device Checks’
    • Max 'RMS(W)' on 'Dynamic Subckt Port Power Check - Port Power Report'
  5. Add a specification for the violation in the Spec column for the output.

Running Simulations and Viewing Violations

After adding checks in the Checks/Asserts assistant and defining violation filters in the Outputs Setup pane, you can run a simulation to run the checks on the simulation results. The Detail results view shows a consolidated report of the violation filter expressions defined in the Output Setup tab. For example, Count will report the number of violations of the specified type.

If no violations are found, the result for the violation filter shows No violations. When violations are reported, the status is either pass or fail.

The violation filter output value for each corner is a hyperlink. Click any value with hyperlinks to display the detailed results that contributed to this value. The net- or instance-wise details are opened in Checks/Asserts results view. With an aim to resolve violations, you can use the hyperlinks in that detailed view, find the violating nodes or instances, waive violations, and add comments.

The Checks/Asserts results view provides a lot of controls to customize the display of violation details.

When the results are displayed in the Results tab, you can perform the following tasks in the Results tab:

For detailed information, refer to Running Simulations and Viewing Violations in Virtuoso ADE Assembler User Guide.

Specifying the Global Device Check Options

You can specify the global device check options, such as start and stop times for a transient analysis and default severity for various Spectre and AMS analyses.

To open the device check options form:

  1. Choose Simulation – Option – Analog.
    The Simulator Options form appears. For more information about how to use this form, see Setting Spectre Options
  2. Open the Check tab.
  3. Click the Options button available at the bottom of the Check tab.
    The Device Checking Options form appears, as shown in the figure below.

When you open this form, the Transient tab is open by default. You can also use this form to specify the global device check options for various analyses.

The following fields are displayed on the Transient tab:

The remaining tabs, DcOp, Dc, Ac, Sp, and Noise, include only three fields as shown in the figure below:


Return to top
 ⠀
X