Product Documentation
Virtuoso Technology Data SKILL Reference
Product Version IC23.1, June 2023

techCreateWaveguideDef

techCreateWaveguideDef(
d_techFileId
t_name (tx_layer tx_purpose)
l_derivedShapeSpecs
[?minWidth n_minWidth]
[?minBendRadius n_minBendRadius]
[?modeProperties l_modeProperties]
[?maxTaperAngle f_maxTaperAngle]
) 
=> d_waveguideDefId / nil

Description

(Virtuoso Photonics Option) Creates a waveguideDef object in the specified technology file and returns the database ID of the object.

Arguments

d_techFileId

The database ID of the technology file in which the waveguideDef object is to be created.

t_name

The unique name of the new waveguideDef object.

tx_layer tx_purpose

The layer-purpose pair (LPP) on which the waveguideDef object is to be created.

You can specify the LPP as a list of strings enclosed in double quotes and separated by a space:

list("t_layerName" "t_purposeName")

Alternatively, you can specify a list of integers separated by a space:

list(x_layerNumber x_purposeNumber)

l_derivedShapeSpecs

The object shape to be derived from the master shape. A derived shape definition list has the following format:

list((tx_layer | (tx_layer tx_purpose) {['enclosure tn_enclosure] | ['offset ['side "both" | "right" | "left"] ['inner tn_inner] ['outer tn_outer]]}…)

Here:

  • tx_layer: The layer of the derived shape.
  • tx_purpose: The corresponding purpose for the layer. If not specified, the value is set as drawing.
  • The type of the derived shape can be one of the following:
    • enclosure: Centers the shape around the master shape based on the tn_enclosure value specified. By default, the value is nil.
    • offset: Offsets the shape from the master shape. The specification includes one or more of these attributes: side (direction as both, right, or left), inner (offset of the inner edge of the derived shape from the centerline of the master shape), and outer (offset of the outer edge of the derived shape from the edge of the master shape). The default values are both, nil, and nil.

?minWidth n_minWidth

The minimum width of the object.

?minBendRadius n_minBendRadius

The minimum bend radius of the object.

l_modeProperties

The mode properties of the waveguide object as a list in the following format:

list(t_functionName list(t_mode n_index)...)

Here:

  • t_functionName: The name of a SKILL function that returns the mode properties of the waveguide.
  • t_mode n_index: One of a series of tuples representing modes. Each tuple must be unique in the series and must include a name (a string) and an index (an integer greater than zero).

f_maxTaperAngle

The maximum angle that can be used when tapering a wave guide. A value of 0 indicates that tapering is not allowed. A value of 90 indicates that tapering can be done at a straight angle.

Value Returned

d_waveguideDefId

The database ID of the new waveguideDef object.

nil

The waveguideDef object could not be created, possibly because the technology file does not exist or the specified LPP is invalid.

Example

wgDef = techCreateWaveguideDef(tf 
    "wgDefName" 
    list("wgLayer" "drawing") 
    '(
     (("NWell" "drawing") enclosure 0.8) 
("Active" offset side "both" inner 0.1 outer "outerEnvValue+10")
)
?minWidth 0.6
?minBendRadius 0.2
?modeProperties '("modeFunction" (("mode1" 1) ("mode2" 2)))
)

Creates a waveguideDef object by the name wgDefName on the wgLayer/drawing LPP. The object has a minimum width of 0.6 and a minimum bend radius of 0.2. The mode properties for the waveguide will be returned by the SKILL function named modeFunction. There are two modes, mode1 and mode2, with indexes 1 and 2.

It specifies the following shapes relative to the master shape on the wgLayer/drawing LPP:


Return to top
 ⠀
X