Skip to content

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
       o2──────▲─────────o3
               │gap_top
       xx──────▼─────────xxx
      xxx                   xxx
    xxx                       xxx
   xx                           xxx
   x                             xxx
  xx                              xx▲
  xx                              xx│length_y
  xx                              xx▼
  xx                             xx
   xx          length_x          x
    xx     ◄───────────────►    x
     xx                       xxx
       xx                   xxx
        xxx──────▲─────────xxx
                 │gap
         o1──────▼─────────o4

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
                xxxxxxxxxxxxx
            xxxxx           xxxx
          xxx                   xxx
        xxx                       xxx
       xx                           xxx
       x                             xxx
      xx                              xx▲
      xx                              xx│length_y
      xx                              xx▼
      xx                             xx
       xx          length_x          x
        xx     ◄───────────────►    x
         xx                       xxx
           xx                   xxx
            xxx──────▲─────────xxx
                     │gap
             o1──────▼─────────o2

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
           xxx          xx
        xxx               xxx
      xxx                   xxx
    xxx                       xxx
   xx                           xxx
   x                             xxx
  xx                              xx▲
  xx                              xx│length_y
  xx                              xx▼
  xx                             xx
   xx          length_x          x
    xx     ◄───────────────►    x
     xx                       xxx
       xx                   xxx
        xxx──────▲─────────xxx
                 │gap
         o1──────▼─────────o4

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'