Folder structure simplfied
This commit is contained in:
@@ -12,9 +12,24 @@ from ...electronics import Vias
|
||||
|
||||
|
||||
class Heater_NDoped():
|
||||
'''
|
||||
This is the class for N-doped heater as a phase shifter.
|
||||
'''
|
||||
"""
|
||||
This is the class for N-doped heater as a phase shifter.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
slab_width : float, optional
|
||||
Value for the slab_width parameter. Default is 1.1.
|
||||
heater_length : int, optional
|
||||
Value for the heater_length parameter. Default is 100.
|
||||
heater_width : int, optional
|
||||
Value for the heater_width parameter. Default is 1.
|
||||
if_open : bool, optional
|
||||
Value for the if_open parameter. Default is True.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(
|
||||
self,
|
||||
w_wg: float=0.45,
|
||||
@@ -197,9 +212,30 @@ class Heater_NDoped():
|
||||
|
||||
class PS_PIN() :
|
||||
|
||||
'''
|
||||
PIN junction for a high-speed phase shift.
|
||||
'''
|
||||
"""
|
||||
PIN junction for a high-speed phase shift.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
w_wg_slab : float, optional
|
||||
Width parameter in microns. Default is 0.5.
|
||||
w_slab : float, optional
|
||||
Width parameter in microns. Default is 1.
|
||||
l_wg : float, optional
|
||||
Value for the l_wg parameter. Default is 800.
|
||||
d2wg_list : list, optional
|
||||
Value for the d2wg_list parameter. Default is [0.2, 1].
|
||||
p_layer_list : list, optional
|
||||
Value for the p_layer_list parameter. Default is ['PW', 'PP'].
|
||||
n_layer_list : list, optional
|
||||
Value for the n_layer_list parameter. Default is ['NW', 'NP'].
|
||||
w_plus_max : float, optional
|
||||
Width parameter in microns. Default is 5.1.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
"""
|
||||
def __init__(
|
||||
self,
|
||||
w_wg: float=0.45,
|
||||
|
||||
@@ -10,6 +10,66 @@ import nazca.interconnects as IC
|
||||
from ...basic import __list_convert__,__array_convert__
|
||||
|
||||
class waveguide_PIN:
|
||||
"""
|
||||
waveguide PIN primitive component.
|
||||
|
||||
This component builds the waveguide PIN layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
xs : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'rib'.
|
||||
L_wg : float, optional
|
||||
Length parameter in microns. Default is 100.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 1.2.
|
||||
xs_pn_ct : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip_cor'.
|
||||
w_itr : float, optional
|
||||
Width parameter in microns. Default is 2.0.
|
||||
w_p : float, optional
|
||||
Width parameter in microns. Default is 4.0.
|
||||
w_n : float, optional
|
||||
Width parameter in microns. Default is 4.0.
|
||||
w_p_ct : float, optional
|
||||
Width parameter in microns. Default is 4.0.
|
||||
w_n_ct : float, optional
|
||||
Width parameter in microns. Default is 4.0.
|
||||
xs_heater : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'heater'.
|
||||
xs_via_h2m : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'via_h2m'.
|
||||
w_metal_pn : float, optional
|
||||
Width parameter in microns. Default is 8.
|
||||
sz_via_i2m : float, optional
|
||||
Value for the sz_via_i2m parameter. Default is 0.25.
|
||||
sp_via_i2m : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.35.
|
||||
sp_sc : float, optional
|
||||
Spacing or gap parameter in microns. Default is 1.
|
||||
xs_p : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'pw'.
|
||||
xs_n : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'nw'.
|
||||
xs_pcont : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'pp'.
|
||||
xs_ncont : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'np'.
|
||||
xs_sa : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'sa'.
|
||||
xs_via_s2m : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'via_s2m'.
|
||||
xs_metal : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
rib_taper : bool, optional
|
||||
Value for the rib_taper parameter. Default is True.
|
||||
L_taper : float, optional
|
||||
Length parameter in microns. Default is 30.
|
||||
xs_port : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is True.
|
||||
"""
|
||||
def __init__(self,
|
||||
xs: str="rib", ## note, this xsection cannot directly mixed iwth 'rib'
|
||||
L_wg: float = 100,
|
||||
@@ -183,6 +243,58 @@ class waveguide_PIN:
|
||||
|
||||
|
||||
class WGDoped():
|
||||
"""
|
||||
WGDoped primitive component.
|
||||
|
||||
This component builds the WGDoped layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.5.
|
||||
w_port : float, optional
|
||||
Width parameter in microns. Default is 0.5.
|
||||
Ltp_port : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
L_wg : int, optional
|
||||
Length parameter in microns. Default is 200.
|
||||
xs_wg : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'rib'.
|
||||
xs_n : list, optional
|
||||
Layer or cross-section name used by the device. Default is ['nld', 'np'].
|
||||
xs_p : list, optional
|
||||
Layer or cross-section name used by the device. Default is ['pld', 'pp'].
|
||||
w_n : list, optional
|
||||
Width parameter in microns. Default is [0.5, 1].
|
||||
w_p : list, optional
|
||||
Width parameter in microns. Default is [0.5, 1].
|
||||
w_ht : float, optional
|
||||
Width parameter in microns. Default is 0.
|
||||
L_ht : Any, optional
|
||||
Length parameter in microns. Default is None.
|
||||
xs_ht : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'heater'.
|
||||
w_mt : Optional[float], optional
|
||||
Width parameter in microns. Default is None.
|
||||
xs_mt : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
xs_cont_wg : Optional[str], optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
w_i : Optional[float], optional
|
||||
Width parameter in microns. Default is None.
|
||||
dope_offset : int, optional
|
||||
Value for the dope_offset parameter. Default is 0.
|
||||
via_s2m : Any, optional
|
||||
Value for the via_s2m parameter. Default is None.
|
||||
via_h2m : Any, optional
|
||||
Via definition used between heater and metal layers. Default is None.
|
||||
dope_ovlp : float, optional
|
||||
Value for the dope_ovlp parameter. Default is 0.2.
|
||||
cell_xs_transition : Any, optional
|
||||
Cell or component dependency used by this device. Default is None.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str]=None,
|
||||
w_wg: float = 0.5,
|
||||
|
||||
@@ -8,7 +8,7 @@ from ...electronics.eic_units import Vias_arc
|
||||
|
||||
from ..pic.taper import taper_xs2xs
|
||||
|
||||
from ...structures import *
|
||||
from ...geometry import *
|
||||
import nazca.interconnects as IC
|
||||
|
||||
class Route(IC.Interconnect):
|
||||
@@ -26,6 +26,114 @@ from ...basic import __list_convert__,__array_convert__
|
||||
""" This is used within the situation that double side is the same, and concentric coupling """
|
||||
""" Refreshed 2023.09.14 """
|
||||
class AED_Ring_PIN(MRR_AED): ## Finished in 2022.11.23
|
||||
"""
|
||||
AED Ring PIN primitive component.
|
||||
|
||||
This component builds the AED Ring PIN layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
ORx : float, optional
|
||||
Value for the ORx parameter. Default is 10.
|
||||
ORy : float, optional
|
||||
Value for the ORy parameter. Default is 9.
|
||||
IRx : float, optional
|
||||
Value for the IRx parameter. Default is 10 - 0.65.
|
||||
IRy : float, optional
|
||||
Value for the IRy parameter. Default is 9 - 0.4.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.2.
|
||||
dual_BUS : bool, optional
|
||||
Value for the dual_BUS parameter. Default is False.
|
||||
w_bus : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
R_cp : Any, optional
|
||||
Radius parameter in microns. Default is None.
|
||||
A_cp : int, optional
|
||||
Angle parameter in degrees. Default is 0.
|
||||
offset_X : float, optional
|
||||
Value for the offset_X parameter. Default is 0.
|
||||
offset_Y : float, optional
|
||||
Value for the offset_Y parameter. Default is 0.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
R_att : float, optional
|
||||
Radius parameter in microns. Default is 20.
|
||||
R_att_min : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
A_att : float, optional
|
||||
Angle parameter in degrees. Default is 30.
|
||||
Ltp_bus : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
dL_p2p : Optional[float], optional
|
||||
Value for the dL_p2p parameter. Default is None.
|
||||
L_tilt : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
xs_ring : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
sharp_patch : bool, optional
|
||||
Whether to add geometry patches for sharp corners or cladding continuity. Default is True.
|
||||
Euler_trasition : bool, optional
|
||||
Value for the Euler_trasition parameter. Default is False.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
xs_heater : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'heater'.
|
||||
w_heater : float, optional
|
||||
Width parameter in microns. Default is 0.
|
||||
xs_metal : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
w_metal : float, optional
|
||||
Width parameter in microns. Default is 8.
|
||||
via_h2m : Any, optional
|
||||
Via definition used between heater and metal layers. Default is None.
|
||||
isl : Any, optional
|
||||
Isolation-trench definition used by the electrical layout. Default is None.
|
||||
A_ht : float, optional
|
||||
Angle parameter in degrees. Default is 270.
|
||||
ht_notch_dual : bool, optional
|
||||
Value for the ht_notch_dual parameter. Default is True.
|
||||
epin_ht_dX : int, optional
|
||||
Value for the epin_ht_dX parameter. Default is 10.
|
||||
epin_ht_dY : int, optional
|
||||
Value for the epin_ht_dY parameter. Default is 3.
|
||||
via_i2m : Any, optional
|
||||
Via definition used between implant and metal layers. Default is None.
|
||||
xs_metal_imp : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
xs_p : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'p'.
|
||||
xs_n : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'n'.
|
||||
xs_cont_wg : Optional[str], optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
w_p : float, optional
|
||||
Width parameter in microns. Default is 3.0.
|
||||
gap_p_i : float, optional
|
||||
Spacing or gap parameter in microns. Default is 1.
|
||||
gap_n_i : float, optional
|
||||
Spacing or gap parameter in microns. Default is 1.
|
||||
w_n : float, optional
|
||||
Width parameter in microns. Default is 3.0.
|
||||
offset_i : float, optional
|
||||
Value for the offset_i parameter. Default is 0.
|
||||
A_imp_in : int, optional
|
||||
Angle parameter in degrees. Default is 180.
|
||||
A_imp_out : int, optional
|
||||
Angle parameter in degrees. Default is 180.
|
||||
sp_cont : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.2.
|
||||
w_ovlp : float, optional
|
||||
Width parameter in microns. Default is 0.1.
|
||||
bus_dopping : bool, optional
|
||||
Value for the bus_dopping parameter. Default is True.
|
||||
p_in_n_out : bool, optional
|
||||
Value for the p_in_n_out parameter. Default is False.
|
||||
cell_xs_transition : Any, optional
|
||||
Cell or component dependency used by this device. Default is None.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str]=None,
|
||||
ORx: float=10,
|
||||
@@ -579,6 +687,116 @@ class AED_Ring_PIN(MRR_AED): ## Finished in 2022.11.23
|
||||
|
||||
## Sub-classes for standard ring resonators
|
||||
class STD_Ring_PIN(AED_Ring_PIN):
|
||||
"""
|
||||
STD Ring PIN primitive component.
|
||||
|
||||
This component builds the STD Ring PIN layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str
|
||||
Unique identifier for the device cell.
|
||||
r_ring : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
w_ring : float, optional
|
||||
Width parameter in microns. Default is 0.55.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.2.
|
||||
dual_BUS : bool, optional
|
||||
Value for the dual_BUS parameter. Default is True.
|
||||
w_bus : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
R_cp : Any, optional
|
||||
Radius parameter in microns. Default is None.
|
||||
A_cp : int, optional
|
||||
Angle parameter in degrees. Default is 0.
|
||||
offset_X : float, optional
|
||||
Value for the offset_X parameter. Default is 0.
|
||||
offset_Y : float, optional
|
||||
Value for the offset_Y parameter. Default is 0.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
R_att : float, optional
|
||||
Radius parameter in microns. Default is 20.
|
||||
R_att_min : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
A_att : float, optional
|
||||
Angle parameter in degrees. Default is 30.
|
||||
Ltp_bus : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
dL_p2p : Optional[float], optional
|
||||
Value for the dL_p2p parameter. Default is None.
|
||||
L_tilt : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
xs_ring : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
sharp_patch : bool, optional
|
||||
Whether to add geometry patches for sharp corners or cladding continuity. Default is True.
|
||||
Euler_trasition : bool, optional
|
||||
Value for the Euler_trasition parameter. Default is False.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
xs_heater : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'heater'.
|
||||
w_heater : float, optional
|
||||
Width parameter in microns. Default is 0.
|
||||
xs_metal : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
w_metal : float, optional
|
||||
Width parameter in microns. Default is 8.
|
||||
via_h2m : Any, optional
|
||||
Via definition used between heater and metal layers. Default is None.
|
||||
isl : Any, optional
|
||||
Isolation-trench definition used by the electrical layout. Default is None.
|
||||
A_ht : float, optional
|
||||
Angle parameter in degrees. Default is 270.
|
||||
ht_notch_dual : bool, optional
|
||||
Value for the ht_notch_dual parameter. Default is True.
|
||||
epin_ht_dX : int, optional
|
||||
Value for the epin_ht_dX parameter. Default is 10.
|
||||
epin_ht_dY : int, optional
|
||||
Value for the epin_ht_dY parameter. Default is 3.
|
||||
xs_metal_imp : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
via_i2m : Any, optional
|
||||
Via definition used between implant and metal layers. Default is None.
|
||||
xs_p : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'p'.
|
||||
xs_n : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'n'.
|
||||
xs_cont_wg : Optional[str], optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
w_p : float, optional
|
||||
Width parameter in microns. Default is 3.
|
||||
gap_p_i : float, optional
|
||||
Spacing or gap parameter in microns. Default is 1.
|
||||
gap_n_i : float, optional
|
||||
Spacing or gap parameter in microns. Default is 1.
|
||||
w_n : float, optional
|
||||
Width parameter in microns. Default is 3.
|
||||
offset_i : float, optional
|
||||
Value for the offset_i parameter. Default is 0.
|
||||
A_imp_in : int, optional
|
||||
Angle parameter in degrees. Default is 180.
|
||||
A_imp_out : int, optional
|
||||
Angle parameter in degrees. Default is 180.
|
||||
xs_pcont : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'pp'.
|
||||
xs_ncont : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'np'.
|
||||
w_pcont : float, optional
|
||||
Width parameter in microns. Default is 3.
|
||||
w_ncont : float, optional
|
||||
Width parameter in microns. Default is 3.
|
||||
sp_cont : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.2.
|
||||
w_ovlp : float, optional
|
||||
Width parameter in microns. Default is 0.2.
|
||||
bus_dopping : bool, optional
|
||||
Value for the bus_dopping parameter. Default is True.
|
||||
p_in_n_out : bool, optional
|
||||
Value for the p_in_n_out parameter. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: str,
|
||||
r_ring: float=10,
|
||||
@@ -676,10 +894,6 @@ class STD_Ring_PIN(AED_Ring_PIN):
|
||||
A_imp_in = A_imp_in,
|
||||
A_imp_out = A_imp_out,
|
||||
|
||||
xs_pcont = xs_pcont,
|
||||
xs_ncont = xs_ncont,
|
||||
w_pcont = w_pcont,
|
||||
w_ncont = w_ncont,
|
||||
sp_cont = sp_cont,
|
||||
|
||||
w_ovlp = w_ovlp, ## overlapping area for doping
|
||||
@@ -691,6 +905,102 @@ class STD_Ring_PIN(AED_Ring_PIN):
|
||||
|
||||
## Sub-classed for allpass rings with Euler shape coupling
|
||||
class PIN_MRR_MM_Allpass(AED_Ring_PIN):
|
||||
"""
|
||||
PIN MRR MM Allpass primitive component.
|
||||
|
||||
This component builds the PIN MRR MM Allpass layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
r_ring : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
w_ring : float, optional
|
||||
Width parameter in microns. Default is 0.55.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.2.
|
||||
w_bus : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
R_cp : Any, optional
|
||||
Radius parameter in microns. Default is None.
|
||||
A_cp : int, optional
|
||||
Angle parameter in degrees. Default is 0.
|
||||
R_att : int, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
R_att_min : int, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
A_att : int, optional
|
||||
Angle parameter in degrees. Default is 10.
|
||||
offset_X : float, optional
|
||||
Value for the offset_X parameter. Default is 0.
|
||||
offset_Y : float, optional
|
||||
Value for the offset_Y parameter. Default is 0.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
Ltp_bus : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
dL_p2p : Optional[float], optional
|
||||
Value for the dL_p2p parameter. Default is None.
|
||||
xs_ring : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
sharp_patch : bool, optional
|
||||
Whether to add geometry patches for sharp corners or cladding continuity. Default is True.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
xs_heater : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'heater'.
|
||||
w_heater : float, optional
|
||||
Width parameter in microns. Default is 0.
|
||||
xs_metal : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
w_metal : float, optional
|
||||
Width parameter in microns. Default is 8.
|
||||
via_h2m : Any, optional
|
||||
Via definition used between heater and metal layers. Default is None.
|
||||
isl : Any, optional
|
||||
Isolation-trench definition used by the electrical layout. Default is None.
|
||||
A_ht : float, optional
|
||||
Angle parameter in degrees. Default is 270.
|
||||
ht_notch_dual : bool, optional
|
||||
Value for the ht_notch_dual parameter. Default is True.
|
||||
epin_ht_dX : int, optional
|
||||
Value for the epin_ht_dX parameter. Default is 10.
|
||||
epin_ht_dY : int, optional
|
||||
Value for the epin_ht_dY parameter. Default is 3.
|
||||
xs_metal_imp : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
via_i2m : Any, optional
|
||||
Via definition used between implant and metal layers. Default is None.
|
||||
xs_p : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'p'.
|
||||
xs_n : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'n'.
|
||||
xs_cont_wg : Optional[str], optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
w_p : float, optional
|
||||
Width parameter in microns. Default is 3.
|
||||
w_n : float, optional
|
||||
Width parameter in microns. Default is 3.
|
||||
w_i : float, optional
|
||||
Width parameter in microns. Default is 1.
|
||||
offset_i : float, optional
|
||||
Value for the offset_i parameter. Default is 0.
|
||||
A_imp_in : int, optional
|
||||
Angle parameter in degrees. Default is 180.
|
||||
A_imp_out : int, optional
|
||||
Angle parameter in degrees. Default is 180.
|
||||
sp_cont : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.2.
|
||||
w_ovlp : float, optional
|
||||
Width parameter in microns. Default is 0.2.
|
||||
bus_dopping : bool, optional
|
||||
Value for the bus_dopping parameter. Default is True.
|
||||
cell_xs_transition : Any, optional
|
||||
Cell or component dependency used by this device. Default is None.
|
||||
p_in_n_out : bool, optional
|
||||
Value for the p_in_n_out parameter. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str] = None,
|
||||
r_ring: float=10,
|
||||
@@ -803,6 +1113,102 @@ class PIN_MRR_MM_Allpass(AED_Ring_PIN):
|
||||
|
||||
## Sub-classed for allpass rings with Euler shape coupling
|
||||
class PIN_MRR_MM_Adddrop(AED_Ring_PIN):
|
||||
"""
|
||||
PIN MRR MM Adddrop primitive component.
|
||||
|
||||
This component builds the PIN MRR MM Adddrop layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
r_ring : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
w_ring : float, optional
|
||||
Width parameter in microns. Default is 0.55.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.2.
|
||||
w_bus : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
R_cp : Any, optional
|
||||
Radius parameter in microns. Default is None.
|
||||
A_cp : int, optional
|
||||
Angle parameter in degrees. Default is 0.
|
||||
R_att : int, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
R_att_min : int, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
A_att : int, optional
|
||||
Angle parameter in degrees. Default is 10.
|
||||
offset_X : float, optional
|
||||
Value for the offset_X parameter. Default is 0.
|
||||
offset_Y : float, optional
|
||||
Value for the offset_Y parameter. Default is 0.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
Ltp_bus : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
dL_p2p : Optional[float], optional
|
||||
Value for the dL_p2p parameter. Default is None.
|
||||
xs_ring : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
sharp_patch : bool, optional
|
||||
Whether to add geometry patches for sharp corners or cladding continuity. Default is True.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
xs_heater : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'heater'.
|
||||
w_heater : float, optional
|
||||
Width parameter in microns. Default is 0.
|
||||
xs_metal : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
w_metal : float, optional
|
||||
Width parameter in microns. Default is 8.
|
||||
via_h2m : Any, optional
|
||||
Via definition used between heater and metal layers. Default is None.
|
||||
isl : Any, optional
|
||||
Isolation-trench definition used by the electrical layout. Default is None.
|
||||
A_ht : float, optional
|
||||
Angle parameter in degrees. Default is 270.
|
||||
ht_notch_dual : bool, optional
|
||||
Value for the ht_notch_dual parameter. Default is True.
|
||||
epin_ht_dX : int, optional
|
||||
Value for the epin_ht_dX parameter. Default is 10.
|
||||
epin_ht_dY : int, optional
|
||||
Value for the epin_ht_dY parameter. Default is 3.
|
||||
xs_metal_imp : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
via_i2m : Any, optional
|
||||
Via definition used between implant and metal layers. Default is None.
|
||||
xs_p : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'p'.
|
||||
xs_n : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'n'.
|
||||
xs_cont_wg : Optional[str], optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
w_p : float, optional
|
||||
Width parameter in microns. Default is 3.
|
||||
w_n : float, optional
|
||||
Width parameter in microns. Default is 3.
|
||||
w_i : float, optional
|
||||
Width parameter in microns. Default is 1.
|
||||
offset_i : float, optional
|
||||
Value for the offset_i parameter. Default is 0.
|
||||
A_imp_in : int, optional
|
||||
Angle parameter in degrees. Default is 180.
|
||||
A_imp_out : int, optional
|
||||
Angle parameter in degrees. Default is 180.
|
||||
sp_cont : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.2.
|
||||
w_ovlp : float, optional
|
||||
Width parameter in microns. Default is 0.2.
|
||||
bus_dopping : bool, optional
|
||||
Value for the bus_dopping parameter. Default is True.
|
||||
cell_xs_transition : Any, optional
|
||||
Cell or component dependency used by this device. Default is None.
|
||||
p_in_n_out : bool, optional
|
||||
Value for the p_in_n_out parameter. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str] = None,
|
||||
r_ring: float=10,
|
||||
@@ -917,6 +1323,92 @@ class PIN_MRR_MM_Adddrop(AED_Ring_PIN):
|
||||
|
||||
## Sub-classed for allpass rings with standard coupling
|
||||
class PIN_MRR_STD_Allpass(AED_Ring_PIN):
|
||||
"""
|
||||
PIN MRR STD Allpass primitive component.
|
||||
|
||||
This component builds the PIN MRR STD Allpass layout cell.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : Optional[str], optional
|
||||
Unique identifier for the device cell. Default is None.
|
||||
r_ring : float, optional
|
||||
Radius parameter in microns. Default is 10.
|
||||
w_ring : float, optional
|
||||
Width parameter in microns. Default is 0.55.
|
||||
gap : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.2.
|
||||
w_bus : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
A_cp : int, optional
|
||||
Angle parameter in degrees. Default is 0.
|
||||
w_wg : float, optional
|
||||
Width parameter in microns. Default is 0.45.
|
||||
Ltp_bus : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
dL_p2p : Optional[float], optional
|
||||
Value for the dL_p2p parameter. Default is None.
|
||||
L_tilt : int, optional
|
||||
Length parameter in microns. Default is 10.
|
||||
xs_ring : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'strip'.
|
||||
sharp_patch : bool, optional
|
||||
Whether to add geometry patches for sharp corners or cladding continuity. Default is True.
|
||||
show_pins : bool, optional
|
||||
Whether to draw pin markers in the generated layout. Default is False.
|
||||
xs_heater : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'heater'.
|
||||
w_heater : float, optional
|
||||
Width parameter in microns. Default is 0.
|
||||
xs_metal : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
w_metal : float, optional
|
||||
Width parameter in microns. Default is 8.
|
||||
via_h2m : Any, optional
|
||||
Via definition used between heater and metal layers. Default is None.
|
||||
isl : Any, optional
|
||||
Isolation-trench definition used by the electrical layout. Default is None.
|
||||
A_ht : float, optional
|
||||
Angle parameter in degrees. Default is 270.
|
||||
ht_notch_dual : bool, optional
|
||||
Value for the ht_notch_dual parameter. Default is True.
|
||||
epin_ht_dX : int, optional
|
||||
Value for the epin_ht_dX parameter. Default is 10.
|
||||
epin_ht_dY : int, optional
|
||||
Value for the epin_ht_dY parameter. Default is 3.
|
||||
xs_metal_imp : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'metal'.
|
||||
via_i2m : Any, optional
|
||||
Via definition used between implant and metal layers. Default is None.
|
||||
xs_p : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'p'.
|
||||
xs_n : str, optional
|
||||
Layer or cross-section name used by the device. Default is 'n'.
|
||||
xs_cont_wg : Optional[str], optional
|
||||
Layer or cross-section name used by the device. Default is None.
|
||||
w_p : float, optional
|
||||
Width parameter in microns. Default is 3.
|
||||
w_n : float, optional
|
||||
Width parameter in microns. Default is 3.
|
||||
w_i : float, optional
|
||||
Width parameter in microns. Default is 1.
|
||||
offset_i : float, optional
|
||||
Value for the offset_i parameter. Default is 0.
|
||||
A_imp_in : int, optional
|
||||
Angle parameter in degrees. Default is 180.
|
||||
A_imp_out : int, optional
|
||||
Angle parameter in degrees. Default is 180.
|
||||
sp_cont : float, optional
|
||||
Spacing or gap parameter in microns. Default is 0.2.
|
||||
w_ovlp : float, optional
|
||||
Width parameter in microns. Default is 0.2.
|
||||
bus_dopping : bool, optional
|
||||
Value for the bus_dopping parameter. Default is True.
|
||||
cell_xs_transition : Any, optional
|
||||
Cell or component dependency used by this device. Default is None.
|
||||
p_in_n_out : bool, optional
|
||||
Value for the p_in_n_out parameter. Default is False.
|
||||
"""
|
||||
def __init__(self,
|
||||
name: Optional[str]=None,
|
||||
r_ring: float=10,
|
||||
@@ -1017,4 +1509,4 @@ class PIN_MRR_STD_Allpass(AED_Ring_PIN):
|
||||
bus_dopping = bus_dopping,
|
||||
p_in_n_out=p_in_n_out, ## default , p-outside n-inside
|
||||
cell_xs_transition=cell_xs_transition,
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user