Product Documentation
Virtuoso Symbolic Placement of Devices User Guide
Product Version IC23.1, June 2023

1


Introduction to Symbolic Placement of Devices

Virtuoso® Symbolic Placement of Devices (SPD) is a symbolic row-based placer that displays only the necessary information required to perform device placement in the physical design environment.

The main focus of this tool is to improve productivity of the layout designers by facilitating quick and easy placement of PMOS and NMOS devices in medium-sized designs comprising around 100 to 200 devices. The tool makes it simple to edit device placement, preview the updates made, and then generate a layout.

This user guide is aimed at layout engineers who need to place devices with a fast turnaround time and assumes that you are familiar with:

Licensing Requirements

For information on licensing in the Virtuoso Studio design environment, see Virtuoso Studio Software Licensing and Configuration User Guide.

This section covers the following topics:

Benefits of using SPD

SPD uses the intuitive ‘stick-diagram’ methodology that lets the layout designers visualize a lighter layout, which is easier to understand and work with.

The tool provides three main benefits:

The SPD Flow

The basic SPD flow, involves following tasks:

  1. Select the devices you want to edit in Schematic XL.
  2. Launch SPD to view the symbolic representation of the selected devices.
  3. Place the selected devices to meet your requirements by performing tasks such as, abutting, swapping, stacking, and flipping devices.
  4. Preview the edited layout.
  5. Make any required adjustments to the placement in the SPD window.
  6. When you are satisfied with the results, generate the layout.

For a video on SPD flow, see Getting Started with Symbolic Placement of Devices on Cadence Online Support.

Prerequisites for Running SPD

SPD can run only on a Layout XL compliant PDK library that includes well-defined component types, parameter name mappings, permute rules, layer functions, and minimum spacing rules. This section discusses prerequisites for running SPD in detail.

Source Schematic File

You can launch SPD directly from an existing layout, however, the source schematic is always needed as a reference. If some instance parameters in the layout instances are different from those in the schematic, SPD will always take the values from the schematic.

Configured Physical Hierarchy of Target Layout

The SPD launch process refers to the physical configuration (CPH) of the target layout and carries it to the next session when the Reuse Window for Faster Relaunch option is enabled in Setup Options Pane.

If for any reason, the setting for target layout is modified in CPH, you must disable the Reuse Window for Faster Relaunch option and re-launch SPD for the new physical configuration take effect.

Component Types

SPD supports the following component types for cells. These component types must be set before running SPD.

To check component types, in the Layout XL window, choose Edit – Component Types to display the Configure Physical Hierarchy window in Component Types mode.

For more information on defining and assigning component types, see Configuring the Physical Hierarchy, in the Virtuoso Layout Suite XL User Guide.

Parameter Name Mapping

To run SPD, you need to:

To check the these parameters, in the Layout XL window:

  1. Choose Options – Layout XL – Parameters.
  2. Set width parameter name.
    • In the Schematic Parameter Names group box, choose Transistor from the drop-down list and ensure that the correct width value is set.
    • Use the following environment variable:
      envSetVal("layoutXL" "transistorWidthParamNames" 'string "width_names")
  3. Set finger parameter name.
    • In the Schematic Parameter Names group box, choose Fingers from the drop-down list and ensure that correct Fingers Text combination value is set.
    • Use the following environment variable:
      envSetVal("layoutXL" "lxFingeringNames" 'string "num_of_fingers_names")
  4. Set multiplication factor parameter name.
    1. In the Schematic Parameter Names group box, choose Parallel-connected factor Text from the drop-down list and ensure that correct Parallel-connected factor Text combination value is set.
Values set here should match the parameter names in the PDK libraries being used.
  1. Check the Evaluate CDF callbacks during generation and update option.
    1. In the Component Description Format group box, check Evaluate CDF callbacks during generation and update option.

Permute Rules

The permuteRule property must be defined for the instances in the design to make the instance pins or terminals permutable.

For information on how to check and add a permuteRule, see Checking XL Compliance and permuteRule in Virtuoso Layout Suite XL User Guide.

Layer Functions and Minimum Spacing Rules

To run SPD, certain material functions and their layers must be specified in the technology file. It is also important that minimum spacing rules are set correctly for these layers.

The following are mandatory functions that must be included in the technology file:

The following are optional functions that can be included in the technology file:

For more information on defining layer functions, see Layer Rules in Virtuoso Technology Data ASCII Files Reference.

For more information on defining minimum spacing rules, see minSpacing in Virtuoso Technology Data ASCII Files Reference.

Libraries Defined to Execute SPD

SPD defines two libraries in cds.lib, cdsSymbolicDevice and cdsSymbolicLib.

cdsSymbolicDevice

The following entry is added to cds.lib:

DEFINE cdsSymbolicDevice $CDS_INST_DIR/tools/dfII/etc/cdslib/cdsSymbolicDevice

Symbolic device is an instance that creates a relationship between schematic devices and the layout instance. This library is essential for SPD to work because it contains the symbolic devices used in SPD, which are compatible with the current tool version. This entry is not added to cds.lib by default. It is added automatically when SPD is launched.

cdsTmpSymbolicLib

The following entry is added to cds.lib:

DEFINE cdsTmpSymbolicLib ./.cadence/dfII/spd/cdsTmpSymbolicLib

This is the default temporary library required to process SPD. Information from the working schematic and layout cellview is copied to this library and then, used to build a relationship, such as in the CPH file.

This library gives user the write permission to save updates made in SPD or save recovery information in case of a crash.

In case, you don't want to use the default temporary library, you can specify a different library using the spdDesignLibName environment variable.

User-Defined Abutment Callback Functions

For PDK-specific abutments, such as dummy poly abutment, other than the regular oxide diffusion (OD) abutment, you will also need to define your own custom abutment callback functions. To enable user-defined abutment, you must load the callback functions required by the spdRegUserAbutProc SKILL function and register them before launching SPD. Otherwise, only oxide diffusion abutment will take place.

User-Defined Flow Callback Functions

SPD also supports user flow callbacks that further help in customizing the design in specific steps of the SPD flow. For more information, see User Flow Callback Functions in Virtuoso Layout Suite SKILL Reference and the environment variable launchRunOnce.

For a video on user-defined abutment and callback functions, see Using User-Defined Abutment and Callback Functions in SPD on Cadence Online Support.


Return to top
 ⠀
X