Product Documentation
Virtuoso Module Generator User Guide
Product Version IC23.1, November 2023

Modgen Placement Settings in the Array Assistant

When you open the Array Assistant, the Placement tab is displayed by default. The initial device placement is defined by the current placement in the target Modgen. Use the options on the Placement tab to refine the placement as per your requirements.

Use one of the following methods to specify a grid pattern:

When you select a device instance in the Pattern section, it is highlighted in the layout canvas.

When you modify a Modgen grid, the existing grid member object orientations are overridden when all of the following conditions are met:

The following images show how the placement settings are applied to a Modgen.

Modgen Pattern Presets

(Layout EXL and Higher Tiers) You can specify the pattern in which devices are to be placed in the Modgen. The Pattern Preset list includes the presets listed in the table below. Select the required preset. The output pattern is displayed in the Pattern box.

Pattern presets such as Current, Custom, and Clustered respect the specified rows and columns fields. However, certain pattern presets, for example Compact and Common Centroid, define specific array dimensions, and therefore they do not respect the specified rows and columns.

Pattern Preset Description

Pattern Generated

Current

Uses the current Modgen pattern.

Clustered

Displays a pattern based on the bottom-up approach with row-based split.

Interdigitated

Applies an interdigitation of 1 to the devices.

Compact

Adjusts the pattern to achieve the maximum abutment of devices.

Common Centroid

Places devices in a grid following a common centroid pattern. Symbols are ordered in precedence, outward from the center.

The priority order for placement follows the sequence of available instances to use starting from the center of the array and moving outward in a circular arraignment. The priority is determined by symbols in the ascending order by their number of instances. Symbols with same number of instances are in ascending order alphabetically.

Consider an array with symbols A(3) B(8) C(2) D(2) E. The placement is generated using priority E C(2) D(2) A(3) B(8).

Instance E is located at the center of the array followed outward by C, D, A, and B in that order.

For number of rows of 4, the resulting pattern is:

B B B B

D E C A

A D C A

B B B B

Custom

Lets you specify a base pattern for the Modgen in the adjoining text box. In the example, a custom pattern B A B A is applied.

The repeat pattern of Custom patterns in each row starts from left to right. The following example shows pattern ABCD in four rows:

A B C D A B C D
A B C D A B C D   
A B C D A B C D 

Zigzag

Applies the base symbol pattern in the opposite horizontal direction for alternating the array rows, starting with left-to-right for row index 0. In the example, a custom pattern A B A B is applied in a zigzag manner.

Zigzag pattern starts from left to right for odd number of rows and from right to left for even number of rows. For example, a four-row array with base symbol pattern A B C D is generated as:

A B C D A B C D
D C B A D C B A
A B C D A B C D

A three-row array with the base symbol pattern C B A is generated as:

C B A
A B C
C B A

Shift

Shifts the pattern by one position for each consecutive row, starting from the bottom-most row. For example, a three-row array with base symbol pattern C B A is generated as:

A C B
B A C
C B A

In pattern A B C D, the bottom-row has pattern A B C D, the row immediately above it has pattern B C D A, followed by C D A B:

C D A B C D A B
B C D A B C D A
A B C D A B C D

Resistor Topology

Lets you select a pattern from a list of predefined array topologies.

Auto selects the most suitable array topology pattern type based on the interconnect analysis.

This option is available only in certain advanced node flows for Modgen arrays with all the Modgen members registered as resistors, capacitors, or inductors. For example:

ciRegisterDevice("resistor" '(("passiveLib" "resnsppoly" nil)))

Also, ensure that the modgenPassiveCreateOnConnectivity environment variable is set to zigzag.

You can use the following preset generator SKILL functions to control the presets that are displayed in the Preset drop-down list.

Setting the Placement Objective

To specify the placement objective, do the following in the Aspect Ratio section:

  1. Specify the number of rows in the Modgen in the Active Rows field.
    The number of columns is automatically calculated and displayed in Cols.
  2. Select Best Fit to ensure that an optimal placement of the Modgen devices is achieved according to the specified pattern.
    This option is available only when Pattern Preset is set to Custom (Layout EXL and Higher Tiers) and a base pattern is specified.
  3. Select Allow Placer to change Aspect Ratio to let the Virtuoso device-level automatic placer adjust the aspect ratio of the Modgen to achieve optimized placement for the given floorplan.

Adding Dummies Around Modgens

(Layout EXL and Higher Tiers) Use the options in the Dummy Control section to add dummies around the Modgen.

  1. From the Dummy Net list, choose the net to which the pins of the dummies are to be connected.
  2. Select a Dummy Type.
    This option is available only in certain advanced node flows.
  3. Click Fill Gaps With Dummies to fill gaps between devices with dummies and add dummy columns where there are abutment breaks. Dummies are inserted when you click Apply in the Array Assistant.
  4. Specify the number of dummy rows and columns in the Top/Bot and Left/Right fields.
    To add surround dummies, specify both Top/Bot and Left/Right values.
    • Specify the number of fins or fingers as either Match or Specify.
    • Specify whether Transition dummy columns are to be inserted.

Editing the Grid Pattern

You can edit the mapping of instances and dummies to symbols in the Pattern Symbol Mapping table.

You can edit the Modgen devices in the Pattern grid directly or using the options in the shortcut menu.

Saving and Loading Array Settings from a CSV File

The Save/Load CSV section lets you save the current array settings to a comma-separated values (CSV) file. You can also load array settings from a CSV file.

As the name suggests, a CSV file comprises character strings that are separated by commas. A CSV file allows data to be saved in a tabular format.

Here is a sample CSV file:

To save the current array settings to a CSV file:

  1. Specify the path to the CSV file in the File Name field.
    Alternatively, click the Browse button to open a file browser, where you can select the path from the hierarchy and specify a file name.
  2. Set Pattern View to one of the following:
    • Symbol: Prints the letter that is mapped to that instance in the Modgen Pattern Map.
    • Schematic Name: Prints instance names from schematic.
  3. Click Save.

The array settings are saved to the specified CSV file.

To load array settings from a CSV file:

  1. Specify the CSV file name in the File Name field.
  2. Click Load.
  3. Click OK.

The preset is loaded from the specified preset file.

Specifying the Spacing Between Modgens

(Layout EXL and Higher Tiers) Use the options in the Spacing section to specify the spacing between Modgen devices.

  1. Specify a Horizontal value, which indicates the spacing between Modgens in a row and select a reference layer for calculating the horizontal spacing.
  2. Specify a Vertical value, which indicates the spacing between Modgens in columns, and select a reference layer for calculating the vertical spacing.
  3. Select Abut to abut all Modgen devices and dummies to get a compact placement.
  4. Select Sync Row Abutment to abut all rows in a Modgen in a synchronized operation along a column.

An unselected state for the spacing, alignment, and abut fields implies that if the current Array Assistant settings for these properties are customized (their state is unreachable by the spacing, alignment, or abut the Array Assistant fields), the custom settings remain untouched during an Array Assistant Apply operation.

To customize the Array Assistant spacing, alignment, and abut settings without using these fields, you can load an existing customized Modgen array into the Array Assistant.

Deselecting the spacing, alignment, and abut fields from a selected state always resets these values to their defaults, align left for Horizontal, align bottom for Vertical, and unabut all.

Related Topics

Array Assistant

Modgen Pattern Presets

Setting the Placement Objective

Adding Dummies Around Modgens

Editing the Grid Pattern

Saving and Loading Array Settings from a CSV File

Specifying the Spacing Between Modgens

Display Names in Array Assistant


Return to top
 ⠀
X