Product Documentation
Virtuoso Studio Design Environment SKILL Reference
Product Version IC23.1, November 2023

phoCurveDeltaConnector

phoCurveDeltaConnector(
g_cellViewId
S_waveguideLayer
[ ?rotation n_rotation ]
[ ?offset l_offset ]
[ ?full g_full ]
[ ?startPortName t_PortName ]
[ ?endPortName t_PortName ]
[ ?startPortDirection t_Direction ]
[ ?endPortDirection t_Direction ] 
[ ?width f_width ]
[ ?deltaX f_deltaX ]
[ ?deltaY f_deltaY ]
[ ?startPortAngle f_startPortAngle ]
[ ?endPortAngle f_endPortAngle ]
[ ?taperStyle  s_taperStyle ]
[ ?startWidth f_width ]
[ ?endWidth f_width ]
[ ?taperStartClamp n_length ]
[ ?taperEndClamp n_length ]
[ ?startPortRadius f_startPortRadius ]
[ ?endPortRadius f_endPortRadius ]
[ ?modeSpec l_1_modeSpec ]
[ ?modePropOnly g_modePropOnly ]
[ ?portPinPurpose t_portPinPurpose ]
[ ?Rmin n_Rmin ]
[ ?method x_method ]
[ ?costFunction l_costFunction ]
)
=> l_dpl / nil

Description

(ICADVM20.1 Photonics Only) Returns a delta connector, defined by deltaX, deltaY, and facet angles. The connector calculates the curve to connect the start and end with their respective angles according to the passed parameters.

Arguments

d_cellViewId

Cellview ID of the layout to be used. For a connector, the generator checks its view type and whether the cellview is editable and is a maskLayout.

t_waveguideLayer

Name of the abstract layer or the design intent layer in which you want to draw the connector. This must be a layer with the waveguide function defined in the PDK technology file. It is also used to determine the relevant waveguideDef (cross-section) in the technology file, to generate the needed layers to implement the waveguide.

?rotation n_rotation

Rotation angle in degrees for the bend connector.

The default value is (0,0), which means there is no rotation.

The facet angle 0.0 points to the bottom.

?offset l_offset

list(n_lhs n_rhs)

Offset value for the connector.

The default value is (0,0), which means there is no offset.

?full g_full

A Boolean when set to t specifies whether a waveguide is created with all its layers from the cross section as defined in the technology file. This is the default.

When set to nil, only the design intent layer t_waveguideLayer is drawn, generating an abstract of the connector.

?startPortName t_PortName

Name of the start port. The default value is "start".

A nil port name results in a connector generated without a port at the start. This may be useful when composing a complex layout with multiple connectors in which ports are not needed in the middle because there is no hierarchical connection point at that location.

?endPortName t_PortName

Name of the end port. The default value is "end".

This may be useful when composing a complex layout with multiple connectors in which ports are not needed in the middle because there is no hierarchical connection point at that location.

?startPortDirection t_Direction

Direction of the start port. The default value is "inputOutput".

?endPortDirection t_Direction

Direction of the end port. The default is "inputOutput".

?width n_width

Width of the waveguide layer. The default value is nil.

?deltaX f_deltaX

Distance in microns along the x axis between the start and end points of the connector. The default value is nil.

?deltaY f_deltaY

Distance in microns along the y axis between the start and end points of the connector. The default value is nil.

?startPortAngle f_startPortAngle

Angle of the facet at the start port. The default value is nil.

?endPortAngle f_endPortAngle

Angle of the facet at the end port. The default value is nil.

?taperStyle s_taperStyle

Style of the tapering.

Valid values are: 'none, 'linear, 'exp and 'parabolic. The default value is 'none

?startWidth n_width

Width of the taper at the start of the connector. The default value is nil.

?endWidth f_width

Width of the taper at the end of the connector. The default value is nil.

?taperStartClamp f_length

Length of the clamping region at the start of the connector. The default value is nil.

This is the zone where the derived function is changed to align the curve with the facet angle.

See ccCreateConnectorWidthExpressionList.

?taperEndClamp f_length

Length of the clamping region at the end of the connector. The default value is nil.

See ccCreateConnectorWidthExpressionList.

?startPortRadius f_startPortRadius

Radius of the start port. If specified, it must be set to a value greater than the minimum bend radius of the waveguideLayer. This value changes the inflection of the curve at the start port. The default value is nil. This parameter is not always active. For example, there is no effect from setting the radius of a port on a straight connector.

