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

phoWayPointConnector

phoWayPointConnector(
d_cellViewId
t_waveguideLayer
[ ?rotation n_rotation ]
[ ?full g_full ]
[ ?startPortName t_PortName  ]
[ ?endPortName t_PortName ]
[ ?width f_width ]
[ ?shapeDataList l_shapeDataList ]
[ ?startPortAngle f_startPortAngle  ]
[ ?endPortAngle f_endPortAngle ]
[ ?autoWide g_autoWide ]
[ ?autoWideWideWidth n_wideWideWidth ]
[ ?autoWideMinWideSectionLength n_wideLength ]
[ ?autoWideTaperLength n_autoWideTaperLength ]
[ ?autoWideTaperAngle n_wideTaperAngle ]
[ ?autoWideStubLength n_wideStubLength ]
[ ?autoWideTaperStyle s_autoWideTaperStyle ]
[ ?arcPart f_arcPart ]
[ ?minRadius f_minRadius ]
[ ?vfoProtocolClass t_vfoProtocolClass ]
[ ?modeSpec l_l_modeSpec ]
[ ?modePropOnly l_modePropOnly ]
[ ?portPinPurpose t_portPinPurpose  ]
[ ?waveguideDefPurpose t_waveguideDefPurpose ]
)
=> l_dpl / nil

Description

(ICADVM20.1 Photonics Only) Returns a waypoint connector that connects the start port to the end port by a sequence of straight-line segments and bend connectors. The straight-line segments are defined by a polynomial line through a series of waypoints. This series of waypoints is defined by the key argument ?shapeDataList.

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.

?width f_width

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

?shapeDataList l_shapeDataList

List of points of interest (waypoints) for the connector. This parameter cannot be left empty and the list must contain at least two points. The default value is nil.

?startPortAngle f_startPortAngle

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

When ?startPortAngle is specified, a new point and additional bend might be inserted between first point and second point of l_shapeDataList to meet this constraint.

?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.

If ?startPortAngle is also specified, the connector will use ?startPortRadius on the radius of the newly added bend.

?endPortAngle f_endPortAngle

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

If ?endPortAngle is specified, a new point and additional bend might be inserted between the last point and second to last point of l_shapeDataList to meet this constraint.

?autoWide g_autoWide

Enables or disables the auto-widening feature. Tapering and auto-widening cannot be enabled at the same time. The default value is nil.

?autoWideWideWidth n_wideWideWidth

Width of auto-widening. It must be larger than the waveguide width. The default value is nil.

?autoWideMinWideSectionLength n_wideLength

Length of the auto-widening cone. This value must be less than the connector length. The default value is nil.

?autoWideTaperLength n_autoWideTaperLength

Minimum length of the taper. The default value is nil.

To specify this argument, the length of the connector must be the sum of two times autoWideStubLength, two times autoWideTaperLength, and autoWideMinLength.

If this condition is not met, the autoWide parameter will be ignored. autoWideTaperAngle and autoWideTaperLength are mutually exclusive.

?autoWideTaperAngle n_wideTaperAngle

Angle of the taper cone in degrees. The default value is nil.

autoWideTaperAngle and autoWideTaperLength are mutually exclusive. This angle and the autoWideWideWidth determine the autoWideTaperLength and the final value of the autoWide length. If the angle is too small and autoWideMinLength is not met, the autoWide process will not occur.

?autoWideStubLength n_wideStubLength

Length of the offset between the start or end of the connector and the beginning of autoWide. The default value is nil.

?autoWideTaperStyle s_autoWideTaperStyle

Style of the tapering. Options are 'none, 'linear, 'exp and ‘parabolic. The default value is 'none.

?arcPart f_arcPart

Any value between 0.0 and 1.0 indicating the ratio of the circular bending angle to the overall bending angle.

  • When the value is 1.0, the connector consists of a single circular arc.
  • When the value is 0.0, the connector consists of two clothoids.

?minRadius f_minRadius

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

?vfoProtocolClass t_vfoProtocolClass

Name of the SKILL handler called to manage the interactive fluid edit. The default value is "phoFluidWGModifyClass".

See Introduction to Fluid Guard Rings.

?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".

?waveguideDefPurpose t_waveguideDefPurpose

Enables changing the waveguideDef purpose and select a different waveguideDef profile from the technology file.

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

Define first the list of waypoints:

shapeDataList = list( 
0:0
15.708:20
31.4159:0
47.12385:-20
62.8318:0
78.54:20
100:20)

Call the phoWayPointConnector SKILL function.

cv = geGetEditCellView() 
phoWayPointConnector(cv "waveguide" ?width 0.5 ?shapeDataList shapeDataList)

Consider the following parameter list:

shapeDataList = list( 
list(0.0 0.0)
list(150 0.0)
list(150 -23) 
list(180 -23) 
list(180 40)
list(200 40) 
list(200 0.0) 
list(230 0.0)
list(230 40)
)

Call the function for specific parameters.

cv = geGetEditCellView() 
phoWayPointConnector(cv "waveguide" ?width 0.5 ?shapeDataList shapeDataList)

The following is the same curve with the points of shapeDataList, for visibility. Each point is represented by a white square.

phoWayPointConnector( cv "waveguide" ?shapeDataList shapeDataList ?width 0.5     ?startPortAngle 30 ?startPortRadius nil)

The following show the influence of ?startPortRadius, for values 10, 20 and 30.

phoWayPointConnector(cv "waveguide" ?shapeDataList shapeDataList ?width 0.5    ?startPortAngle 30     
?startPortRadius 10/20/30)

The following imaage shows the effect of auto-widening on the straight sections:

phoWayPointConnector(cv "waveguide" ?width .5 ?shapeDataList shapeDataList    ?autoWide t
?autoWideTaperAngle 30
?autoWideTaperStyle 'exp
?autoWideWideWidth 3.0
?autoWideStubLength 2.0
?autoWideMinWideSectionLength 1.0

Related Topics

phoBendConnector

phoCurveDeltaConnector

phoDrawCompWaveguideLayout

phoSineDeltaConnector

phoStraightConnector

Photonics Connector Functions


Return to top
 ⠀
X