mxpic.components.composites.MZI_mesh#

Mach-Zehnder interferometer mesh composite layouts.

W_waveguide#

class mxpic.components.composites.MZI_mesh.W_waveguide(xs_wg='strip', w_wg=0.45, R_bend=10, dL=20, L_wg=80, xs_heater='heater', w_ht=2.5, xs_metal='metal', w_metal=6, via_h2m=None, isl=None, n_bends=3, show_pins=False, ISL_UPPER=True, ISL_LOWER=True, L_patch=0.25, reverse=False)#

Bases: object

W-shaped waveguide phase shifter section.

Parameters:
  • xs_wg (str, optional) – Waveguide cross-section name.

  • w_wg (float, optional) – Optical waveguide width in microns.

  • R_bend (int, optional) – Bend radius used by W-shaped routing.

  • dL (float, optional) – Vertical excursion of the W routing.

  • L_wg (int, optional) – Total phase shifter waveguide length.

  • xs_heater (str, optional) – Heater cross-section name.

  • w_ht (float, optional) – Heater width. Use 0 to disable heater geometry.

  • xs_metal (str, optional) – Metal routing cross-section name.

  • w_metal (float, optional) – Metal routing width.

  • via_h2m (Any, optional) – Heater-to-metal via object or cell.

  • isl (Any, optional) – Optional isolation helper.

  • n_bends (int, optional) – Number of W bend periods.

  • show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.

  • ISL_UPPER (bool, optional) – Enable upper isolation placement when used.

  • ISL_LOWER (bool, optional) – Enable lower isolation placement when used.

  • L_patch (float, optional) – Straight patch length at bend interfaces.

  • reverse (bool, optional) – Swap optical input/output pin naming.

cell#

Generated W-waveguide layout cell.

Type:

nazca.Cell

generate_gds(show_pins=False)#

UMat_2x2_S#

class mxpic.components.composites.MZI_mesh.UMat_2x2_S(name='unit_mesh_2x2', BS=None, xs_wg='strip', L_arm=80, D_arm=50, w_wg=0.45, R_bend=6, w_arm=None, Ltp=15, xs_heater='heater', bend_heaters=False, dL_ht=30, dL_AMZI=0, L_heater=None, xs_metal='metal', w_ht=2.5, w_metal=8, via_h2m=None, isl=None, ht_same_side=False, port_align=True, show_pins=False)#

Bases: object

Standard 2x2 MZI mesh unit with phase shifter routing.

Parameters:
  • name (str, optional) – Nazca cell name.

  • BS (Any, optional) – Beam splitter cell or object. If omitted, a default DC is generated.

  • xs_wg (str, optional) – Optical waveguide cross-section name.

  • L_arm (int, optional) – Straight arm length between beam splitters.

  • D_arm (int, optional) – Vertical spacing between MZI arms.

  • w_wg (float, optional) – Input/output waveguide width.

  • R_bend (int, optional) – Routing bend radius.

  • w_arm (float, optional) – Internal arm width. If omitted, w_wg is used.

  • Ltp (int, optional) – Taper length between bus and arm widths.

  • xs_heater (str, optional) – Heater cross-section name.

  • bend_heaters (bool, optional) – Route heaters along bent arms.

  • dL_ht (float, optional) – Heater routing vertical offset.

  • dL_AMZI (float, optional) – Differential length added for AMZI behavior.

  • L_heater (Any, optional) – Optional explicit heater length.

  • xs_metal (str, optional) – Metal routing cross-section name.

  • w_ht (float, optional) – Heater width.

  • w_metal (float, optional) – Metal routing width.

  • via_h2m (Any, optional) – Heater-to-metal via object or cell.

  • isl (Any, optional) – Isolation helper object or cell.

  • ht_same_side (bool, optional) – Place both heater contacts on the same side.

  • port_align (bool, optional) – Align optical ports to a common grid.

  • show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.

cell#

Generated 2x2 unit mesh layout cell.

Type:

nazca.Cell

generate_gds(show_pins)#

MZI_mesh_U#

