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:
objectW-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:
objectStandard 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_wgis 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:
objectUniversal 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_wgis 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:
objectAsymmetric 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_wgis 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_UParallelogram 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_UTriangular 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