Product Documentation
Virtuoso Electrically Aware Design Flow Guide
Product Version IC23.1, November 2023

4


Extracting Parasitics in the Layout View

This chapter explains how you extract and analyze parasitic information from a partial or complete layout view using the EAD Browser for a layout view. EAD Browser is an assistant you use to drive your electrically-aware design session.

One of the main benefits of the EAD Browser is that it can be used to analyze parasitic information for both partially and fully completed layouts. Not all devices and nets need to be routed before you launch EAD Browser, and you can place and route devices while the application is running.

This section explains how to start EAD Browser from a schematic or layout view, and provides details on the EAD workspace and EAD Browser. It goes on to explain how to define and manage EAD setup and process information and then use that setup to extract parasitics for your design and analyze the results in the EAD Browser and layout canvas.

You can view a video demonstration for this feature at Verifying the Parasitic Information for a Partial Layout.

Starting EAD Browser for a Layout

Starting EAD from a Layout Window

You can also start EAD from a layout window. To do this,

Starting EAD Browser

You start Layout EXL or Layout MXL in the same way as Layout XL; either from a schematic view that is open in the Virtuoso Schematic Editor or from a layout view that is open in Virtuoso Layout Suite.

EAD and its various features are enabled only while you are in the Layout EXL or in Layout MXL application. When you close Layout EXL or switch to another VLS tier, all EAD-specific data and features are removed from the layout window.

Starting Layout EAD from a Schematic View

To start Layout EAD from a schematic view,

  1. From the schematic editor menu bar, choose Launch – Layout EXL, or Launch – Layout MXL.
  2. The Startup Option form is displayed.
  3. In the Layout group box, choose whether you want to create a new layout cellview or open an existing one.
  4. In the Configuration group box, choose Automatic and then click OK.
    One of the following happens.
    • If you chose to create a new layout view, the New File form is displayed.
      Click OK to create the new layout cellview.
    • If you chose to open an existing layout view, the Open File form is displayed.
      Specify the Library and Cell names and choose the View you want to open from the cyclic field.
      Click OK to open the cellview.
  5. In Layout EXL, choose EAD from the Workspace Configuration drop-down list.
    The EAD workspace displays the EAD Toolbar and three stacked assistants: the EAD Browser, the Navigator, and the Palette.

Starting EAD from a Layout Window

You can also start EAD from a layout window. To do this,

  1. From the menu bar, Launch – Layout EXL.
    Virtuoso Layout Suite EXL is launched. The EAD menu is also added the menu bar, as shown below.
  2. Choose EAD – Browser.
    The EAD Browser is displayed on the left of the layout canvas, as shown below.
    Alternatively, choose EAD from the Workspace Configuration drop-down list, as shown below.
    The EAD workspace displays the EAD Toolbar and three stacked assistants: the EAD Browser, the Navigator, and the Palette.
    To exit EAD from Virtuoso Layout Suite EXL, choose LaunchPlugins, and then click EAD to clear the check mark.

The EAD Workspace

The EAD workspace is designed to help you drive parasitic extraction and EM analysis, and is installed automatically when you launch Layout EAD from the layout or schematic view.

The workspace comprises the following elements:

EAD Toolbar

The EAD toolbar lets you access the main EAD functions with a single mouse click.

For more information on the individual buttons on the toolbar, see the table below.

Icon Commands Lets you...

Toggle EAD Browser

Toggle the display of the EAD Browser assistant in the layout window.

Extract Parasitics

Delete Parasitics

Extract and delete parasitics for the current design.

See Extracting and Analyzing Parasitics for more information.

You can also delete parasitic information programmatically using the elecUpdateDataSetParamsPropValue SKILL function.

To delete parasitics for selected nets only, select one or more nets in the Summary Pane, right-click and choose Delete Parasitics.

Run EM Check

Extract Parasitics & Run EM Check

Update Electrical Data, Extract Parasitics, & Run EM Check

Run electromigration checks for all the nets in the current design.

You can optionally extract parasitics and update electrical data before the EM check is run; and update the electrical data for the design.

Also see: Running EM Analysis to Identify Violations

Update Electrical Data

Update the electrical data for the design

Delete Electrical Data

Delete the electrical data already extracted and displayed in the EAD Browser.

Refresh Existing Datasets

Write electrical data information for the existing datasets to the terminals or instance terminals for which the current data is missing or out of sync because they are newly created, modified, or recreated due to layout edits.

Create User-Defined Dataset

Save custom datasets with a user-defined name.

Also see:Creating User-Defined Custom Datasets

Disable EM

Disable EM checks

Update Parasitics & EM

Update the parasitic and electromigration data for the current design.

  • In Manual Update Mode, you must click the button to update the information shown in the EAD Browser
  • In Automatic Update Mode, the information is updated dynamically as you are editing your design

When you run these commands, any net that has been extracted previously is updated even if the parasitics have been deleted due to some other action.

Bindkey: Ctrl+u

See Extracting Parasitics in Layout EAD for more information.

Manual Update Mode

Automatic Update Mode

Highlight Worst-Case Violations for All Nets

Highlight the worst-case EM violations in the layout window.

While using this feature, dim the design in the canvas using the Dim command on the Options toolbar of VLS XL. This enhances the view of the main electromigration issues in your design.

Create New Point-to-Point Info Balloon

Close All Point-to-Point info Balloons

Select two points on a net to see electrical information between those two points.

See Using Point-To-Point Info Balloons for more information.

The info balloons remain visible on the canvas until you close them using the command provided.

Build Parasitic/LDE Netlist View for Simulation

Open the Build Parasitic/LDE Netlist View form that you can use to generate a netlist_layout view for running parasitics resimulations.

Optimize Trunk Width for Complete Network

Run EM trunk optimization commands. The three commands are Expand to Fix EM Violations, Shrink Oversized Trunks, and Shrink and Expand.

Select Trunk Optimization Style

Select the style for optimizing a trunk to resolve EM violations. The three styles are Widen - No Stranding, Parallel Stranding, and Stacked Stranding.

Toggle Trunk Tapering for Complete Network

Enable trunk tapering during trunk widening. Trunk tapering only works for the Widen style and not for parallel or stacked stranding.

EAD Browser

You use the EAD Browser to obtain visual feedback on the parasitics and electromigration issues in your design and to view the effects of any changes you make in order to solve these issues. It provides information about your design beyond that available in either the Annotation Browser and Navigator assistants and supports all the relevant Layout XL commands.

The browser has four main components:

EAD Browser Toolbar

The EAD Browser toolbar lets you access the main Layout EAD functions with a single mouse click (three of the buttons are also present on the main EAD Toolbar.)

The buttons are organized from left to right to reflect the basic Layout EAD flow. For more information on the functions available, see the table below.

Icon Commands Lets you...

Options

Choose a predefined setup to use for the current session or open the EAD Options form to change any settings or create a new setup if required.

See Managing EAD Setups for more information.

Extract Parasitics for Filtered Nets

Delete Parasitics for Filtered Nets

Extract Parasitics For All Nets

Delete Parasitics For All Nets

Extract and delete parasitics only for the filtered nets displayed in the EAD Browser.

Extract and delete parasitics for all the nets in the current design.

The commands to extract or delete parasitics for filtered nets are grayed when no filters are applied.

See Extracting and Analyzing Parasitics for more information.

You can also delete parasitic information using the elecUpdateDataSetParamsPropValue SKILL function.

Run EM Check On Filtered Nets

Run EM Check On All Nets

Run electromigration checks only for the filtered nets displayed in the EAD Browser.

Run electromigration checks for all the nets in the current design.

The Run EM Check On Filtered Nets command is grayed when no filters are applied.

Extract Parasitics & Run EM Check

Update Electrical Data, Extract Parasitics, & Run EM Check

You can optionally extract parasitics and update electrical data before the EM check is run; and update the electrical data for the design.

Update Electrical Data

Transfers the electrical datasets from ADE Assembler, or schematic to the layout. While doing this, if EAD finds that the name of the dataset being transferred matches with the name of an existing dataset at the layout side, it compares the timestamps of the two. If their timestamp is same, no action is taken. If their timestamp is different, the tool shows a dialog box and prompts you to confirm whether the dataset at the layout side should be overwritten. If you confirm, it deletes the existing dataset and copies the newer version to the layout.

