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

WSP/SP Support for Pin Optimization

Pin Optimizer has been enhanced to support width-aware and constraint (CST)-aware optimization of pins.

Pin Optimizer recognizes the Width Spacing Snap Pattern grid defined using the widthSpacingSnapPatternDef rule in the technology file. The widthSpacingSnapPatternDef definitions are available in the technology database as well as in the design. Pin Optimizer recognizes both global and local widthSpacingSnapPatternDef definitions.

The pin optimization and snapping behavior for connected pins is different from that of unconnected pins. In both cases, the pin width is determined and compared with the WSP/SP track width. The pin width is determined by comparing the width of the pin with the minWidth constraint based on the CST lookup. The larger value is considered.

Example:

Pin width = 0.4 (considered)

CST = 0.3

Pin Optimizer honors the pin layer/side constraints while placing the pins on the WSP/SP tracks. The pin layer/side constraints are honored only when WSP/SP tracks are available on the specified side. For example, consider a technology in which Metal2 WSP tracks are available in the horizontal direction. The pin layer/side constraint on this layer is honored only when the pins are assigned to the Left or Right side. The constraint is not honored when pins are assigned to the Top or Bottom side because there are no WSP/SP tracks on this side.

Related Topics

Width Spacing Pattern Layer Rules

Process Rules for Objects

Setting Pin Layer and Side Constraints for Pin Optimization

Connected Pins

Connected pins are snapped to tracks with widths greater than or equal to the pin width, while ensuring the minimum net length. While snapping, pins are resized to square-shaped pins with dimensions that match the WSP/SP track width. Pins are centered along the WSP/SP tracks on the snapping layer that is identified in the WSP/SP definition.

The original pin area may not be maintained during pin snapping.

Set the retainLongPin environment variable to t to retain the dimension of long, rectangular pins while snapping to WSP/SP tracks. The default value is nil, in which case pins are resized to square-shaped pins to match the WSP/SP track width.

The following examples depict the snapping behavior in various scenarios when retainLongPin is set to t.

Example 1: A long pin is snapped to a track of the same width. There is no change in the pin dimensions.

Example 2: A long pin is snapped to a wider track. The pin width is adjusted as per the track width, but the orthogonal pin dimension remains the same.

Example 3: A long pin is snapped to a narrower track. The pin width is adjusted as per the track width, but the orthogonal pin dimension remains the same.

Example 4: A long pin is snapped to an orthogonal edge, typically due to a layer change. The shorter pin dimension is used to find a suitable width-aware track. The shorter pin edge is snapped to the track, and so the orthogonal dimension is maintained.

Example 5: A square pin is snapped to a wider width track. A square pin is created that matches the width of the snapped track.

The Alignment (Side/Edge), Order, and Fixed constraints continue to have the highest priority. For example, if pin_1 has the side Left edge constraint, then only the tracks on the left side are considered.

In the above figure, for the yellow pins, only those tracks with width >=0.6 are considered for placement; whereas for the red pins, all the tracks are considered.

During pin optimization, the yellow pin is snapped to a track such that the minimum net length is achieved.

The red pin has multiple tracks available. Such pins are snapped to ensure minimal net length, and not minimal pin resize. Further, the pins are placed on the left to ensure minimum net length. While snapping, the pins are resized to square-shaped pins with dimensions that match the WSP/SP track width.

If no matching WSP/SP tracks are found, then the pins are snapped to tracks such that the minimum net length is achieved.

If WSP/SP tracks are not available, then pins are snapped to the manufacturing or routing grids, depending on the block type.

To match a pin’s layer and size to the connected fixed pin’s layer and size, use the options in the Match Fixed Pins Layer/Size section on the Pin Optimization tab of the Pin Placement form.

Related Topics

Optimizing Pins

Unconnected Pins

Unconnected pins are snapped to WSP/SP tracks with widths equal to or greater than the pin width. While snapping, the pins are resized to square-shaped pins with dimensions that match the WSP/SP track width. The following figures depict the snapping behavior of a pin with an original size 0.03.

