phoDrawCompWaveguideLayout
phoDrawCompWaveguideLayout(
d_cellViewId
l_waveguideDevice
[ ?rotation n_rotation ]
[ ?offset l_offset ]
[ ?full g_full ]
[ ?startPortName t_PortName ]
[ ?endPortName t_PortName ]
[ ?startPortDirection t_Direction ]
[ ?endPortDirection t_Direction ]
[ ?width n_width ]
[ ?modeSpec l_1_modeSpec ]
[ ?portPinPurpose t_portPinPurpose ]
[ ?instPrefix ? t_instPrefix ]
)
=> l_dpl / nil
Description
(ICADVM20.1 Photonics Only) Returns a composite waveguide connector that takes a list of waveguide cells, such as the straight or the bend and creates a unique component. Each device can optionally have its own parameter set applied, such as tapering and width.
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.
|
|
l_waveguideDevice
|
List of waveguide devices and their optional parameters.
list(
list(
list(libName1 cellName1 viewName1)
[list(l_paramA l_paramB )]
),
list(list(libName2 cellName2 viewName2))
)
Where libName is the library name of the device, such as gopdk, cellName is the cell name of the device, such as wgStraight, and viewName is the view of the device, such as layout.
|
|
?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.
|
|
?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)) )
|
|
?portPinPurpose t_portPinPurpose
|
|
|
Layer purpose to use when creating pins. The default purpose for pins is "drawing".
|
|
?instPrefix ? t_instPrefix
|
|
|
Prefix for the device. All devices defined in the l_waveguideDevice will start with prefix ?instPrefix followed by an indexed number, such as Opt0, Opt1 and so on. The default value is Opt.
|
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
The following example uses the cells "wgStraight" and "wgBend" from the library "gopdk". The cells are automatically abutted.
cv = geGetEditCellView()
phoDrawCompWaveguideLayout(cv
list(
list( list("gopdk" "wgStraight" "layout"))
list( list("gopdk" "wgBend" "layout"))
)
)
The following example shows how to change the width of the previous combination:
phoDrawCompWaveguideLayout(cv
list(
list(
list("gopdk" "wgStraight" "layout")
list(list("width" "string" "0.7u"))
)
list(
list("gopdk" "wgBend" "layout")
list(list("width" "string" "0.7u"))
)
)
)
Parameters for each device can be set. The following example shows how to change the length of the first device and the bend angle of the second device.
phoDrawCompWaveguideLayout(
cv
list(
list(list("gopdk" "wgStraight" "layout")
list(
list("width" "string" "0.7u")
list("length" "string" "10u")
)
)
list( list("gopdk" "wgBend" "layout")
list(
list("width" "string" "0.7u")
list("angle" "string" "180")
)
)
)
)
Related Topics
phoBendConnector
phoCurveDeltaConnector
phoSineDeltaConnector
phoStraightConnector
phoWayPointConnector
Photonics Connector Functions
Return to top