class mxpic.components.composites.MZI_mesh.MZI_mesh_U(BS=None, xs_wg='strip', L_arm=80, D_arm=50, w_wg=0.45, n_ports=8, R_bend=6, L_compensate=10, R_compensate=10, mesh_type='triangle', xs_heater='heater', bend_heaters=True, dL_ht=30, xs_metal='metal', w_ht=2.5, w_metal=8, w_arm=None, Ltp=10, via_h2m=None, isl=None, port_align=True, L_heater=None, show_pins=False)#

Bases: object

Universal MZI mesh built from repeated 2x2 MZI units.

Parameters:
  • BS (Any, optional) – Beam splitter cell or object used by unit cells.

  • xs_wg (str, optional) – Optical waveguide cross-section name.

  • L_arm (int, optional) – Straight arm length in each unit MZI.

  • D_arm (int, optional) – Vertical spacing between MZI arms.

  • w_wg (float, optional) – Input/output waveguide width.

  • n_ports (int, optional) – Number of mesh ports.

  • R_bend (int, optional) – Routing bend radius.

  • L_compensate (int, optional) – Length used for compensation routing.

  • R_compensate (int, optional) – Bend radius used by compensation routing.

  • mesh_type (str, optional) – Mesh topology name, such as "triangle" or "parallelogram".

  • xs_heater (str, optional) – Heater cross-section name.

  • bend_heaters (bool, optional) – Route heaters along bent arms.

  • dL_ht (float, optional) – Heater routing vertical offset.

  • xs_metal (str, optional) – Metal routing cross-section name.

  • w_ht (float, optional) – Heater width.

  • w_metal (float, optional) – Metal routing width.

  • w_arm (float, optional) – Internal arm width. If omitted, w_wg is used.

  • Ltp (int, optional) – Taper length between bus and arm widths.

  • via_h2m (Any, optional) – Heater-to-metal via object or cell.

  • isl (Any, optional) – Isolation helper object or cell.

  • port_align (bool, optional) – Align optical ports to a common grid.

  • L_heater (Any, optional) – Optional explicit heater length.

  • show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.

cell#

Generated universal MZI mesh layout cell.

Type:

nazca.Cell

generate_gds(show_pins)#

AMZI_W#

class mxpic.components.composites.MZI_mesh.AMZI_W(name='AMZI_W', BS=None, xs_wg='strip', D_arm=50, w_wg=0.45, R_bend=6, n_bend=3, w_arm=None, Ltp=15, xs_heater='heater', dL_ht=30, dL_AMZI=0, L_heater=None, xs_metal='metal', w_ht=2.5, w_metal=8, D_port=None, via_h2m=None, isl=None, port_align=True, L_patch=0.25, show_pins=False)#

Bases: object

Asymmetric MZI with W-shaped phase shifter arms.

Parameters:
  • name (str, optional) – Nazca cell name.

  • BS (Any, optional) – Beam splitter cell or object. If omitted, a default DC is generated.

  • xs_wg (str, optional) – Optical waveguide cross-section name.

  • D_arm (int, optional) – Vertical spacing between MZI arms.

  • w_wg (float, optional) – Input/output waveguide width.

  • R_bend (int, optional) – Routing bend radius.

  • n_bend (int, optional) – Number of W-shaped bend periods.

  • w_arm (float, optional) – Internal arm width. If omitted, w_wg is used.

  • Ltp (int, optional) – Taper length between bus and arm widths.

  • xs_heater (str, optional) – Heater cross-section name.

  • dL_ht (float, optional) – Heater routing vertical offset.

  • dL_AMZI (float, optional) – Differential length added for AMZI behavior.

  • L_heater (Any, optional) – Optional explicit heater length.

  • xs_metal (str, optional) – Metal routing cross-section name.

  • w_ht (float, optional) – Heater width.

  • w_metal (float, optional) – Metal routing width.

  • D_port (Any, optional) – Output port pitch override.

  • via_h2m (Any, optional) – Heater-to-metal via object or cell.

  • isl (Any, optional) – Isolation helper object or cell.

  • port_align (bool, optional) – Align optical ports to a common grid.

  • L_patch (float, optional) – Straight patch length at routing interfaces.

  • show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.

cell#

Generated asymmetric W-MZI layout cell.

Type:

nazca.Cell

generate_gds(show_pins)#
generate_test_gds(dXgc2gc, dYgc2gc, gc, w_wg=0.5, R_bend=10)#

