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

phoAddWaveguidePorts

phoAddWaveguidePorts( 
ccPath 
t_startPortName 
t_startPortDirection 
t_endPortName 
t_endPortDirection 
[ ?n_portPinWidth n_portPinWidth ][ ?startWidth f_width ]
[ ?endWidth f_width ]
)
=> l_port / nil

Description

(Virtuoso Photonics Option) Adds circular optical ports at both ends of a ccPath. The ports have the same layer-purpose pair as the ccPath. For both start and end ports, the net, terminal, and pin names use the specified port name. Terminal direction is taken from the corresponding portDirection argument.

The optional portPinWidth (in user units) allows an over-ride of the port figure width. This is used for tapered waveguides to avoid very large shapes that might extend outside of the boundary of the original path port figure shapes.

Arguments

o_path

ID of a ccPath object.

t_startPortName

The name of the start port. For example, "opt0".

t_startPortDirection

The direction of the start port. The default is "inputOutput".

t_endPortName

The name of the end port. For example, "opt1". The default is "end".

t_endPortDirection

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

?n_portPinWidth n_portPinWidth

  

Attribute value of the width for the specified photonics pinFig in user units.

?startWidth n_width

When specified, this value allows the user to override the default value that is normally taken from the ccPath corresponding to the start width. It represents the expected optical width for the optical port in contrast to the portPinWidth.

The default value is nil, which means that the corresponding width will be taken by the start width of the ccPath.

?endWidth f_width

When specified, this value allows the user to override the default value that is normally taken from the ccPath corresponding to the end width. It represents the expected optical width for the optical port in contrast to the portPinWidth.

The default value is nil, which means that the corresponding width will be taken by the end width of the ccPath.

Value Returned

l_port

List with descriptions for the two ports that are created.

The position information is relative to the origin of the cellview in which the port exists.

nil

The ports are not created, or an error occurs.

Example

cv = geGetEditCellView()
ccCurve = ccCreateCurve( "t" "3*sin(t/3.0)" 0:10)
ccPath = ccCreatePath(cv list("waveguide" "drawing") list(ccCurve) ?defaultWidth 0.5)
ccGenFigs(ccPath)

phoAddWaveguidePorts(ccPath "start" "inputOutput" "end" "inputOutput”) 
(
 (nil xy
 (0.0 0.0) name "start" direction "inputOutput" pinFigId db:0x211fbe1b facet 
 (nil width 0.5 angle 135.0 radius 0.0)
 )
 (nil xy
 (10.0 -0.572) name "end" direction "inputOutput" pinFigId db:0x211fbe1c facet 
  (nil width 0.5 angle 225.53 radius -43.31903
  )
 )
)

Related Topics

Photonics Flow Functions


Return to top
 ⠀
X