?endPortRadius f_endPortRadius

Radius of the end port. If specified, it must be set to a value greater than the minimum bend radius of the waveguideLayer. This value changes the inflection of the curve at the start port. The default value is nil.

?modeSpec l_l_modeSpec

List of list of arguments to calculate the mode properties (modeProp) for the connector:

list( list(wavelength1 wavelength2…) list(temperature1 temperature2…))

Example:

list(list(1550n) list(27)) )

?modePropOnly l_modePropOnly

Returns a partial connector disembodied property list, without drawing it in the cellview. The default value is nil.

?portPinPurpose t_portPinPurpose

Layer purpose to use when creating pins. The default purpose for pins is "drawing".

?Rmin f_Rmin

Overwrites or specifies the minimum curvature radius. The default value is nil.

If specified, the curve is not drawn unless the ?radius is greater or equal to ?Rmin.

?method x_method

Method number from 0 to 9. The default value is 0.

See ccCurveConnector

?costFunction l_costFunction

list(n_A n_B n_C n_D)

List of additional numeric parameters passed to the connector calculation methods. The default value is nil. If ?method is not specified or is set to 0, then all applicable methods are tried for all applicable values of parameters. In this case, if l_costFunction is empty, the result is the first solution that is found. If l_costFunction is not empty, it is assumed to contain list of four weights of the cost function.

Value Returned

l_dpl

A disembodied property list (DPL) of curve, pins and their angles, and arguments passed to the function. This can be used to easily use the connector in a SKILL script.

A DPL starts with nil and has keys to access different information or values. A connector DPL has nested DPLs. You can access this information in SKILL using the -> operator.

The main keys are:

  • connectorName: A string with the name of the connector.
  • startPort: A DPL containing the startPort information, such as name, direction, and facet information.
  • endPort: A DPL containing the endPort information, such as name, direction, and facet information.
  • waveguideLayer: A string with the name of the waveguide layer used by the connector.
  • args: A list of all arguments used to generate the connector.

nil

Connector is not created.

Examples

cv = geGetEditCellView()
phoCurveDeltaConnector( cv "waveguide" ?width 0.5 
?deltaX 50.0 ?deltaY 20.0 
?startPortAngle 90.0 ?endPortAngle 270.0
)

phoCurveDeltaConnector(cv "waveguide" ?width 0.5 
?deltaX 50.0 ?deltaY 20.0
?startPortAngle 0.0 ?endPortAngle 33.0
)

The following example shows the influence of ?startPortRadius and ?endPortRadius. In the image, red represents the parameters set to nil and white represents the parameters set to 20:

phoCurveDeltaConnector(cv "waveguide" ?width .5 ?deltaX 50.0 ?deltaY 20.0 
?startPortAngle 90.0 ?endPortAngle 270.0
?startPortRadius nil / 20
?endPortRadius nil / 20
)

The following example shows the influence of Rmin on the connector for values between 10 and 14.

phoCurveDeltaConnector(cv "waveguide" ?width .5 ?deltaX 100.0 ?deltaY 40.0
 ?startPortAngle 90.0 ?endPortAngle 270.0
 ?startPortRadius 20 ?endPortRadius 20
 ?Rmin 10…14
)

The following example shows the effect when the ?costFunction parameter is set to nil compared to when it is set to a list of parameters

phoCurveDeltaConnector(cv "waveguide" ?width .5
?deltaX 100.0 ?deltaY 100.0
?startPortAngle 90.0 ?endPortAngle 270.0
?startPortRadius 20 ?endPortRadius 20
?Rmin 10 ?method 0 
?costFunction nil / list(1 1 0.01 0.5) 
)

The following shows below the tapering.

phoCurveDeltaConnector( cv "waveguide" ?width 0.7  ?deltaX 50.0 ?deltaY 20.0 
?startPortAngle 90.0 ?endPortAngle 270.0
?taperStyle 'parabolic
?startWidth 1.0
?endWidth 4.0
?taperStartClamp 2.0
?taperEndClamp 2.0
)

Related Topics

phoBendConnector

phoDrawCompWaveguideLayout

phoSineDeltaConnector

phoStraightConnector

phoWayPointConnector

Photonics Connector Functions


Return to top
 ⠀
X