Product Documentation
Virtuoso Layout Suite SKILL Reference
Product Version IC23.1, November 2023

vpaOptimizePins

vpaOptimizePins(
?cv d_cellViewId
?layoutLCV l_LCVName
[ ?cphId g_cphId ]
[ ?selectedOnly g_selectedOnly ]
[ ?spacingType t_spacingType ]
[ ?spacingValue n_spacingValue ]
[ ?targetPinSide l_targetPinSides ]
[ ?enableCongestion g_enableCongestion ]
[ ?congestionValue n_congestionValue ]
)
=> t / nil / List of (sbId lib:cell:view status)

Description

Runs pin optimization on the specified cellview or design based on the options you specify. You can specify only those parameters that you want to control. The parameters that you do not specify get their values from the corresponding LayoutXL environment variable.

Arguments

?cv d_cellViewId

The ID of the cellview for pin optimization. This cellview ID is mutually exclusive with layoutLCV and has a higher priority than layoutLCV.

?layoutLCV l_LCVName

The name of the library, cell, and view. It is the target cellview for Pin optimization and is mutually exclusive with cv.

Either cv or layoutLCV must be specified.

?cphId g_cphId

The physical configuration ID, which is the physical configuration cellview created by the cphCreatePhysConfig API. The cphId must only be specified when using the pin optimizer in conjunction with the command-line CPH-GPH-based flow. If this argument is not used, then the pin optimizer retains its original behavior without any impact of the command-line CPH-GPH flow.

?selectedOnly g_selectedOnly

Whether to run pin optimization on the selected objects only or all the objects in cellview. The valid values are t and nil. The default value is read from the corresponding LayoutXL Floorplan environment variable.

?spacingType t_spacingType

Specifies how to space out the pins using the relevant spacing values from the technology file. The valid values are line-line, line-via, via-via, or specify. The default value is set to line-line in the corresponding environment variable.If the value is set as specify, then the spacingValue has to be specified.

?spacingValue n_spacingValue

This value needs to be specified if the spacingType is set to specify. This value is used to specify the minimum spacing between the pins. The value is either a fixed or a floating number.

?targetPinSide l_targetPinSides

The side(s) of the blocks and the PR boundary on which the pins should be placed. The valid values are left, right, top, and bottom. By default all the four sides are considered. You can also specify a combination of one or more sides.

?enableCongestion g_enableCongestion

Whether or not to consider the congestion value during pin optimization. This option is only applicable if congestion data is available. The valid values are t or nil. If the value is set to t, then the congestionValue has to be specified. The default value is read from the corresponding LayoutXL Floorplan environment variable.

?congestionValue n_congestionValue

Specifies the congestion threshold. This needs to be specified if enableCongestion is t. It is a fixed number.

Value Returned

When a valid cphId is not specified, one of the following values is returned:

t

Pin optimization was successfully run. The Layout XL Floorplan environment variables were updated as per the specified values.

No value returned

Pin optimization failed on some of the blocks (partially) or on all blocks (completely). Related error messages are displayed in the CIW.

When a valid cphId is specified, one of the following values is returned:

t

The Pin Optimizer was successfully run.

nil

The Pin Optimizer completely failed on all blocks.

List of (sbId lib:cell:view status)

The Pin Optimizer partially failed on some blocks. A list of soft block IDs, theirlib:cell:views, and their statuses is returned. The list of blocks indicates whether pin optimization was performed for each soft block.

 (
 (sbId  lib:cell:view  status)
 (sbId lib:cell:view   status)
 )
  • sbId – ID of the soft-block that was created using cphSbDefineSoftBlock API
  • lib:cell:view – Physical LCV of the soft block
  • status – Status of the soft block after running Pin Optimizer. Values returned are:
    • t – Soft block is successfully optimized.
    • nil – Soft block could not be optimized.

Examples

To optimize only the selected pins in the cellview design:top:layout by placing them on either of the four edges with 0.1 separation.

vpaOptimizePins(?layoutLCV ‘("design" "top" "layout") ?selectedOnly t ?spacingType "specify" ?spacingValue 0.1)

To optimize all the pins in the cellview with ID d_cvId by placing them on the left and right edges with line-line separation.

vpaOptimizePins(?cv d_cvId ?cphID mycphID ?spacingType "line-line" ?targetPinSide ("left" "right"))


Return to top
 ⠀
X