Before deleting the dataset at the layout side, EAD ensures that the results database is accessible. If, due to some reason, the results database is not accessible, the transfer of that dataset is skipped, and the version already saved with the layout is retained.

Delete Electrical Data

Deletes the electrical data already extracted and displayed in the EAD Browser.

Refresh Existing Datasets

Writes electrical data information for the existing datasets to the terminals or instance terminals for which the current data is missing or out of sync because they are newly created, modified, or recreated due to layout edits.

Create User-Defined Dataset

Save custom datasets with a user-defined name. For more details, refer to Creating User-Defined Custom Datasets.

Disable EM Checker

Disable EM checks

Update Parasitics & EM

Update the parasitic and electromigration data for the current design.

  • In Manual Update Mode, you must click the button to update the information shown in the EAD Browser
  • In Automatic Update Mode, the information is updated dynamically as you are editing your design

Any net that has previously been extracted is automatically updated in this mode, even if the parasitics have been deleted due to some other user action in the meantime.

Bindkey: Ctrl+u

See Extracting Parasitics in Layout EAD for more information.

Manual Update Mode

Automatic Update Mode

Filtering options

Filter the data in the browser to show only those nets that meet the selected filter criteria.

See Filtering Rows for more information.

Toggle ignore selection

Specify how selections in the canvas affect the EAD Browser.

  • Ignore Selection: Canvas selection has no impact on the EAD Browser
  • Select Full Network: Selecting a single shape on a net in the canvas shows data for the entire net in the EAD Browser
  • Select Partial Network: The EAD Browser shows data only for the shapes selected in the canvas

Automatically zoom display to selected network or parasitic

Automatically pan and zoom to the correct area of the layout view when you select a net or parasitic in the EAD Browser tables.

Environment variable: fitToSelected

Search

Locate results for a particular net by typing the name of the net into a text box.

See Searching Nets for more information.

Toggle dual pane view

Switch between Single pane view and Dual pane view.

  • Dual pane view is the default and has the summary table at the top and the detail table underneath it.
  • Single pane view has all the tabs listed on a single panel.

See Toggling Dual Pane and Single Pane View for more information.

Export table data

Export all the data shown in the tables in either HTML or CSV format.

Build Parasitic/LDE Netlist View for Simulation

Opens the Build Parasitic/LDE Netlist View form that you can use to generates a netlist_layout view to be used for running parasitics resimulations.

Point-To-Point Info Balloons

Interactively shows EAD parameters for the segment between any two points on a net.

See the Using Point-To-Point Info Balloons section for more information.

Save current EAD state

Opens the EAD - Save State form, which you can use to save the current EAD state.

See the Saving an EAD State section for more information.

Load EAD state

Loads an EAD state that has been saved earlier.

See the Loading an EAD State section for more information.

Extraction Corner and EM Dataset Controls

Use these controls to specify which extraction corner results are displayed and which dataset is used to run EM checks and display results.

Form Field Specifies...

Extraction Corner

Which extraction corner results are displayed in the EAD Browser.

The default extraction corner is defined in the process settings file (.ini file) that is saved to the specified location, for example:

/.cadence/dfII/EAD/1/process/gpdk045.ini

These corners are defined during EAD Setup in ADE Assembler and mapped to an ICT file, which contains the process information for the corner in question. See Setting up Testbenches and Corners for more information.

EM Dataset

Which EM dataset is used to run EM checks and display results. The default is All, which means that EM results are reported for all available datasets.

By default, the datasets are read from the paths saved in the simResDB and simResDir properties of the constraint cellview, and their names are displayed in the EM Dataset drop-down list. Also see: Creating Datasets.

However, if you need to use results from some other dataset, you can use ADE Assembler to overwrite the existing dataset with new simulation data, or load the history results that were used to save the other dataset.

Alternatively, you can use elecUpdateDataSetParamsPropValue to set the paths to another existing dataset. To set these paths, you need the *.rdb files and the psf directories, which can be saved outside the ADE Assembler results hierarchy. For the psf directories, ensure that they point to the lowest level of the path. That is, they should include the raw data from simulation.

For example, if the results database and the psf directory to be used are saved in the /home/projectA/simulation/ directory and the name of the dataset for which you need to change the paths is emData, you can set the paths as shown below:

elecUpdateDataSetParamsPropValue("Two_Stage_Opamp" "DiffOpAmp" "schematic" "emData" "simResDB" "/home/projectA/simulation/vdd13/vdd13.rdb")
elecUpdateDataSetParamsPropValue("Two_Stage_Opamp" "DiffOpAmp" "schematic" "emData" "simResDir" "/home/projectA/simulation/vdd13/psf")

After setting the paths, click Update Electrical Data on the EAD Browser toolbar to update the electrical data from the specified results database. At any time, you can check the paths to the results database and the psf directory by using elecGetDataSetParamsPropValue.

If you specify relative paths in the constraint view or by using elecUpdateDataSetParamsPropValue, Layout EAD resolves them relative to the following directories in the given order of preference:

  • Path specified by adexl.results saveResDir
  • Path specified by asimenv.startup projectDir
  • Current working directory
  • Update with latest electrical data

That all datasets that have been changed in ADE Assembler are updated in Layout EAD.

Use this if you have updated your datasets or created new datasets in ADE Assembler while the layout view is open.

Datasets that are unchanged in ADE Assembler are skipped. The names of datasets that no longer exist on the schematic side are struck through in the drop-down list (for example, dataset_0).
  • Select EM checks

Select which EM checks are enabled and disabled.

  • To enable all EM checks, select Enable All Checks.
  • To disable all EM checks, select Disable All Checks.

The EM temperature that you set in the EM tab of the EAD Options form is displayed next to the name of the EM dataset.

You can define a custom callback procedure and register it using the eadRegTrigger SKILL function to perform any customized tasks after the dataset transfers to the layout view are complete.

Summary Pane

The summary pane shows a net-specific summary of the parasitic and EM information currently available for each net in the design. The columns displayed depend on the extraction mode that is set.

The following table lists all the columns available in the summary pane:

Column Name Shows...

Net

The names of the nets in the current design.

Terms

The number of terminals on each net. This column is hidden by default.

Total C

Total capacitance on each net.

This column is visible only when the C or RC extraction mode is selected on the Extraction tab of EAD Options form.

Coupled C

Total coupled capacitance on each net.

This column is visible only when the C or RC extraction mode is selected on the Extraction tab of EAD Options form.

Ground C

Total grounded capacitance on each net.

This column is visible only when the C or RC extraction mode is selected on the Extraction tab of EAD Options form.

R Count

Total resistance on each net.

This column is visible only when the R or RC extraction mode is selected on the Extraction tab of EAD Options form.

EM Viol

The number of violations reported for each net.

J/Jmax

The ratio of actual current to maximum current.

Max Drop

The maximum voltage drop value for each net.

Scale Factor

The scaling factor used to scale the current data.

Max Term Current

Maximum terminal current out of all terminals of the net. This column is hidden by default.

Some of the columns remain hidden by default. To view any hidden column, right-click in the table header and select the column name from the context menu.

When you first launch Layout EAD, the table lists all the nets in the current design but does not extract parasitics or run any EM checks by default.

After you perform parasitic extraction, the table is updated to show parasitics (total, coupled, and grounded capacitance values and total number of resistors) for the listed nets.

If electrical constraints, such as the Max Capacitance constraint or the Max Resistance constraint, are applied on nets, and the extracted parasitic data violated the constraints, the corresponding cells are highlighted in red. For more details, refer to the Detail Pane.

When you have run an EM check, the summary table updates to show color-coded electromigration information for the listed nets (only some of this information is shown below).

The indication of the different color codes is as given below.

You can find out more about any individual value by clicking one of the table cells to open the EM tab in the Detail Pane.

You can right-click in one of the cells to open the context menu, which provides a quick access to commands to update the parasitic and EM data, extract parasitics, and run the EM check for the selected net. For example, to delete parasitics for selected nets only, select one or more nets, right-click and choose Delete Parasitics. The context menu for a net in the summary pane is given below.