In Situation 1, there are two available tracks of widths 0.08 and 0.04. So, the pin is snapped to the WSP/SP track with width 0.04, and resized accordingly.

In Situation 2, there are two available tracks of widths 0.08 and 0.02. This time, the pin is snapped to the WSP/SP track with width 0.08, and resized accordingly.

Blockage Support

Pin Optimizer supports routing blockages. Therefore, during pin optimization, a pin is not placed on a WSP track if the placement would lead to an overlap between the pin and blockages on the pin’s layer.

Pin Snapping for Overlapping Regions

In certain designs, there could be an overlap between two WSP regions that have the same snapping layer. The following types of overlaps are possible:

Pin Optimizer follows certain rules that define the pin snapping behavior for such overlapping regions.

Support for the allowedWireTypes Constraint

Pin Optimizer has been enhanced to support the allowedWireTypes constraint. When this constraint is set on a net, pins on that net are placed on tracks with allowed wire types. Pin Optimizer matches the allowedWireTypes constraint specified on the nets with the track wiretype value. If multiple matches are found, then the tack with the minimum net length is chosen for placement.

Pin Optimizer achieves the minimum net length while honoring the constraints and the priority order mentioned below:

    1. Matching wire type
    2. Matching width
      As WSP is a space-corrected grid, a pitch value does not make sense. Therefore, it is not supported.

Related Topics

Support for Rectangular and Square Pins and Blockages

Pin Snapping for Overlapping Regions

Assigning a Wire Type to a Net

Assigning a Wire Type to a Net > Default Constraint Types

Support for Pin Group Guides

If a design with WSP patterns has a pin group guide defined on its PR boundary, then the pins in the pin group guide are snapped to nearest WSP/SP track within the guide. However, if a pin group guide only intercepts a WSP/SP track, then the pins cannot be placed on the intercepting track, as shown below:

Related Topics

Creating a Pin Group Guide

Cross-Selection of Pins

Any pin that you select in the pin table, as shown below, also gets selected in the navigator assistant and the layout canvas, or vice versa.

The pin selection use-model has been enhanced such that any pins selected in the pin table are now highlighted and selected in the layout canvas. This enables directly selecting the pins from the pin table and editing them in the layout canvas.

If you select a top-level pin in the layout canvas and the Pin Planner tab has the Top Level Pins edit mode selected, the pin table displays the selected pin as highlighted. However, if the edit mode selected in the Pin Planner tab is Level-1 Pins, the form automatically switches to the Top Level Pins mode to show the cross-selection. The automatic mode switching works as long as the selected layout pins belong to the same level—top or level-1. If you select a mix of top-level and level-1 pins in the layout canvas, the Pin Planner tab continues to be in the current selected mode and displays only those pins as highlighted in the pin table that belong to the current edit mode.

The table below summarizes how the Pin Planner tab handles the cross-selection depending on the layout pins selected. Let us assume here that the default edit mode selected is Top Level Pins :

Selected Pin Pin Planner Tab Behavior

Only top pins

Shows the selected top pins in the pin table.

Only soft block instance pins

Automatically switches to the Level-1 Pins mode and shows the selected instance pins in the pin table.

Top pins + Soft block instance pins

No automatic mode switching.

The Top Level Pins mode shows the selected top pins and the Level-1 Pins mode shows the selected instance pins.

Only soft block instance

Automatically switches to the Level-1 Pins mode but shows no selection in the pin table as the instance “pin” is not selected.

Soft block instance + Soft block instance pins

Automatically switches to the Level-1 Pins mode and shows the selected instance pins in the pin table.

Top pins + Soft block instance

No automatic mode switching.

The Top Level Pins mode shows the selected top pins.

Top pins + Soft block instance + Soft block instance pins

No automatic mode switching.

The Top Level Pins mode shows the selected top pins and the Level-1 Pins mode shows the selected instance pins.

Top pins + Soft block instance + Soft block instance pins + Pins of another soft block

No automatic mode switching.

Each level shows the selected pins at that level.

You can also add to your selection set and nullify your selection in the pin table.

Related Topics

Planning Placement of Top-Level and Level-1 Pins

Pin Placement Form


Return to top
 ⠀
X