Product Documentation
Voltus-Fi Custom Power Integrity Solution XL User Guide
Product Version IC23.1, August 2023

10


What-If EMIR Analysis

The What-If analysis feature lets you analyze the impact of potential layout changes, without implementing these changes in the layout, and re-extracting the xDSPF file. These changes are also called the ECO changes.

The What-If flow is supported in the regular “iterated” method EMIR flow, and in an incremental “itereco” method EMIR flow, which reuses the circuit simulation results from a previous iterated mode EMIR analysis. This is shown in the figure below.

The What-If changes are defined in an ECO file, which is included in the EMIR control file (emir.config). All ECO changes are relative to the original xDSPF content. In one What-If simulation, all changes defined in the ECO file are applied. These are then analyzed together in the second stage of the EMIR analysis.

Multiple incremental ECO runs are supported. For each run, the changes defined in the ECO file are applied to the original xDSPF content. Changes from previous ECO runs are not considered. In the incremental What-If analysis, only the nets with ECO changes are analyzed.

Other EMIR methods, such as “method=direct”, are not supported when performing What-If analysis.

All ECO changes for a specific What-If run are defined in one ECO file.

ECO Commands Supported in Voltus-Fi-XL

The following ECO commands are supported in Voltus-Fi-XL:

The parameters listed above are defined as follows:

An example ECO file (emir.eco) is as follows:

