from ipkiss.technology.technology import ProcessTechnologyTree, TechnologyTree, DelayedInitTechnologyTree from ipkiss.technology import get_technology from ipkiss.geometry.coord import Coord2 from ipkiss.process.layer import ProcessLayer, PatternPurpose TECH = get_technology() ############################################################################################### # Process Layers ############################################################################################### TECH.PROCESS = ProcessTechnologyTree() # silicon structuring TECH.PROCESS.FC = ProcessLayer("Fiber Couplers", "FC") TECH.PROCESS.WG = ProcessLayer("Waveguides", "WG") # other TECH.PROCESS.NONE = ProcessLayer("No Specific Process Layer", "NONE") #################################################################### # MASK #################################################################### TECH.MASK = TechnologyTree() TECH.MASK.POLARITY_DF = "DF" TECH.MASK.POLARITY_LF = "LF" #################################################################### # MASK LAYER RULES
# Contact: [email protected] from ..ipkiss.common import * from ipkiss.technology.technology import ProcessTechnologyTree, TechnologyTree, DelayedInitTechnologyTree from ipkiss.technology import get_technology from ipkiss.geometry.coord import Coord2 from ipkiss.process.layer import ProcessLayer, PatternPurpose TECH = get_technology() ############################################################################################### # Process Layers ############################################################################################### # silicon structuring TECH.PROCESS.RFC = ProcessLayer("Raised Fiber Couplers", "RFC") TECH.PROCESS.FCW = ProcessLayer("Fiber Coupler Windows", "FCW") TECH.PROCESS.FC = ProcessLayer("Fiber Couplers", "FC") TECH.PROCESS.WG = ProcessLayer("Waveguides", "WG") TECH.PROCESS.SLOT = ProcessLayer("Slot waveguides", "SLOT") TECH.PROCESS.SK = ProcessLayer("Socket waveguides", "SK") # implants, silicide, contacts TECH.PROCESS.NBODY = ProcessLayer("Body N doping", "NBODY") TECH.PROCESS.PBODY = ProcessLayer("Body P doping", "PBODY") TECH.PROCESS.N1 = ProcessLayer("N-type doping 1", "N1") TECH.PROCESS.NPLUS = ProcessLayer("N++ doping", "N2") TECH.PROCESS.P1 = ProcessLayer("P-type doping 1", "P1") TECH.PROCESS.PPLUS = ProcessLayer("P++ doping", "PPLUS") TECH.PROCESS.PP1 = ProcessLayer("Poly P-type doping 1", "PP1") TECH.PROCESS.PP2 = ProcessLayer("Poly P-type doping 2", "PP2")
from ipkiss.process import PPLayer from ipkiss.process.layer import ProcessLayer from ipkiss.process.layer import PatternPurpose from ipkiss.plugins.photonics.wg.basic import * # basic waveguides from picazzo.io.column import * # StdIO DT_LINE = 0 DT_SQUARE = 1 DT_HEX = 2 DT_INV = 3 MY_TECH = TechnologyTree() MY_TECH.PROCESS = TechnologyTree() MY_TECH.PROCESS.OL35_1 = ProcessLayer("Overlay With III-V etch 1", "OL35_1") MY_TECH.PROCESS.OL35_2 = ProcessLayer("Overlay With III-V etch 2", "OL35_2") MY_TECH.PROCESS.BCB_1 = ProcessLayer("Bcb etch1", "BCB_1") MY_TECH.PROCESS.BCB_2 = ProcessLayer("Bcb etch2", "BCB_2") MY_TECH.PROCESS.MET_1 = ProcessLayer("Metalization etch1", "MET_1") MY_TECH.PROCESS.MET_2 = ProcessLayer("Metalization etch2", "MET_2") MY_TECH.PROCESS.MET_3 = ProcessLayer("Metalization etch3", "MET_3") MY_TECH.PROCESS.MET_4 = ProcessLayer("Metalization etch4", "MET_4") MY_TECH.PURPOSE = TechnologyTree() MY_TECH.PURPOSE.DEFAULT = PatternPurpose(name = "Default", extension = "00") MY_OUTPUT_MAP = copy.deepcopy(TECH.GDSII.EXPORT_LAYER_MAP) MY_OUTPUT_MAP.layer_map[PPLayer(process = MY_TECH.PROCESS.OL35_1, purpose = MY_TECH.PURPOSE.DEFAULT)] = GdsiiLayer(number = 101, datatype = DT_LINE) # disk MY_OUTPUT_MAP.layer_map[PPLayer(process = MY_TECH.PROCESS.OL35_2, purpose = MY_TECH.PURPOSE.DEFAULT)] = GdsiiLayer(number = 102, datatype = DT_LINE) # island MY_OUTPUT_MAP.layer_map[PPLayer(process = MY_TECH.PROCESS.BCB_1, purpose = MY_TECH.PURPOSE.DEFAULT)] = GdsiiLayer(number = 104, datatype = DT_LINE) # botvia
from ipkiss.technology.technology import ProcessTechnologyTree, TechnologyTree from ipkiss.process.layer import ProcessLayer from ipkiss.technology import get_technology TECH = get_technology() ################# # Process layers ################# TECH.PROCESS = ProcessTechnologyTree() # FEOL # SOI/poly patterning TECH.PROCESS.WG = ProcessLayer(name="Strip waveguides (full etched SOI)", extension="WG") TECH.PROCESS.FC = ProcessLayer(name="Fiber couplers and rib waveguides (shallow partial etched SOI)", extension="FC") TECH.PROCESS.SKT = ProcessLayer(name="Socket waveguides (deep partial etched SOI)", extension="SKT") TECH.PROCESS.FCW = ProcessLayer(name="Fiber coupler window (poly)", extension="FCW") # Implants TECH.PROCESS.NBODY = ProcessLayer(name="N-type Body implant", extension="NBODY") TECH.PROCESS.PBODY = ProcessLayer(name="P-type Body implant" , extension="PBODY") TECH.PROCESS.N1 = ProcessLayer(name="N-type implant - dose 1", extension="N1") TECH.PROCESS.N2 = ProcessLayer(name="N-type implant - dose 2", extension="N2") TECH.PROCESS.NPLUS = ProcessLayer(name="N-type contact implant" , extension="NPLUS") TECH.PROCESS.P1 = ProcessLayer(name="P-type implant - dose 1", extension="P1") TECH.PROCESS.P2 = ProcessLayer(name="P-type implant - dose 2", extension="P2") TECH.PROCESS.PPLUS = ProcessLayer(name="P-type contact implant", extension="PPLUS") # silicide and contact
from ipkiss.technology.technology import ProcessTechnologyTree, TechnologyTree from ipkiss.process.layer import ProcessLayer from ipkiss.technology import get_technology TECH = get_technology() ################# # Process layers ################# TECH.PROCESS = ProcessTechnologyTree() # FEOL # SOI/poly patterning TECH.PROCESS.SHALL = ProcessLayer( name="SiN Waveguide (shallow half-depth etched SiN)", extension="SHALL") TECH.PROCESS.FULL = ProcessLayer(name="SiN waveguide (full etched SiN)", extension="FULL") TECH.PROCESS.CLROUT = ProcessLayer(name="", extension="CLROUT") TECH.PROCESS.OPCLAD = ProcessLayer(name="Clad opening etch", extension="OPCLAD") TECH.PROCESS.ELEC = ProcessLayer(name="elec", extension="electrode") TECH.PROCESS.TRENCH = ProcessLayer(name="trench", extension="trench") # Auxiliary TECH.PROCESS.NO_DRC = ProcessLayer(name="", extension="NO_DRC") TECH.PROCESS.DUMMY = ProcessLayer(name="", extension="DUMMY") TECH.PROCESS.DOC = ProcessLayer(name="", extension="DOC") TECH.PROCESS.TXTLAB = ProcessLayer(name="", extension="TXTLAB") TECH.PROCESS.ERRFLG = ProcessLayer(name="", extension="ERRFLG") TECH.PROCESS.NO_SIZE = ProcessLayer(name="", extension="NO_SIZE")
from ipkiss.technology.technology import ProcessTechnologyTree, TechnologyTree, DelayedInitTechnologyTree from ipkiss.technology import get_technology from ipkiss.process.layer import ProcessLayer, PatternPurpose, PPLayer TECH = get_technology() # ############################################################### # TECH.PROCESS : Process Layers # # Process layers typically correspond to a single lithographic # process step in the fabrication of your design # # ############################################################### TECH.PROCESS = ProcessTechnologyTree() TECH.PROCESS.MSN = ProcessLayer("Unetched MSN", "MSN") # waveguide layer (required) TECH.PROCESS.MSN_TRENCH = ProcessLayer( "Positive Etch MSN Exclusion", "MSN_TRENCH") # Positive tone waveguide layer TECH.PROCESS.SHALLOW = ProcessLayer( "Fiber Couplers and Rib Waveguide (shallow etched MSN)", "SHALLOW") TECH.PROCESS.CLADDING = ProcessLayer("Unetched Cladding", "CLAD") #waveguide cladding TECH.PROCESS.HT = ProcessLayer("Heater", "HT") TECH.PROCESS.M1 = ProcessLayer("Metallization 1", "M1") TECH.PROCESS.M2 = ProcessLayer("Metallization 2", "M2") TECH.PROCESS.V12 = ProcessLayer("Via between M1 and M2", "V12") TECH.PROCESS.SIL = ProcessLayer("Silicide", "SIL") TECH.PROCESS.N = ProcessLayer("N+ implant", "N")