Cells¶
| Name | Description |
|---|---|
| ANT_MMI_1x2_te1550_3dB_BB | Returns ANT_MMI_1x2_te1550_3dB_BB fixed cell. |
| Alignment_Marker | Returns Alignment_Marker fixed cell. |
| GC_SiN_TE_1310_8degOxide_BB | Returns GC_SiN_TE_1310_8degOxide_BB fixed cell. |
| GC_SiN_TE_1550_8degOxide_BB | Returns GC_SiN_TE_1550_8degOxide_BB fixed cell. |
| GC_TE_1310_8degOxide_BB | Returns GCs_BB fixed cell. |
| GC_TE_1550_8degOxide_BB | Returns GCs_BB fixed cell. |
| GC_TM_1310_8degOxide_BB | Returns GCs_BB fixed cell. |
| GC_TM_1550_8degOxide_BB | Returns GCs_BB fixed cell. |
| Packaging_FibreArray_8ch | Returns Packaging_FibreArray_8ch fixed cell. |
| SEM_example | Returns SEM_example fixed cell. |
| add_fiber_array | Returns component with grating couplers and labels on each port. |
| add_fiber_array_pads_rf | Returns fiber array with label and electrical pads. |
| add_pads | Returns fiber array with label and electrical pads. |
| add_pads_rf | partial(func, args, *keywords) - new function with partial application |
| bend_euler | Regular degree euler bend. |
| bend_metal | Regular degree euler bend. |
| bend_s | Return S bend with bezier curve. |
| bend_s_metal | Return S bend with bezier curve. |
| compass | Rectangle with ports on each edge (north, south, east, and west). |
| coupler | Returns Symmetric coupler. |
| coupler_ring | Returns Coupler for ring. |
| crossing_SiN_1550 | Returns crossing_SiN_1550 fixed cell. |
| crossing_SiN_1550_extended | Returns crossing_SiN_1550_extended fixed cell. |
| crossing_horizontal | Returns crossing_horizontal fixed cell. |
| crossing_manhattan | Returns crossing_manhattan fixed cell. |
| die | A die. |
| ebeam_BondPad | Returns ebeam_BondPad fixed cell. |
| ebeam_BondPad_75 | Returns ebeam_BondPad_75 fixed cell. |
| ebeam_DC_2m1_te895 | Returns ebeam_DC_2m1_te895 fixed cell. |
| ebeam_DC_te895 | Returns ebeam_DC_te895 fixed cell. |
| ebeam_MMI_2x2_5050_te1310 | Returns ULaval fixed cell. |
| ebeam_Polarizer_TM_1550_UQAM | Returns ebeam_Polarizer_TM_1550_UQAM fixed cell. |
| ebeam_YBranch_895 | Returns ebeam_YBranch_895 fixed cell. |
| ebeam_YBranch_te1310 | Returns ULaval fixed cell. |
| ebeam_adiabatic_te1550 | Returns ebeam_adiabatic_te1550 fixed cell. |
| ebeam_adiabatic_tm1550 | Returns ebeam_adiabatic_tm1550 fixed cell. |
| ebeam_bdc_te1550 | Returns ebeam_bdc_te1550 fixed cell. |
| ebeam_bdc_tm1550 | Returns ebeam_bdc_tm1550 fixed cell. |
| ebeam_crossing4 | Returns ebeam_crossing4 fixed cell. |
| ebeam_dream_FAVE_SiN_1310_BB | Returns ebeam_dream_FAVE_SiN_1310_BB fixed cell. |
| ebeam_dream_FAVE_SiN_1550_BB | Returns ebeam_dream_FAVE_SiN_1550_BB fixed cell. |
| ebeam_dream_FAVE_Si_1310_BB | Returns ebeam_dream_FAVE_Si_1310_BB fixed cell. |
| ebeam_dream_FAVE_Si_1550_BB | Returns ebeam_dream_FAVE_Si_1550_BB fixed cell. |
| ebeam_dream_FaML_SiN_1550_BB | Returns ebeam_dream_FaML_SiN_1550_BB fixed cell. |
| ebeam_dream_FaML_Si_1310_BB | Returns ebeam_dream_FaML_Si_1310_BB fixed cell. |
| ebeam_dream_FaML_Si_1550_BB | Returns ebeam_dream_FaML_Si_1550_BB fixed cell. |
| ebeam_dream_splitter_1x2_te1550_BB | Returns ebeam_dream_splitter_1x2_te1550_BB fixed cell. |
| ebeam_gc_te1310 | Returns ebeam_gc_te1310 fixed cell. |
| ebeam_gc_te1310_broadband | Returns ebeam_gc_te1310_broadband fixed cell. |
| ebeam_gc_te1550 | Returns ebeam_gc_te1550 fixed cell. |
| ebeam_gc_te1550_90nmSlab | Returns ebeam_gc_te1550_90nmSlab fixed cell. |
| ebeam_gc_te1550_broadband | Returns ebeam_gc_te1550_broadband fixed cell. |
| ebeam_gc_te895 | Returns ebeam_gc_te895 fixed cell. |
| ebeam_gc_tm1550 | Returns ebeam_gc_tm1550 fixed cell. |
| ebeam_routing_taper_te1550_w500nm_to_w3000nm_L20um | Returns ebeam_routing_taper_te1550_w500nm_to_w3000nm_L20um fixed cell. |
| ebeam_routing_taper_te1550_w500nm_to_w3000nm_L40um | Returns ebeam_routing_taper_te1550_w500nm_to_w3000nm_L40um fixed cell. |
| ebeam_sin_dream_splitter1x2_te1550_BB | Returns ebeam_sin_dream_splitter1x2_te1550_BB fixed cell. |
| ebeam_splitter_adiabatic_swg_te1550 | Returns ebeam_splitter_adiabatic_swg_te1550 fixed cell. |
| ebeam_splitter_swg_assist_te1310 | Returns ebeam_splitter_swg_assist_te1310 fixed cell. |
| ebeam_splitter_swg_assist_te1310_ANT | Returns ebeam_splitter_swg_assist_te1310_ANT fixed cell. |
| ebeam_splitter_swg_assist_te1550 | Returns ebeam_splitter_swg_assist_te1550 fixed cell. |
| ebeam_splitter_swg_assist_te1550_ANT | Returns ebeam_splitter_swg_assist_te1550_ANT fixed cell. |
| ebeam_swg_edgecoupler | Returns ebeam_swg_edgecoupler fixed cell. |
| ebeam_terminator_SiN_1310 | Returns ebeam_terminator_SiN_1310 fixed cell. |
| ebeam_terminator_SiN_1550 | Returns ebeam_terminator_SiN_1550 fixed cell. |
| ebeam_terminator_SiN_te895 | Returns ebeam_terminator_SiN_te895 fixed cell. |
| ebeam_terminator_te1310 | Returns ebeam_terminator_te1310 fixed cell. |
| ebeam_terminator_te1550 | Returns ebeam_terminator_te1550 fixed cell. |
| ebeam_terminator_tm1550 | Returns ebeam_terminator_tm1550 fixed cell. |
| ebeam_y_1310 | Returns ebeam_y_1310 fixed cell. |
| ebeam_y_1550 | Returns ebeam_y_1550 fixed cell. |
| ebeam_y_adiabatic | Returns ebeam_y_adiabatic fixed cell. |
| ebeam_y_adiabatic_1310 | Returns ebeam_y_adiabatic_1310 fixed cell. |
| ebeam_y_adiabatic_500pin | Returns ebeam_y_adiabatic_500pin fixed cell. |
| grating_coupler_elliptical | A grating coupler with curved but parallel teeth. |
| metal_via | Returns metal_via fixed cell. |
| mmi1x2 | An mmi1x2. |
| mmi2x2 | An mmi2x2. |
| mzi | Mzi. |
| mzi_1x1 | Mzi. |
| mzi_heater | Mzi with heater on the bottom arm. |
| mzi_heater_2x2 | Mzi 2x2 with heater on the top arm. |
| pack_doe | Packs a component DOE (Design of Experiment) using pack. |
| pack_doe_grid | Packs a component DOE (Design of Experiment) using grid. |
| pad | Returns rectangular pad with ports. |
| pad_array | Returns 2D array of pads. |
| pbs_1550_eskid | Returns pbs_1550_eskid fixed cell. |
| photonic_wirebond_surfacetaper_1310 | Returns photonic_wirebond_surfacetaper_1310 fixed cell. |
| photonic_wirebond_surfacetaper_1550 | Returns photonic_wirebond_surfacetaper_1550 fixed cell. |
| rectangle | Returns a rectangle. |
| ring_double | Returns a double bus ring. |
| ring_double_heater | Returns a double bus ring with heater on top. |
| ring_single | Returns a single ring. |
| ring_single_heater | Returns a double bus ring with heater on top. |
| siepic_o_gc_te1270_BB | Returns siepic_o_gc_te1270_BB fixed cell. |
| siepic_o_pwbstlas_si_BB | Returns siepic_o_pwbstlas_si_BB fixed cell. |
| spiral | Returns a spiral double (spiral in, and then out). |
| spiral_racetrack | Returns Racetrack-Spiral. |
| spiral_racetrack_heater | Returns spiral racetrack with a heater above. |
| straight | Returns a Straight waveguide. |
| straight_heater_meander | Returns a meander based heater. |
| straight_heater_metal | Returns a thermal phase shifter. |
| straight_metal | Returns a Straight waveguide. |
| taper | Linear taper, which tapers only the main cross section section. |
| taper_SiN_750_3000 | Returns taper_SiN_750_3000 fixed cell. |
| taper_metal | Linear taper, which tapers only the main cross section section. |
| taper_si_simm_1310 | Returns taper_si_simm_1310 fixed cell. |
| taper_si_simm_1550 | Returns taper_si_simm_1550 fixed cell. |
| text_rectangular | Pixel based font, guaranteed to be manhattan, without acute angles. |
| text_rectangular_multi_layer | Returns rectangular text in different layers. |
| thermal_phase_shifter_multimode_ | Returns thermal_phase_shifters fixed cell. |
| thermal_phase_shifter_te_1310_ | Returns thermal_phase_shifters fixed cell. |
| thermal_phase_shifter_te_1310_50 | Returns thermal_phase_shifters fixed cell. |
| thermal_phase_shifter_te_1550_50 | Returns thermal_phase_shifters fixed cell. |
| via_stack_heater_mtop | Rectangular via array stack. |
| wire_corner | Returns 45 degrees electrical corner wire. |
| wire_corner45 | Returns 90 degrees electrical corner wire. |
| wire_corner45_straight | Returns 90 degrees electrical corner wire. |
ANT_MMI_1x2_te1550_3dB_BB¶
Returns ANT_MMI_1x2_te1550_3dB_BB fixed cell.
Alignment_Marker¶
Returns Alignment_Marker fixed cell.
GC_SiN_TE_1310_8degOxide_BB¶
Returns GC_SiN_TE_1310_8degOxide_BB fixed cell.
GC_SiN_TE_1550_8degOxide_BB¶
Returns GC_SiN_TE_1550_8degOxide_BB fixed cell.
GC_TE_1310_8degOxide_BB¶
Returns GCs_BB fixed cell.
GC_TE_1550_8degOxide_BB¶
Returns GCs_BB fixed cell.
GC_TM_1310_8degOxide_BB¶
Returns GCs_BB fixed cell.
GC_TM_1550_8degOxide_BB¶
Returns GCs_BB fixed cell.
Packaging_FibreArray_8ch¶
Returns Packaging_FibreArray_8ch fixed cell.
SEM_example¶
Returns SEM_example fixed cell.
add_fiber_array¶
Returns component with grating couplers and labels on each port.
Routes all component ports south. Can add align_ports loopback reference structure on the edges.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component
|
ComponentSpec
|
to connect. |
'ring_single'
|
component_name
|
str | None
|
for the label. |
None
|
gc_port_name
|
str
|
grating coupler input port name 'o1'. |
'o1'
|
with_loopback
|
bool
|
True, adds loopback structures. |
False
|
fanout_length
|
float | None
|
None # if None, automatic calculation of fanout length. |
0
|
grating_coupler
|
ComponentSpec
|
grating coupler instance, function or list of functions. |
gc
|
cross_section
|
CrossSectionSpec
|
spec. |
'strip'
|
straight
|
ComponentSpec
|
straight component. |
'straight'
|
taper
|
ComponentSpec | None
|
taper component. |
None
|
kwargs
|
cross_section settings. |
{}
|
add_fiber_array_pads_rf¶
Returns fiber array with label and electrical pads.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component
|
ComponentSpec
|
to add fiber array and pads. |
'ring_single_heater'
|
username
|
str
|
for the label. |
username
|
orientation
|
float
|
for adding pads. |
0
|
pad_yspacing
|
float
|
for adding pads. |
50
|
component_name
|
str | None
|
for the label. |
None
|
kwargs
|
for add_fiber_array. |
{}
|
add_pads¶
Returns fiber array with label and electrical pads.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
component
|
ComponentSpec
|
to add fiber array and pads. |
'ring_single_heater'
|
username
|
str
|
for the label. |
username
|
kwargs
|
for add_fiber_array. |
{}
|
add_pads_rf¶
bend_euler¶
Regular degree euler bend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
radius
|
float | None
|
in um. Defaults to cross_section_radius. |
None
|
angle
|
float
|
total angle of the curve. |
90
|
p
|
float
|
Proportion of the curve that is an Euler curve. |
0.5
|
width
|
float | None
|
width to use. Defaults to cross_section.width. |
None
|
cross_section
|
CrossSectionSpec
|
specification (CrossSection, string, CrossSectionFactory dict). |
'strip'
|
allow_min_radius_violation
|
bool
|
if True allows radius to be smaller than cross_section radius. |
False
|
bend_metal¶
Regular degree euler bend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
radius
|
float | None
|
None. |
None
|
angle
|
float
|
90. |
90
|
width
|
float | None
|
None. |
None
|
cross_section
|
CrossSectionSpec
|
"metal_routing". |
'metal_routing'
|
bend_s¶
Return S bend with bezier curve.
stores min_bend_radius property in self.info['min_bend_radius'] min_bend_radius depends on height and length
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
size
|
Size
|
in x and y direction. |
(11, 1.8)
|
cross_section
|
CrossSectionSpec
|
spec. |
'strip'
|
width
|
float | None
|
width of the waveguide. If None, it will use the width of the cross_section. |
None
|
allow_min_radius_violation
|
bool
|
allows min radius violations. |
False
|
bend_s_metal¶
Return S bend with bezier curve.
stores min_bend_radius property in self.info['min_bend_radius'] min_bend_radius depends on height and length
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
size
|
Size
|
in x and y direction. |
(11, 1.8)
|
cross_section
|
CrossSectionSpec
|
spec. |
'metal_routing'
|
width
|
float | None
|
width of the waveguide. If None, it will use the width of the cross_section. |
None
|
allow_min_radius_violation
|
bool
|
allows min radius violations. |
True
|
compass¶
Rectangle with ports on each edge (north, south, east, and west).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
size
|
Size
|
rectangle size. |
(4, 2)
|
layer
|
LayerSpec
|
tuple (int, int). |
'MTOP'
|
port_type
|
str | None
|
optical, electrical. |
None
|
port_inclusion
|
float
|
from edge. |
0.0
|
port_orientations
|
Ints | None
|
list of port_orientations to add. None does not add ports. |
(180, 90, 0, -90)
|
auto_rename_ports
|
bool
|
auto rename ports. |
True
|
coupler¶
Returns Symmetric coupler.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
of coupling region in um. |
14.5
|
gap
|
float
|
of coupling region in um. |
gap
|
coupler_ring¶
Returns Coupler for ring.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length_x
|
float
|
length of the parallel coupled straight waveguides. |
4
|
gap
|
float
|
gap between for coupler. |
gap
|
radius
|
float
|
for the bend and coupler. |
radius
|
bend
|
ComponentSpec
|
90 degrees bend spec. |
'bend_euler'
|
straight
|
ComponentSpec
|
straight spec. |
'straight'
|
cross_section
|
str
|
cross_section spec. |
'strip'
|
cross_section_bend
|
CrossSectionSpec | None
|
cross_section for the bend. Defaults to cross_section. |
None
|
length_extension
|
float
|
length extension for the coupler. |
10
|
crossing_SiN_1550¶
Returns crossing_SiN_1550 fixed cell.
crossing_SiN_1550_extended¶
Returns crossing_SiN_1550_extended fixed cell.
crossing_horizontal¶
Returns crossing_horizontal fixed cell.
crossing_manhattan¶
Returns crossing_manhattan fixed cell.
die¶
A die.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
size
|
tuple[float, float]
|
(440, 470). |
(440, 470)
|
centered
|
bool
|
False. |
False
|
ebeam_BondPad¶
Returns ebeam_BondPad fixed cell.
ebeam_BondPad_75¶
Returns ebeam_BondPad_75 fixed cell.
ebeam_DC_2m1_te895¶
Returns ebeam_DC_2m1_te895 fixed cell.
ebeam_DC_te895¶
Returns ebeam_DC_te895 fixed cell.
ebeam_MMI_2x2_5050_te1310¶
Returns ULaval fixed cell.
ebeam_Polarizer_TM_1550_UQAM¶
Returns ebeam_Polarizer_TM_1550_UQAM fixed cell.
ebeam_YBranch_895¶
Returns ebeam_YBranch_895 fixed cell.
ebeam_YBranch_te1310¶
Returns ULaval fixed cell.
ebeam_adiabatic_te1550¶
Returns ebeam_adiabatic_te1550 fixed cell.
ebeam_adiabatic_tm1550¶
Returns ebeam_adiabatic_tm1550 fixed cell.
ebeam_bdc_te1550¶
Returns ebeam_bdc_te1550 fixed cell.
ebeam_bdc_tm1550¶
Returns ebeam_bdc_tm1550 fixed cell.
ebeam_crossing4¶
Returns ebeam_crossing4 fixed cell.
ebeam_dream_FAVE_SiN_1310_BB¶
Returns ebeam_dream_FAVE_SiN_1310_BB fixed cell.
ebeam_dream_FAVE_SiN_1550_BB¶
Returns ebeam_dream_FAVE_SiN_1550_BB fixed cell.
ebeam_dream_FAVE_Si_1310_BB¶
Returns ebeam_dream_FAVE_Si_1310_BB fixed cell.
ebeam_dream_FAVE_Si_1550_BB¶
Returns ebeam_dream_FAVE_Si_1550_BB fixed cell.
ebeam_dream_FaML_SiN_1550_BB¶
Returns ebeam_dream_FaML_SiN_1550_BB fixed cell.
ebeam_dream_FaML_Si_1310_BB¶
Returns ebeam_dream_FaML_Si_1310_BB fixed cell.
ebeam_dream_FaML_Si_1550_BB¶
Returns ebeam_dream_FaML_Si_1550_BB fixed cell.
ebeam_dream_splitter_1x2_te1550_BB¶
Returns ebeam_dream_splitter_1x2_te1550_BB fixed cell.
ebeam_gc_te1310¶
Returns ebeam_gc_te1310 fixed cell.
ebeam_gc_te1310_broadband¶
Returns ebeam_gc_te1310_broadband fixed cell.
ebeam_gc_te1550¶
Returns ebeam_gc_te1550 fixed cell.
ebeam_gc_te1550_90nmSlab¶
Returns ebeam_gc_te1550_90nmSlab fixed cell.
ebeam_gc_te1550_broadband¶
Returns ebeam_gc_te1550_broadband fixed cell.
ebeam_gc_te895¶
Returns ebeam_gc_te895 fixed cell.
ebeam_gc_tm1550¶
Returns ebeam_gc_tm1550 fixed cell.
ebeam_routing_taper_te1550_w500nm_to_w3000nm_L20um¶
Returns ebeam_routing_taper_te1550_w500nm_to_w3000nm_L20um fixed cell.
ebeam_routing_taper_te1550_w500nm_to_w3000nm_L40um¶
Returns ebeam_routing_taper_te1550_w500nm_to_w3000nm_L40um fixed cell.
ebeam_sin_dream_splitter1x2_te1550_BB¶
Returns ebeam_sin_dream_splitter1x2_te1550_BB fixed cell.
ebeam_splitter_adiabatic_swg_te1550¶
Returns ebeam_splitter_adiabatic_swg_te1550 fixed cell.
ebeam_splitter_swg_assist_te1310¶
Returns ebeam_splitter_swg_assist_te1310 fixed cell.
ebeam_splitter_swg_assist_te1310_ANT¶
Returns ebeam_splitter_swg_assist_te1310_ANT fixed cell.
ebeam_splitter_swg_assist_te1550¶
Returns ebeam_splitter_swg_assist_te1550 fixed cell.
ebeam_splitter_swg_assist_te1550_ANT¶
Returns ebeam_splitter_swg_assist_te1550_ANT fixed cell.
ebeam_swg_edgecoupler¶
Returns ebeam_swg_edgecoupler fixed cell.
ebeam_terminator_SiN_1310¶
Returns ebeam_terminator_SiN_1310 fixed cell.
ebeam_terminator_SiN_1550¶
Returns ebeam_terminator_SiN_1550 fixed cell.
ebeam_terminator_SiN_te895¶
Returns ebeam_terminator_SiN_te895 fixed cell.
ebeam_terminator_te1310¶
Returns ebeam_terminator_te1310 fixed cell.
ebeam_terminator_te1550¶
Returns ebeam_terminator_te1550 fixed cell.
ebeam_terminator_tm1550¶
Returns ebeam_terminator_tm1550 fixed cell.
ebeam_y_1310¶
Returns ebeam_y_1310 fixed cell.
ebeam_y_1550¶
Returns ebeam_y_1550 fixed cell.
ebeam_y_adiabatic¶
Returns ebeam_y_adiabatic fixed cell.
ebeam_y_adiabatic_1310¶
Returns ebeam_y_adiabatic_1310 fixed cell.
ebeam_y_adiabatic_500pin¶
Returns ebeam_y_adiabatic_500pin fixed cell.
grating_coupler_elliptical¶
A grating coupler with curved but parallel teeth.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
wavelength
|
float
|
the center wavelength for which the grating is designed |
1.55
|
grating_line_width
|
the line width of the grating |
0.315
|
|
cross_section
|
a cross section or its name or a function generating a cross section. |
'strip'
|
metal_via¶
Returns metal_via fixed cell.
mmi1x2¶
An mmi1x2.
An mmi1x2 is a splitter that splits a single input to two outputs
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
width
|
float | None
|
the width of the waveguides connecting at the mmi ports. |
None
|
width_taper
|
float
|
the width at the base of the mmi body. |
1.5
|
length_taper
|
float
|
the length of the tapers going towards the mmi body. |
20.0
|
length_mmi
|
float
|
the length of the mmi body. |
31.0
|
width_mmi
|
float
|
the width of the mmi body. |
6.0
|
gap_mmi
|
float
|
the gap between the tapers at the mmi body. |
1.64
|
cross_section
|
CrossSectionSpec
|
a cross section or its name or a function generating a cross section. |
'strip'
|
mmi2x2¶
An mmi2x2.
An mmi2x2 is a 2x2 splitter
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
width
|
float | None
|
the width of the waveguides connecting at the mmi ports |
None
|
width_taper
|
float
|
the width at the base of the mmi body |
1.5
|
length_taper
|
float
|
the length of the tapers going towards the mmi body |
20.0
|
length_mmi
|
float
|
the length of the mmi body |
42.5
|
width_mmi
|
float
|
the width of the mmi body |
6.0
|
gap_mmi
|
float
|
the gap between the tapers at the mmi body |
0.5
|
cross_section
|
CrossSectionSpec
|
a cross section or its name or a function generating a cross section. |
'strip'
|
mzi¶
Mzi.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
delta_length
|
float
|
bottom arm vertical extra length. |
10
|
bend
|
ComponentSpec
|
90 degrees bend library. |
'bend_euler'
|
straight
|
ComponentSpec
|
straight function. |
'straight'
|
splitter
|
ComponentSpec
|
splitter function. |
'coupler'
|
combiner
|
ComponentSpec | None
|
combiner function. |
None
|
port_e1_splitter
|
str
|
east top splitter port. |
'o3'
|
port_e0_splitter
|
str
|
east bot splitter port. |
'o4'
|
port_e1_combiner
|
str
|
east top combiner port. |
'o3'
|
port_e0_combiner
|
str
|
east bot combiner port. |
'o4'
|
cross_section
|
CrossSectionSpec
|
for routing (sxtop/sxbot to combiner). |
'strip'
|
mzi_1x1¶
Mzi.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
delta_length
|
float
|
bottom arm vertical extra length. |
10
|
bend
|
ComponentSpec
|
90 degrees bend library. |
'bend_euler'
|
straight
|
ComponentSpec
|
straight function. |
'straight'
|
splitter
|
ComponentSpec
|
splitter function. |
'ebeam_y_1550'
|
combiner
|
ComponentSpec | None
|
combiner function. |
None
|
port_e1_splitter
|
str
|
east top splitter port. |
'o2'
|
port_e0_splitter
|
str
|
east bot splitter port. |
'o3'
|
port_e1_combiner
|
str
|
east top combiner port. |
'o2'
|
port_e0_combiner
|
str
|
east bot combiner port. |
'o3'
|
cross_section
|
CrossSectionSpec
|
for routing (sxtop/sxbot to combiner). |
'strip'
|
mzi_heater¶
Mzi with heater on the bottom arm.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length_x
|
float
|
horizontal length of the top arm (with heater). |
200
|
delta_length
|
float
|
bottom arm vertical extra length. |
10
|
splitter
|
ComponentSpec
|
splitter function. |
'ebeam_y_1550'
|
straight_x_top
|
ComponentSpec
|
straight function for the top arm (with heater). |
'straight_heater_metal'
|
kwargs
|
other arguments for mzi. |
{}
|
mzi_heater_2x2¶
Mzi 2x2 with heater on the top arm.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length_x
|
float
|
horizontal length of the top arm (with heater). |
200
|
delta_length
|
float
|
bottom arm vertical extra length. |
10
|
splitter
|
ComponentSpec
|
splitter function. |
'mmi2x2'
|
combiner
|
ComponentSpec
|
combiner function. |
'mmi2x2'
|
straight_x_top
|
ComponentSpec
|
straight function for the top arm (with heater). |
'straight_heater_metal'
|
kwargs
|
other arguments for mzi. |
{}
|
pack_doe¶
pack_doe_grid¶
pad¶
Returns rectangular pad with ports.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
size
|
tuple[float, float]
|
x, y size. |
(90.0, 90.0)
|
layer
|
LayerSpec
|
pad layer. |
'MTOP'
|
bbox_layers
|
list of layers. |
required | |
bbox_offsets
|
Optional offsets for each layer with respect to size. positive grows, negative shrinks the size. |
required | |
port_inclusion
|
float
|
from edge. |
0
|
port_orientation
|
float
|
in degrees. |
0
|
pad_array¶
Returns 2D array of pads.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pad
|
ComponentSpec
|
pad element. |
'pad'
|
columns
|
int
|
number of columns. |
6
|
rows
|
int
|
number of rows. |
1
|
column_pitch
|
float
|
x pitch. |
125.0
|
row_pitch
|
float
|
y pitch. |
125.0
|
port_orientation
|
AngleInDegrees
|
port orientation in deg. None for low speed DC ports. |
270
|
size
|
Float2 | None
|
pad size. |
None
|
layer
|
LayerSpec | None
|
pad layer. |
None
|
centered_ports
|
bool
|
True add ports to center. False add ports to the edge. |
False
|
auto_rename_ports
|
bool
|
True to auto rename ports. |
False
|
pbs_1550_eskid¶
Returns pbs_1550_eskid fixed cell.
photonic_wirebond_surfacetaper_1310¶
Returns photonic_wirebond_surfacetaper_1310 fixed cell.
photonic_wirebond_surfacetaper_1550¶
Returns photonic_wirebond_surfacetaper_1550 fixed cell.
rectangle¶
Returns a rectangle.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
size
|
Size
|
(tuple) Width and height of rectangle. |
(4, 2)
|
layer
|
LayerSpec
|
Specific layer to put polygon geometry on. |
'MTOP'
|
centered
|
bool
|
True sets center to (0, 0), False sets south-west to (0, 0). |
False
|
port_type
|
str | None
|
optical, electrical. |
None
|
port_orientations
|
Ints | None
|
list of port_orientations to add. None adds no ports. |
(180, 90, 0, -90)
|
ring_double¶
Returns a double bus ring.
two couplers (ct: top, cb: bottom) connected with two vertical straights (sl: left, sr: right)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
gap
|
float
|
gap between for coupler. |
gap_strip
|
gap_top
|
float | None
|
gap for the top coupler. Defaults to gap. |
None
|
gap_bot
|
float | None
|
gap for the bottom coupler. Defaults to gap. |
None
|
radius
|
float
|
for the bend and coupler. |
10.0
|
length_x
|
float
|
ring coupler length. |
0.01
|
length_y
|
float
|
vertical straight length. |
0.01
|
bend
|
90 degrees bend spec. |
required | |
straight
|
straight spec. |
required | |
coupler_ring
|
ring coupler spec. |
required | |
coupler_ring_top
|
top ring coupler spec. Defaults to coupler_ring. |
required | |
cross_section
|
CrossSectionSpec
|
cross_section spec. |
'strip'
|
length_extension
|
float
|
straight length extension at the end of the coupler bottom ports. |
10.0
|
ring_double_heater¶
Returns a double bus ring with heater on top.
two couplers (ct: top, cb: bottom) connected with two vertical straights (sl: left, sr: right)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
gap
|
float
|
gap between for coupler. |
0.2
|
gap_top
|
float | None
|
gap for the top coupler. Defaults to gap. |
None
|
gap_bot
|
float | None
|
gap for the bottom coupler. Defaults to gap. |
None
|
radius
|
float
|
for the bend and coupler. |
10.0
|
length_x
|
float
|
ring coupler length. |
2.0
|
length_y
|
float
|
vertical straight length. |
0.01
|
coupler_ring
|
ComponentSpec
|
ring coupler spec. |
'coupler_ring'
|
coupler_ring_top
|
ComponentSpec | None
|
ring coupler spec for coupler away from vias (defaults to coupler_ring) |
None
|
straight
|
ComponentSpec
|
straight spec. |
'straight'
|
bend
|
ComponentSpec
|
bend spec. |
'bend_euler'
|
cross_section_heater
|
CrossSectionSpec
|
for heater. |
'heater_metal'
|
cross_section_waveguide_heater
|
CrossSectionSpec
|
for waveguide with heater. |
'strip_heater_metal'
|
cross_section
|
CrossSectionSpec
|
for regular waveguide. |
'strip'
|
via_stack
|
ComponentSpec
|
for heater to routing metal. |
'via_stack_heater_mtop'
|
port_orientation
|
AngleInDegrees | None
|
for electrical ports to promote from via_stack. |
None
|
via_stack_size
|
Float2
|
size of via_stack. |
(4, 4)
|
via_stack_offset
|
Float2
|
x,y offset for via_stack. |
(1, 0)
|
with_drop
|
adds drop ports. |
required | |
length_extension
|
float | None
|
straight length extension at the end of the coupler bottom ports. None defaults to 3.0 + radius. |
None
|
ring_single¶
Returns a single ring.
ring coupler (cb: bottom) connects to two vertical straights (sl: left, sr: right), two bends (bl, br) and horizontal straight (wg: top)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
gap
|
float
|
gap between for coupler. |
gap_strip
|
radius
|
float
|
for the bend and coupler. |
10.0
|
length_x
|
float
|
ring coupler length. |
4.0
|
length_y
|
float
|
vertical straight length. |
0.6
|
cross_section
|
CrossSectionSpec
|
cross_section spec. |
'strip'
|
length_extension
|
float
|
straight length extension at the end of the coupler bottom ports. |
10.0
|
bend
|
ComponentSpec
|
bend type for the ring. Defaults to "bend_euler". |
'bend_euler'
|
p
|
float
|
percentage of the bend that is euler. 1 means full euler, 0 means full circular. |
0
|
ring_single_heater¶
Returns a double bus ring with heater on top.
two couplers (ct: top, cb: bottom) connected with two vertical straights (sl: left, sr: right)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
gap
|
float
|
gap between for coupler. |
0.2
|
gap_top
|
gap for the top coupler. Defaults to gap. |
required | |
gap_bot
|
gap for the bottom coupler. Defaults to gap. |
required | |
radius
|
float
|
for the bend and coupler. |
10.0
|
length_x
|
float
|
ring coupler length. |
2.0
|
length_y
|
float
|
vertical straight length. |
0.01
|
coupler_ring
|
ComponentSpec
|
ring coupler spec. |
'coupler_ring'
|
coupler_ring_top
|
ComponentSpec | None
|
ring coupler spec for coupler away from vias (defaults to coupler_ring) |
None
|
straight
|
ComponentSpec
|
straight spec. |
'straight'
|
bend
|
ComponentSpec
|
bend spec. |
'bend_euler'
|
cross_section_heater
|
CrossSectionSpec
|
for heater. |
'heater_metal'
|
cross_section_waveguide_heater
|
CrossSectionSpec
|
for waveguide with heater. |
'strip_heater_metal'
|
cross_section
|
CrossSectionSpec
|
for regular waveguide. |
'strip'
|
via_stack
|
ComponentSpec
|
for heater to routing metal. |
'via_stack_heater_mtop'
|
port_orientation
|
AngleInDegrees | None
|
for electrical ports to promote from via_stack. |
None
|
via_stack_size
|
Float2
|
size of via_stack. |
(4, 4)
|
via_stack_offset
|
Float2
|
x,y offset for via_stack. |
(1, 0)
|
with_drop
|
adds drop ports. |
required | |
length_extension
|
float | None
|
straight length extension at the end of the coupler bottom ports. None defaults to 3.0 + radius. |
None
|
siepic_o_gc_te1270_BB¶
Returns siepic_o_gc_te1270_BB fixed cell.
siepic_o_pwbstlas_si_BB¶
Returns siepic_o_pwbstlas_si_BB fixed cell.
spiral¶
Returns a spiral double (spiral in, and then out).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
length of the spiral straight section. |
100
|
cross_section
|
CrossSectionSpec
|
cross_section component. |
'strip'
|
spacing
|
float
|
spacing between the spiral loops. |
3
|
n_loops
|
int
|
number of loops. |
6
|
spiral_racetrack¶
Returns Racetrack-Spiral.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
min_radius
|
float | None
|
smallest radius in um. |
None
|
straight_length
|
float
|
length of the straight segments in um. |
20.0
|
spacings
|
Floats
|
space between the center of neighboring waveguides in um. |
(2, 2, 3, 3, 2, 2)
|
straight
|
ComponentSpec
|
factory to generate the straight segments. |
'straight'
|
bend
|
ComponentSpec
|
factory to generate the bend segments. |
'bend_euler'
|
bend_s
|
ComponentSpec
|
factory to generate the s-bend segments. |
'bend_s'
|
cross_section
|
CrossSectionSpec
|
cross-section of the waveguides. |
'strip'
|
cross_section_s
|
CrossSectionSpec | None
|
cross-section of the s bend waveguide (optional). |
None
|
extra_90_deg_bend
|
bool
|
if True, we add an additional straight + 90 degree bent at the output, so the output port is looking down. |
False
|
allow_min_radius_violation
|
bool
|
if True, will allow the s-bend to have a smaller radius than the minimum radius. |
False
|
spiral_racetrack_heater¶
Returns spiral racetrack with a heater above.
based on https://doi.org/10.1364/OL.400230 .
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
spacing
|
float
|
center to center spacing between the waveguides. |
4.0
|
num
|
int
|
number of spiral loops. |
8
|
straight_length
|
float
|
length of the straight segments. |
100
|
cross_section
|
CrossSectionSpec
|
cross_section. |
'strip'
|
straight¶
Returns a Straight waveguide.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
straight length (um). |
10
|
cross_section
|
CrossSectionSpec
|
specification (CrossSection, string or dict). |
'strip'
|
width
|
float | None
|
width of the waveguide. If None, it will use the width of the cross_section. |
None
|
npoints
|
int
|
number of points. |
2
|
straight_heater_meander¶
Returns a meander based heater.
based on SungWon Chung, Makoto Nakai, and Hossein Hashemi, Low-power thermo-optic silicon modulator for large-scale photonic integrated systems Opt. Express 27, 13430-13459 (2019) https://www.osapublishing.org/oe/abstract.cfm?URI=oe-27-9-13430
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
phase shifter length. |
320.0
|
heater_width
|
float
|
width of the heater. |
2.5
|
spacing
|
float
|
waveguide spacing (center to center). |
2
|
cross_section
|
CrossSectionSpec
|
for waveguide. |
'strip'
|
layer_heater
|
LayerSpec
|
for top heater, if None, it does not add a heater. |
'M1_HEATER'
|
via_stack
|
ComponentSpec | None
|
for the heater to via_stack metal. |
'via_stack_heater_mtop'
|
n
|
int | None
|
number of meanders. |
3
|
port_orientation1
|
float | None
|
orientation of the first port. None for all orientations. |
None
|
port_orientation2
|
float | None
|
orientation of the second port. None for all orientations. |
None
|
radius
|
float | None
|
radius of the meander. |
None
|
straight_heater_metal¶
Returns a thermal phase shifter.
dimensions from https://doi.org/10.1364/OE.27.010456
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
phase shifter length. |
320.0
|
length_undercut_spacing
|
float
|
spacing between the waveguide and the undercut. |
6.0
|
length_undercut
|
float
|
undercut length. |
30.0
|
length_straight
|
float
|
straight length. |
0.1
|
length_straight_input
|
float
|
straight length input. |
15.0
|
with_undercut
|
bool
|
isolation trenches for higher efficiency. |
False
|
port_orientation1
|
int | None
|
orientation of the first port. None for all orientations. |
None
|
port_orientation2
|
int | None
|
orientation of the second port. None for all orientations. |
None
|
cross_section
|
CrossSectionSpec
|
for waveguide. |
'strip'
|
straight_metal¶
Returns a Straight waveguide.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
straight length (um). |
10
|
cross_section
|
CrossSectionSpec
|
specification (CrossSection, string or dict). |
'metal_routing'
|
width
|
float | None
|
width of the waveguide. If None, it will use the width of the cross_section. |
None
|
taper¶
Linear taper, which tapers only the main cross section section.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
taper length. |
10.0
|
width1
|
float
|
width of the west/left port. |
width
|
width2
|
float | None
|
width of the east/right port. Defaults to width1. |
None
|
cross_section
|
CrossSectionSpec
|
specification (CrossSection, string, CrossSectionFactory dict). |
'strip'
|
taper_SiN_750_3000¶
Returns taper_SiN_750_3000 fixed cell.
taper_metal¶
Linear taper, which tapers only the main cross section section.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
length
|
float
|
taper length. |
10.0
|
width1
|
float
|
width of the west/left port. |
width_metal
|
width2
|
float | None
|
width of the east/right port. Defaults to width1. |
None
|
cross_section
|
CrossSectionSpec
|
specification (CrossSection, string, CrossSectionFactory dict). |
'metal_routing'
|
taper_si_simm_1310¶
Returns taper_si_simm_1310 fixed cell.
taper_si_simm_1550¶
Returns taper_si_simm_1550 fixed cell.
text_rectangular¶
Pixel based font, guaranteed to be manhattan, without acute angles.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
text
|
str
|
string. |
'abc'
|
size
|
float
|
pixel size. |
3
|
justify
|
str
|
left, right or center. |
'left'
|
layer
|
LayerSpec
|
for text. |
'M2_ROUTER'
|
text_rectangular_multi_layer¶
Returns rectangular text in different layers.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
text
|
str
|
string of text. |
'abc'
|
layers
|
LayerSpecs
|
list of layers to replicate the text. |
('WG', 'M2_ROUTER')
|
text_factory
|
ComponentSpec
|
function to create the text Components. |
'text_rectangular'
|
kwargs
|
Any
|
keyword arguments for text_factory. |
{}
|
thermal_phase_shifter_multimode_¶
Returns thermal_phase_shifters fixed cell.
thermal_phase_shifter_te_1310_¶
Returns thermal_phase_shifters fixed cell.
thermal_phase_shifter_te_1310_50¶
Returns thermal_phase_shifters fixed cell.
thermal_phase_shifter_te_1550_50¶
Returns thermal_phase_shifters fixed cell.
via_stack_heater_mtop¶
Rectangular via array stack.
You can use it to connect different metal layers or metals to silicon. You can use the naming convention via_stack_layerSource_layerDestination contains 4 ports (e1, e2, e3, e4)
also know as Via array http://www.vlsi-expert.com/2017/12/vias.html
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
size
|
Size
|
of the layers. |
(20.0, 10.0)
|
wire_corner¶
Returns 45 degrees electrical corner wire.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cross_section
|
CrossSectionSpec
|
spec. |
'metal_routing'
|
width
|
float | None
|
optional width. Defaults to cross_section width. |
None
|
radius
|
float | None
|
ignored. |
None
|
wire_corner45¶
Returns 90 degrees electrical corner wire.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cross_section
|
CrossSectionSpec
|
spec. |
'metal_routing'
|
radius
|
float
|
ignored. |
10
|
width
|
float | None
|
optional width. Defaults to cross_section width. |
None
|
layer
|
LayerSpec | None
|
ignored. |
None
|
with_corner90_ports
|
bool
|
if True, adds ports at 90 degrees. |
True
|
wire_corner45_straight¶
Returns 90 degrees electrical corner wire.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
width
|
float | None
|
of the wire. |
width_metal
|
radius
|
float | None
|
of the corner. Defaults to width. |
width_metal
|
cross_section
|
CrossSectionSpec
|
metal_routing. |
'metal_routing'
|