Components: gpdk built-in components
The components folder in gpdk holds all Python scripts for parametric component layout units, where each type of parametric component unit is stored in a subfolder named after the component unit, such as bend, bondpad, combiner, and other component subfolders.
Each single component subfolder within the components folder contains the Python script source code for that class of component.
Take the bend folder as an example:
The
localfolder is used to store the GDS and SPC netlist files generated by the python scripts of bend devices (if thelocalfolder does not exist, it will be generated automatically after running the python source code of the device).The test folder can be ignored by users for the time being.
The red arrows in the figure below show the python source code of three different types of bends, users can try to run the source code to experience its’ functions.
Passive components
No. |
Cell Name |
Key Parameters |
Default WG |
Layout |
|---|---|---|---|---|
1 |
BendBezier |
start, controls, end, waveguide_type, port_names |
FWG.C.WIRE |
|
2 |
BendCircular |
degrees, radius, waveguide_type, port_names |
FWG.C.WIRE |
|
3 |
BendEuler |
degrees, radius_min, p, waveguide_type, port_names |
FWG.C.WIRE |
|
4 |
Ycombiner |
bend_radius, out_degrees, center_waveguide_length, taper_length, waveguide_type, port_names |
FWG.C.WIRE |
|
5 |
ContactHole |
num_sides, top_width, tin_width, bottom_width, via_width, port_names |
|
|
6 |
DirectionalCouplerBend |
coupler_spacing, coupler_length, bend_radius, straight_after_bend, waveguide_type, port_names |
FWG.C.WIRE |
|
7 |
DCHalfRingStraight |
coupler_spacing, coupler_length, bend_radius, waveguide_type, port_names |
FWG.C.WIRE |
|
8 |
DirectionalCouplerSBend |
coupler_spacing, coupler_length, bend_radius, bend_degrees, straight_after_bend, waveguide_type, port_names |
FWG.C.WIRE |
|
9 |
Fixed_Edge_Coupler |
FWG.C.WIRE |
|
|
10 |
Fixed_MH_TE_1550 |
|
||
11 |
Fixed_Terminator_TE_1550 |
length, waveguide_type, anchor |
FWG.C.WIRE |
|
12 |
GratingCoupler |
length, half_degrees, ellipse_ratio, tooth_width, etch_width, teeth, waveguide_type, port_names |
FWG.C.WIRE |
|
13 |
SiHeater |
length, half_metal_width, waveguide_type, port_names |
FWG.C.WIRE |
|
14 |
TiNHeater |
waveguide_length, tin_length, tin_width, tin_box_size, metal_box_size, contact_box_size, waveguide_type, port_names |
FWG.C.WIRE |
|
15 |
RingResonator |
ring_radius, top_spacing, bottom_spacing, ring_type, top_type, bottom_type, port_names |
FWG.C.WIRE |
|
16 |
SBendCircular |
distance, height, min_radius, waveguide_type, port_names |
FWG.C.WIRE |
|
17 |
SBend |
distance, height, bend_degrees, max_distance, bend_factory, waveguide_type, port_names |
FWG.C.WIRE |
|
18 |
Ysplitter |
bend_radius, out_degrees, center_waveguide_length, taper_length, waveguide_type, port_names |
FWG.C.WIRE |
|
19 |
Straight |
length, waveguide_type, anchor, port_names |
FWG.C.WIRE |
|
20 |
TaperLinear |
length, left_type, right_type, anchor, port_names |
FWG.C.WIRE |
|
21 |
TaperParabolic |
length, left_type, right_type, step, anchor, port_names |
(left)FWG.C.WIRE, (right)FWG.C.EXPANDED |
|
22 |
FWG2MWGTransition |
length, wire_only_length, deep_only_width, fwg_type, mwg_type, anchor, port_names |
FWG.C.WIRE , MWG.C.WIRE |
|
23 |
FWG2SWGTransition |
length, wire_only_length, deep_only_width, fwg_type, swg_type, anchor, port_names |
FWG.C.WIRE , MWG.C.WIRE |
|
24 |
SWG2MWGTransition |
swg_length, swg_wire_only_length, swg_deep_only_width, swg_type, mwg_length, mwg_wire_only_length, mwg_wire_only_length, mwg_deep_only_width, mwg_type, anchor, port_names |
SWG.C.WIRE , MWG.C.WIRE |
|
25 |
CompScan |
max_lines, blocks, width, spacing, bend_degrees, bend_factory, bend_factories, waveguide_type connection_type, device_connection_length, min_io_connection_length |
|
|
26 |
HFanout |
device, left_spacing, right_spacing, bend_degrees, bend_factories, device_left_ports, device_right_ports, left_distance, right_distance, left_ports, right_ports, left_waveguide_type, right_waveguide_type, connect_length |
|
|
27 |
Spiral |
bend_radius, min_straight, spacing, total_length, n_o_loops, waveguide_type, port_names, |
FWG.C.WIRE |
|
28 |
BondPad |
pad_width, pad_height, port_names |
|
|
29 |
Via |
top_layer, via_layer, bottom_layer, top_shape, via_shape, bottom_shape, port_names |
|
|
30 |
Vias |
width, height, spacing, top_layer, via_layer, bottom_layer, port_names |
|
Active components
No. |
Cell Name |
Key Parameters |
Default WG |
Layout |
|---|---|---|---|---|
1 |
Fixed_Photo_Detector |
|
||
2 |
Mzm |
p_width, n_width, np_offset, wg_length, phase_shifter_spacing, splitter_wg_length, waveguide_type, pn_phase_shifter_0, pn_phase_shifter_1, y_splitter, y_combiner, port_names |
|
|
3 |
TW_Mzm |
modulator_length, delta, ground_width, signal_width, metal_spacing, delay, additional_length, pad_width, pad_length, taper_length, period_pad, waveguide_type, mzm_default, port_names |
|
|
4 |
PnPhaseShifter |
p_width, n_width, np_offset, wg_length, waveguide_type, port_names |
|
|
5 |
RingFilter |
ring_radius, gap, gap_monitor, waveguide_type, port_names |
FWG.C.WIRE |
|
6 |
RingModulator |
gap_monitor, gap, ring_radius, waveguide_type, ring_filter, ports |
FWG.C.WIRE |
|