MZI_mesh_Parl#

class mxpic.components.composites.MZI_mesh.MZI_mesh_Parl(BS=None, xs_wg='strip', L_arm=80, D_arm=50, w_wg=0.45, n_ports=8, R_bend=6, L_compensate=10, R_compensate=10, xs_heater='heater', bend_heaters=True, dL_ht=0, xs_metal='metal', w_ht=2.5, w_metal=8, w_ram=0.45, Ltp=15, via_h2m=None, isl=None, L_heater=None, port_align=True, show_pins=False)#

Bases: MZI_mesh_U

Parallelogram MZI mesh topology wrapper.

Parameters:
  • BS (Any, optional) – Beam splitter cell or object used by unit cells.

  • xs_wg (str, optional) – Optical waveguide cross-section name.

  • L_arm (int, optional) – Straight arm length in each unit MZI.

  • D_arm (int, optional) – Vertical spacing between MZI arms.

  • w_wg (float, optional) – Input/output waveguide width.

  • n_ports (int, optional) – Number of mesh ports.

  • R_bend (int, optional) – Routing bend radius.

  • L_compensate (int, optional) – Length used for compensation routing.

  • R_compensate (int, optional) – Bend radius used by compensation routing.

  • xs_heater (str, optional) – Heater cross-section name.

  • bend_heaters (bool, optional) – Route heaters along bent arms.

  • dL_ht (float, optional) – Heater routing vertical offset.

  • xs_metal (str, optional) – Metal routing cross-section name.

  • w_ht (float, optional) – Heater width.

  • w_metal (float, optional) – Metal routing width.

  • w_ram (float, optional) – Internal arm width passed to the unit mesh generator.

  • Ltp (int, optional) – Taper length between bus and arm widths.

  • via_h2m (Any, optional) – Heater-to-metal via object or cell.

  • isl (Any, optional) – Isolation helper object or cell.

  • L_heater (Any, optional) – Optional explicit heater length.

  • port_align (bool, optional) – Align optical ports to a common grid.

  • show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.

cell#

Generated parallelogram MZI mesh layout cell.

Type:

nazca.Cell

MZI_mesh_Tri#

class mxpic.components.composites.MZI_mesh.MZI_mesh_Tri(BS=None, xs_wg='strip', L_arm=80, D_arm=50, w_wg=0.45, n_ports=8, R_bend=6, L_compensate=10, R_compensate=10, xs_heater='heater', bend_heaters=True, dL_ht=0, xs_metal='metal', w_ht=2.5, w_metal=8, w_ram=0.45, Ltp=15, via_h2m=None, isl=None, L_heater=None, port_align=True, show_pins=False)#

Bases: MZI_mesh_U

Triangular MZI mesh topology wrapper.

Parameters:
  • BS (Any, optional) – Beam splitter cell or object used by unit cells.

  • xs_wg (str, optional) – Optical waveguide cross-section name.

  • L_arm (int, optional) – Straight arm length in each unit MZI.

  • D_arm (int, optional) – Vertical spacing between MZI arms.

  • w_wg (float, optional) – Input/output waveguide width.

  • n_ports (int, optional) – Number of mesh ports.

  • R_bend (int, optional) – Routing bend radius.

  • L_compensate (int, optional) – Length used for compensation routing.

  • R_compensate (int, optional) – Bend radius used by compensation routing.

  • xs_heater (str, optional) – Heater cross-section name.

  • bend_heaters (bool, optional) – Route heaters along bent arms.

  • dL_ht (float, optional) – Heater routing vertical offset.

  • xs_metal (str, optional) – Metal routing cross-section name.

  • w_ht (float, optional) – Heater width.

  • w_metal (float, optional) – Metal routing width.

  • w_ram (float, optional) – Internal arm width passed to the unit mesh generator.

  • Ltp (int, optional) – Taper length between bus and arm widths.

  • via_h2m (Any, optional) – Heater-to-metal via object or cell.

  • isl (Any, optional) – Isolation helper object or cell.

  • L_heater (Any, optional) – Optional explicit heater length.

  • port_align (bool, optional) – Align optical ports to a common grid.

  • show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.

cell#

Generated triangular MZI mesh layout cell.

Type:

nazca.Cell