Important Points to Note

Detail Pane

Clicking a value in the summary table opens the appropriate tab in the detail pane, which shows a breakdown of the resistance and capacitance values for each of the selected nets. Information is organized in five tabs; one each for capacitance, resistance, comparisons, and EM checks, and IR Drop.

The C and R tabs are enabled based on the extraction mode set in the Extraction form. For example, if you are performing only C extraction, the R tab is disabled. Similarly, if you disable EM checking using the Disable EM Checker command, the EM tab is also disabled.

The display of the detailed parasitic tables in the details pane depends on the value set for the detailedParasiticTables environment variable or the Detailed Parasitic Tables check box on the Environment tab of the EAD Options form.

Viewing Resistance Paths between Terms

You can use the Select pairs of resistance path terms options to filter resistance paths between the selected terms in the Resistance Paths table.

To view resistance path between the selected terms:

  1. Select a net in the Summary table and click the R tab.
  2. Click the Toggle resistance path table icon to display the Resistance Paths table.
  3. Click the drop-down arrow in the Select pairs of resistance path terms icon and select one of the following options:
    • Select From-To Term Pairs: To filter resistance paths between the From and To terms, first select the From term and then select the To term in the schematic.
      The resistance path between the selected From and To terms is displayed in the Resistance Paths table and the path is highlighted in the schematic.
      The following example shows the results when M10:s and M0:s are selected as the From and To terms in the schematic, respectively.
      You can now select different pair of From and To terms in the schematic to filter the resistance path in the Resistance Paths table and highlight the resistance path in the schematic. Note that when using the Select From-To Term Pairs option, both From and To terms are reselected. Press the Esc key to exit selection mode.
    • Select From Term and Multiple To Terms: To filter resistance paths between a single From and multiple To terms, first select the From term and then select the To term in the schematic. If you again select a term in the schematic, only the To term changes. The first term you selected in the schematic remains selected as the From term. Press the Esc key to exit selection mode.
    • Select Path to Topmost Term: To filter the resistance path from the selected instance term to the topmost term in the hierarchy. First, descend into a cell and then select the instance term that is connected to a term present in the higher level of hierarchy.
      The resistance path between the selected instance term and the topmost term in the hierarchy is displayed in the Resistance Paths table and the path is highlighted in the schematic.

Changing Data Display in the EAD Browser

This section describes how to change the way data is displayed in the EAD Browser tables.

Toggling Dual Pane and Single Pane View

You use the Toggle dual pane view button on the EAD Browser toolbar to toggle between the default dual pane EAD Browser view and a single pane view.

Dual pane view is the default and features the summary table on top and the detail table underneath. Single pane view has all tabs listed in a single panel.

In dual pane view, when you click a value cell in the summary table, the relevant corresponding tab is opened in the detail table. For example, if you click the EM Viol cell for vdd in the summary table, the EM tab is opened in the detail table and the violation details for vdd are shown. Similarly, if you press the Ctrl key and select two nets in the summary table, the Compare tab is opened in the detail table.

Use single pane view when you need to focus on the results of a single net and need more space to view the results more comfortably.

Sorting Columns

You can change how data is sorted in columns and also in which position in the table a particular column appears.

  1. Click once in a column header (for example R Count) to sort the column in ascending order.
  2. Click again to sort the column in descending order.
  3. Click-and-hold the column header and move your mouse to drag the column to a new location.
  4. Release the mouse button to drop the column at its new location.

Showing and Hiding Columns

To specify which columns are visible in a table,

  1. Right-click in any column header.
  2. Select or deselect the check box next to the column you want to show or hide.

Filtering Rows

By default, all available nets are displayed in the summary pane. You can use the Filtering options to show only the nets for which you need to analyze parasitic details and EM violations.

Click Filtering options on the toolbar and select one or more of the following filtering options to show only those nets that meet the selected criteria.

Creating Net Groups

You can create net groups to group similar types of nets together. This also helps in filtering nets that belong to a particular net group.

To create a net group, perform the following steps:

  1. Right-click one or more nets in the summary pane of the EAD Browser, and choose Net Groups – Add to New Group.
    The EAD – New Net Group form is displayed.
  2. Enter a name for the new group in the Net Group Name field.
  3. Click OK to close the form.

A new net group is created with the given name and the selected net(s) are added to the specified net group. The name of the net group is added to the Net Groups menu in the context-sensitive menu for the nets.

To add a net to an existing net group, select a net and choose Net Groups – <name of the existing net group>.

A net can be included in more than one net group.

Managing Net Groups

You can delete or merge net groups by using the Manage Net Groups command.

Deleting Net Groups

To delete a net group, perform the following steps:

  1. Right-click in the summary pane of the EAD Browser and choose Manage Net Groups. The EAD - Manage Net Groups form is displayed.
  2. Select a group name from the list of groups.
  3. Ensure that the delete action is selected.
  4. Click OK.

The selected net group is deleted.

Merging Net Groups

To merge multiple net groups, perform the following steps:

  1. Right-click in the summary pane of the EAD Browser and choose Manage Net Groups. The EAD - Manage Net Groups form is displayed.
  2. Select two or more group names from the list of groups.
  3. Select that the merge action.
  4. In the Target Net Group field, specify a name to be given to the new or target group that will contain the nets from the merged net groups.
  5. If you need to retain the existing groups that are being merged, select the Keep Source Groups check box.
  6. Click OK.

A new net group is created with the nets from the selected net groups.

Searching Nets

To search for a particular net and to view results, use Search.

  1. Click Search in the EAD Browser toolbar.
    The Search drop-down list is added to the panel above the summary pane.
  2. Type in the name of the net for which you are searching.
    Alternatively, you can select a net name from the search history in the drop-down list, if available.
    While you type in a name, all the net names that contain the search string get listed in the summary pane dynamically.
  3. Select the desired net name in the summary pane and view the results in the details pane.
  4. You can customize the search by using the search settings available in the drop-down menu next to the Search drop-down list, as shown below.
    When you are not searching for any net, you can toggle Search on the EAD Browser toolbar to hide the Search drop-down list.

Managing EAD Setups

You use the Layout EAD Options form to define the setups required to drive parasitic extraction and EM analysis in Layout EAD. A setup includes a pointer to the process settings required for parasitic extraction and EM checking, as well as user-customizable tool options. When you have specified the options you require, you can use the controls in the Setups section at the bottom of the form to save them in the system for later use.

You might typically define two EAD setups; one for use in EM analysis and one for parasitic extraction to be used in resimulation:

Preparing an EAD Setup

To prepare an EAD Setup,

  1. Choose Options – Edit Options from the EAD Browser toolbar to open the Layout EAD Options form.
    Alternatively, choose EAD – Options from the Layout EXL menu bar.
    You can also open the form by choosing Options – Layout EAD from the layout window menu bar.
  2. Set the options on each of the four tabs to meet your requirements.
    • General lets you specify the process settings to be used in the current session, the extraction temperature to be used, and the nets and cells to be excluded from parasitic extraction. See General for more details.
      If you need to change the process settings for your design, see Editing Process Settings.
    • Extraction lets you specify the main extraction engine controls, resistance and capacitance thresholds, and high precision C and R extractor settings. See Extraction for more details.
    • EM lets you specify the settings to be used for electromigration checking, including temperature, default and minimum current values, scaling factor, and lifetime values. See EM for more details.
    • Environment lets you specify how violations are highlighted and control whether nets highlighted and selected in the EAD Browser are also highlighted and selected in the layout view. See Environment for more details.
      You can specify default values for each of the options on the form using the environment variable associated with the option in question. See Appendix A, “Form Descriptions” to see the environment variables for each option and Appendix B, “Environment Variables” for a complete list of all EAD-related environment variables.

Saving an EAD Setup

When you have set the options to meet your requirements, save the setup so that you can use it during your analysis of the current design.

Saving a Setup

To save the current settings to the currently loaded setup file,

  1. Choose the required Location and Name from the pull-downs in the Setups section at the bottom of the form.
  2. Click Save To.
    The setup file is saved with a .ini file extension to the specified location; for example:
    /.cadence/dfII/EAD/1/setup/gpdk090.ini

    Clicking OK or Apply in the form applies the current settings to the design but does not save the settings to the specified setup file. You must click Save To to save the settings to the setup file.

