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

rdeCreateChamferFill

rdeCreateChamferFill(
[ ?all { t | nil } ] 
[ ?cv d_cvid ]
[ ?region l_region ] 
[ ?layer lt_layer ] 
[ ?lengthThreshold f_length ] 
[ ?chamferValue1 {f_value1 | l_chamfer1} ]
[ ?chamferValue2 {f_value2 | l_chamfer2} ]
[ ?extendViaChamfer { t | nil } ]
[ ?allowViolation { t | nil } ]
[ ?outputPurpose t_purposeName ]
[ ?materialRemovalPurpose t_purposeName ]
[ ?chamferFilter l_filterCriteria ]
[ ?useEdgeLength { t | nil } ]
)
=> t / nil

Description

Creates chamfer fill on wires (pathSegs). The chamfer fill mechanism removes 90-degree corners by filling the corners of wires that form T-junctions, L-shaped wires, wire-to-via, wire-to-rectangle, and wire-to-polygon connections. T-junctions and L shapes created using only rectangles or polygons are not considered for chamfer fill.

An example of a chamfer fill shape on an L-shaped wire is shown in the following figure.

An example of chamfer fill for a wire that connects to a pin (rectangle) is shown in the following figure.

The following figure shows examples of chamfer fill shapes added at the intersections of wires and rectangles or polygons.

If the added chamfer fill at a via junction causes a maxNumMinEdges violation, then the chamfer fill edges are extended to fix the violation, as shown in the following figure.

Arguments

?all { t | nil }

If set to t, creates chamfer fill on all the wires in the design.

Specify either ?all or ?region but not both . ?all is the default setting if ?region is not specified.

?cv d_cvId

Database ID of the cellview. Default is the current active window.

?region l_region

Creates chamfer fill on the wires in the specified region. Specify the region using a list containing a pair of XY coordinates defining the lower-left and upper-right corners of a rectangle in the following format:

list(f_xlo f_ylo f_xhi f_yhi)

Specify either ?all or ?region but not both. ?all is the default setting if ?region is not specified.

?layer lt_layer

Creates chamfer fill on only the layers in the list. By default, chamfer fill is created on all the routing layers.

?lengthThreshold f_length

Specifies the threshold that determines whether chamferValue1 or chamferValue2 is applied.

If length1 or length2 is less than the lengthThreshold value, chamferValue1 is applied; otherwise chamferValue2 is applied. See Example 2—Chamfer fill where lengthThreshold is considered for an example of how length1 and length2 are measured.

?chamferValue1 { f_value1 | l_chamfer1 }

Specifies the chamfer value to be applied if length1 or length2 is less than the lengthThreshold value. See Example 2—Chamfer fill where lengthThreshold is considered for an example.

  • If a single value is specified, it applies to both the inner and outer chamfers.
  • If two values are specified in a list, the first value is the inner chamfer value and the second value is the outer chamfer value.

?chamferValue2 { f_value2 | l_chamfer2 }

Specifies the chamfer value to be applied if length1 and length2 are greater than or equal to the lengthThreshold value. See Example 2—Chamfer fill where lengthThreshold is considered for an example.

  • If a single value is specified, it applies to both the inner and outer chamfers,
  • If two values are specified in a list, the first value is the inner chamfer value and the second value is the outer chamfer value.

?extendViaChamfer { t | nil }

Adds chamfer fill on wire-to-via junctions. The default is t.

?allowViolation { t | nil }

Adds chamfer fill even if it causes design rule violations. The default is nil.

?outputPurpose t_purposeName

Specifies the layer purpose on which added chamfer fill shapes are drawn. If outputPurpose is not specified, the default purpose gapFill is used.

?materialRemovalPurpose t_purposeName

Specifies the layer purpose on which wire removal shapes are drawn when chamfering the external corners of L-shaped wires.

The removal shape is drawn on the specified purpose on the same layer as the wire and is processed when exporting GDSII or during fracturing.

See Example 3—Chamfering external corners of L-shaped wires for more information.

?chamferFilter l_filterCriteria

Filters the wires on which chamfer fill is created, based on a list of specified criteria. For example:

  • To create chamfer fill only on wires with maximum voltage greater than 100V, specify ?chamferFilter list("voltage > 100.0")
  • To create chamfer fill only on wires with width greater than or equal to 10 microns, specify ?chamferFilter list("width >= 10.0")
  • To create chamfer fill only on wires with width greater than 8 microns, and voltage less than 45V, specify ?chamferFilter list("width > 8.0" "voltage < 45.0")

?useEdgeLength { t | nil}

Computes the length on the external edges of the wire. The default is nil, in which case the centerline of the wire is used.

Value Returned

t

The specified chamfer fill was created.

nil

Chamfer fill creation failed.

Examples

Example 1—Chamfer fill where lengthThreshold is not considered

rdeCreateChamferFill(?all t ?lengthThreshold 0.0 ?chamferValue1 2.0 ?chamferValue2 2.0)

Creates chamfer fill of 2 microns on all the 90-degree corners of all the wires on all the routing layers. In this scenario, the lengthThreshold value (0 microns) is not considered. The following figure illustrates this example with a T-junction wire; chamfer fill of 2 microns is created on both the sides of the T-junction.

Example 2—Chamfer fill where lengthThreshold is considered

rdeCreateChamferFill(?all t ?layer '("M2"} ?lengthThreshold 5.0 ?chamferValue1 1.5 ?chamferValue2 2.0)

Creates chamfer fill on all the 90-degree corners of all the wires on the M2 layer according to the following conditions:

The following figure illustrates this example with a T-junction wire. The lengths of the segments for the left corner are 3 and 8 microns, so its chamfer fill value is 1.5 microns. The lengths of the segments for the right corner are 5.5 and 8 microns, so its chamfer fill value is 2 microns.

Example 3—Chamfering external corners of L-shaped wires

rdeCreateChamferFill(?all t ?layer '("M2"} ?materialRemovalPurpose "noDrawing"

The following figure illustrates the effect of specifying the ?materialRemovalPurpose argument, which specifies the layer purpose on which chamfer removal shapes are drawn on the external corners of wires.

Related Topics

Space-based Router Functions


Return to top
 ⠀
X