open-insight/LSL2/STPROC/SVC_DOPANT.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

160 lines
4.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Function SVC_Dopant(Service, Param1, Param2, Param3, Param4, Param5, Param6, Param7)
/********************************************************************************************************
This program is proprietary and is not to be used by or disclosed to others, nor is it to
be copied without written permission.
Name : SVC Dopant
Description :
Tags : [SRP]
Parameters :
History (Date, Initials, Notes)
01/18/10 fjt Initial development
********************************************************************************************************/
$insert SRP_APP_INSERTS
$insert SERVICE_INSERT
Declare function SRP_Rotate_Array, SRP_Clean_Array
GoSub Init
Begin Case
Case Service _eqc "Color"
Case Service _eqc "Check" ; GoSub Check
Case Service _eqc "Qualify" ; GoSub Qualify
Case Service _eqc "Reactor" ; GoSub Reactor
End Case
Return Ans
!----- SERVICES -----------------------------------------------------------------------------------------
Init:
Equ Sched_Win$ to "WO_MASTER_SCHEDULER"
Equ Ctrl$ to Sched_Win$:".OLE_SCHEDULE"
Equ Table$ to "WO_MAST_SCHED"
Equ Info$ to Sched_Win$:".EDT_INFO"
return
Check:
Dopant = Param1
Source = Param2
React = Param3
Rec.R = Xlate("REACTOR", React, "", "X")
List = Xlate("GAS_SRC", Rec.R<5>, 1, "X")
Swap @VM with @FM in List
GoSub Gas_Types
Locate Source in List using @FM setting Pos then Check.1 = "G" else Check.1 = "R"
Locate Dopant in List using @FM setting Pos then Check.2 = "G" else Check.2 = "R"
GoSub Colors
Ans<1> = Check.1
Ans<2> = Check.2
Ans<3> = Check.1 EQ "G" and Check.2 EQ "G"
Param1 = Dopant
Param2 = Source
return
Qualify:
React = Param3
PSN = Param4
Rec.P = Xlate("PROD_SPEC", PSN, "", "X")
Param1 = Rec.P<013> ;// Qualified
Param2 = Rec.P<121> ;// Blocked
If Param1 EQ "" then
Check.1 = "G"
end else
Locate React in Param1 using @VM setting Pos then Check.1 = "G" else Check.1 = "R"
end
If Param2 EQ "" then
Check.2 = "G"
end else
Locate React in Param2 using @VM setting Pos then Check.2 = "R" else Check.2 = "G"
end
GoSub Colors
Ans<1> = Check.1
Ans<2> = Check.2
Convert @VM to ", " in Param1
Convert @VM to ", " in Param2
return
Reactor:
For i = 20 to 69
Rec = Xlate("REACTOR", i, "", "X")
rv = Xlate("GAS_SRC", Rec<5>, 1, "X")
Swap @VM with @FM in rv
Ans := rv :@FM
Next i
If Ans[-1,1] EQ @FM then Ans[-1,1] = ""
Ans = SRP_Clean_Array(Ans, @FM, "UNIQUE")
return
!----- INTERNAL ROUTINES --------------------------------------------------------------------------------
Colors:
Red = "Vertical(Gradient(Red L=90, Red L=80, 30%), Gradient(Red L=75, Red L=80), Border(Red, None, Red, None))"
Green = "Vertical(Gradient(Green L=90, Green L=80, 30%), Gradient(Green L=75, Green L=80), Border(Green, None, Green, None))"
// Source
Begin Case
Case Check.1 EQ "R" ; Check.1 = Red
Case Check.1 EQ "G" ; Check.1 = Green
End Case
// Dopant
Begin Case
Case Check.2 EQ "R" ; Check.2 = Red
Case Check.2 EQ "G" ; Check.2 = Green
End Case
return
Gas_Types:
// Confirmed Types
Gas = "AsH3_1000,B2H6_1%,PH3_50,GeH4_10%,N2,SiH2Cl2,SiH4,SiHCl3,SiH4_2%"
For i = 1 to 2
If i EQ 1 then Val = Source else Val = Dopant
// Dopant
Swap "1000 ppm Arsenic" with "AsH3_1000" in Val
Swap "Heavy Dope Arsine 1000ppm (0.1%)" with "AsH3_1000" in Val
Swap "1% Boron" with "B2H6_1%" in Val
Swap "Heavy Dope Diborane 1%" with "B2H6_1%" in Val
Swap "Phosphorus" with "PH3_50" in Val
Swap "Phosphine 50 ppm" with "PH3_50" in Val
Swap "Boron/Germanium" with "GeH4_10%" in Val
Swap "Heavy Dope Germane 10%" with "GeH4_10%" in Val
// Source
Swap "Dichlorosilane" with "SiH2Cl2" in Val
Swap "Silane" with "SiH4" in Val
Swap "Trichlorosilane" with "SiHCl3" in Val
Swap "Silane 2%" with "SiH4_2%" in Val
// Other
Swap "Nitrogen" with "N2" in Val
If i EQ 1 then Source = Val else Dopant = Val
Next i
return