lxShapeSlotting
lxShapeSlotting(
[ ?cv d_cellViewId ]
[ ?all { t | nil } ]
[ ?region l_region ]
[ ?layers l_layers
[ ?widthThreshold n_widthThreshold ]
[ ?slotLength n_slotLength ]
[ ?slotWidth n_slotWidth ]
[ ?lSpacing n_lSpacing ]
[ ?wSpacing n_wSpacing ]
[ ?slotToEdge n_slotToEdge ]
[ ?slotVia { t | nil } ]
[ ?windowSize n_windowSize ]
[ ?stepSize n_stepSize ]
[ ?maxDensity n_maxDensity ]
[ ?slotStaggered { t | nil } ]
[ ?lengthWidthRatio n_lengthWidthRatio ]
[ ?excludePins { t | nil } ]
[ ?slotSpacingAtTurn n_slotSpacingAtTurn ]
[ ?onlyComplexPolygons { t | nil }
[ ?halfManhattan { t | nil } ]
[ ?halfManhattanStyle l_halfManhattanStyle ]
[ ?directionalSlotPattern l_directionalSlotPattern ]
[ ?shapes l_shapes ]
[ ?turnSlotPattern l_turnSlotPattern ]
)
=> t / nil
Description
Creates slots on shapes to ensure that wide wires are in compliance with maxDensity and maxWidth constraint rules. It also preserves viable electromigration and resistance attributes by creating rectangular slots in the direction of the current over the wires and square slots at turns (same layer or changed layer). There are two modes depending on the arguments specified: Geometric and Density Aware. In Geometric mode, the slotting shapes are fully specified (size, spacing, and step size), while in Density Aware mode, the slotting shape geometries are automatically computed based on the maxDensity specification. Also, in Geometric mode, you can create slots on shapes on non-metal layers. It is still possible to override any of the geometric information, such as the width, length, or spacing.
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 the entire design.
|
|
?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 if none is specified.
|
|
?widthThreshold
|
Filters out the shapes with a width smaller than the one specified. Default is 12.0µm.
|
|
?slotLength
|
Defines the length of the slot. Default is 0.0µm.
|
|
?slotWidth
|
Defines the width of the slot. Default is 0.0µm.
|
|
?lSpacing
|
Defines the slot spacing in the length direction. Default is 0.0µm.
|
|
?wSpacing
|
Defines the slot spacing in the width direction. Default is 0.0µm.
|
|
?slotToEdge
|
Defines the minimum slot to edge distance. Default is 0.0µm.
|
|
?slotVia
|
When set to t, vias are slotted. Default is nil.
|
|
?windowSize
|
Defines the size of the window where density is measured. Default is 20µm.
|
|
?stepSize
|
Defines the step applied to the window for the next check. It is usually half of the window. Default is 10 µm.
|
|
?maxDensity
|
Specifies the maximum metal density that is allowed for the layer as a percentage. Default is 80 percent.
|
|
?slotStaggered
|
Defines the offset mode used to add the slots. If the offset mode is set to nil, slots are inline. However, if the offset mode is set to t, slots are staggered. By default the offset mode 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.
|
|
?excludePins
|
Excludes pin objects from being slotted. Default is nil.
|
|
?slotSpacingAtTurn
|
|
|
Specifies the spacing that needs to be applied at the turns or on vias.
If this argument is not specified:
-
In geometric mode, the slot shapes at turns are aligned with the slot shapes from the wires.
-
In density-aware mode, the command computes the spacing between the slots in the turn from the target density.
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.
|
|
?onlyComplexPolygons
|
|
|
Slots only complex polygons. The bounding box of the polygon is used to determine the direction of the current. The shape of the slot depends on the ?lengthWidthRatio value.
|
|
?halfManhattan
|
Enables generation of 45 degrees slots over 45 degree wires.
|
|
?halfManhattanStyle
|
Specifies the type of slot shape to be dropped at the turn when halfMahattan is set to t. The slot shape can be either a square, bentShape or rowExtension. Default is square.
|
|
?directionalSlotPattern
|
|
|
Defines a slot pattern (for example, a complex chamfered rectangle) that is dropped in the direction of the current over the orthogonal portion of the wire.
|
|
?shapes
|
List of shapes to be slotted. The shape can be a path segment, path, rectangle, or a polygon. If ?region is also specified, then only the section of the shapes that are partially or fully covered by the ?region are slotted.
|
|
?turnSlotPattern
|
Defines a slot pattern (for example, a complex chamfered square) that is dropped at the turn of a wire.
|
Value Returned
|
t
|
Slots are created on metal shapes.
|
|
nil
|
Fails to create slots on metal shapes.
|
Example
lxShapeSlotting(?windowSize 20.0 ?stepSize 10.0 ?lengthWidthRatio 0.5 ?maxDensity 80.0 ?widthThreshold 10.0 ?all ?layers list("Metal2" "Metal1") ?slotVia t ?slotPattern 0 ?slotLength 5.0 ?slotWidth 1.0 ?lSpacing 2.0 ?slotStaggered t)
Creates rectangular slot shapes with geometries specified as 5.0µm in length and 1.0µm in width spaced by 2.0µm over Metal1 and Metal2 wires wider than 10.0µm. This happens where maxDensity violations exist. Also, in this situation, the spacing in the width direction is computed automatically (corresponding to the ?wSpacing parameter).
Return to top