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

rdeCreateWireChamfer

rdeCreateWireChamfer(
[ ?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} ]
[ ?allowViolation { t | nil } ]
[ ?innerChamfer { t | nil } ]
[ ?chamferFilter l_filterCriteria ]
[ ?chamferEndOfStripe { t | nil } ]
)
=> t / nil

Description

Creates chamfers on wires (pathSegs). The wire chamfer mechanism replaces 90-degree wires with 45-degree wires.

An example of a wire chamfer is shown in the following figure.

Arguments

?all  { t | nil }

If set to t, creates chamfers 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 chamfers 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 chamfers on the layers in the list. By default, chamfers are created on all the routing layers.

?lengthThreshold f_length

Specifies the threshold value that determines if chamferValue1 or chamferValue2 is applied.

If length1 or length2 is less than the lengthThreshold value, chamferValue1 is applied; otherwise chamferValue2 is applied.

?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 is the inner, outer, and end-of-stripe chamfer.
  • If two values are specified in a list, the first value is the inner and outer chamfer, and the second value is the end-of-stripe 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 1—Chamfer fill where lengthThreshold is not considered for an example.

  • If a single value is specified, it is the inner, outer, and end-of-stripe chamfer.
  • If two values are specified in a list, the first value is the inner and outer chamfer, and the second value is the end-of-stripe value.

?allowViolation { t | nil }

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

?innerChamfer { t | nil }

If set to nil, chamferValue1 or chamferValue2 applies to the outer corner of the wire. The default value t applies chamferValue1 or chamferValue2 to the inner corner of the wire.

?chamferFilter l_filterCriteria

Filters the wires on which chamfers are created based on specified criteria. For example:

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

?chamferEndOfStripe { t | nil }

When set to t, ends of wires are chamfered to match chamfered via arrays. By default (nil), ends of wires are not chamfered.

See Example 3—Chamfering end of stripe wires for more information.

Value Returned

t

Wire chamfers were created.

nil

Wire chamfer creation failed.

Examples

Example 1—Inner wire chamfer

rdeCreateWireChamfer(?all t ?layer '("M2") ?lengthThreshold 5.0 ?chamferValue1 1.5 ?chamferValue2 2.0 ?innerChamfer t)

Creates chamfers on the inner corners of all the wires on the M2 layer according to the following conditions:

In the following figure, the length of both the segments (5.5 and 8 microns) is greater than the lengthThreshold value (5 microns), so the inner chamfer value is 2 microns.

Example 2—Outer wire chamfer Where length1 Is Less Than lengthThreshold

rdeCreateWireChamfer(?all t ?layer list("M2") ?lengthThreshold 6.0 ?chamferValue1 2.0 ?chamferValue2 3.0 ?innerChamfer nil)

Creates wire chamfers on the outer side of all the wires on the M2 layer according to the following conditions:

In the following figure, the length of one segment (5.5 microns) is less than the lengthThreshold value (6 microns), so the outer chamfer value is 2 microns.

Example 3—Chamfering end of stripe wires

The following figure illustrates the effect of specifying the chamferEndOfStripe argument, which chamfers the ends of stripes to match chamfered via arrays.

Related Topics

Space-based Router Functions


Return to top
 ⠀
X