Creating a New Setup

To create a new setup file,

  1. Type the new Name into the editable field.
  2. Click Save To.
    The new setup file is saved to the Location specified in the form and added to the list in the Options menu in the EAD Browser toolbar.
    Clicking OK or Apply in the form applies the current settings to the design but does not save the settings to the specified setup file. You must click Save To to save the settings to the setup file.

Referencing a New Setup

To use the new setup in the current design session,

Loading an EAD Setup

You can also load settings from an existing setup file into the Layout EAD Options form, edit them to meet your requirements, and then save them as a new setup.

When you load a new setup that maps to the same extraction corner (ICT file mapping), then all of the nets in the design are marked as modified and requiring re-extraction. If you load a new setup that maps to a different ICT file, then the parasitics are read and loaded into the EAD Browser and the graphical user interface is reset to its default state.

To load a different EAD setup,

  1. Choose the Location and Name of the setup you want to load.
    The list of locations includes all the .cadence directories found in the paths specified in the Cadence setup.loc file and in any additional directories specified by the auxSearchPaths environment variable. Also listed are any technology-dependent setup files stored in a subdirectory with the same name as the technology library for the design.
  2. Click Load From to update the form with the values from the specified setup file or hold down the button to see a drop-down list of all the setup files stored for the design.
    The specified setup is loaded and any stored parasitic information is retrieved and loaded. No extraction or EM checking is run by default, however, if the data exists, it is automatically loaded as well.
    The form title updates to show the name of the loaded setup file.
    As soon as you make a change to the loaded setup, the form title displays an asterisk to show that there are unsaved changes.
  3. Click Save To to save the changes in the setup file.

When EAD is initialized using the setup information, it checks whether the specified EM data source file (EM data file, ICT file, ICT-EM file, or iRCX-EM file) exists and is readable. If the file is not found or is not readable, it displays an appropriate warning message. To disable the display of this warning message, either click Do not show again on the message box or set the warnWhenEMDataSourceIsInvalid environment variable to nil.

You can define a custom callback procedure and register it using the eadRegTrigger SKILL function to perform any customized tasks before loading any EAD-related setup.

Related Topics:

Editing Process Settings

Process settings contain information about the extraction corners and the models to be used for each during EM checking, the mappings between layers in the ICT file and those in the Virtuoso technology file, and how vias and shapes in sub-cells are handled during extraction.

For details about the process information contained in the ICT technology file and the syntax of the commands, see Chapter 3 in the Quantus QRC Techgen Reference Manual.

The Virtuoso release is independent of the Quantus release. Therefore, it is possible to see some mismatch in the syntax of the commands, especially for the advanced nodes, supported by the two tools at a given point of time.

To edit the process settings for a design,

  1. Click Process Settings menu ( ) and choose Edit to open the EAD Process Settings form.
    The Save button on the EAD Process Settings form is disabled when the process settings file cannot be edited.
  2. On the Corners tab of the EAD Process Settings form, choose an EM data source from the EM Data Source drop-down list. See EAD Process Settings – Corners for more details.
    Also see: Using Custom Variables in ICT-EM Files
  3. Edit the process settings on each tab to meet your requirements:
    • Corners is where you associate your extraction corners with the ICT file or eadTechFile to be used for extraction. The EM Data Source field lets you specify the source of the EM models and rules; either a Virtuoso technology file, an ICT-EM file, or an EM data file. See EAD Process Settings – Corners for more details.
    • Layer Mapping lets you specify how the layers used in the ICT file map to the layers defined in the Virtuoso technology file. See EAD Process Settings – Layer Mapping for more details.
    • Vias lets you specify how vias are flattened and clustered. See EAD Process Settings – Vias for more details.
    • Cell Shape Types lets you control how shapes in sub-cells contribute to parasitic extraction. See Overview of Parasitic Extraction in Layout EAD for more information.
    • Comments lets you view and modify the comments saved in the process settings file.

    As soon as you make a change to the process settings, the forms title displays an asterisk to show that there are unsaved changes.
  4. When you have finished, do one of the following:
    • Click Save to save the settings under the current Process Settings file name.
      The Save button is not enabled if the process file is read-only.
    • Click Save As to save the settings under a different Process Settings name

    The process settings file is saved is saved with a .ini file extension to the specified location; for example:
    /.cadence/dfII/EAD/1/process/gpdk090.ini
    You can then use these settings in your current design or in future EAD sessions.
    Related Environment Variables
    Important Points to Note
    • If multiple corners are specified, you must ensure that all of the technology files were consistently generated for R-only or RC extraction. A mix of R-only and RC technology files is not supported.
    • If the EM data source is an EM data file, the EAD parser ignores the unsupported keywords and parameters. For each ignored keyword or parameter, a warning is displayed in the CIW.

Using Custom Variables in ICT-EM Files

If the EM calculations in the ICT-EM file are using certain variables that you would need to modify before running EM checks, you can register those variables with EAD by using the eadRegisterCustomEMVariable SKILL function. Later, you can modify those values by using the eadSetEMVariable SKILL function and then run EM extraction to use the revised variable value for EM calculation.

Checking Layer Mapping

The Check Layer Mapping check box is hidden by default. Set the environment variable layoutEAD.gui hideCheckLayerMapping to nil to display this check box in the Options menu of the EAD Brwoser.

After you load the setup from an EAD setup file, the Check Layer Mapping commands is added to the Options menu on the EAD toolbar.

Use this command to check whether mapping of all the layers in Virtouso technology file to the layers in the ICT file is complete. If any layer is found as unmapped, an error is displayed reporting a list of unmapped layers. In such a case, you can update layer mappings on the Layer Mapping tab of the EAD Process Settings form. While you are editing the layer mappings, you can use the Check command on the Layer Mapping tab to rerun the checks. Ensure that there are no warning messages.

Deleting an EAD Setup

To delete a setup that you no longer require:

  1. Choose the Location and Name of the setup you want to delete.
  2. Click Delete and confirm the action in the pop-up message that appears.
    The setup file is deleted from the location on disk.

Working with EAD States

This section describes how to save, restore, and load an EAD state.

Saving an EAD State

Follow these steps to manually save the current EAD state:

  1. On the EAD Browser toolbar, click Save current EAD state. The EAD - Save State form opens.
  2. In the Target Location section, select a location where you want to save the state data.
    The list of locations includes all the .cadence directories found in the paths specified in the Cadence setup.loc file.
    You can also specify your own directory to save or load an EAD state by setting the statePath environment variable. The directory specified by the environment variable is given priority over those specified in setup.loc file.
  3. From the Scope options, select one of the following options tag the state being saved for the specific subsets of designs:
    • global: Saves the state that can be used for all designs.
    • library: Saves the state that can be used for all designs in library of the current design
    • cell: Saves the state that can be used for different views of the current design
    • cellview: Saves the state that can be used only for the current design
  4. In the Data to Save section, select the following options to save the specific parts of the EAD state:
    • User Interface Configuration: Save the GUI-specific data, such as toolbar buttons, toggle states, table column sizes, and so on.
    • Options: Saves the design-specific data, such as values of the current EAD options.
  5. Click OK to save the current EAD state.

Restoring an EAD State Automatically

You can choose to automatically restore EAD to a state in which the design was last exited. Set the saveStateOnClose environment variable to t:

