**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. .. image:: ../images/component1.png 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: 1. The ``local`` folder is used to store the GDS and SPC netlist files generated by the python scripts of bend devices (if the ``local`` folder does not exist, it will be generated automatically after running the python source code of the device). 2. The test folder can be ignored by users for the time being. 3. 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. .. image:: ../images/component2.png Passive components ------------------------------------------- +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | | | | | | | No. | Cell Name | Key Parameters | Default WG | Layout | +========+=============================+=====================================================================================================================================================================================================================================+============================+==============================================+ | 1 | BendBezier | start, controls, end, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive1.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 2 | BendCircular | degrees, radius, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive2.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 3 | BendEuler | degrees, radius_min, p, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive3.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 4 | Ycombiner | bend_radius, out_degrees, center_waveguide_length, taper_length, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive4.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 5 | ContactHole | num_sides, top_width, tin_width, bottom_width, via_width, port_names | | .. image:: ../images/passive5.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 6 | DirectionalCouplerBend | coupler_spacing, coupler_length, bend_radius, straight_after_bend, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive6.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 7 | DCHalfRingStraight | coupler_spacing, coupler_length, bend_radius, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive7.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 8 | DirectionalCouplerSBend| coupler_spacing, coupler_length, bend_radius, bend_degrees, straight_after_bend, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive8.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 9 | Fixed_Edge_Coupler | | FWG.C.WIRE | .. image:: ../images/passive9.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 10 | Fixed_MH_TE_1550 | | | .. image:: ../images/passive10.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 11 | Fixed_Terminator_TE_1550 | length, waveguide_type, anchor | FWG.C.WIRE | .. image:: ../images/passive11.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 12 | GratingCoupler | length, half_degrees, ellipse_ratio, tooth_width, etch_width, teeth, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive12.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 13 | SiHeater | length, half_metal_width, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive13.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 14 | TiNHeater | waveguide_length, tin_length, tin_width, tin_box_size, metal_box_size, contact_box_size, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive14.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 15 | RingResonator | ring_radius, top_spacing, bottom_spacing, ring_type, top_type, bottom_type, port_names | FWG.C.WIRE | .. image:: ../images/passive15.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 16 | SBendCircular | distance, height, min_radius, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive16.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 17 | SBend | distance, height, bend_degrees, max_distance, bend_factory, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive17.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 18 | Ysplitter | bend_radius, out_degrees, center_waveguide_length, taper_length, waveguide_type, port_names | FWG.C.WIRE | .. image:: ../images/passive18.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 19 | Straight | length, waveguide_type, anchor, port_names | FWG.C.WIRE | .. image:: ../images/passive19.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 20 | TaperLinear | length, left_type, right_type, anchor, port_names | FWG.C.WIRE | .. image:: ../images/passive20.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | | | | (left)FWG.C.WIRE, | .. image:: ../images/passive21.png | | 21 | TaperParabolic | length, left_type, right_type, step, anchor, port_names | (right)FWG.C.EXPANDED | | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | | | | FWG.C.WIRE , | .. image:: ../images/passive22.png | | 22 | FWG2MWGTransition | length, wire_only_length, deep_only_width, fwg_type, mwg_type, anchor, port_names | MWG.C.WIRE | | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | | FWG2SWGTransition | | FWG.C.WIRE , | .. image:: ../images/passive23.png | | 23 | | length, wire_only_length, deep_only_width, fwg_type, swg_type, anchor, port_names | MWG.C.WIRE | | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | | SWG2MWGTransition | | SWG.C.WIRE , | .. image:: ../images/passive24.png | | 24 | | 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 | 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 | | .. image:: ../images/passive25.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 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 | | .. image:: ../images/passive26.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 27 | Spiral | bend_radius, min_straight, spacing, total_length, n_o_loops, waveguide_type, port_names, | FWG.C.WIRE | .. image:: ../images/passive27.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 28 | BondPad | pad_width, pad_height, port_names | | .. image:: ../images/passive28.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 29 | Via | top_layer, via_layer, bottom_layer, top_shape, via_shape, bottom_shape, port_names | | .. image:: ../images/passive29.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ | 30 | Vias | width, height, spacing, top_layer, via_layer, bottom_layer, port_names | | .. image:: ../images/passive30.png | +--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+----------------------------------------------+ Active components ------------------------------------------- +--------+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------+ | | | | | | | No. | Cell Name | Key Parameters | Default WG | Layout | +========+=========================+===============================================================================================================================================================================================+===============+===============================================================================================+ | | | | | .. image:: ../images/active1.png | | 1 | Fixed_Photo_Detector | | | | +--------+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------+ | | | | | .. image:: ../images/active2.png | | 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 | | | +--------+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------+ | | | | | | | | TW_Mzm | | | .. image:: ../images/active3.png | | 3 | | 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 | | | | | | | | | +--------+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------+ | | | | | .. image:: ../images/active4.png | | 4 | PnPhaseShifter | p_width, n_width, np_offset, wg_length, waveguide_type, port_names | | | +--------+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------+ | | | | | .. image:: ../images/active5.png | | 5 | RingFilter | ring_radius, gap, gap_monitor, waveguide_type, port_names | FWG.C.WIRE | | +--------+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------+ | | | | | .. image:: ../images/active6.png | | 6 | RingModulator | gap_monitor, gap, ring_radius, waveguide_type, ring_filter, ports | FWG.C.WIRE | | +--------+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------+