add_pin net=[VDD] name=[VDD#9]
delete_pin net=[bias1] name=[Rj3652]
scale_res net=[VDD] name=[Rg1 Rg2 Rg3 Rg4] scale=0.5
delete_res net=[VDD] name=[Rg5]
add_res net=[VDD] node=[VDD#80 VDD#81] r=10
add_cap net=[VDD] cap=[VDD#80 10e-15 VDD#81 5e-15]

Alternatively, all ECO commands can also be used with the prefix, eco_ in the emir.conf file directly. For example,

eco_add_pin net=[VDD] name=[VDD#9]

When performing a regular iterated method EMIR analyses with What-If, the only change required in the emir.conf file is the reference to the ECO file.

solver method=iterated
eco file=-”emir.eco”

The following lines need to be defined in the emir.conf file to enable an incremental What-If EMIR analysis.

solver method=itereco inputwf=”./input.emirtap.pwl"
eco file=”emir.eco”

Performing What-If (ECO) Analysis in Voltus-Fi-XL

The What-If flow in Voltus-Fi-XL GUI is as follows:

To perform What-If analysis, first load the IR drop analysis results, select the net and click Show Plot. In the IR/EM Results form, the What-If (ECO) Analysis tab gets enabled. The software provides support in the form of tips about how to enable the What-If (ECO) tab when you hover over the tab name. This is shown below. It also provides help to fill out information in the various fields in the tab. This tooltip appears when you hover over the fields in the form.

Figure 10-1 Tooltips for What-If (ECO) Analysis Tab of the IR/EM Results Form

Figure 10-2 the IR/EM Results Form – What-If (ECO) Tab

In this form, provide the following information:

In the Node name group box, provide the information for the node on which the What-If (ECO) analysis is to be performed.

In the Recurrence group box, provide the following information:

Pre-Filling the Run Simulation Form

The Run Simulation form that opens when you click the Run ECO button in the What-If (ECO) analysis tab, is pre-filled with information that is already available from the Spectre run. To ensure that the form is pre-filled, the following information must be available:

The software performs below steps to extract the data from the original Spectre run for pre-filling the Run Simulation form.

  1. The software locates the log file generated by Spectre. The “xps.log” or the “aps.log” file is located either in the same directory as the emir bin file or in the parent directory of the emir bin file.
  2. The software parses the ".log" file and searches for the "command line" used in the original Spectre run. The command line contains the "ckt file" and "command line options" used in the original Spectre run.
  3. It then creates a directory parallel to the directory containing the "ckt file" for the What-If Spectre run. The new directory is created with the name, "whatIfRunDir". This will contain the output of the What-If Spectre run.
  4. The software searches for the “conf” file generated after the original Spectre run in the emir bin file directory and then creates a new "conf" file for the What-If spectre run, in the directory "whatIfRunDir" and performs the following tasks in the newly created "conf" file:
    • Copies the data from the "conf" file from the original Spectre run
    • Changes the solver method from "iteronly" to "itereco"
    • Appends the ECO file, "eco file:ECO_filename" to the conf file

Now, when you click Run Simulation, the simulation runs using the above newly-generated conf file that includes information about the ECO options.

To view the demonstration on performing what-if analysis in Voltus-Fi, see Performing What-If Analysis using Voltus-Fi video.

Access to this video will depend on the availability of a web browser and a Cadence Online Support account.

Output

The output of the above simulation run with ECO changes is a simulation database (*.emir#_bin). You can use this simulation database for running the EMIR analysis.

For this, load this simulation database—with ECO changes—when loading the IR drop analysis results on the IR tab of the IR/EM Results form.

The subsequent EMIR analysis will be performed using this simulation database.

Options for Performing What-If (ECO) Analysis

When you select the ECO command that you want to run in the whatif changes list, there are some changes in the other options on the What-If (ECO) tab. These are detailed below.

Layout Modification Options

Voltus-Fi-XL provides options to modify the layout for the specified ECO command in the GUI mode. For this, layout-modify button is provided on the What-If (ECO) tab of the IR/EM Results form. This feature lets you view the layout modifications after adding and deleting pins, resistors, and vias.You can also perform design-rule checks (DRCs) and view the design-rule violations (DRVs) in the layout after performing these actions.

This feature is only available when the design is opened in the Virtuoso Layout Suite (VLS) XL.

The following topics are covered in this section:

Adding Pins and Modifying the Layout

On the What-If (ECO) tab of the IR/EM Results form, perform these steps to add a pin and modify the layout:

  1. Select add_pin ECO command from the Whatif changes list.
  2. Click Get Node and then click anywhere on the Virtuoso layout to get a sub-node on the net.
  3. Click Add data to add the ECO command, add_pin in the table.
  4. Click the layout-modify button provided in the table to add the pin in the layout. The default pin shape is 0.1uX0.1u.
    Figure 10-16 Adding a Pin and Modifying the Layout – Step 1
    Figure 10-17 Adding a Pin and Modifying the Layout – Step 2

Deleting Pins and Modifying the Layout

Follow these steps to delete a pin and modify the layout:

  1. Select delete_pin ECO command from the Whatif changes list.
  2. Click show pins to view the list of pins. Select the pin you want to delete. The delete_pin ECO command is added in the table.
  3. Click layout-modify to delete the pin in the layout.

Adding Resistors and Modifying the Layout

Follow these steps to add a resistor and modify the layout:

  1. Select add_res ECO command from the Whatif changes list.
  2. Select a metal layer from the Node layer group box and get the Node 1 and Node 2 information from the layout. Both nodes should be on the same layer.
  3. Specify the Res value (ohm).
  4. Click Add data to add the ECO command, add_res in the table.
  5. Click layout-modify to add the resistor in the layout. The new resistor created in the layout will have a default wire width of 0.1u.
    Figure 10-18 Adding a Resistor and Modifying the Layout

Deleting Resistors and Modifying the Layout

Follow these steps to delete an MMSIM/Spectre resistor and modify the layout:

  1. Select delete_res ECO command from the Whatif changes list.
  2. Select a metal layer and get the resistor information from the layout.
  3. Click Add data to add the ECO command, delete_res in the table.
  4. Click layout-modify to delete the resistor from the layout. Design rule violations (DRVs) will be checked after modifying the shape.
    Figure 10-19 Deleting a Resistor and Checking the DRVs

Adding Vias and Modifying the Layout

Follow these steps to add a via and modify the layout:

  1. Select add_via ECO command from the Whatif changes list.
  2. Select a metal layer and select Node 1 from the layout.
  3. Select another layer and select Node 2 from the layout.
  4. Click Add data to add the via in the layout. The software searches for existing via definition (viaDef) in the technology file based on the via layers selected by you. The following scenarios are possible.
    1. If the via definition is available, a new via is created.
    2. If the via definition is not available, the tool errors out.
  5. The generated via has the following default values:
    1. Number of cut rows=3
    2. Number of cut columns=3
      Figure 10-20 Adding a Via and Modifying the Layout

Deleting Vias and Modifying the Layout

Follow these steps to delete a via and modify the layout:

  1. Select delete_via ECO command from the Whatif changes list.
  2. Select a via layer and select a via from the layout.
  3. Click Add data to add the ECO command, delete_via in the table.
  4. Click layout-modify to delete the via from the layout.

Design Rule Checking

Design rules are checked during layout modifications. Virtuoso XL DRD (Design-Rule-Driven) editing is automatically turned ON by Voltus-Fi while performing the layout modifications. The violations can be viewed in Annotation Browser and the layout window.

The figure below shows the DRVs post layout modifications after deleting a via.

This feature is only available when the design is opened in the Virtuoso Layout Suite XL.

Figure 10-21 Checking DRVs after Deleting a Via


Return to top
 ⠀
X