envSetVal("layoutEAD.gui" "saveStateOnClose" 'boolean t)

Loading an EAD State

You can load an EAD state, which has been saved earlier, by clicking Load EAD state on the EAD Browser toolbar. EAD searches for the state data based on the following parameters. The first instance of the state found is loaded.

You can also load EAD state data automatically on startup. To do so, set the following environment variable to t:

envSetVal("layoutEAD.gui" "loadStateOnOpen" 'boolean t)

Extracting and Analyzing Parasitics

This section explains how to use Layout EAD to extract and analyze parasitics for a layout design; how to use the EAD Browser to find out more about the reported values; how to compare the values extracted for different nets of interest; and how to extract parasitics automatically while you are editing the layout in the canvas.

Overview of Parasitic Extraction in Layout EAD

This section describes the default extraction behavior for various design components and explains the settings you can make to change how the extraction is performed.

For advanced nodes, EAD supports color aware RC extraction. As shapes are drawn on different colors, EAD can extract and display RC values based or perform EM checks on the color of the wires.

Layout EAD defines the following types of default capacitance extraction:

Extracting Parasitics on Interconnect Wires Between Devices

The figure given below illustrates the default extraction behavior for wires used to connect devices:

Note the following points:

Extracting Parasitics inside Devices

The figure given below illustrates the default extraction behavior inside devices:

Note the following points:

Extracting Parasitics for Devices and Interconnect

When extracting parasitics between devices and interconnect wires, the coupling capacitance is extracted between interconnect outside the device and interconnect inside the device, as shown in the figure given below.

Extracting Parasitics for Devices and Overlapping Interconnect

The figure given below illustrates the default extraction behavior for devices and overlapping interconnect:

Note the following points:

Extracting Parasitics for Local Interconnect Layers

When two shapes on different local interconnect layers overlap and also touch by abutment in the vertical dimension, that is, top-to-bottom, the EAD extractor can compute this vertical resistance. Definition for this via is provided in the ICT file. Using the Layer Mapping tab of the EAD Process Settings form, you can map the via layer in the Virtuoso technology file to the via in the ICT file and then, draw a shape on that layer. While extracting parasitics, Layout EAD extracts via resistance from that shape and displays the R value in the Resistances table.

In no via definition is explicitly drawn, you can leave the ICT via layer unmapped and EAD will compute the resistance from an implied via between the overlapping layers, as shown in the figure below, and calculates a resistance value depending on the area of contact between the two layers.

The value of R is displayed in the Resistances table. Since there is no design layer for the via, EAD uses the name of the local interconnect layer for the resistance displayed on the R tab.

Extracting Parasitics from Strong, Weak, or Must Connections

EAD extracts resistance paths between terminals and instance terminals. Depending on the strong, weak, or must pin connectivity, EAD performs R extraction as explained below.

For details on how to set pin connectivity models in the layout, refer to Setting the Pin Connectivity Model in Virtuoso Layout Suite XL User Guide.

Customizing Extraction of Parasitics

The following topics describe how you can customize the extraction of parasitics for devices in your layout:

Assigning Shapes for Extraction

Layout EAD can treat cells, views, terminals, and layers as different shape types for extraction purposes. This lets you perform a differentiated extraction of terminals on Pcells by defining how non-terminal shapes in sub-cells contribute to the extraction.

Layout EAD recognizes three different shape types:

You specify shape types for the Pcells and instances in your design in the EAD Process Settings form during process setup:

Example: Metal1 specified as background

To prevent RC extraction on Metal1 shapes in a Pcell, but still generate coupling capacitance to nets outside the Pcell, you can define Metal1 on source/drain terminals as background:

Even though a terminal is defined as background, coupling capacitance is extracted to that net, but no Metal1 to Poly or Metal1 to Metal1 coupling for terminal shapes in devices is extracted.

For more information, see EAD Process Settings – Cell Shape Types and Editing Process Settings.

Preventing Extraction Inside Devices

You can stop Layout EAD from extracting parasitics inside devices using the Primitives & Excluded Cells table on the General tab.

Parasitics are extracted up to and including the terminals of the excluded cells, but no extraction is performed inside the specified devices.

Use this option to exclude devices such as capacitors and resistors, where you do not want to extract resistance and capacitance twice, or for polygonal standard cells or other instances that are not XL compliant.

Device terminals are extracted by default, which means that the resistance on the terminals is computed and all terminal shapes are passed to the extraction engine for capacitance extraction as well (allowing calculation of the coupling capacitance from the terminals to nets outside the Pcell).

See also: extractionPrimitives

Stopping Extraction at the Device Boundary

If, for a given technology, you want to specify that extraction should stop at the boundary of a Pcell or an instance, check the Stop at Device Boundary option in the Extraction tab. By default, EAD extracts parasitics for such shapes. But when this option is switched on, extraction stops at the device boundary, which means that terminals on Pcells and instances are treated as background shapes and are not extracted.

This works in conjunction with the Hierarchy Levels option for instances.

Specifying the Hierarchy Levels and Hierarchy Shape Type

The Hierarchy Levels option on the Extraction tab controls how many levels to chase a net down through the hierarchy and how many levels should be extracted for resistance.

Decoupled capacitance is extracted to shapes for levels greater than the Hierarchy Levels setting. This option also works in conjunction with the Stop at Device Boundary option.

For example, with Hierarchy Levels set to 1 (as shown in the above figure), the following nets are shown in the EAD Browser with R and C extracted:

Decoupled capacitance is extracted to shapes on:

You can also use Hierarchy Levels in conjunction with the hierarchyShapeType environment variable to specify how geometry is treated during extraction. An example is shown below.

Identifying Instances to be Ignored during Extraction

EAD uses the propsUsedToIgnoreObjs variable to look for the properties that identify the pins and instances to be ignored from EM checks. If your layout contains some more instances that are not being ignored by the properties defined by propsUsedToIgnoreObjs, you can apply the eadIgnore property on such instances. This helps in eliminating the irrelevant terminals and shows only relevant parasitic data after extraction.

You can apply the eadIgnore property on a layout cellview to eliminate extraction of all instances of that cellview in your layout. Alternatively, if you unable to edit the cellview, you can select the instances of that cell in your layout and selectively apply the property.

Applying eadIgnore on a Master Layout Cellview

To apply the eadIgnore property on a master layout cellview:

  1. Open the master layout cellview in the edit mode.
  2. Type the following commands in the CIW:
    cv = geGetEditCellView()
    dbCreateProp(cv "eadIgnore" 'boolean t)
  3. Save the changes and close the cellview.

After you apply this setting, all instances of this layout are ignored during extraction.

Applying eadIgnore on Specific Instances in the Design Layout

To apply the eadIgnore property on specific instances:

  1. Open the layout of your design in the edit mode.
  2. Open the Property Editor assistant.
  3. Select the instance to which you need to apply this property.
  4. Right-click in the Property Editor assistant and choose Add Property to <inst-name>.
  5. In the Add Property form that is displayed, specify the property name in the Name field as eadIgnore.
  6. In the Type field, select the type as boolean.
  7. Select the Value check box to set the property value to t.

The required property is now set on the instance for which you want to ignore the instance terminals while extracting parasitics.

Modifying EM Analysis for Wide Pins

By default, EAD considers center of the pin as the default current injection point. EAD recalculates the current flowing through the pins, and while doing that considers the resistance on the pin to be zero. That is, the pins are considered to be super conductors.

However, for wide pins, you can consider any other current injection point or multiple injection points at specific points that would overlap with the sources of current.

For each injection point, EAD inserts an additional resistor or node on the pin. It then calculates the total current flowing through the pin by considering the values of all resistors on the pin. Therefore, the resistance on pins also impacts the EM violation and IR drop calculations.

You can enable multiple point injection for wide pins in the following ways:

After creating labels or specifying a location file for nodes, run R extraction. New resistances that were added at the nodes are extracted along with other resistance values and their details are displayed on the R tab in the EAD Browser.

Consider the following example. By default, four resistors are extracted for pin B, as shown below.

Two labels are added to this pin to specify the current injection points. Running extraction after inserting nodes, returns five resistors, as shown below.

These resistances are considered in EM analysis and reflected in the EM violations reported on the EM tab and IR drop data displayed on the IR Drop tab.

The heat map or IR drop violations for the above example also considers the additional resistance added for the new current injection point.

Editing Layout to Add Labels for Current Injection Point Creation

To add injection points or nodes on a layout:

  1. Before launching Virtuoso, set the following two variables in the .cdsinit file:
    • Set insertResNodeLabelPurpose to specify the name of the purpose on which you plan to create labels to be used for the insertion of node injection points.
    • Set stackViaArrayHandling to "none" to allow the evaluation of EM violations at pins. By default, the pin resistance is considered as zero and EM violations are not calculated for pins.
  2. Launch Virtuoso and open the layout view.
  3. Choose Create – Label to open the Create Label form.
  4. On the Create Label form,
    1. Specify a label pattern in the Label (Pattern) field.
      The label pattern must be in the <pin-name>.<positive-integer> format. For example, if you need to create labels for pin A, you can enter the value in the Label (Pattern) field as A.1.
    2. Select the Use same layer as shape, select purpose option and select a purpose name from the drop-down list next to this field.
    3. Set the Height label option to a small value, for example, 0.05, so that labels can fit on the pins.
    4. Click Hide to close the form and to continue with label creation.
      A label is attached to the pointer.
  5. Bring the desired pin in focus and zoom in.
  6. Click at the location where you want to add a label on the pin. A label is added with the name mentioned on the Create Label form.
  7. Create more labels as required.

Adding Current Injection Points Using a File

If you have the current injection point locations available in a text file, you can use that to create injection points on the pins.

The text file should contain the location details in the following format.

#--------------------------------------------
#source_name #loc_x #loc_y #layer_name #P/G
<pinName>.<wholeNumber> <x-coordinate> <y-coordinate> <layerName> <POWER | GROUND>

An example of the text file is given below.

#source_name #loc_x #loc_y #layer_name #P/G
vdd1.0 14.04 3.264 metal2 POWER
vdd1.1 15.12 3.264 metal2 POWER
vdd1.2 6.48 3.264 metal2 POWER
vdd1.3 7.56 3.264 metal2 POWER

To use this file for the insertion of injection points, before launching Virtuoso, set the following environment variables in the .cdsinit file:

After this, launch Virtuoso and open the layout view for EAD. Run extraction and EM analysis for the net. Layout EAD creates nodes at the specified injection points.

Extracting Parasitics in Layout EAD

Layout EAD extracts parasitics on a net-by-net basis, which makes the tool incremental and able to handle partial layouts.

Before extracting parasitics, you can configure the settings to customize the way EAD extracts parasitics for your layout. For more details, refer to Customizing Extraction of Parasitics.

You can extract parasitics using the Extract Parasitics command in the EAD Browser toolbar. For this, perform the following steps:

  1. Choose the setup you require from the Options menu in the EAD Browser toolbar.
    The specified setup is loaded. See Managing EAD Setups for more information.
    No parasitic extraction or EM checking is run by default; however, any stored parasitic information is retrieved and displayed in the summary pane. EM violations and J/Jmax values are not stored in the OpenAccess database and can only be displayed after you have run the EM check.
    Any mismatches in the temperature values set for EM checking, extraction, and simulation are reported in a warning dialog.
    It is important that you use a consistent temperature throughout your flow; if the temperature used during simulation in ADE Assembler does not match that set for extraction and EM checking in Layout EAD, then your EM analysis is likely to be invalid.
  2. Click Extract Parasitics on the toolbar of EAD Browser to extract parasitic information for the design.
    To extract parasitics for one or more selected nets, select their rows in the summary tab, right-click and choose Extract Parasitics from the context-sensitive menu.
    The summary table is updated to show the parasitics (total, coupled, and grounded capacitance values and total number of resistors) for the listed nets.
    • The extraction runs across all the extraction corners specified for a given design. This means that if the same design is open in two different layout windows and the EAD Browser is set up with different extraction corners in each, then extracting or updating in one window will extract and update results for both corners in both windows.
    • By default, capacitance values in all tables are displayed in femtoFarad (fF). To vary the units depending on the magnitude of the capacitance values, disable the capacitanceFixedSuffix environment variable.
    • By default, the tables show the maximum value of coupling capacitance between nets.
    • By default, only terminals and instance terminals are considered as network terminal objects and a resistance path is computed to them. You can set the extractToPins environment variable to t so that pins are also considered as network terminal objects and a resistance path is computed to them.
    • Violations of any of the supported constraints set in the Constraint Manager assistant are highlighted in red in the appropriate table cells. The supported constraints are:
      For more information on these constraints, see Appendix A, “Default Constraint Types” in the Virtuoso Unified Custom Constraints User Guide.
    • You can also move the pointer over a net name to see a tooltip indicating whether the parasitic network for the net is complete or incomplete (incomplete networks are also highlighted in yellow).
  3. Click one of the table cells to see more detailed information in the appropriate tab in the Detail Pane. For example,
    • If you click a capacitance or resistance value, the C or R tab opens with a detailed breakdown of the selected value. See Viewing and Analyzing Parasitics for more information.
    • If you select capacitance values for two nets, the Compare tab opens allowing you to compare the information for the nets in question. See Comparing Parasitic Values for Multiple Nets for more information.
  4. If you make changes in the layout, you can update the parasitics at any time using the Update Parasitics & EM button or by pressing Ctrl+u.
    You can also right-click in a cell and update the parasitic and EM data, extract parasitics, and run the EM check for a selected net.
    For information on updating parasitics automatically while you edit, see Using Automatic Update Mode.
    While the extraction process is running, you can use the Ctrl + C bindkey to interrupt the process. If you are using this command, ensure that the checkInterrupt environment variable is set to t.

High Precision C and R Extraction

For the critical nets in your design, you can selectively enable high precision C and R solvers. For this, select one or more nets in the Summary pane of the EAD Browser and select the High Precision C Extraction or High Precision R Extraction.

This creates a corresponding High Precision C Extraction or High Precision R Extraction constraint based on the options specified on the Extraction tab of EAD Options form. When you turn off high precision extraction, these constraints are deleted.

High precision extraction performs a detailed analysis and therefore, is a time-consuming task. It is recommended to enable this only for critical nets.

When a port or a node is defined by a pin shape, the high precision R solver uses the geometry of the pin shape to construct a finite dimension port. This helps in correct emulation of the current crowding or spreading at the current inlet or outlet for accurate resistance values. While doing this, the tool follows the rules given below to emulate the pin shape ports:

In the following two cases, EAD marks the resistance network generated for a net by the high precision R solver as complete:

In all other cases, the resistance network of the net is marked as incomplete and the Net Name cell in the EAD Browser is highlighted in yellow.

High precision R Solver provides better accuracy for a 45-degree wire resistance. Fast R extraction degenerates a 45-degree shape into small rectangular tiles in a step fashion, and then extracts these rectangular shapes. However, there occurs a loss of accuracy when using Fast R extraction for non-rectilinear shapes.

Customizing High precision R and C Extraction

Depending on your requirements, you can customize high precision R and C extraction by setting the fields in the High Precision C Solver and High Precision R Solver sections on the Extraction tab of the EAD Options form or by setting the environment variables described in this section.

finFET Support in High-Precision C Extraction

If your design contains multi-gate finFET devices, you can enable finFET modeling in high-precision C extraction by doing the following:

iQuantus FS C Extraction (Advanced Nodes Layout EAD Only)

For sign-off level accuracy in extraction results, you can use iQuantus Field Solver (iQuantus FS) as the capacitance extraction engine. The C parasitic data extraction run by iQuantus FS is accurate.

iQuantus FS is supported only for foundry processes. To get details about the foundry processes for which this solver is supported, Contact Cadence Customer Support. For details on the iQuantus FS C extraction engine, refer to Quantus QRC Extraction Users Manual.

Before using iQuantus FS engine for extraction, ensure that the following requirements are met:

Follow these steps to use iQuantus FS for C extraction:

  1. In the High Precision C Solver section on the Extraction tab of the EAD Options form, from the Engine drop-down list, select quantusFS.
  2. To run extraction for all nets, click Extract Parasitics for All Nets from the EAD Browser toolbar.
  3. To run extraction for the selected nets, do the following:
    1. In the Summary pane of the EAD Browser, select one or more nets.
    2. Right-click the selected nets, and then choose the High Precision C Extraction check box from the context-sensitive menu.
    3. Click the Extract Parasitics command from the context menu.

Viewing and Analyzing Parasitics

This section describes how to use the EAD Browser to view and analyze the capacitance and resistance information for your design and explains what information is available for each.

  1. Click a capacitance value in the summary pane to open the C tab in the detail pane.
  2. Use the toolbar buttons to toggle capacitance information by net, by layer, or by node.
  3. Click a resistance value in the summary pane to open the R tab and see the terminal-to-terminal resistance paths for the net in question, including the resistance value, resistor count, and from/to terminal names.
    If you have set the resistanceMeshFileName environment variable, the mesh data is saved while performing high precision R extraction for any net. You can later overlay that data on the net in the layout canvas. For more information, see Viewing Mesh for Selected Nets.
  4. Move the pointer over a Total R violation in the summary pane to see a tooltip detailing the violating resistance path, which is also highlighted in the R tab.
    If all the violations are not displayed in the tooltip, you can increase the size of tooltip by using the maxTooltipLength environment variable.
  5. Click a row in the R table to highlight the corresponding resistance path in the layout view.
    If there is only one resistance path for a net, the resistance path is selected by default after you extract parasitics for that net. Only the resistors available on the resistance path are displayed in the Resistances table.
    If you deselect the resistance path, all resistors that overlap with the net are displayed in the Resistances table.
    By default, Layout EAD uses a resistor symbol to highlight a resistance path on a net. You can set the resistanceDisplay environment variable to "halo" to use a halo instead, as shown below.

Viewing Mesh for Selected Nets

If you have set the resistanceMeshFileName environment variable, while performing high precision R extraction for selected nets, mesh data is saved in the specified binary file. In addition, the Highlight mesh ( ) icon also appears on the toolbar of the R table. The names of nets for which high precision extraction was performed also appear as bold, as shown below.

To overlay the saved mesh data on a net in the layout canvas, do the following:

  1. Click the resistance value for that net in the summary pane to open the R tab in the detail pane.
  2. Click Highlight mesh.
    A mesh is displayed on the selected net in the layout.
  3. Zoom in to a large level to view the mesh details clearly.
  4. You can reset the layer filter to view the mesh on specific layers.

Important Points to Note

Comparing Parasitic Values for Multiple Nets

You can view a video demonstration for this feature at Comparing Parasitics and Resolving Electrical Violations.

If you select two or more values in the summary pane, the Compare tab opens comparing values for the selected nets. This can be useful if, for example, you have a pair of symmetric nets that need to be balanced in terms of parasitics. You can select the nets in the layout canvas and compare the coupled and grounded capacitances of the nets and the amount of coupling to other nets in the design.

To do this,

  1. Select two or more values in the summary table.
    The Compare tab opens showing the maximum difference and % error between the parasitic values on the selected nets.
  2. Use the Reference Net drop-down to choose which of the selected nets is the reference net for the percentage difference calculation.
    The default is Auto, which means that the net with the smallest value is used as the reference for the difference calculation. You can change this as required, for example, when comparing the lengths of bus bits that are intended to be matched.
  3. Use the two toggle buttons on the toolbar to show and hide tables comparing
    • Coupling capacitance values by net
    • Total capacitance values by layer
  4. Click an entry in the Coupling Capacitance by Net table to highlight the net in the layout canvas.

Using Automatic Update Mode

By default, EAD does not extract dynamically as you update the design, but tracks the changes you make and highlights in red nets that need to be extracted. You then run the extraction by clicking the Update Parasitics & EM button in the EAD Browser toolbar (or by pressing Ctrl+u).

You can use Automatic Update Mode to extract parasitic information while you are editing your design in the layout canvas. Any net that has previously been extracted is automatically updated in this mode, even if the parasitics have been deleted due to some other user action.

To update the parasitic information dynamically while you are editing the design,

If the same design is open in two different layout windows and the EAD Browser is set up with different extraction corners in each, then extracting or updating parasitics in one window with Automatic Update Mode enabled will extract and update results for both corners in both windows, even if the other window has update mode set to Manual.

Distributed Computation of Extraction Process

For large designs, you can distribute extraction on groups of nets to multiple batch jobs running on computer farms or dedicated servers.

Layout EAD provides the following SKILL functions to run and manage distributed jobs for extraction:

Depending on your extraction requirements and the available resources, you can submit extraction jobs in any of the following ways:

Automatic submission of jobs for all nets to an LSF farm

Preferred Scenario: Use this approach to submit jobs for extraction on all nets in your design to an LSF farm.

Steps:

  1. Specify the following settings to enable the tool to automatically submit jobs:
    • Using the ead_dp_net_group_number variable, specify the number of net groups into which all the nets from the design are to be distributed equally.
    • Using the ead_dp_batch_command variable, specify the batch command to distribute a job to an LSF farm.
    • Using the ead_dp_batch_command_option variable, specify the option string used by the batch command defined by the ead_dp_batch_command variable.
  2. Start the job submission using the eadJobSubmit SKILL function.
    As configuration information is generated automatically by the tool in this mode, specify the second argument of the eadJobSubmit SKILL function as "NULL".
    Layout EAD divides all the nets from the design into the specified number of net groups and distributes the extraction jobs using the given batch command and its options. The number of LSF jobs submitted is equal to the number of net groups.
    After job submission, you can use eadJobStatus to check the status of running jobs. When eadJobStatus command returns t, which means all jobs have been successfully completed, you can run eadJobClose to collect the extraction results. The results from all the jobs will be combined into one OA database and displayed in the summary table of the EAD Browser.

Example:

Open a layout view in Virtuoso Layout EAD and set the following variables in the CIW:

ead_dp_net_group_number = 5
ead_dp_batch_command = "/grid/sfi/farm/bin/bsub"
ead_dp_batch_command_option = "-W 3:00 -q lnx64 -R \"OSREL==EE50 || OSREL==EE60 span[hosts=1] rusage[mem=8000]\" -P IC:6.1.6:RD:QUAL"

Run the following command in the CIW:

eadJobSubmit( hiGetCurrentWindow() "NULL" )

Layout EAD automatically divides all nets into five groups and submits the jobs using the given command and options. After that, run the following command to check job status:

eadJobStatus( hiGetCurrentWindow() "NULL" )

When all the jobs are complete, run the following command to collect the results from all jobs:

eadJobClose( hiGetCurrentWindow() "NULL" )

Automatic submission of jobs for all nets to dedicated servers

Preferred Scenario: Use this approach to submit jobs for extraction on all nets in your design to a set of dedicated servers in your setup.

Steps:

  1. Specify the following settings to enable the tool to automatically submit jobs:
    • Using the ead_dp_server_names variable, specify the list of available servers on which the distributed jobs can run.
    • Using the ead_dp_batch_command variable, specify the batch command to distribute jobs to dedicated servers.
    • Using the ead_dp_batch_command_option variable, specify the option string used by the batch command defined by the ead_dp_batch_command variable.
  2. Start the job submission using the eadJobSubmit SKILL function.
    Note: As configuration information is generated automatically by the tool in this mode, specify the second argument of eadJobSubmit as "NULL".
    Layout EAD divides all nets from the design into a set of net groups where the number of groups is equal to the number of servers specified by the ead_dp_server_names variable and distributes the extraction jobs using the given batch command and its options.
    After job submission, you then can use eadJobStatus to check the status of running jobs. When eadJobStatus returns t, which means all jobs have been successful completed, you can run eadJobClose to collect the extraction results. The results from all the jobs will be combined into one OA database and displayed in the summary table of the EAD Browser.

Example:

Open a layout view in Virtuoso Layout EAD and set the following variables in the CIW:

ead_dp_server_names = '("server1" "server2" "server3")
ead_dp_batch_command = "/usr/bin/rsh"
ead_dp_batch_command_option = "-l username"

Run the following command in the CIW:

eadJobSubmit(hiGetCurrentWindow() "NULL")

Layout EAD automatically divides all nets into three groups and submits the jobs using the given command, and options to servers server1, server2, and server3.

Run the following command in the CIW to check job status:

eadJobStatus(hiGetCurrentWindow() "NULL")

When all jobs finish and the above command returns t, run the following command to collect results from all jobs:

eadJobClose(hiGetCurrentWindow() "NULL")

Customized distributed computation of net groups using different job policies

Preferred Scenario: Use this approach when you want to submit the extraction jobs for a particular net group to a specific distributed job. In this case, you can have multiple customized job policies and specify which policy is to be used for each net group. You can specify these details in a job configuration file that is provided to the eadJobSubmit SKILL function.

Steps:

  1. Create a job configuration file in the ASCII format that contains the layout cellview details of the layout cellview, and the names of files that define the net groups and job policies to be used for each net group.
    The expected format of a job configuration file is given below.
    <job_policy_definition_file_name>
    <net_group_definition_file_name>
    <oa_lib_top_level_path>
    <oa_library_name>
    <oa_cell_name>
    <oa_view_name>
    NULL        //reserved for future use
  2. A job policy definition file in ASCII format that contains one default job policy and some custom job policies. The given number of custom policies is also specified in this file.
    The expected format of a job policy definition file is given below.
  3. A net group definition file in ASCII format that specifies the number of net groups, and the net details for each group.
    The expected format of a job net group definition file is given below.
  4. Start the job submission using the eadJobSubmit SKILL function.
    Specify the name of the configuration file created in step 1 in the second argument of the eadJobSubmit SKILL function.
    Layout EAD reads the net group details from the net group definition file and submits the job for each net group as per the job policy definition attached to it.

Example:

Following are the examples of the three ASCII files.

Run the following commands in CIW to submit jobs, check job status, and collect job results:

eadJobSubmit( hiGetCurrentWindow() "ead.control" )
eadJobStatus( hiGetCurrentWindow() "ead.control" )
eadJobClose( hiGetCurrentWindow() "ead.control" )

As specified in the job policy definition, the tool runs extraction on net AVDD and AVSS on the dedicated server server1, whereas each one of the other two net groups is run as a separate job on the LSF farms.

Working with Job Policies

This section describes how to set up a job policy and define the methods of how distributed processing jobs are submitted to local or remote hosts. In EAD, you can use these jobs to extract parasitics and to run EM analysis.

Setting Up a Job Policy

Follow these steps to set up a job policy:

  1. On the Environment tab of the EAD Options form or on the EAD Net Options form, click the Edit job policies icon ( ) to open the EAD Job Policy Editor form.
  2. In the Job Policy Name field, specify a name for the job policy.
    If no job policy has been set up earlier, the Job Policy Name field displays localhost as the default job policy name, which can be specified by setting the defaultJobPolicy environment variable.
    When using a job policy other than localhost, ensure that Max Jobs field is set to a value less then or equal to the number of available licenses.
  3. From the Distribution Method drop-down list, choose one of the following methods:
    • Command: To submit the extraction job to a job distribution engine.
    • LBS: To submit the extraction jobs to the Cadence load balancing software.
    • Local: To run extractions on the local host.
    • Remote-Host: To run extractions on a remote host you specify.
  4. Depending upon the Distribution Method you selected, specify the fields described as follows:
    Distribution Method Fields Description

    Command

    Command

    bsub command to submit a job for batched execution by a distributed load-sharing batch system

    Max Jobs

    Maximum number of simultaneous jobs that you want to run.

    LBS

    Queue

    Name of the queue to which the job is submitted

    Max Jobs

    Maximum number of simultaneous jobs that you want to run.

    Remote-Host

    Hosts

    List of remote hosts

  5. Click Save to save the changes. The EAD Save Job Policy form opens, as shown in the following figure:
  6. The Name field displays the name of the job policy you specified in the EAD Job Policy Editor form.
  7. From the Location list, select the directory where you want to save the job policy. You can save the job policy in one of the following directories:
    • .cadence directory in your current directory
    • .cadence directory in your home directory
  8. Click Save to save the changes.
    You can now extract parasitics and run EM analysis for the nets with the job policy you defined. See the Using Distributed Processing Jobs section for more information.

Editing a Job Policy

Follow these steps to edit a job policy:

  1. On the EAD Job Policy Editor form, from the Job Policy Name drop-down list, select the job policy that you want to edit.
  2. From the Distribution Method drop-down list, select a distribution method.
    The asterisk (*) displayed in the title of the EAD Job Policy Editor form indicates that the currently selected job policy is being edited.
  3. Depending upon the Distribution Method you selected, update other fields, as required.
    See the Setting Up a Job Policy section for the description of the fields in the EAD Job Policy Editor form.
  4. Click Save. The EAD Save Job Policy form opens.
  5. From the Location list, select the directory where you want to save the updated job policy.
  6. Click OK.

Deleting a Job Policy

Using Distributed Processing Jobs

In EAD, you can use the distributed processing jobs to extract parasitics and to run EM analysis for all the nets or for the selected nets.

With a single EXL or MXL license, you can run four different jobs simultaneously. To run more than four jobs at a time, you need extra licenses.

To use distributed processing jobs for all the nets, do the following:

  1. Click the Environment tab on the EAD Options form.
  2. In the Job Policy Setup section, from the Default Job Policy drop-down list, select a job policy you have already defined. If you want to define a new job policy, click Edit job policies. See the Setting Up a Job Policy section for more information.
  3. Click OK to close the form.
  4. Click one of the following commands on the EAD Browser toolbar:
    • Extract Parasitics For All Nets: To use the jobs for extracting parasitics for all nets.
    • Run EM Check On All Nets: To use the jobs for running EM checks on all nets.
    • Extract Parasitics & Run EM Check: To use the jobs for both, extracting parasitics and running EM checks.

    The jobs are submitted according to the methods defined in the selected job policy and results are updated in the table.

To use the distributed processing jobs for the selected nets, do the following:

  1. In the Summary pane of the EAD Browser, select the nets for which you want to extract parasitics or run EM analysis.
  2. Right-click the selected nets and then choose Net Options. The EAD Net Options form opens, as shown in the following figure:
  3. From the Job Policy drop-down list, select the job policy that you want to use.
    You can also click the Edit job policies icon ( ) to open the EAD Job Policy Editor form, where you can update the existing job policies or define a new job policy. See the Setting Up a Job Policy section for more information.
  4. Click OK to save the changes.
  5. In the Summary pane of the EAD Browser, right-click the selected nets and then choose one of the following options from the context menu:
    • Extract Parasitics: To use the jobs only for extracting parasitics.
    • Extract Parasitics With Policy: To select another job policy to extract parasitics for the selected nets.
    • Run EM Check: To use the jobs only for running EM analysis.
    • Extract Parasitics & Run EM Check: To use the jobs for both, extracting parasitics and running EM analysis.

    The jobs are submitted according to the methods defined in the selected job policy and results are updated in the table.

Important point to note:

Stopping and Resubmitting a Job

Status of the submitted jobs is shown below the EAD Browser toolbar. For example, the following figure shows that a submitted job is currently running:

You can click Stop to stop the currently running jobs. Alternatively, you can right-click the selected nets, and then choose Stop Job from the context menu to stop the jobs. The jobs that have not been finished are stopped and the following status is displayed:

A ‘cross’ icon ( ) is displayed next to the nets for which the jobs have failed or stopped. You can click Resubmit to submit the unfinished jobs again. After all the jobs are executed successfully, the extraction results are updated in the Detail pane.

Extracting Parasitics With a Policy

You can also extract parasitics for the selected nets using the Extract Parasitics With Policy command:

  1. In the Summary pane of the EAD Browser, select a net. To select multiple nets, hold down the Ctrl key while you click the other nets you want to select.
  2. Right-click the selected nets to open the context-sensitive menu, and then point to Extract Parasitics With Policy. A list of job policies is displayed, as shown in the following figure:
  3. Select the job policy that you want to use to extract parasitics. The extraction results for the selected net are updated in the Detail pane.

Job Statuses

When you submit a distributed job, an icon is displayed next to the nets. This icon indicates the current status of the submitted jobs. The following table shows the different statuses of the jobs and the corresponding icons that are displayed next to the nets for which the jobs have been submitted.

Icon Status of the Job

Pending

Running

Failed

Stopping a Running Job

Do the following to stop a running job that has not finished yet:

Viewing Job Information

You can view the following information about a failed job:

Follow these steps to view these information about the failed jobs:

  1. In the Summary pane of the EAD Browser, right-click a net, and then choose View Job Info from the context menu.
    The EAD Job Information form opens, as shown in the following figure.
    The View Job Info command is enabled in the context menu only for the nets for which the jobs have failed.
  2. In the left pane, select the information that you want to view. The selected information is displayed in the right pane.

Return to top
 ⠀
X