Skip to content

Luxtelligence provides a library of components that have been fabricated in the reference material stack, and whose performance has been tested and validated. Here follows a list of the available parametric cells (gdsfactory.Component objects):

Cells lnoi400

CPW_pad_linear

RF access line for high-frequency GSG probes. The probe pad maintains a fixed gap/central conductor ratio across its length, to achieve a good

@tags lnoi400-gsg

Parameters:

Name Type Description Default
start_width float

80.0.

80.0
length_straight float

10.0.

10.0
length_tapered float

190.0.

190.0
cross_section CrossSectionSpec

"xs_uni_cpw".

'xs_uni_cpw'

impedance matching.

=== "Static"

![CPW_pad_linear](kwasm/gds/CPW_pad_linear.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/CPW_pad_linear.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.CPW_pad_linear(start_width=80, length_straight=10, length_tapered=190, cross_section='xs_uni_cpw').copy() c.draw_ports() c.plot() ```

L_turn_bend

A 90-degrees bend following an Euler path, with linearly-varying curvature (increasing and decreasing).

Parameters:

Name Type Description Default
radius float

80.0.

80.0
p float

1.0.

1.0
with_arc_floorplan bool

True.

True
cross_section CrossSectionSpec

"xs_rwg1000".

'xs_rwg1000'

=== "Static"

![L_turn_bend](kwasm/gds/L_turn_bend.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/L_turn_bend.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.L_turn_bend(radius=80, p=1, with_arc_floorplan=True, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```

S_bend_vert

A spline bend that bridges a vertical displacement.

Parameters:

Name Type Description Default
v_offset float

25.0.

25.0
h_extent float

100.0.

100.0
dx_straight float

5.0.

5.0
cross_section CrossSectionSpec

"xs_rwg1000".

'xs_rwg1000'

=== "Static"

![S_bend_vert](kwasm/gds/S_bend_vert.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/S_bend_vert.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.S_bend_vert(v_offset=25, h_extent=100, dx_straight=5, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```

U_bend_racetrack

A U-bend with fixed cross-section and dimensions, suitable for building a low-loss racetrack resonator.

Parameters:

Name Type Description Default
v_offset float

90.0.

90.0
p float

1.0.

1.0
with_arc_floorplan bool

True.

True
cross_section CrossSectionSpec

"xs_rwg3000".

'xs_rwg3000'

=== "Static"

![U_bend_racetrack](kwasm/gds/U_bend_racetrack.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/U_bend_racetrack.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.U_bend_racetrack(v_offset=90, p=1, with_arc_floorplan=True, cross_section='xs_rwg3000').copy() c.draw_ports() c.plot() ```

bend_S_spline

=== "Static"

![bend_S_spline](kwasm/gds/bend_S_spline.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/bend_S_spline.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.bend_S_spline(size=(100, 30), cross_section='xs_rwg1000', npoints=201).copy() c.draw_ports() c.plot() ```

bend_S_spline_varying_width

=== "Static"

![bend_S_spline_varying_width](kwasm/gds/bend_S_spline_varying_width.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/bend_S_spline_varying_width.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.bend_S_spline_varying_width(size=(58, 14.5), npoints=201).copy() c.draw_ports() c.plot() ```

bend_euler

Regular degree euler bend.

Parameters:

Name Type Description Default
radius float | None

in um. Defaults to cross_section_radius.

80
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).

'xs_rwg1000'
allow_min_radius_violation bool

if True allows radius to be smaller than cross_section radius.

False
with_arc_floorplan bool

if True the size of the bend will be adjusted to match an arc bend with the specified radius. If False: radius is the minimum radius of curvature.

True

=== "Static"

![bend_euler](kwasm/gds/bend_euler.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/bend_euler.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.bend_euler(radius=80, angle=90, p=0.5, cross_section='xs_rwg1000', allow_min_radius_violation=False, with_arc_floorplan=True).copy() c.draw_ports() c.plot() ```

bend_s

Return S bend with bezier curve.

Parameters:

Name Type Description Default
size Size

in x and y direction.

(11.0, 1.8)
npoints int

number of points.

99
cross_section CrossSectionSpec

specification (CrossSection, string, CrossSectionFactory dict).

'xs_rwg1000'
allow_min_radius_violation bool

if True allows radius to be smaller than cross_section radius.

False
width float | None

width to use. Defaults to cross_section.width.

None

=== "Static"

![bend_s](kwasm/gds/bend_s.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/bend_s.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.bend_s(size=(11, 1.8), npoints=99, cross_section='xs_rwg1000', allow_min_radius_violation=False).copy() c.draw_ports() c.plot() ```

chip_frame

=== "Static"

![chip_frame](kwasm/gds/chip_frame.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/chip_frame.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.chip_frame(size=(10000, 5000), exclusion_zone_width=50, chip_contour_layer=(6, 0), chip_exclusion_zone_layer=(6, 1)).copy() c.draw_ports() c.plot() ```

die_phix_rf

Die with east west edge couplers and RF pads on north and south.

@tags lnoi400-chip-edge

The physical chip edge is the outside of CHIP_EXCLUSION_ZONE (6/1), not CHIP_CONTOUR (6/0). The default facet overhang is 5 um regardless of the coupler's straight tip length. This PHIX ADK assumes polishing, so its default mirrored coupler uses 30 um of straight tip. There are 57 DC pads on each of the north and south sides.

Parameters:

Name Type Description Default
xsize float

Nominal die x size in um, subject to chip_frame size snapping.

10000.0
ysize float

Nominal die y size in um, subject to chip_frame size snapping.

5000.0
nfibers int

number of fibers.

16
npads int | None

Number of DC pads per north/south side, default 57. Pass None to compute from xsize, edge_coupler_keepout, and pad_pitch.

57
npads_rf int

number of RF pads.

6
fiber_pitch float

of the edge couplers in um.

127.0
pad_pitch float

pitch between pads.

150.0
pad_pitch_gsg float

pitch between gsg pads.

720.0
edge_coupler ComponentSpec | None

edge coupler component.

functools.partial(<function double_linear_inverse_taper_mirror at 0x7f080c963060>, input_ext=30.0)
grating_coupler ComponentSpec | None

grating coupler component.

None
cross_section CrossSectionSpec

waveguide cross_section.

'xs_rwg1000'
pad ComponentSpec

pad component.

'pad'
pad_gsg ComponentSpec

gsg pad component.

'pad_gsg'
edge_to_pad_distance float

distance from edge to first pad.

200.0
edge_coupler_keepout float

keepout zone (in um) on each side of the die for the edge coupler / fiducials / routing margins. Used to compute npads.

1200.0
pad_port_name_top str

name of the pad port name at the top facing south.

'e4'
pad_port_name_bot str

name of the pad port name at the bottom facing north.

'e2'
layer_fiducial LayerSpec

layer for fiducials.

'LN_RIDGE'
layer_ruler LayerSpec

layer for ruler.

'LN_RIDGE'
ruler_yoffset float

y offset for ruler.

0
ruler_xoffset float

x offset for ruler.

0
fiber_coupler_xoffset float

Outward facet offset from layer 6/1, in um. Keep at 5 for the standard singulation geometry, including polishing.

5.0
with_right_fiber_coupler bool

if True adds right fiber coupler.

True
with_left_fiber_coupler bool

if True adds left fiber coupler.

False
text_offset Float2

offset for the text label.

(-40, 20)
text ComponentSpec | None

text component.

'text_rectangular'
xoffset_dc_pads float

x offset for dc pads.

-100
xoffset_rf_pads float

RF pad x offset from the left chip contour, in um.

50.0
exclusion_zone_width float

Border between layer 6/0 and physical edge 6/1, in um. Pads retain their offsets relative to layer 6/0.

50.0

=== "Static"

![die_phix_rf](kwasm/gds/die_phix_rf.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/die_phix_rf.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.die_phix_rf(xsize=10000, ysize=5000, nfibers=16, npads=57, npads_rf=6, fiber_pitch=127, pad_pitch=150, pad_pitch_gsg=720, cross_section='xs_rwg1000', pad='pad', pad_gsg='pad_gsg', edge_to_pad_distance=200, edge_coupler_keepout=1200, pad_port_name_top='e4', pad_port_name_bot='e2', layer_fiducial='LN_RIDGE', layer_ruler='LN_RIDGE', ruler_yoffset=0, ruler_xoffset=0, fiber_coupler_xoffset=5, with_right_fiber_coupler=True, with_left_fiber_coupler=False, text_offset=(-40, 20), text='text_rectangular', xoffset_dc_pads=-100, xoffset_rf_pads=50, exclusion_zone_width=50).copy() c.draw_ports() c.plot() ```

directional_coupler_balanced

Returns a 50-50 directional coupler. Default parameters give a 50/50 splitting at 1550 nm.

Parameters:

Name Type Description Default
io_wg_sep float

Separation of the two straights at the input/output, top-to-top.

30.6
sbend_length float

length of the s-bend part.

58
central_straight_length float

length of the coupling region.

16.92
coupl_wg_sep float

Distance between two waveguides in the coupling region (side to side).

0.8
cross_section_io CrossSectionSpec

cross section spec at the i/o (must be defined in tech.py).

'xs_rwg1000'
coup_wg_width float

waveguide width at the coupling section.

0.8

=== "Static"

![directional_coupler_balanced](kwasm/gds/directional_coupler_balanced.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/directional_coupler_balanced.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.directional_coupler_balanced(io_wg_sep=30.6, sbend_length=58, central_straight_length=16.92, coupl_wg_sep=0.8, coup_wg_width=0.8, cross_section_io='xs_rwg1000').copy() c.draw_ports() c.plot() ```

double_linear_inverse_taper

Inverse taper from a wire waveguide at the facet to a rib waveguide.

@tags lnoi400-chip-edge

When placed at a chip edge, use input_ext=10 for singulation without polishing or approximately 30 for polishing. Place the tip 5 um outside layer 6/1 independently of input_ext; layer 6/0 does not define the facet.

Parameters:

Name Type Description Default
cross_section_start CrossSectionSpec

"xs_swg250".

'xs_swg250'
cross_section_end CrossSectionSpec

"xs_rwg1000".

'xs_rwg1000'
lower_taper_length float

120.0.

120.0
lower_taper_end_width float

2.05.

2.05
upper_taper_start_width float

0.25.

0.25
upper_taper_length float

240.0.

240.0
slab_removal_width float

20.0.

20.0
input_ext float

Constant-width straight tip length in um. The primitive default is zero; chip-edge singulation requires at least 10 um.

0.0

=== "Static"

![double_linear_inverse_taper](kwasm/gds/double_linear_inverse_taper.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/double_linear_inverse_taper.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.double_linear_inverse_taper(cross_section_start='xs_swg250', cross_section_end='xs_rwg1000', lower_taper_length=120, lower_taper_end_width=2.05, upper_taper_start_width=0.25, upper_taper_length=240, slab_removal_width=20, input_ext=0).copy() c.draw_ports() c.plot() ```

double_linear_inverse_taper_mirror

Same as double_linear_inverse_taper, but mirrored so the narrow end is on the right.

@tags lnoi400-chip-edge

The default 10 um straight tip supports singulation without polishing. Use approximately 30 um when polishing is planned, keeping the tip 5 um outside layer 6/1. A longer unpolished tip can increase insertion loss through interaction of its large optical mode with silicon.

Parameters:

Name Type Description Default
cross_section_start CrossSectionSpec

starting cross section.

'xs_swg250'
cross_section_end CrossSectionSpec

ending cross section.

'xs_rwg1000'
lower_taper_length float

length of the lower taper in um.

120.0
lower_taper_end_width float

end width of the lower taper in um.

2.05
upper_taper_start_width float

start width of the upper taper in um.

0.25
upper_taper_length float

length of the upper taper in um.

240.0
slab_removal_width float

width of the slab removal in um.

20.0
input_ext float

Total constant-width tip length in um, including the 5 um outside the physical chip edge and at least 5 um inside it.

10.0

=== "Static"

![double_linear_inverse_taper_mirror](kwasm/gds/double_linear_inverse_taper_mirror.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/double_linear_inverse_taper_mirror.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.double_linear_inverse_taper_mirror(cross_section_start='xs_swg250', cross_section_end='xs_rwg1000', lower_taper_length=120, lower_taper_end_width=2.05, upper_taper_start_width=0.25, upper_taper_length=240, slab_removal_width=20, input_ext=10).copy() c.draw_ports() c.plot() ```

eo_phase_shifter

Phase shifter based on the Pockels effect. The waveguide is located

Parameters:

Name Type Description Default
rib_core_width_modulator float

2.5.

2.5
taper_length float

100.0.

100.0
modulation_length float

7500.0.

7500.0
rf_central_conductor_width float

10.0.

10.0
rf_ground_planes_width float

180.0.

180.0
rf_gap float

4.0.

4.0
cpw_cell ComponentSpec

uni_cpw_straight.

uni_cpw_straight
draw_cpw bool

True.

True

within the gap of a CPW transmission line.

=== "Static"

![eo_phase_shifter](kwasm/gds/eo_phase_shifter.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/eo_phase_shifter.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.eo_phase_shifter(rib_core_width_modulator=2.5, taper_length=100, modulation_length=7500, rf_central_conductor_width=10, rf_ground_planes_width=180, rf_gap=4, draw_cpw=True).copy() c.draw_ports() c.plot() ```

eo_phase_shifter_high_speed

High-speed phase shifter based on the Pockels effect. The waveguide is located within the gap of a CPW transmission line. Note: The base variant (eo_phase_shifter) uses a default central conductor width of 10.0, while this high-speed variant explicitly passes 21.0 for rf_central_conductor_width to achieve the desired high-speed properties. Pass the parameter set of eo_phase_shifter to modify.

=== "Static"

![eo_phase_shifter_high_speed](kwasm/gds/eo_phase_shifter_high_speed.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/eo_phase_shifter_high_speed.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.eo_phase_shifter_high_speed().copy() c.draw_ports() c.plot() ```

gc_focusing_1550

Returns a focusing grating coupler for 1550 nm (C-band). The grating is optimized for TE polarization and a launch angle in air of 14.5 degrees w/r to the surface normal.

Parameters:

Name Type Description Default
sleeve_width float

4.5.

4.5
cross_section CrossSectionSpec

"xs_rwg1000".

'xs_rwg1000'
waveguide_length float

10.0.

10.0

=== "Static"

![gc_focusing_1550](kwasm/gds/gc_focusing_1550.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/gc_focusing_1550.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.gc_focusing_1550(sleeve_width=4.5, cross_section='xs_rwg1000', waveguide_length=10).copy() c.draw_ports() c.plot() ```

heater_resistor

A resistive wire used as a low-frequency phase shifter, exploiting

Parameters:

Name Type Description Default
path Path | None

None.

None
width float

0.9.

0.9
offset float

0.0.

0.0

the thermo-optical effect.

=== "Static"

![heater_resistor](kwasm/gds/heater_resistor.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/heater_resistor.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.heater_resistor(width=0.9, offset=0).copy() c.draw_ports() c.plot() ```

heater_straight_single

A straight resistive wire used as a low-frequency phase shifter, exploiting the thermo-optical effect. The heater is terminated by wide pads

Parameters:

Name Type Description Default
length float

150.0.

150.0
width float

0.9.

0.9
offset float

0.0.

0.0
port_contact_width_ratio float

3.0.

3.0
pad_size tuple[float, float]

(100.0, 100.0).

(100.0, 100.0)
pad_pitch float | None

None.

None
pad_vert_offset float

10.0.

10.0

for probing or bonding.

=== "Static"

![heater_straight_single](kwasm/gds/heater_straight_single.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/heater_straight_single.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.heater_straight_single(length=150, width=0.9, offset=0, port_contact_width_ratio=3, pad_size=(100, 100), pad_vert_offset=10).copy() c.draw_ports() c.plot() ```

mmi1x2_optimized1550

MMI1x2 with layout optimized for maximum transmission at 1550 nm.

Parameters:

Name Type Description Default
width_mmi float

6.0.

6.0
length_mmi float

26.75.

26.75
width_taper float

1.5.

1.5
length_taper float

25.0.

25.0
port_ratio float

0.55.

0.55
cross_section CrossSectionSpec

"xs_rwg1000".

'xs_rwg1000'

=== "Static"

![mmi1x2_optimized1550](kwasm/gds/mmi1x2_optimized1550.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/mmi1x2_optimized1550.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.mmi1x2_optimized1550(width_mmi=6, length_mmi=26.75, width_taper=1.5, length_taper=25, port_ratio=0.55, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```

mmi2x2_optimized1550

MMI2x2 with layout optimized for maximum transmission at 1550 nm.

Parameters:

Name Type Description Default
width_mmi float

5.0.

5.0
length_mmi float

76.5.

76.5
width_taper float

1.5.

1.5
length_taper float

25.0.

25.0
port_ratio float

0.7.

0.7
cross_section CrossSectionSpec

"xs_rwg1000".

'xs_rwg1000'

=== "Static"

![mmi2x2_optimized1550](kwasm/gds/mmi2x2_optimized1550.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/mmi2x2_optimized1550.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.mmi2x2_optimized1550(width_mmi=5, length_mmi=76.5, width_taper=1.5, length_taper=25, port_ratio=0.7, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```

mmi2x2optimized1550

MMI2x2 with layout optimized for maximum transmission at 1550 nm.

Parameters:

Name Type Description Default
width_mmi float

5.0.

5.0
length_mmi float

76.5.

76.5
width_taper float

1.5.

1.5
length_taper float

25.0.

25.0
port_ratio float

0.7.

0.7
cross_section CrossSectionSpec

"xs_rwg1000".

'xs_rwg1000'

=== "Static"

![mmi2x2optimized1550](kwasm/gds/mmi2x2optimized1550.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/mmi2x2optimized1550.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.mmi2x2optimized1550(width_mmi=5, length_mmi=76.5, width_taper=1.5, length_taper=25, port_ratio=0.7, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```

mzm_unbalanced

Mach-Zehnder modulator based on the Pockels effect with an applied RF electric field.

@tags lnoi400-gsg

Parameters:

Name Type Description Default
modulation_length float

7500.0.

7500.0
length_imbalance float

100.0.

100.0
lbend_tune_arm_reff float

75.0.

75.0
rf_pad_start_width float

80.0.

80.0
rf_central_conductor_width float

10.0.

10.0
rf_ground_planes_width float

180.0.

180.0
rf_gap float

4.0.

4.0
rf_pad_length_straight float

10.0.

10.0
rf_pad_length_tapered float

300.0.

300.0
bias_tuning_section_length float

700.0.

700.0
cpw_cell ComponentSpec

uni_cpw_straight.

uni_cpw_straight
with_heater bool

False.

False
heater_offset float

1.2.

1.2
heater_width float

1.0.

1.0
heater_pad_size tuple[float, float]

(75.0, 75.0).

(75.0, 75.0)

The modulator works in a differential push-pull configuration driven by a single GSG line.

=== "Static"

![mzm_unbalanced](kwasm/gds/mzm_unbalanced.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/mzm_unbalanced.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.mzm_unbalanced(modulation_length=7500, length_imbalance=100, lbend_tune_arm_reff=75, rf_pad_start_width=80, rf_central_conductor_width=10, rf_ground_planes_width=180, rf_gap=4, rf_pad_length_straight=10, rf_pad_length_tapered=300, bias_tuning_section_length=700, with_heater=False, heater_offset=1.2, heater_width=1, heater_pad_size=(75, 75)).copy() c.draw_ports() c.plot() ```

mzm_unbalanced_high_speed

High-speed Mach-Zehnder modulator based on the Pockels effect with an applied RF electric field. The modulator works in a differential push-pull configuration driven by a single GSG line. Note: The base variant (mzm_unbalanced) uses a default central conductor width of 10.0, while this high-speed variant explicitly passes 21.0 for rf_central_conductor_width to achieve the desired high-speed properties. Pass the parameter set of mzm_unbalanced to modify.

=== "Static"

![mzm_unbalanced_high_speed](kwasm/gds/mzm_unbalanced_high_speed.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/mzm_unbalanced_high_speed.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.mzm_unbalanced_high_speed().copy() c.draw_ports() c.plot() ```

mzm_with_pads

=== "Static"

![mzm_with_pads](kwasm/gds/mzm_with_pads.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/mzm_with_pads.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.mzm_with_pads(mzm='mzm_unbalanced_high_speed', pad='pad_gsg', taper_length=50).copy() c.draw_ports() c.plot() ```

pad

Returns rectangular pad with ports.

Parameters:

Name Type Description Default
size Size

x, y size.

(90, 90)
port_orientation AngleInDegrees | None

in degrees for the center port.

0
port_orientations Ints | None

list of port_orientations to add. None does not add ports.

(180, 90, 0, -90)

=== "Static"

![pad](kwasm/gds/pad.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/pad.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.pad(size=(90, 90), port_orientation=0, port_orientations=(180, 90, 0, -90)).copy() c.draw_ports() c.plot() ```

pad_gsg

Returns rectangular RF pad with ports.

Parameters:

Name Type Description Default
length float

length of the pad.

100

=== "Static"

![pad_gsg](kwasm/gds/pad_gsg.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/pad_gsg.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.pad_gsg(length=100).copy() c.draw_ports() c.plot() ```

straight

_straight.

Parameters:

Name Type Description Default
length float

10.0.

10.0
cross_section CrossSectionSpec

"xs_rwg1000".

'xs_rwg1000'

=== "Static"

![straight](kwasm/gds/straight.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/straight.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.straight(length=10, cross_section='xs_rwg1000').copy() c.draw_ports() c.plot() ```

straight_rwg1000

Straight single-mode waveguide.

Parameters:

Name Type Description Default
length float

10.0.

10.0

=== "Static"

![straight_rwg1000](kwasm/gds/straight_rwg1000.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/straight_rwg1000.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.straight_rwg1000(length=10).copy() c.draw_ports() c.plot() ```

straight_rwg3000

Straight multimode waveguide.

Parameters:

Name Type Description Default
length float

10.0.

10.0

=== "Static"

![straight_rwg3000](kwasm/gds/straight_rwg3000.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/straight_rwg3000.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.straight_rwg3000(length=10).copy() c.draw_ports() c.plot() ```

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 | None

for text.

'LN_RIDGE'
layers LayerSpecs | None

optional for duplicating the text.

None

=== "Static"

![text_rectangular](kwasm/gds/text_rectangular.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/text_rectangular.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.text_rectangular(text='abc', size=3, justify='left', layer='LN_RIDGE').copy() c.draw_ports() c.plot() ```

trail_cpw

A CPW transmission line with periodic T-rails on all electrodes.

@tags lnoi400-gsg

Parameters:

Name Type Description Default
length float

1000.0.

1000.0
signal_width float

21.

21
gap_width float

4.

4
th float

1.5.

1.5
tl float

44.7.

44.7
tw float

7.0.

7.0
tt float

1.5.

1.5
tc float

5.0.

5.0
ground_planes_width float

180.0.

180.0
rounding_radius float

0.5.

0.5
bondpad ComponentSpec

"CPW_pad_linear".

'CPW_pad_linear'
cross_section CrossSectionSpec

xs_uni_cpw.

xs_uni_cpw

=== "Static"

![trail_cpw](kwasm/gds/trail_cpw.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/trail_cpw.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.trail_cpw(length=1000, signal_width=21, gap_width=4, th=1.5, tl=44.7, tw=7, tt=1.5, tc=5, ground_planes_width=180, rounding_radius=0.5, bondpad='CPW_pad_linear').copy() c.draw_ports() c.plot() ```

uni_cpw_straight

A CPW transmission line for microwaves, with a uniform cross section.

@tags lnoi400-gsg

Parameters:

Name Type Description Default
length float

1000.0.

1000.0
cross_section CrossSectionSpec

"xs_uni_cpw".

'xs_uni_cpw'
signal_width float

10.0.

10.0
gap_width float

4.0.

4.0
ground_planes_width float

250.0.

250.0
bondpad ComponentSpec

"CPW_pad_linear".

'CPW_pad_linear'

=== "Static"

![uni_cpw_straight](kwasm/gds/uni_cpw_straight.png)

=== "Dynamic"

<iframe src="kwasm/viewer.html?url=gds/uni_cpw_straight.gds" loading="lazy" width="100%" height="400" style="border:none"></iframe>

```python import lnoi400

c = lnoi400.cells.uni_cpw_straight(length=1000, cross_section='xs_uni_cpw', signal_width=10, gap_width=4, ground_planes_width=250, bondpad='CPW_pad_linear').copy() c.draw_ports() c.plot() ```