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

sltShapeConsecutiveSlotting

sltShapeConsecutiveSlotting(
[ ?cv d_cellViewId ] 
[ ?all { t | nil } ]
[ ?region l_region ]
[ ?layers l_layers ]
[ ?objects l_objects ]
[ ?slotLength n_slotLength ]
[ ?slotWidth n_slotWidth ]
[ ?slotStaggered { t | nil } ]
[ ?lengthWidthRatio n_lengthWidthRatio ]
[ ?slotVia { t | nil } ]
[ ?excludePins { t | nil } ]
[ ?widthThreshold1 n_widthThreshold1 ]
[ ?widthThreshold2 n_widthThreshold2 ]
[ ?lSpacing1 n_lSpacing1 ]
[ ?lSpacing2 n_lSpacing2 ]
[ ?wSpacing1 n_wSpacing1 ]
[ ?wSpacing2 n_wSpacing2 ]
[ ?slotToEdge1 n_slotToEdge1 ]
[ ?slotToEdge2 n_slotToEdge2 ]
[ ?slotSpacingAtTurn1 n_slotSpacingAtTurn1 ]
[ ?slotSpacingAtTurn2 n_slotSpacingAtTurn2 ]
)
=> t / nil

Description

Consecutively runs density-aware slotting and geometric slotting with a combination of common and specific parameters.

This SKILL API invokes the lxShapeSlotting SKILL procedure twice. The first run is in the density-aware mode and the second run is in geometric mode. The parameters of the SKILL API are directly passed to the lxShapeSlotting SKILL procedure for the corresponding parameters. Some parameters are passed to both runs and some are passed in one run only (their name having 1 or 2 as suffix).

Arguments

?cv

ID of the cellview containing the layout instance. If not specified, the current cellview is used.

?all

Applies the command to the entire design when set to t. Default is t.

?region

Applies the command to the region given by a list of coordinates (x0 y0 x1 y1) representing the lower-left and upper-right corners of the region.

?layers

List of layer names on which the drawing purpose metal shapes will be overlapped by slot purpose shapes. The default is all layers.

?objects

List of objects to be slotted. The object can be a path segment, path, rectangle, or polygon. If ?region is also specified, then only the section of the objects that are partially or fully covered by the ?region are slotted.

?widthThreshold1
?widthThreshold2

Filters out the shapes with widths smaller than the one specified. Default is 12.0µm.

?slotLength

Defines the length of the slot. Default is 0.0µm.

If the specified value is negative, then the value of the slotLength environment variable is used instead.

?slotWidth

Defines the width of the slot. Default is 0.0µm.

If the specified value is negative, then the value of the slotWidth environment variable is used instead.

?slotStaggered

Defines the offset mode used to add the slots. When set to nil, the slots are in line. When set to t, slots are staggered. By default the argument is set to nil.

?lengthWidthRatio

Specifies a threshold ratio value, which determines whether a slot is created as a square or a rectangular shape. If the length-to-width ratio of the object is greater than the defined threshold, then a rectangular slot is created. If the length-to-width ratio of the object is less than or equal to the specified ratio, then a square slot is created. The default is 3.0.

If the specified value is negative, then the value of the lengthWidthRatio environment variable is used instead.

?slotVia

Specifies that vias are to be slotted. Default is nil.

?excludePins

Excludes pin objects from being slotted. Default is nil.

?lSpacing1
?lSpacing2

Defines the slot spacing in the length direction. Default is 0.0µm.

If the specified value is negative, then the value of the lSpacing environment variable is used instead.

?wSpacing1
?wSpacing2

Defines the slot spacing in the width direction. Default is 0.0µm.

If the specified value is negative, then the value of the wSpacing environment variable is used instead.

?slotToEdge1
?slotToEdge2

Defines the minimum slot to edge distance. Default is 0.0µm.

If a value is negative then the value of slotToEdge environment variable is used instead.

?slotSpacingAtTurn1
?slotSpacingAtTurn2

Specifies the spacing that needs to be applied at the turns or on vias.

If this argument is not specified:

  • In density-aware mode, the command computes the spacing between the slots in the turn from the target density.
  • In geometric mode, the slot shapes at turns are aligned with the slot shapes from the wires.

When the argument is specified:

  • If the value = 0, then the slots in the turn are aligned with the slots of the shapes touching the turn.
  • If the value > 0, then the value is used as the spacing between the slots in the turn.

Value Returned

t

The command ran successfully.

nil

The command failed to run due to invalid input parameters.

Examples

The following lines of code in the CIW runs lxShapeSlotting consecutively.

 slotLength       = 6.0
 slotWidth        = 1.0
 slotToEdge       = 1.0
 lSpacing         = 2.0
 widthThreshold   = 12.0
 lengthWidthRatio = 0.5
 slotVia          = t
 wSpacing          = 5.2
 slotSpacingAtTurn = 2.0
sltShapeConsecutiveSlotting(
    ?cv                 cvId 
    ?all                nil
    ?layers             extendedSlotLayers
    ;?region
    ?objects            objects
 ?slotLength         slotLength 
    ?slotWidth          slotWidth
 ?lengthWidthRatio   lengthWidthRatio 
    ?slotStaggered      nil
    ?excludePins        t 
    ?slotVia            slotVia
 ?slotToEdge2        slotToEdge
    ?lSpacing1          lSpacing
    ?lSpacing2          lSpacing
    ;?wSpacing1
    ?wSpacing2          wSpacing      
    ?widthThreshold1    widthThreshold
    ?widthThreshold2    widthThreshold
    ;?slotSpacingAtTurn1 -0.1   (let density aware
    ?slotSpacingAtTurn2 slotSpacingAtTurn)

Related Topics

Slot Functions

sltShapeConsecutiveSlotting

lxShapeSlotting

lxConvertSlotToPolygon


Return to top
 ⠀
X