MZIWaveguideArm

class picazzo3.filters.mzi.cell.MZIWaveguideArm(*args, **kwargs)

A Mach-Zehnder arm with a given length: routing upward at right-angle

Parameters:

trace_template: PCell and _WaveguideTemplate, optional

external_port_names: optional

Dictionary for remapping of the port names of the contents to the external ports

cell_instances: _PCellInstanceDict, optional

name: optional

The unique name of the pcell

contents: PCell and _Trace, locked

Views

Layout
Parameters:

angle_step: float and number > 0, optional

angle step for rounding

combiner_port: OpticalPort, optional

Port interface of the combiner to which the output of this arm is connected

control_shape_layer: __Layer__, optional

layer on which the control shape is drawn

cover_layers: List with type restriction, allowed types: <class ‘ipkiss.primitives.layer.Layer’>, optional

layers that can be used to generate additional coverage of the trace (e.g. manhattan corners)

draw_control_shape: optional

draws the control shape on top of the waveguide

extra_length: float and Real, number and number >= 0, optional

Extra length that will be added in the arm

manhattan: optional

adds rectangular blocks in the bends to avoid as much as possible non-manhattan angles

rounding_algorithm: optional

rounding algorithm used to generate the bends. Can be circular, spline, …

splitter_port: OpticalPort, optional

Port interface of the splitter to which the input of this arm is connected

view_name: str, optional

The name of the view

min_straight: float and Real, number and number >= 0, optional

Minimum straight length between bends

routing_direction: optional

direction of routing (DIRECTION.NORTH or DIRECTION.SOUTH)

contents_transformation: GenericNoDistortTransform, optional

core_layer: __Layer__, optional

layer used to define the core of the waveguide

bend_radii: list<number > 0>, optional

bend radius for every individual bend

remove_straight_angles: optional

removes the waypoints with straight angles. Set to False if the algorithm uses waypoint-specific information.

reverse_bends: optional

when set to True, it will generate the bends backwards. This has only effect when the bend algorithm is not symmetric.

reverse_individual_bends: list<>, optional

when set to True, it will generate the individual bends backwards. This has only effect when the bend algorithm is not symmetric.Should have length equal to the shape for closed shapes, but equal to shape-2 for open shapes

rounding_algorithms: optional

rounding algorithm for every individual bend. Can be circular, spline, … Should have length equal to the shape for closed shapes, but equal to shape-2 for open shapes

input_port: TracePort, optional

output_port: TracePort, optional

trace_template_for_ports: _TraceTemplate.Layout, optional

Trace template to be used for the ports.

flatten_contents: optional

if True, it will insert the contents as elements in the layout, rather than as an Instance

bend_radius: float and number > 0, optional

bend radius for the auto-generated bends

center_line_shape: locked

Automatically calculated shape of the center line of the trace

grid: float and number > 0, locked

design grid. Extracted by default from TECH.METRICS.GRID

grids_per_unit: locked

Number of grid cells per design unit

shape: locked

units_per_grid: locked

Ratio of grid cell and design unit

unit: float and number > 0, locked

design unit. Extracted by default from TECH.METRICS.UNIT

Examples

from technologies import silicon_photonics
from ipkiss3 import all as i3
from picazzo3.filters.mzi import MZIWaveguideArm
from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate

wg1_t = WireWaveguideTemplate(name="my_template1")
wg1_t.Layout(core_width=0.5)

mziarm = MZIWaveguideArm(name="my_mziarm_1")
layout = mziarm.Layout(extra_length=30.0,
                       splitter_port=i3.OpticalPort(position=(0.0, 0.0), angle_deg=30.0, trace_template=wg1_t),
                       combiner_port=i3.OpticalPort(position=(40.0, 5.0), angle_deg=120.0, trace_template=wg1_t)
                       )

layout.visualize()
../../../../_images/picazzo3-filters-mzi-cell-MZIWaveguideArm-1.png