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

weGetAdjustedWidthForTracks

weGetAdjustedWidthForTracks( 
d_cellViewId
l_layerNum
l_purposeNum
l_direction
l_dimension
l_coordinates [ x_coord y_coord ]
)
=> l_trackInfo / nil

Description

Returns the Width Spacing Pattern (WSP) track information based on the inputs specified, such as layers, purposes, preferred directions, and shape dimensions, at a specific location.The purpose of the function is to check whether or not there are tracks at the given location.

Arguments

d_cellViewId

ID of the currently edited cellview.

l_layerNum

List of layers in the design.

l_purposeNum

List of layer-purpose pairs in the design.

l_direction

List of preferred directions.

l_dimension

List of shapes dimension. The shapes dimension includes the width and height of the shape.

l_coordinates

Coordinates of the point of interest.

Value Returned

l_trackInfo

A list of lists representing the track information. The track information consists of the width, direction, trackHasWidth, and color, which is indexed in the list of lists returned by the SKILL function. Here is an example of the return value.

list(
list(width1 width2 ... widthN) ; list of widths
list(direction1 direction2 ... directionN) ; list of directions
list(trackHasWidth1 trackHasWidth2 ... trackHasWidthN) ; list of boolean values indicating whether or not the track has a width
list(maskColor1 maskColor2 ... maskColorN) ; list of colors
)

nil

The command fails to run or an error occurred.

Examples

Given below are two examples to explain how the SKILL function is used.

Example 1

The following example shows how to get the track information for a single layer/purpose/direction/shape’s dimensions.

tech = techGetTechFile(dbGetCellView())
layer = techGetLayerNum(tech "M1")
purpose = techGetPurposeNum(tech "drawing")
weGetAdjustedWidthForTracks(dbGetCellView() list(layer) list(purpose) list("horizontal") list(list(0.1 0.1)) list(0.3880 0.1240))

The value returned for the above example is:

(
  (0.032) - track width
  ("horizontal") - track direction
  (t) - Boolean value of trackHasWidth
  ("grayColor") - track color
)

At the location (0.3880 0.1240), for the horizontal preferred direction, considering the layer-purpose pair (M1, drawing), for a shape of dimension (width= 0.1 and height = 0.1), there is a corresponding M1 horizontal track with width as 0.032 and no color.

Example 2

The following example shows how to get the track information for multiple layers/purposes/directions/shape’s dimensions.

tech = techGetTechFile(deGetCellView())
layer1 = techGetLayerNum(tech "M1")
layer2 = techGetLayerNum(tech "M2")
layer3 = techGetLayerNum(tech "M3")
purpose = techGetPurposeNum(tech "drawing")
weGetAdjustedWidthForTracks(deGetCellView() list(layer1 layer2 layer3) list(purpose purpose purpose) list("vertical" "vertical" "horizontal") list(list(0.1 0.064) list(0.1 0.064) list(0.1 0.064)) list(0.3880 0.2040))

The value returned for the above example is:

(
  (0.048 0.0 0.064) - track widths
  ("vertical" "vertical" "horizontal") - direction of tracks
  (t nil t) - boolean value of trackHasWidth
  ("mask1Color" "grayColor" "mask2Color") - Color of tracks
)

From the given inputs, there are three matching tracks with the following characteristics:

Related Topics

Interactive and Assisted Routing Functions


Return to top
 ⠀
X