RibMMI2x2Tapered

class picazzo3.filters.mmi_rib.cell.RibMMI2x2Tapered(*args, **kwargs)

Rib 2x2 MMI with symmetrically distributed access templates and with tapers.

Parameters:

external_port_names: optional

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

input_trace_template: PCell, optional

Input trace template.

mmi_trace_template: PCell and _WaveguideTemplate, optional

Trace template used for the MMI section

output_trace_template: PCell, optional

Output trace template.

port_labels: optional

Labels of the ports to be processed. Set to None to process all ports.

trace_template: optional

Template for all ports. If None, the waveguide templates of the ports will be used

transitions: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, optional

List of transistions that is used on this MMI. By default Autotracetransition is used on all the transitions

transition_database: AutoTransitionDatabase, optional

AutoTransitionDatabase in which the correct transition between the two trace templates can be looked up.

cell_instances: _PCellInstanceDict, optional

name: optional

The unique name of the pcell

mmi_trace: PCell, locked

Trace of the MMI section

n_outputs: int and number > 0, locked

Number of output channels.

n_inputs: int and number > 0, locked

Number of input channels.

input_trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked

List of the input trace templates.

output_trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked

List of the output trace templates.

contents: PCell, locked

Contains the base MMI without the tapers

trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked

list of templates to apply to all ports

Views

Layout
Parameters:

contents_transformation: GenericNoDistortTransform, optional

flatten_contents: optional

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

grids_per_unit: optional

Number of grid cells per design unit

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

Offset between the traces at the input and the output

units_per_grid: optional

Ratio of grid cell and design unit

view_name: str, optional

The name of the view

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

Extra width added to minimum_space to calculate the width of the line correction (usually you do not have to modify this)

minimum_space: float and number > 0, optional

Minimum space between the tapers needed for the line corrections be added (usually you do not have to modify this)

rib_cover_purpose: PatternPurpose, optional

Drawing purpose for covering the mmi and rib-only part of the tapers

straight_extension: optional

Tuple: straight extensions of the transitions. Set to None to take the standard straight extensions

zero_length_if_identical: optional

uses a zero-length transition if the trace templates are identical

length: float and number > 0, optional

Length of the MMI

transition_length: optional

Length of the transition. Set to None to take the standard transition length.

grid: float and number > 0, optional

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

unit: float and number > 0, optional

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

transition_lengths: locked

input_y_positions: list<Real, number>, locked

Positions in the y direction at the input where ports are be added

output_y_positions: list<Real, number>, locked

Positions in the y direction at the output where access waveguides are be added

Examples

import technologies.silicon_photonics
from picazzo3.filters.mmi_rib.cell import RibMMI2x2Tapered
from picazzo3.traces.rib_wg import RibWaveguideTemplate
from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate

mmi_trace_template = RibWaveguideTemplate()
mmi_trace_template.Layout(core_width=10.0, cladding_width=25.0)

mmi_wav_template = WireWaveguideTemplate()
mmi_wav_template.Layout(core_width=1.0, cladding_width=5.0)

mmi_access_template = RibWaveguideTemplate()
mmi_access_template.Layout(core_width=2.0, cladding_width=15.0)

MMI = RibMMI2x2Tapered(mmi_trace_template=mmi_trace_template,
                       input_trace_template=mmi_access_template,
                       output_trace_template=mmi_access_template,
                       trace_template=mmi_wav_template
                       )

layout = MMI.Layout(transition_length=5.0, length=10.0, trace_spacing=2.0)
layout.visualize()
../../../../_images/picazzo3-filters-mmi_rib-cell-RibMMI2x2Tapered-1.png