Use the bar below to search through all publically available RAIMAD components. You can filter by package name and/or tag.
Please note, RAIMAD packages, just like all python packages, can run arbitrary code on your computer.
A rectangle defined by length and width.
| Option | Type | Description | Default |
|---|---|---|---|
| length | <class 'float'> | Length of rectangle | str |
| width | <class 'float'> | Width of rectangle | str |
A rectangle defined by two points and a thickness.
| Option | Type | Description | Default |
|---|---|---|---|
| p1 | <class 'raimad.types.Vec2'> | First point | str |
| p2 | <class 'raimad.types.Vec2'> | Second point | str |
| width | float | int | typing.SupportsFloat | Thickness | str |
A polygon that approximates a circle.
| Option | Type | Description | Default |
|---|---|---|---|
| radius | <class 'float'> | Circle radius | str |
| num_points | <class 'int'> | Number of points | str |
Annular Sector.
A polygon approximating an annular sector,
or, in working men's terms, a "pizza crust".
An ansec is defined by two radii and two angles:
the inner radius r1, the outter radius r2,
the starting angle theta1 and the end angle theta2.
Helper functions are available to construct ansecs
from different measurements.
| Option | Type | Description | Default |
|---|---|---|---|
| r1 | <class 'float'> | Inner radius | str |
| r2 | <class 'float'> | Outter radius | str |
| theta1 | <class 'float'> | Angle 1 | str |
| theta2 | <class 'float'> | Angle 2 | str |
A polygon that you can defined on-the fly.
#TODO add example
| Option | Type | Description | Default |
|---|---|---|---|
| points | typing.Sequence[tuple[float, float] | tuple[str, tuple[float, float]]] | A list of points for the polygon | str |
A sample component.
| Option | Type | Description | Default |
|---|---|---|---|
| nose_length | <class 'float'> | Length of nose | str |
| eye_size | <class 'float'> | Eye radius | str |
Frowney
A sad example component
| Option | Type | Description | Default |
|---|---|---|---|
| happiness | <class 'float'> | Happiness, from -10 to 10 | str |
| eye_size | <class 'float'> | Eye radius | str |
A smiley face component
| Option | Type | Description | Default |
|---|---|---|---|
| happiness | <class 'float'> | Happiness, from -10 to 10 | str |
| eye_size | <class 'float'> | Eye radius | str |
Test Pattern
This is another example component inspired by Leon's work with
test patterns for ebeam.
| Option | Type | Description | Default |
|---|---|---|---|
| num_rects | <class 'int'> | Number of rectangles on each side | str |
| rect_width | <class 'float'> | Width of each rectangle on left side | str |
| rect_length | <class 'float'> | Length of each of rectangle on left side | str |
| gap_width | <class 'float'> | Width of gap between each rectangle on left side | str |
| abberation | <class 'float'> | Scale of right side compared to left (a value of 1 = same size) | str |
Test Patterns
Test component consisting of multiple test patterns in differnet positions.
| Option | Type | Description | Default |
|---|
None
| Option | Type | Description | Default |
|---|---|---|---|
| length | <class 'float'> | length of segment | str |
| signal_width | <class 'float'> | width of signal line | str |
| gap_width | <class 'float'> | width of gaps between signal line and gnd lines | str |
| gnd_width | <class 'float'> | width of gnd lines | str |
| resist_margin | <class 'float'> | shrink width of resist on either side of segment by this much | str |
None
| Option | Type | Description | Default |
|---|---|---|---|
| signal_width | <class 'float'> | width of signal line | str |
| gap_width | <class 'float'> | width of gaps between signal line and gnd lines | str |
| gnd_width | <class 'float'> | width of gnd lines | str |
| resist_margin | <class 'float'> | shrink width of resist on either side of segment by this much | str |
| bend_radius | <class 'float'> | Radius from bend center to middle of signal line | str |
| dtheta | <class 'float'> | Arc length of bend (radians) | str |
Tapered CPW (positive image).
Adapted from cpw:CPWSegment
|----- l ------|
__ _
__-- | |
__-- | | gr1
_ __-- __| |_
gl1 | | ___--- | wr1
_| |___--- ____ |_
wl1 _| _____----- | |
sl | | | |
_| |_____ | | sr
wl2 _| ___ -----____| |_
sl2 | | ---___ | wr2
_| |__ ---__ |_
--__ | |
--__ | | gr2
--__| |_
| Option | Type | Description | Default |
|---|---|---|---|
| l | <class 'float'> | length of segment | str |
| sl | <class 'float'> | width of signal line on the left | str |
| sr | <class 'float'> | width of signal line on the right | str |
| wl1 | <class 'float'> | width of top gap on the left | str |
| wr1 | <class 'float'> | width of top gap on the right | str |
| gl1 | <class 'float'> | width of top ground line on the left | str |
| gr1 | <class 'float'> | width of top ground line on the right | str |
| wl2 | float | None | width of bottom gap on the left (None to use wl1) | str |
| wr2 | float | None | width of bottom gap on the right (None to use wr1) | str |
| gl2 | float | None | width of bottom ground line on the left (None to use gl1) | str |
| gr2 | float | None | width of bottom ground line on the right (None to use gr1) | str |
None
| Option | Type | Description | Default |
|---|---|---|---|
| length | <class 'float'> | length of segment | str |
| signal_width | <class 'float'> | width of signal line | str |
| gap_width | <class 'float'> | width of gaps between signal line and gnd lines | str |
None
| Option | Type | Description | Default |
|---|---|---|---|
| signal_width | <class 'float'> | width of signal line | str |
| gap_width | <class 'float'> | width of gaps between signal line and gnd lines | str |
| bend_radius | <class 'float'> | Radius from bend center to middle of signal line | str |
| dtheta | <class 'float'> | Arc length of bend (radians) | str |
Generate 2D polygons of symbols.
Contains
Letters: A-Z (small letters are capitalized)
Numbers: 0-9
And a selection op special symbols
Inspired by the KLayout font
| Option | Type | Description | Default |
|---|---|---|---|
| string | <class 'str'> | Text displayed by the function | str |
| scale | <class 'float'> | Size scaling of the text | str |
Merges all elements in a rai.Compo layer into a new compo (fuses overlapping elements together)
compo: rai.Compo
layer: str
| Option | Type | Description | Default |
|---|---|---|---|
| compo | <class 'raimad.compo.Compo'> | the subject compo | <Compo: Circle> |
| layer | <class 'str'> | Specifies the layer of the subject compo | str |
Layer_Merge: creates a single layer rai.Compo of the union between compo layers A and B (A OR B)
compo_1: rai.Compo
compo_2: rai.Compo
layer_1: str
layer_2: str
| Option | Type | Description | Default |
|---|---|---|---|
| compo_1 | <class 'raimad.compo.Compo'> | Specifies the first compo | <Compo: RectLW> |
| compo_2 | <class 'raimad.compo.Compo'> | Specifies the second compo | <Compo: RectLW> |
| layer_1 | <class 'str'> | Specifies the layer of the first compo | str |
| layer_2 | <class 'str'> | Specifies the layer of the second compo | str |
Layer_Difference: creates a single layer rai.Compo of the difference between compo layers A and B (A NOT B)
Creates a component reflecting the difference of layers A an B (A and not B)
compo_1: rai.Compo
compo_2: rai.Compo
layer_1: str
layer_2: str
| Option | Type | Description | Default |
|---|---|---|---|
| compo_1 | <class 'raimad.compo.Compo'> | Specifies the first compo | <Compo: RectLW> |
| compo_2 | <class 'raimad.compo.Compo'> | Specifies the second compo | <Compo: RectLW> |
| layer_1 | <class 'str'> | Specifies the layer of the first compo | str |
| layer_2 | <class 'str'> | Specifies the layer of the second compo | str |
Layer_Intersection: creates a single layer rai.Compo of the intersection between compo layers A and B (A AND B)
compo_1: rai.Compo
compo_2: rai.Compo
layer_1: str
layer_2: str
| Option | Type | Description | Default |
|---|---|---|---|
| compo_1 | <class 'raimad.compo.Compo'> | Specifies the first compo | <Compo: RectLW> |
| compo_2 | <class 'raimad.compo.Compo'> | Specifies the second compo | <Compo: RectLW> |
| layer_1 | <class 'str'> | Specifies the layer of the first compo | str |
| layer_2 | <class 'str'> | Specifies the layer of the second compo | str |
A rudimentary ruler shape
| Option | Type | Description | Default |
|---|---|---|---|
| width | <class 'float'> | width of the standard bars | str |
| length | <class 'float'> | length of the standard bar | str |
| gap | <class 'float'> | size of the gap between two bars | str |
| number_of_bars | <class 'int'> | total number of bars, needs to be odd (due to center bar) | str |
| zero_bar_ratio | <class 'float'> | ratio of the length of the center bar (zero-bar) and standard bar | str |
| indicator_bar_ratio | <class 'float'> | ratio of the length of the indicator bars and standard bar | str |
| indicator_number | <class 'int'> | occurrance of the indicator bar, every Nth bar is an indicator bar | str |
A marker measure misaligment between two layers along one axis
Requires: RAIText
| Option | Type | Description | Default |
|---|---|---|---|
| pitch | <class 'float'> | the distance between the heart of two bars in the first ruler | str |
| delta_pitch | <class 'float'> | the pitch difference between the two rulers | str |
| bar_length | <class 'float'> | length of the bar | str |
| number_of_bars | <class 'int'> | total number of bars in one ruler, needs to be odd due to center bar | str |
| layer_list | <class 'list'> | list of layer names used for label | str |
| labels | <class 'bool'> | states whether to make labels or not | str |
Standard marker used to quantify e-beam misalignments. Vernier for two orthogonal axis
| Option | Type | Description | Default |
|---|---|---|---|
| layer_list | <class 'list'> | contains the layer names of the two sides of the vernier pattern | str |
Standard marker used during optical alignment using mask alligner.
The patern has a standard shape
| Option | Type | Description | Default |
|---|---|---|---|
| layer_list | <class 'list'> | List of the layer names of the two layers | str |
| label | <class 'str'> | label on top right of marker | str |
A generator that builds components representing Logos. These are added manually.
Current list
TIFUUN, TIFUUN_icon, DESHIMA, DESHIMA_icon, SRON_old, TU_Delft, SRON
| Option | Type | Description | Default |
|---|---|---|---|
| Logo | <class 'str'> | Name or identifier of the logo | str |
Sample component to play around with the TL class
| Option | Type | Description | Default |
|---|
None
| Option | Type | Description | Default |
|---|
Two halves of the MSL structure joined together with a signal line
| Option | Type | Description | Default |
|---|
via-less MSL test chip draft.
| Option | Type | Description | Default |
|---|
This class provides a wafer as a base. The wafer is centred around 0,0.
One can provide the length of each flat as well as its corresponding angles (w.r.t. the bottom) as a list
The standard diameter is 100 mm (1e5 um)
The standard flat is 32.5 mm at the bottom
| Option | Type | Description | Default |
|---|---|---|---|
| diameter | <class 'float'> | specifies the diameter of the | str |
| flats | <class 'list'> | specifies the length of the flats | str |
| flat_angle | <class 'list'> | degrees, specifies the angle of the normal of the flat. | str |
Inverts one layer of a compo enclosed within another compo.
Use the rev_inner variable to change the walking order around the inner compo. (If it "fills" the inner compo)
| Option | Type | Description | Default |
|---|---|---|---|
| outer_compo | <class 'raimad.compo.Compo'> | outer Compo that that encloses the inner compos | <Compo: RectLW> |
| inner_compos | <class 'raimad.compo.Compo'> | inner Compo to in enclosed by the outer compo | <Compo: Circle> |
| outer_layer | <class 'str'> | specified layer-name of the outer compo | str |
| inner_layer | <class 'str'> | specified layer-name of the inner compo | str |
| rev_inner | <class 'bool'> | reverses the order in which the inner compo contour is followed (clockwise or anti-clockwise) | str |
Inverts one layer of a compo enclosed within another compo.
Use the reverse variable to change the walking order around the inner compo. (If it "fills" the inner compo)
Note: the reverse option reverses the order of the inner path; in case there are multiple objects in the inner compo, all elements are treated the same.
| Option | Type | Description | Default |
|---|---|---|---|
| outer_compo | <Empty> | outer Compo that that encloses the inner compos | str |
| inner_compos | <Empty> | inner Compo to in enclosed by the outer compo | str |
| outer_layer | <class 'str'> | specified layer-name of the outer compo | str |
| inner_layer | <class 'str'> | specified layer-name of the inner compo | str |
| reverse | <class 'bool'> | reverses the order in which the inner compo contour is followed (clockwise or anti-clockwise) | str |
A rudimentary ruler shape
| Option | Type | Description | Default |
|---|---|---|---|
| meander_width | <class 'float'> | height of the inductor stucture | str |
Parralel Place Capacitor KID used for measurement of dielectric materials
| Option | Type | Description | Default |
|---|---|---|---|
| meander_width | <class 'float'> | height of the inductor stucture | str |
| coupler_distance | <class 'float'> | Distance between top op coupler and GND close to readoutline | str |
Parralel Place Capacitor KID used for measurement of dielectric materials
| Option | Type | Description | Default |
|---|---|---|---|
| meander_width | <class 'float'> | height of the inductor stucture | str |
DC chip structure used to probe the resistance of a 'wide' line with relatively large length.
Allows for an inverted "pads" layer by changing the 'inverse_pads' variable.
| Option | Type | Description | Default |
|---|---|---|---|
| total_width | <class 'float'> | total width of the DC structure | str |
| bridge_length | <class 'float'> | length of the freestanding bridge arm of the DC structure | str |
| bridge_width | <class 'float'> | width of the bridge line | str |
| inverse_pads | <class 'bool'> | States whether to invert the layer containing the pads (changing polarity) | str |
| bridge_layer | <class 'str'> | Uses the given string to use in the DC structure label | str |
DC chip structure used to probe the resistance of a 'narrow' line with relatively small length on top of a slab of non-conductive material."
Allows for an inverted "pads" layer by changing the 'inverse_pads' variable.
| Option | Type | Description | Default |
|---|---|---|---|
| inverse_pads | <class 'bool'> | States whether to invert the layer containing the pads (changing polarity) | str |
| bridge_layer | <class 'str'> | Uses the given string to use in the DC structure label | str |
| bridge_length | <class 'float'> | length of the freestanding bridge line | str |
| bridge_width | <class 'float'> | width of the bridge line | str |
| total_width | <class 'float'> | total width of one side of the DC structure | str |
| step_length | <class 'float'> | the length of the steps connecting the pads with the central bridge | str |
| step_width | <class 'float'> | the width of the steps connecting the pads with the central bridge | str |
| slab | <class 'bool'> | states whether to generate a slab underneath the bridge of an intermediate layer | str |
| slab_length | <class 'float'> | states the length of the slab | str |
| slab_width | <class 'float'> | states the width of the slab | str |
| margin | <class 'float'> | states how far the steps are positioned w.r.t. each other. A larger margin is a larger spacing | str |
DC chip structure used to probe the resistance of a 'narrow' line with relatively small length.
Allows for an inverted "pads" layer by changing the 'inverse_pads' variable.
| Option | Type | Description | Default |
|---|---|---|---|
| inverse_pads | <class 'bool'> | States whether to invert the layer containing the pads (changing polarity) | str |
| bridge_layer | <class 'str'> | Uses the given string to use in the DC structure label | str |
| bridge_length | <class 'float'> | length of the freestanding bridge line | str |
| bridge_width | <class 'float'> | width of the bridge line | str |
| total_width | <class 'float'> | total width of one side of the DC structure | str |
| step_length | <class 'float'> | the length of the steps connecting the pads with the central bridge | str |
| step_width | <class 'float'> | the width of the steps connecting the pads with the central bridge | str |
| margin | <class 'float'> | states how far the steps are positioned w.r.t. each other. A larger margin is a larger spacing | str |
Standard bondpad object, used as a point to wire bond a chip to the chip holder.
Customizable dimensions of the bondpad. Allows for a bonding material layer on top of the bondpad.
Can be used for both CPW ("trench" mode) and microstrip bondpad
| Option | Type | Description | Default |
|---|---|---|---|
| slope_length | <class 'float'> | length of the slope from the pad to the smallest width / to the connecting line | str |
| line_width | <class 'float'> | the width of the connecting line | str |
| pad_trench_width | <class 'float'> | the width of the trench surrounding the pad | str |
| line_trench_width | <class 'float'> | the width of the trench near the smalles point | str |
| pad_size | <class 'float'> | the size of the pad | str |
| mode | <class 'str'> | specifies CPW ('trench') or microstrip mode | str |
Alignment tool, used for aligning a mask with the flat of a wafer
| Option | Type | Description | Default |
|---|---|---|---|
| flat_length | <class 'float'> | total lenght of the wafer flat alligner | str |
| number_of_knots | <class 'int'> | number of knots (wide rectangular linepiece) along the aligner | str |
Alignment tool, used for aligning a mask with the contour of a wafer using a ruler-shaped object
| Option | Type | Description | Default |
|---|---|---|---|
| knot_spacing | <class 'float'> | Spacing between the hearts of each knot (line widening) | str |
| back_length | <class 'float'> | Total length of the base of the ruler | str |
| back_height | <class 'float'> | Width of the base of the ruler | str |
None
| Option | Type | Description | Default |
|---|
None
| Option | Type | Description | Default |
|---|