RF pads

SiFab contains the following component to build RF access pads for high-frequency RF probes:

  • ProbePad: pad array with parametric number of pads.

ProbePad

This component allows to generate RF pads with a parametric number of pads. These pads are characterised by a broad section and a narrow section. Their properties are illustrated in the following picture.

../../../../../../../../../_images/rf_pad.png

Different types of pads can be instantiated easily by adapting the number of layout properties provided, as shown in the examples below.

Reference

Click on the name of the component below to see the complete PCell reference.

si_fab.all.ProbePad

RF access line for high-frequency RF probes.

Example

from si_fab import all as pdk
import numpy as np

# GS
rf = pdk.ProbePad(
    name="GS",
    start_widths=[100] * 2,
    start_centers=np.array([-0.5, 0.5]) * 150.0,
    start_lengths=[200] * 2,
    end_widths=[2] * 2,
    end_centers=np.array([-0.5, 0.5]) * 5.0,
    end_lengths=[5] * 2,
    distance=500.0,
    port_names=["G", "S"],
)
rf.Layout().visualize(annotate=True)

# GSG
rf = pdk.ProbePad(
    name="GSG",
    start_widths=[100] * 3,
    start_centers=np.array([-1, 0, 1]) * 150,
    start_lengths=[200] * 3,
    end_widths=[2] * 3,
    end_centers=np.array([-1, 0, 1]) * 5,
    end_lengths=[5] * 3,
    distance=300.0,
    port_names=["G1", "S", "G2"],
)
rf.Layout().visualize(annotate=True)

# GSGSG
rf = pdk.ProbePad(
    name="GSGSG",
    start_widths=[100] * 5,
    start_centers=np.array([-2, -1, 0, 1, 2]) * 150,
    start_lengths=[200] * 5,
    end_widths=[3, 1, 3, 1, 3],
    end_centers=np.array([-2, -1, 0, 1, 2]) * 5,
    end_lengths=[20] * 5,
    distance=300.0,
    port_names=["G1", "SL", "G2", "SR", "G3"],
)
rf.Layout().visualize(annotate=True)
../../../../../../../../../_images/example_rf_pad_00.png
../../../../../../../../../_images/example_rf_pad_01.png
../../../../../../../../../_images/example_rf_pad_02.png

This class can also be used to join 2 RF traces into one probe pad, by specifying overlapping start coordinates:

from si_fab import all as pdk
import numpy as np

# GSGGSG
rf = pdk.ProbePad(
    name="GSGGSG",
    start_widths=[80] * 6,
    start_centers=np.array([-2, -1, 0, 0, 1, 2]) * 100,
    start_lengths=[100] * 6,
    end_widths=[3, 1, 3, 3, 1, 3],
    end_centers=np.array([-6, -5, -4, 4, 5, 6]) * 5,
    end_lengths=[20] * 6,
    distance=250,
    port_names=["G1", "SL", "G2", "G2B", "SR", "G3"],
)
rf.Layout().visualize(annotate=True)
../../../../../../../../../_images/example_gsgsg_pad.png