Folder structure simplfied

This commit is contained in:
=
2026-06-06 16:43:26 +08:00
parent 8da92ced57
commit 8a17f1dde0
138 changed files with 10429 additions and 1432 deletions
+225 -25
View File
@@ -3,8 +3,8 @@ import nazca as nd
import numpy as np
import math
from ...structures import *
from ...structures import _my_polygon
from ...geometry import *
from ...geometry import _my_polygon
from ...basic import __cell_arg__
from ...routing import Route
@@ -13,26 +13,37 @@ import pandas as pd
''' Class for nanoantenna '''
class Nano_ant():
"""Class of nanoantenna for optical phased array.
This is the class of nanoantenna for optical phased array. GDS cell can be generated using this class. Simulation structure generation and simulation results analysis is going to be added in the future.
Args:
- tapeout [class] (Default: CUMEC_CSiP130Cu)
- w_wg [um] (Default: 0.5um)
Width of input waveguide
- vector [um] (Default: [0.5,..,0.5]])
Vectors to define the length of each teeth
- taper_length [um] (Default: 1um)
Length of the linear taper region
- width [um] (Default: 3um)
Width of the nanoantenna
- max_theta [degree](Default: 110)
Open degree of linear taper
- define_type [str] (Default: non-periodic)
Way to define the antenna, including: "non-periodic", "periodic"
- etch_depth [str] (Default: "DETCH")
Define the etch depth, including: "FETCH", "METCH", "SETCH"
"""
Class of nanoantenna for optical phased array.
This is the class of nanoantenna for optical phased array. GDS cell can be generated using this class. Simulation structure generation and simulation results analysis is going to be added in the future.
Parameters
----------
w_wg : float, optional
Width parameter in microns. Default is 0.41.
xs_wg : str, optional
Layer or cross-section name used by the device. Default is 'strip'.
define_type : str, optional
Value for the define_type parameter. Default is 'non-periodic'.
vector : list, optional
Value for the vector parameter. Default is [0.5, 0.5, 0.5, 0.5, 0.5, 0.5].
taper_length : float, optional
Value for the taper_length parameter. Default is 3.
width : float, optional
Width parameter in microns. Default is 6.
max_theta : float, optional
Value for the max_theta parameter. Default is 110.
pitch : float, optional
Spacing or gap parameter in microns. Default is 0.6.
duty_cycle : float, optional
Value for the duty_cycle parameter. Default is 0.3.
teeth_number : float, optional
Value for the teeth_number parameter. Default is 6.
etch_depth : list, optional
Value for the etch_depth parameter. Default is ['METCH'].
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is True.
"""
def __init__(
@@ -193,6 +204,24 @@ class Nano_ant():
''' Class for 2D antenna array for FMF grating '''
class Taper() :
"""
Taper primitive component.
This component builds the Taper layout cell.
Parameters
----------
width1 : float, optional
Width parameter in microns. Default is 4.
width2 : float, optional
Width parameter in microns. Default is 0.45.
length : float, optional
Length parameter in microns. Default is 30.
type : str, optional
Value for the type parameter. Default is 'linear'.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
"""
def __init__(self, width1: float=4, width2: float=0.45, length: float=30, type: str="linear", show_pins: bool=False) -> None:
self.width1 = width1
self.width2 = width2
@@ -252,9 +281,36 @@ class Taper() :
class Grating_2D_Hole() :
'''
This is a class for 2D Grating in IMEC.
'''
"""
This is a class for 2D Grating in IMEC.
Parameters
----------
w_wg : float, optional
Width parameter in microns. Default is 0.5.
w_gt : float, optional
Width parameter in microns. Default is 5.
l_taper : float, optional
Value for the l_taper parameter. Default is 30.
type_taper : str, optional
Value for the type_taper parameter. Default is 'parabolic'.
gt_vector : list, optional
Value for the gt_vector parameter. Default is [0.5, 0.5, 0.5, 0.5, 0.5].
gt_diameter : float, optional
Value for the gt_diameter parameter. Default is 0.4.
gt_layer : str, optional
Value for the gt_layer parameter. Default is 'STRIP_COR'.
polysi_vector : list, optional
Value for the polysi_vector parameter. Default is [0.5, 0.5, 0.5, 0.5, 0.5].
polysi_diameter : float, optional
Value for the polysi_diameter parameter. Default is 0.4.
polysi_layer : str, optional
Value for the polysi_layer parameter. Default is 'FCW_TRE'.
reflector_vector : list, optional
Value for the reflector_vector parameter. Default is [0.3, 0.3, 0.3, 0.3, 0.3, 0.3].
l_field_center : float, optional
Value for the l_field_center parameter. Default is 1.
"""
def __init__(
self,
w_wg: float=0.5,
@@ -344,6 +400,22 @@ class Grating_2D_Hole() :
class Grating_2D_Hole_4Rec() :
"""
Grating 2D Hole 4Rec primitive component.
This component builds the Grating 2D Hole 4Rec layout cell.
Parameters
----------
grating_unit : Any
Grating unit cell or component used by this wrapper.
mode_radius : int, optional
Value for the mode_radius parameter. Default is 8.
cell_name : Optional[str], optional
Optional generated cell name. Default is None.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
"""
def __init__(self, grating_unit: Any, mode_radius: int=8, cell_name: Optional[str]=None, show_pins: bool=False) -> None:
self.gt_2D_class = grating_unit
self.cell_unit = grating_unit.cell
@@ -416,6 +488,22 @@ class Grating_2D_Hole_4Rec() :
class Grating_2D_Hole_3Rec() :
"""
Grating 2D Hole 3Rec primitive component.
This component builds the Grating 2D Hole 3Rec layout cell.
Parameters
----------
grating_unit : Any
Grating unit cell or component used by this wrapper.
mode_radius : float, optional
Value for the mode_radius parameter. Default is 6.5.
cell_name : Optional[str], optional
Optional generated cell name. Default is None.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
"""
def __init__(self, grating_unit: Any, mode_radius: float=6.5, cell_name: Optional[str]=None, show_pins: bool=False) -> None:
self.gt_2D_class = grating_unit
self.cell_unit = grating_unit.cell
@@ -484,6 +572,62 @@ class Grating_2D_Hole_3Rec() :
""" Renamed for simplification in 2023.04.02 """
class GC_STD_2D:
"""
GC STD 2D primitive component.
This component builds the GC STD 2D layout cell.
Parameters
----------
name : Optional[str], optional
Unique identifier for the device cell. Default is None.
etch_type : str, optional
Value for the etch_type parameter. Default is 'FETCH'.
xs_wg : str, optional
Layer or cross-section name used by the device. Default is 'grating'.
Dx_hole : float, optional
Value for the Dx_hole parameter. Default is 0.3.
Dy_hole : float, optional
Value for the Dy_hole parameter. Default is 0.3.
hole_shape : str, optional
Value for the hole_shape parameter. Default is 'circle'.
shape : str, optional
Value for the shape parameter. Default is 'circle'.
xs_open : str, optional
Layer or cross-section name used by the device. Default is None.
Px : float, optional
Value for the Px parameter. Default is 0.57.
Py : float, optional
Value for the Py parameter. Default is 0.57.
num_x : float, optional
Count or repetition parameter. Default is 25.
num_y : float, optional
Count or repetition parameter. Default is 25.
Lx_taper : float, optional
Length parameter in microns. Default is 50.
Ly_taper : float, optional
Length parameter in microns. Default is 0.
Lx_end : float, optional
Length parameter in microns. Default is 1.
Ly_end : float, optional
Length parameter in microns. Default is 1.
Lx_side : float, optional
Length parameter in microns. Default is 0.5.
Ly_side : float, optional
Length parameter in microns. Default is 0.5.
Lx_port : float, optional
Length parameter in microns. Default is 5.
Ly_port : float, optional
Length parameter in microns. Default is 5.
w_wg : float, optional
Width parameter in microns. Default is 0.5.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
P_AR : float, optional
Value for the P_AR parameter. Default is 0.6.
L_AR : float, optional
Length parameter in microns. Default is 1.
"""
def __init__(self,
name: Optional[str]=None,
etch_type :str = 'FETCH',
@@ -773,6 +917,46 @@ class GC_STD_2D:
return C
class GC_STD_1D:
"""
GC STD 1D primitive component.
This component builds the GC STD 1D layout cell.
Parameters
----------
name : Optional[str], optional
Unique identifier for the device cell. Default is None.
xs_wg : str, optional
Layer or cross-section name used by the device. Default is 'strip'.
w_wg : float, optional
Width parameter in microns. Default is 0.5.
etch_type : str, optional
Value for the etch_type parameter. Default is 'FETCH'.
xs_open : str, optional
Layer or cross-section name used by the device. Default is None.
L_taper : float, optional
Length parameter in microns. Default is 10.
L_end : float, optional
Length parameter in microns. Default is 2.
A_taper : float, optional
Angle parameter in degrees. Default is 30.
Period : float, optional
Value for the Period parameter. Default is 0.5.
eta_etch : float, optional
Value for the eta_etch parameter. Default is 0.5.
num : float, optional
Count or repetition parameter. Default is 20.
sector_gc : bool, optional
Value for the sector_gc parameter. Default is True.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
L_tail : int, optional
Length parameter in microns. Default is 2.
P_AR : float, optional
Value for the P_AR parameter. Default is 1.
L_AR : float, optional
Length parameter in microns. Default is 2.
"""
def __init__ (self,
name: Optional[str]=None,
xs_wg : str = 'strip',
@@ -1074,6 +1258,22 @@ class GC_STD_1D:
return C
class FA:
"""
FA primitive component.
This component builds the FA layout cell.
Parameters
----------
fiber_coupler : Any
Fiber coupler cell or component used by this array.
pitch : float
Spacing or gap parameter in microns.
number : int
Count or repetition parameter.
show_pins : bool, optional
Whether to draw pin markers in the generated layout. Default is False.
"""
def __init__(self,fiber_coupler: Any,pitch: float,number: int,show_pins: bool=False) -> None:
# if (isinstance(fiber_coupler,nd.Cell)):