Home
1 - Electrical Engineering & Computer Sciences
Contents
1. 0 003 50 51 Appendix E Alphabetical Library Function Listing 60 Appendix E Alphabetical Library Function Listing The following is an alphabetical list of the C functions used in the BCAM environment After each function is listed its source file name All source files are located in the directory bcamdev BCAM bombay code except the files diagnosis cc and recipelngres scc which are located in the directory bcamdev BCAM hcliu code choiceList choiceClass AddChoice char textPtr modelChoicejcc choiceList choiceClass AddChoiceAlpha char textPtr modelChoicelcc choiceList choiceClass AddChoiceToEnd char textPtr modelChoice cc void AddEquipment Widget w equipNameClass equipNamePt caddr call data equipSetupicc Widget Addlo Widget Widget io_box int ioNum char text machineAndIntPtrsType ioTargetPtr machineList machineClass AddMachine char equipName machineRWicc void inputClass AddStep int step double value boolean critical stepsjcc Widget AddTextWidget Widget parent Widget last widget char interrogative char information char units connections cc void machineClass Add ToHistory machineRW cc boolean machineClass AreThereConnections machineRWicc wdouble ArmijoStepSize double alpha double beta int peggedInputPu double initialCost double initialDirectionalDerivative doubl
2. void Diagnosis Widget w machineClass machinePtr caddr t call datu void DiagQuit Widget w mahcneClass machinePtr caddr t call data diagnosis Widget DialogBelowRight Widget parent Widget above Widget left char title char information int vertD st functions void DictateControls processNode processPtr Widget parent interfaces void DisconnectIngres modelIngres scc void machineClass DisconnectI nput int inputNum int step nm void DisconnectMachines machineClass inputM achinePtr int inputNum machineClass outputMachinePtr int outputNum machineRW void DisconnectMachines machineClass inputMachinePtr int inputNum int step machineClass outputMachinePtr int outputNum machineRW void machineClass DisconnectOutput int outputNum machineRW Widget DisplayInputs machineClass machine Widget equip form Widget last widget equipWindowjcc Widget DisplayOutputs machineClass machine Widget equip form Widget last widget equipWindowicc Widget Display Term machineClass machine Widget equip form Widget last widget Widget left int termNum int vertDist equipWindow jcc Widget DisplayModel machineClass machine Widget equip form Widget last widget equipWindowicc void DisplayOrigCoeffs Widget w machineClass machinePtr caddr_t data equipWindow cc void DoCalcControls Widget w proces
3. void linerror short good mymathlcc int machineClass LoadAllNewRecipe char newRecipeName char newRecipeOwner recipeIngres scc void LoadCntriModelWindow Widget w machineCluss machineltr cuddr data modelRWicc void LoadDefaultModelCoeffs machineClass machinePtr char inodelSelector modelRWicc void LoadDefaultModelToCntrl Widget w machineClass machinel tr caddr_t call data equipWindow cc void LoadDefaultModelToSimul Widget w machineClass machinePtr caddr t call data equipWindow cc void LoadModelWindow Widget w char modelSelector machineClass machinePtr modelRW ec int machineClass LoadNewRecipeValues char newRecipeName char newRecipeOwner 2 void LoadRecipeWindow Widget w machineClass machinePtr caddr_t calld_data recipeIngres scc void LoadSimulModelWindow Widget w machineClass machinePtr caddr_t call data modeIRW cc double log deriv double input modelSpecFn cc double log deriv2 double input modelSpecFnicc equipNameList equipNameClass LookupEquipName equipName equipName modeIRW cc int choiceClass LookupChoiceIndex char selection modelChoice cc choiceClass choiceClass LookupChoicePtr int selectNum modelChoice cc char choiceClass LookupChoiceText int selectNum modelChoice cc machineClass machineClass LookupMachine char equipName machineRW cc processNode processNode LookupMachine mach
4. x S 19 If gt m and A A is invertible then a solution to this modified problem is 1 2 Xy Ax UG 21 20 Using a Euclidean norm this solution is as close as possible to the previous solution x If n m and y is invertible then the least square error solution to the modified problem is 1 The models used in the BCAM recipe generation algorithm are such that the solution to the modified problem 19 is at each iteration close enough to the best compromise solution so that the sequence of solutions x x X on verges to In general the convergence properties of this method require bounds on the minimum and maximum sipgu lar values of the derivative matrix of over X 2 See Appendix C for a derivation of these equations 13 Theory of Discrete Process Control Chapter 2 1 7 xx Ax ALL 2 21 Equation 21 is equivalent to the solution produced by a Local Newton optimization method using the cost function G X 9t where 5 V Lien 211 22 1 2 is the jh component of 2 and POf iat Q f iG x x f i e the linearization of f about x Equation 20 similarly results from the problem min x xl G x 0 xe Xc 9 24 Of course any practical implementation of this algorithm must not only require Invertibility of the relevant matrices but also put finite limits on the conditio
5. represents the scalar product 15 Theory of Discrete Process Control _ Chapter 2 pU EC and this solution as close as possible to the previous solution x If n m and A A is invertible then the least square error solution to 29 is T X t Ax x4 58 21 32 Because the above algorithm uses approximations to f a more robust algorithm uses the above equations to calculate a search direction h in equations 30 through 32 substitute x by and then uses an Armijo step size algorithm 20 to determine the actual Ax A h where max B F R B F R xo sop Rhy V FR le 33 with V FRx ALS f x 2 e 0 Be 0 1 MEE T Fy XR Z 34 so that Xt Ax x A hy 35 Whenever there are problems with performing the matrix inversion in 30 31 or 32 steepest descent method be used to find the search direction yer 5 h x RA S f xy 2 36 For most systems the set of valid input recipes X is constrained Consider a set of constraints i 1 37 1 A more sophisticated method of dealing with such inversion problems is to perform a singular Men decomposition and eliminate the dimensions corresponding to near zero singular values to obtain a transformation into a space with fewer dimensions so that the required matrix inversion can be
6. LoadAllNewRecipe Load the machine s model coefficients from the database Load the machine s default recipe from the database G 3 2 Function MakeEquipWindow XtCreatePopupShell MakePulldownBar MakePulldownMenu DisplayInputs DisplayOutputs Create the window shell for the equipment window Make the bar of pulldown menus along the top of the equipment window Make a pulldown menu within the pulldown bar Put all the input information in window Put all the output information in window 1 The BCAM environment help facility has not yet been developed 77 Principal Library Functions Listed by Hicrarchy Appendix G DisplayModel Put all the model information in window PopupshellGrabNone Pop up the equipment window e DisplayModelCoeffs Set the equipment window to show the controller s current adaptive model G 4 Equipment Model Analyses G 4 1 Controller s Current Adaptive Model Evaluation processNode predict Predict the outputs of all machines in the workcell Start with this machine and use current input values ee machineClass predict Predict an output of this machine modelClass predict Evaluate the controller s current model for an output ee modelClass eval Evaluate the equipment model e o o o o modelClass term Evaluate a term in the equipment model G 4 2 Simulator Model Evaluation machineClass simulate Simulate all machine outputs using the simulat
7. mymath cc void Plot Widget w int num caddr t call data diagnosis cc void PlotBelief Widget w Widget diagnosis caddr t call data diagnosis cc void PopdownParentOfParent Widget caddr t client data caddr t call data functions cc Appendix E Alphabetical Library Function Listing 66 void Popdownshell Widget w Widget downshell caddr t call data functionsjcc void PopupLocationShell Widget shell Position x Position y functionsicc void PopupLocationShell Widget w Widget shell Position x Position y caddr t call data functions cc void PopupMessageShell char messageText Widget parent functionsjcc void PopupShell Widget parent Widget child caddr dati functionsicc void PopupShell Widget parent Widget child caddr t call_data XtGrabKind grab kind functionsjcc void PopupShellGrabNone Widget parent Widget child caddr t call_data functionsicc double power double x int n double modelClass predict int outputNum modelEvalicc double machineClass predict int outputNum modelEvallec void processNode predict processicc double processNode predict connectionClass output modelEvallcc void PredictProcess Widget parent processList process caddr_t call data process cc void PrepareToAddEquip Widget parent void garbage caddr t call data equipSetupicc Widget PrintBoldInformation Widget parent Widget last widget c
8. void ReadMatrix char fileName double matrix MAXDIM int rowCnt int colCnt mymathjcc modelNameList ReadModelNames char modelIngres scc recipeNameL ist ReadRecipeNames char equipName recipeIngres scc void ReadTextIntoDouble Widget double target caddr t call data modelChoicejcc void ReadTextIntoInputValue Widget w inputStepValueClass target caddr tc d modelChoice cc void ReadTextIntoOutputValue Widget w outputCluss target caddr_t call data modelChoice cc void ReadTolerance Widget w outputClass target caddr_t call data modelChoice cc void ReadVector char fileName double vector int dim mymath cc void Regress double x double y double weights int dim double slopePtr double pValueSlopePtr double interceptPtr double pValucIniPte double sigmaSqHatPtr mymathicc void Realize Widget w Widget shell caddr t call data functionsi cc void RememberRepCnt Widget w int repCntPtr caddr_t call datu processjcc char modelClass RecipeName modelEvalicc 67 Alphabetical Library Function Listing char modelClass RecipeOwner void RedoIoMenu Widget io_box machineAndIntPtrsType ioTargetPtr boolean inNotOutMenu Appendix E modelEval cc connections cc void RedoloMenus Widget equiop connectionInfo Type connectionInfoPtr caddr_t call data connections cc void machineClass RefreshOutputConnectionMenu int ou
9. P lt Symbols A linear operator An eigenvalue of a variance covariance matrix A diagonal matrix of eigenvalues The dimension of an output space The dimension of an input space The set of nonnegative integers A null space of a linear operator The magnitude of the range of values that an output may take A diagonal matrix used to transform recipes of input settings The range space of a linear operator The set of real numbers A scaling coefficient used to transform an output value 48 A variance covariance matrix used in the model update algorithm or a diagonal matrix used to transform vectors of output values in the recipe update algorithm The standard deviation of a random variable The number of terms not including the constant term in a model equation A vector of term values for a model equation A matrix each row of which is a vector of term values for a model equation The zero vector A vector each element of which is 1 0 A numerically conditioned vector of term values for a model equation A matrix each row of which is a numerically conditioned vector term values for a model equation A weighting coefficient for a regression algorithm of A diagonal matrix containing the weighting coefficients for a regression algorithm An equipment input setting A vector recipe of equipment settings A correction to a recipe of equipment settings in a recipe update algorithm An in
10. int machineClass ModelUpdate int outputNum modelUpdate cc boolean modelClass NoiseState l modelEval cc int modelClass NonzeroTermCoeffsCnt int outputNum l modelEval cc double NormalizeVector double vector int dimension mymath cc void OfferToGenerateRecipe Widget parent processList process process cc void Online Widget w Widget diagnosis caddr_t call diagnosis cc void OpenCntrIModel Widget w modelNumeClass modelNamePtr caddr_t call data modeIRW cc void OpenRecipe Widget w recipeNameClass recipeNumel tr caddr t data r cipeIngres scc void OpenSimulModel Widget w modelNameClass modelNamePt caddr t call data modeIRW cc void processNode operate char interface Type process cc void processNode operateNtimes char interface int waferCnt process cc void OperateProcess Widget parent processl ist process caddr_t call data process cc 9 void inputClass operator inputClass amp input l modelEval cc double outputClass OrigCoeff int coeff Num modelEval cc outputClass outputClass modelEval cc outputClass outputClass modelEval cc boolean machineClass OutputIsConnected int outputNum InachineRW cc double machineClass outputRange int outputNum modelEval cc double machineClass outputRange ioName Type outputName modelEval cc void pivot int i double matrix MAXDIM double column int dim short good
11. SetCorrCoeff int coeffNum double newValue double inputClass SetCriticalValue double new Value void SetEquip2 Widget w connectionInfolype connectionInfoPtr caddr_t call data void machineClass SetHistoryToinvalid void processNode SetHistory ToInvalid void SetloNum Widget w machineAndIntPtrsType target caddr call data void SetloNumToZero Widget w int ioNumPtr caddr t call data char modelClass SetModelName char newName char modelClass SetModelOwner char newName char modelClass SetRecipeName char newName char modelClass SetRecipeOwner char newName double outputClass SetSimulCoeff int coeff Num double new Value char modelClass SetSimulModelName char newName char modelClass SetSimulModelOwner char newName void SetTextWidgetString Widget w char string void SetToFalse Widget w int targetIntPu caddr data void SetToTrue Widget w int targetIntPtr caddr t call data double inputClass SetValue int step double newValue double inputStepValueClass SetValue double newValue double outputClass SetValue double newValue equipSetup cc functions cc equipWindow cc mymath cc modelIngres scc modelRW cc equipWindow cc modelRW cc equipWindow cc r cipeIngres scc recipeIngres soc modelEval cc modelEval cc machineRW cc modelChoice cc modelEval cc mo
12. p ENVIRONMENT e 5 a 5 2 5 3 3 11 September 1992 Bart J Bombay by TOIT ALE LA mj illia CAE 1 H o a E p n T ru I REN ie m Ke Lu vui THE BCAM CONTROL AND MONITORING ENVIRONMENT by Bart J Bombay Memorandum No UCB ERL M92 113 11 September 1992 THE BCAM CONTROL AND MONITORING ENVIRONMENT by Bart J Bombay Memorandum No UCB ERL M92 113 11 September 1992 THE BCAM CONTROL AND MONITORING ENVIRONMENT by Bart J Bombay Memorandum No UCB ERL M92 113 11 September 1992 THE BCAM CONTROL AND MONITORING ENVIRONMENT by Bart J Bombay Memorandum No UCB ERL 92 113 11 September 1992 ELECTRONICS RESEARCH LABORATORY College of Engineering University of California Berkeley 94720 The BCAM Control and Monitoring Environment Bart J Bombay September 11 1992 Abstract Accurate control and monitoring of manufacturing equipment is essential to integrated circuit production Such a control scheme can take advantage of equipment models for the various steps involved in the production process Unfortunately the equipment used in integrated circuit manufacturing often changes with time and is always subject to various disturbances which in turn introduce significant fluctuation in performance This report includes an adaptive regr
13. Alphabetical Library Function Listing Appendix E int machineClass GetModelCoeffs char modeiSelector miodelIngres scc void GetNewModelName Widget w machineClass machinePtr caddr t data modeIRW cc void GetNewRecipeName Widget w machineClass machinePtr caddr t calld data r cipeIngres scc int machineClass GetOutputIndex char name modelEval cc void processNode GetOutputs interfaces cc int processNode GetRemainingControls connectionClass processInputs process cc int processNode GetRemainingFinalOutputs connectionCluss processOutputs process cc int GetSpecialFunctionIndex char name mbdelSpecFn cc int modelClass GetTermIndex char name modelEval cc int modelClass GetTermIndex char name modelEval cc double modelClass Gradient double gradient int outputNum generateRecipe cc double processNode Gradient double gradient connectionClass processInputs int inputCnt connectionClass processOutput generateRecipe cc void machineClass Graph char graph Type grhphsBCAM cc void machineClass Graph char graph Type int index graphsBCAM cc void processNode Graph char graph Type process cc void GraphAutocorrelation machineClass machinePtr FILE tempFile int outputNum grhphsBCAM cc void GraphCUSUM machineClass FILE templile int outputNum grhphsBCAM cc void GraphFinalOutputs Widget parent processl ist process c
14. Functions Listed by Hierarchy Appendix G e nrocessNode propagate Deal with the results typed in by the operator machineClass CopyOutputsToInputs Send the results on to other machine inputs as specified by connections eeooooo oo o machineClass AddToHistory Store the results in the machine s historical record machineClass ModclUpdate Check the machine s model and update if necessary nrocessNode CalcControls Handle feed forward control calculations processNode AssignControls If not done start operation of the next precessine station in the workcell nrocessNode CalcControls If done with the last machine in the workcell and any models have been updated and feedback control is on then calculate a new workcell recipe if necessary Appendix H Source Code Listings 80 Appendix H Source Code Listings Source code for the BCAM Environment is available upon request by electronic mail to bcam radon berkeley edu 81 Known Bugs Appendix I Appendix I Known Bugs Unit compatibility is checked when connections are made e g micrometers are compatible with Angstroms The BCAM Workcell Controller however does not support unit conversions along connections 5 92 Appendix J A G2 Formulation of Measurement Queuing Effects 82 Appendix J A G2 Formula
15. Widget w Widget io menu caddr call data connections cc void Highlight Widget Widget w Widget command t call data functions cc historyClass historyClass machineRW cc historyClass historyClass machineRW cc int machineClass HistoryLength inachineRW cc void Inline Widget w Widget diagnosis caddr t call data diagnosis cc Widget IOBelowRight Widget parent Widget above Widget left char title char message boolean isInput int vertDist machineClass machinePtr e inputClass inputClass modelEval cc inputClass inputClass inputClass amp input modelEval cc inputClass inputClass modelEval cc double machineClass inputRange int inputNum modelEval cc Appendix E Alphabetical Library Function Listing 64 double machineClass inputRange ioNameType inputName modelEvaljcc inputStepValueClass inputStepValueClass stepsicc int modelClass InsertInputs double inputVector modelEvallcc void InvalidateHistory Widget parent processList process caddr call data processicc boolean IsAMember char unitList char unit machineRW cc Widget LabelBelowRight Widget parent Widget above Widget left char title char message int vertDist functions cc boolean LegalInputs connectionClass processInputs int inputCount generateRecipe cc short linear double matrix MAXDIM double coiumn short done short pivt int dim
16. accomplished This analysis is beyond the scope of this report Chapter 2 Theory of Discrete Process Control where x i max i is the minimum valid value for setting i and Xmax is the maximum valid value for setting i Whenever a recipe is calculated the algorithm must be able to remain within the constraints given by 37 To handle these constraints a feasible modificatidn to the above algorithms freezes any constraint violating input value at the minimum 1 Or maximum according to the nature of the violation and reduces the dimension of the input space by one Thus the optimization can continue with the remaining inputs For a more robust system a more general constrained optimization algorithm could be applied 20 1 The reliability of this modification depends on the assumption that all of the modeled output values are monotonically either increasing or decreasing with respect to each individual setting value an assumption which is satisfied by most semiconductor processing equipment 17 Theory of Discrete Process Control Chapter 2 2 5 Application of the Model Update and Recipe Update Algorithms The presented methods for checking and updating equipment models and for calculating a new equipment setting recipe are built into the BCAM control applications The model update algorithm is used as part of the feedback system to maintain current models for processing equipment The recipe update algori
17. by listing their column names and the types of data stored in those columns These table structure descriptions are identical to those provided by the Ingres database manager The meanings of those columns are then briefly described and an example table is provided The data type abbreviations used in the table structure descriptions translate as follows 14 Four byte integer 18 Eight byte floating point number varchar n A variable length character string of maximum length n date A date and time D 2 The Equipment Index Table The equipment_index table basically lists the equipment which is available to the operator This table is used to create the BCAM environment Equipment Activation Window Table 1 Ingres table information for equipment index o e The column name contains abbreviated names of all available equipment Edch abbreviated name is also used as an affix to the table names of the other Ingres tables which apply to that particular piece of equipment c g the MTI Photoresist Developer s 53 Ingres Table Formats _ Appendix D abbreviated name is mtil and the name of the table describing it s recipes is mtil recipe The column formal_name contains the full names of the equipment and the column process_description contains descriptions of the functionality of the equipment Table 2 Contents of equipment_index databas
18. into this array 21 modelUpdate cc This file contains the code used for updating equipment models The model update algorithm uses several mathematical function defined in mymath cc Appendix F Description of the Source Files F 22 mymath cc This file contains mathematical functions Most of the 74 functions in this file were written by Professor Costas Spanos The statistical analysis functions were added by the author F 23 process cc This file contains most of the functions which handle a processing workcell including the functions which define the Workcell Window 24 recipeIngres scc This file contains code for the BCAM Recipe Editor s interface to the Ingres database This code was written by Hao Cheng Liu and Bart Bombay and is now maintained by Hao Cheng Liu This code requires an Ingres pre processor esqic F 25 steps cc This file contains functions for accessing the recipe values at individual steps in the operation of a machine 26 xgraphRM cc This file contains a function which creates an xgraph and then when the xgraph exits automatically removes the file which was used for that xgraph This file is self contained except for the libraries lt stdio h gt and lt stdlib h gt and compiles to its own executable main int argc char argv if lt 2 fprintf stderr xgraphRM error no file name specified An exit 0 char systemString 250 sprintf syste
19. matrix X each row of which contains the values of those settings corresponding to one run Thus fork 1 K andi 1 x is the value of the jh setting used for the k run Since performance records become obsolete with time a forgetting factor is applied in the weighting of the regression calculations in order to emphasize the most recent observations In addition a strict limit is placed on the number of observations to include in the model update calculations This limit is called the window size and is the maximum number of rows in X When the number of data points available is less than the window size then the number of rows in X is equal to the number of data points The appropriate choice of the window size depends on the rate at which machine performance is expected to drift and also the inherent capability of the machine The matrix X is then transformed into a K x t matrix T that contains the respective values of the t model terms as defined by the basic model structure T has the same number of rows as X although it may have a different number of columns For example given the model described by equation 1 each row of T would have the form 1 1 1 t Xk2 54 gt 1 2 Nei 7a where bs Xy is the corresponding row of X which contains the values of the machine settings used during the k run 1 In this report boid faced capital letters are used for matrices
20. of the input The unit of measure associated with values of this input The minimum recommended value for this input The maximum recommended value for this input h A list of values that this input takes at each step in the operation of this machinc This is a private member Return the value of this input at step step Assign a new value for this input at step step Also return this new value Return TRUE if this input is connected to another machine Otherwise return FALSE This class is used to form a list which stores the current recipe values of an input at all relevant steps in the equipment operation Connection information is also stored here double value int step The value of an input at this step This is a privdte member The step number for this step BCAM Environment Programming Manual e boolean critical connectionClass connection inputStep ValueClass next 5 5 6 class outputClass Chapter 5 True if this is a critical step for a machine s operation False otherwise Only one step should be critical for any input This information is used by the model evaluation routines Connection information for this input The next step in this linked list The class outputClass contains all the information about an output for a machine and functions for manipulating the outputs Descriptions of some members follow char name char abbr char units double
21. output pair 3 5 Process Analysis Functions 3 5 1 Deduction of Process Order After the user has designated the equipment interconnections the workcell controller must deduce the order in which the machines will operate The controller does this by following connection paths to determine which machine depends on the greatdst hierarchy of other machines for its input values This machine is placed at the end of the processing line The controller then checks for the machine with the next greatest dependence and places it second to last The method is continucd until all connected machines have been included This method can handle any configuration of machines and will automatically detect misconfigurations which lead to loops Once the workcell configuration has been determined the controller may consider the whole workcell or parts of it as a single operation 1 Automatic storage of model corrections has not yet been implemented Chapter 3 BCAM Implementation 22 3 5 2 Workcell Performance Prediction For several applications the workcell controller must be able to predict the final outputs of a workcell based on the individual controls applied to all machines in the workcell This is accomplished by first predicting the outputs of the first machine feeding these outputs to the inputs of the following machine and continuing until the predictions for the last machine have been calculated thus yiclding the desired result 3 5 3 Work
22. specified by connections e machineClass AddToHistory Store the results in the machine s historical record e machineClass ModelUpdate Check the machine s model and update if necessary e processNode CalcControls Handle feed forward control calculations processNode AssignControls 78 If not donc start simulation of the next processing statipn in the workcell e processNode CalcControls If done with the last machine in the workcell and any models have been updated and feedback control is on then calculate a new workcell recipe if necessary G 5 2 Wafer Processing in the Workcell OperateProcess Workccll window menu command button callback processNode operate screen interface Operate workcell in screen interface mode processNode AssignControls Assign the current controls to a machine e e processNode DictateControls Pop up a window dictating the current controls for a machinc eee CallGetOutputs DictateControls callback function to processNode GetOutputs o e processNode GetOutputs Fetch the results of the simulation e AskForOutputs Pop up a window asking the operator for the results measurements after the machine is finished AskForOutputs callback function to processNode propagate call call 79 Principal Library
23. the workcell controller is invoked the machine interconnections are analyzed and a linked list of processNodes are created to escribe the order in which the machines operate i e describe the process Each process node has the following members Chapter 5 machineClass machine processNode preceding processNode following processNode start processNode end void CalcControls 5 5 4 class inputClass The class inputClass contains all the information about an input for a machine and functions for manipulating that input Descriptions of some members follow char name char abbr char units double min double max inputStepValueClass valueList double Value int step double SetValue int step double newValue boolean Connected 5 5 5 class inputStep ValueClass BCAM Environment Programming Manual 40 A pointer to the machineClass structure corresponding to the machine at this node in the process workcell A pointer to the preceding process node in the workcell A pointer to the following process node in the workcell A pointer to the first process node in the workcell A pointer to the last process node in the workcell Calculate the values for the controllable inputs for this machine and all following machines in order to rea target output values Calculated values are automatically stored in the inputs member The name of the input An abbreviation of the name
24. thickness T and reflectance R The photoresist reflectance is again measured after exposure the thickness is not affected by the exposure Finally the critical dimension CD is measured after the devclopment Since the thickness and reflectance measurements are considered inputs to the following processing steps they appear in model equations used by the BCAM controller they are connected as depicted 29 BCAM Environment User s Manual Chapter 4 in the figure GCA Photoresist Exposure Eaton Photoresist Spinner Photoresist Developer Once the three machines have been activated the following sequence of mouse clicks will set up the connections in the BCAM environment Double click on the developer s output CD to designate the final output Click on the developer s input thickness and click on the spinner s output thickness to connect Click on the exposure s input thickness and click on the spinner s output thickness to connect Click on the developer s input reflectance and click on the exposure s output reflectance to connect Click on the exposure s input reflectance and click on the spinner s output reflectance to connect The workcell connection information is thus completed The workcell controller may now be invoked through the Equipment Applications Menu described in 4 2 7 4 2 6 The Equipment Connections Menu Connect Inpu
25. value double min double max double upperSpecLimit double lowerSpecLimit coeffsType coeffs coeffsType corr_coeffs coeffsType simul_coeffs double Value The name of this output An abbreviation of the name of this output The unit of measure for the values of this outpht The current value of this output This is a private member The minimum feasible value for this output The maximum feasible value for this output The upper specification limit for this output ina particular manufacturing application The lower specification limit for this output ina particular manufacturing application The original controller model coefficients for this output This is a private member The controller model correction coefficients for this output This is a private member The simulator model coefficients for this output This is a private member Return the current value of this output double SetValue double newValue boolean Connected Assign a new valuc to this output Also return this new value Return TRUE if this output is connected to another machine Otherwise return FALSE Chapter 5 BCAM Environment Programming Manual 42 5 5 7 class historyClass An instance of this class stores information about the processing of a particular wafer on a machine Each machineClass structure includes a linked list of these history structures int waferNum The wafer identificatio
26. var Ay Vic W Vpc Voc W Vpc 07 13 The standard deviation is estimated from the residuals of the regression equation during the creation of the original machine model Additional estimates of o might be obtained during replicated runs In order to ensure the stability of the algorithm an additional test is applied to prevent extreme corrections to the model During an update procedure no model coefficient may change by more than 60 of its previous value Once all significant principal components have been examined the terms array is multiplied by the new correction coefficients Ay and the resulting vector is subtracted from the output discrepancy vector Az The weighted average of the elements of the resulting vector if significant is the constant term correction coefficient 1 The p value is the probability of obtaining an estimate of the correction coefficient whose magnitude is greater an the considered estimate assuming that the true value of the correction coefficient is zero Typically if the p value is less than 0 05 then the correction coefficient is accepted as significant 11 Theory of Discrete Process Control Chapter 2 K wa A z Ve 1 kolon 11 144 2 k l where the w are the diagonal elements of W The correction coefficients are then put through the inverse transforms which bring them back into the original terms space where they becom
27. with C programs This feature leads to the possibility of a more limited use of G2 as a graphical interface to the BCAM software which is written primarily in C While such an implementation is attractive the high cost of G2 precludes such a limited use For this study a more limited application is chosen namely the queuing problems associated with introducing regular measurements into a photolithography workcell The design for this study focuses on the construction of a relatively simple model of the photolithography workcell timing see figure below Wafers are processed by a machine and then placed into a storage arca From this area wafers are either taken to an analytical station for measurement and then transferred to the following storage area or Appendix J they are transferred directly to the next storage arca The next processing station then takes its wafers from that storage area The decisions about whether or not to measure any G2 Formulation of Measurement Queuing Effects particular wafer are dependent upon production flow and control criteria Eaton Wafer Spinner GCA Photoresist Exposure Wafer Storage MTI Wafer Storage Photoresist Developer lt T amp R Measurement Speo Reflectance Measurement EU CD Measurement Wafer Storage Wafer Storage Wafer Storage Wafer Storage Figure 7 Flow Diagram for the Photolithography Workc
28. 5 size 45 4 2 1 General Description Most operations of the equipment window are accessed through the menu bar at the top of the window This menu bar has four components Recipe Model Connect and Application In addition values for inputs outputs and model coefficients may be directly edited in the equipment window and connection information may be designated by clicking on the names of the inputs and outputs Chapter 4 BCAM Environment User s Manual 4 2 2 The Equipment Recipe Menu 26 The Recipe Menu is used to access all functions associated with the currently stored recipe of control and input values for a machine The machine is also deactivated through this window Load Recipe Select and load a recipe from the BCAM database 4 2 3 The Equipment Model Menu Load Default Recipe Load the user s default recipe from the BCAM database if the user has no default recipe the BCAM system default is loaded Save Recipe Save the current recipe into the BCAM database under the current CAN Save Recipe As Specify a name for the current recipe and save it into the BCAM database Restore Recipe Restore the recipe to the values it had at the last operation Delete Recipe Delete a recipe from the database Output Targets Set target values and tolerances for all final outputs of this machine Output Specifications Set target values and specification limits for all final outputs of this ma
29. Only principal component directions showing significant variance should be considered therefore the algorithm examines only the principal components whose corresponding eigenvalues of Sy satisfy the inequality 2 2 A 121 11 where r is the magnitude of the range of possible values that the output may take and a is a unitless empirical quantity taken to be 10 for the BCAM application The factors in 1 An orthonormal matrix has orthogonal columns and rows each of which has a magnitude of one The inverse of an orthonormal matrix is simply its transpose 2 Because S is symmetric positive definite this factorization is equivalent to the singular value decomposition of Sy Chapter 2 Theory of Discrete Process Control 10 11 are necessary to ensure that both sides of the inequality have compatible units For each considered correction coefficient a p value is calculated If this p value is low enough the calculated value for that correction coefficient is accepted Otherwise the correction coefficient is set to zero The regression analysis takes the form of the system T 1 Ay W Voc W Az 12 where Ay is the column vector of model correction coefficients in the principal component space The significance of each correction coefficient is established by looking at the variance of each estimator This variance is related to the standard deviation of the machine output 2
30. Right Widget parent Widget above Widget left char title char message int oe vertDist functionsicc specialFunctionType spec fns SPEC FN CNT modelSpecFn cc void StartBCAM Widget w Widget bcam caddr call data controllerEntrance cc inputStepValueClass inputClass Step int step stepsicc boolean inputClass StepExists int step stepsicc char strip char string modelIngres scc double Sum double data int dataCnt mymath cc double SumOfSquares double data int dataCnt mymath cc void svd double matrix MAXDIM double left MAXDIM double singular Values double righf MAXDIM int rowCnt int colCnt mymath cc double modelClass term int termNum modelEval cc double modelClass termDeriv int termNum int inputNum modelEval cc double modelClass termMax int termNum modelEval cc double modelClass termMin int termNum modelEvallcc void modelClass termMinMax int termNum int position double mini tr double maxPtr modelEvalicc double modelClass termRange int termNum modelEvalicc void TimeSeed modelEvalicc double Tintegral double t int df mymathjcc double Tintegral double t double ai double n mymathicc void ToggleFeedback Widget w processList process caddr t call data process cc void ToggleFeedForward Widget w processl ist process data double Transform double plain transformType xfori
31. addr t call data process cc void GraphInput machineClass machinePu FILE templile int inputNum graphsBCAM cc void GraphMachineNormalizedInputs machineClass machinePtr FILE tempFile graphsBCAM cc void machineClass GraphN char graph Type int indexCount graphsBCAM cc void GraphOutput machineClass machinePu FILE tempFile int outputNum grhphsBCAM cc void GraphOutputs Widget parent processl ist process data void GraphNormalizedInputs Widget parent processlList process caddr t call data process cc void GraphPredictionErrors machineClass machinePtr tempFile int outputNum grhphsBCAM cc void GraphUnconnectedInputs Widget parent processl ist process caddr t call data process cc void HandleConnectAsFinalOutput Widget w machineClass machinePtr caddr t call data cpnnections2 cc void HandleConnectAsUncontrollabie Widget w machineClass machinePtr caddr_t call data cbnnections2 cc void HandleInputClick Widget w machineClass machinePtr caddr t call data connections2 cc void HandleIOClick machineClass clickedMachinePtr int clickedIoNum int clickedStep boolean clickedIsInput boolean oneSidedConnectStoredIO cbnnections2 cc void HandleOutputClick Widget w machineClass caddr t call data chnnections2 cc boolean HasAFinalOutput machineClass machinePtr process cc void HighlightOConn
32. and bold faced lower case letters for column arrays Me arrays are obtained by applying the transpose operator to a column array 7 Theory of Discrete Process Control Chapter 2 The update algorithm applies the current model original model plus correqtion model to the machine setting corresponding to each run and predicts the respective output values It then takes the machine s corresponding historical output record z and subtracts from it the vector containing the predicted output values thus yielding the output discrepancy vector Az The elements of Az are defined by Az z ti ctco kc 3 where c is the current model s constant term coefficient and c is the column vector of the current model s remaining term coefficients This discrepancy vector will be used in order to determine the coefficients of the correction model The machine s performance records have been transformed into the term matrix T and the discrepancy vector Az These data however are not the result of a designed experiment but rather the result of routine equipment operation this fact will limit the number of correction coefficients which can be evaluated If for example the machine has run with the same temperature setting throughout its relevant history the data will not contain any information to determine if the effect of the temperature setting has changed Similarly if all the machine s settings have been held constant then the cor
33. and load a simulator model from the BCAM database Load Default Simulator Model Load the simulator with the user s default model from the BCAM database if the user has no default model the BCAM system default is used Display Simulator Model Display the model currently being used by the BCAM equipment simulator Confirm Simulator Model Confirm the currently edited and displayed and take it as the current simulator model Note that there are two distinct models used in the BCAM environment The first is a the current controller model This model is used for all prediction and control purposes including the feedback and feed forward control algorithms The original version of this controller model is also maintained and may be viewed with the Display Original Model command The Check Model command is used to manually initiate a check and update of this model The other model is the simulator model this model is used purely for demonstration purposes Unless the simulator is explicitly specified all ref rences to model are to the controller model 4 2 4 The Equipment Window Defining Equipment Connections To connect the input setting control or incoming measurement of machine to the output usually a post processing mcasurement of another machine click successively upon the appropriate input name and output name The display will then change to describe this connection To remove the connection c
34. aph Menu This menu accesses the graphical utilities associated with workcell operation Outputs Graph the recorded output measurements of all workcell machines e Final Outputs Graph the final output measurements of the workcell Prediction Errors Create regression control chart on prediction errors Autocorrelation QGraph the autocorrelations of prediction errors e CUSUM Show a CUSUM graph of final output measurements Inputs Graph the controls used versus wafer numbers Normalized Inputs Graph all inputs normalized to fit on a single graph e Adaptive Models Graph the coefficients of the adaptive models 4 3 4 The Workcell Alarm Menu This menu is used to access BCAM alarm utilities Manual alarms can be issued using this menul e Invalidate History Specify that all previously recorded measurements should be ignored by the model update algorithms e Discard History Purge all recorded measurements from memory 4 3 5 The Workcell Options Menu The workcell controller allows the user to specify several optional parameters for dealing with the workcell These parameters are accessed through the Workcell Options Menu Turn On Off Feed Forward Control Turn On Off Feedback Control Turn On Off EVOP 1 This menu will be expanded in the future 22 2 Evolutionary operation has not yet been implemented Chapter 5 BCAM Environment Programming Manual 34 Chapter 5 BCAM Environm
35. bination thereof Further equipment specific models are often updated to reflect the changing status of the equipment 7 The Berkeley Computer Aided Manufacturing BCAM group has developed several statistically based polynomial models that describe the behavior of some important IC manufacturing equipment the Tylan low pressure chemical vapor deposition LPCVD furnace the Lam plasma etcher and the photolithography workcell 8 9 10 The equipment models described in this work consist of mathematical expressions that can predict the outcome of a manufacturing step e g the thickness of the photoresist given the settings of that step e g spin speed spin time etc Such models are based on the statistical analysis of the results of designed experiments manufacturing equipment is subjected to a well structured sequence of experimental recipes and the resulting data is analyzed through stepwise linear regression This leads to models which accurately reflect the operation of the equipment The development of these models is askisted bya theoretical understanding of the physical behavior of the equipment 3 The basic equipment model has been designed as a polynomial expression with a flexible representation so that it may operate efficiently within a comprehensive control system Several input and output transformations exponential logarithm roots etc are also supported Since equipment characteristics change wi
36. c double outputClass Coeff int coeffNum boolean CompatibleUnits char units1 char units2 machineRW cc wvoid ConfirmModelCoeffs Widget w muchineClass machinePu caddr_t call data equipWindow cc void ConfirmRecipe Widget w machineClass machineltr cuddr_t call data 2 void ConfirmSimulCoeffs Widget w machineClass machine Ptr caddr_t call data equipWindow cc boolean inputClass Connected machineRW cc boolean outputClass Connected machineRW cc void ConnectIngres char databaseName niodelIngres scc void ConnectMachines machineClass inputMachineP tr int inputNum machineClass outputMdchinePt int outputNum machineRW cc void ConnectMachines machineClass inputMachinePtr int inputNum int step machineClass outputMachinePtr outputNum machineRW cc void machineClass ConnectMachinesB yName char inputMachineName int inputNum int step char outputMachineName int outputNum machineRW cc void machineClass CopyOutputsToInputs machineRW cc void processNode CopyOutputsToInputs machineRW cc double CopyVector double target double source int dimension mymath cc void CopyWidgetLabel Widget w Widget target caddr t call data njodelChoice cc double outputClass CorrCoeff int coeffNum modelEval cc double cosine double x mymath cc int inputClass CountSteps steps cc int modelClass CountTotalInputs steps cc modelEval cc v
37. cc This file contains the function to create a BCAM message window 73 Description of the Source Files Appendix F 16 modelChoice cc This file contains functions for creating lists of choices in a widget format The functions in this filc arc referenced primarily from those in the connections cc file This code is provided primarily for use with the old style connections window F 17 modelEval cc This file contains low level functions for evaluating models accessing private members of the modelClass and other basic mathematical operations on machines and models This file also contains constructor and destructor functions for several classes F 18 modelIngres scc This file contains the code for accessing the table equipment_index as well as the Ingres tables for equipment input output information and equipment models This code requires an Ingres pre processor esqlc F 19 modelRW cc This file contains functions dealing with the reading and writing of models i e loading them and saving them as well as functions dealing with the reading of the available equipment list These functions are one level up from the functions which actually handle the database operations F 20 modelSpecFn cc This file contains the code for implementing several special functions The needed functions are defined here as well as an array of pointers to those functions Another function is used to find indices
38. cell Sensitivity Analyses In order to determine the sensitivity of any workcell final output to any workcell input the controller uses a recursive algorithm This algorithm uses the workcell s interconnection information to implement a multidimensional evaluation of differentiation of composed functions The level of hierarchy for the composition and thus the level of recursion depends on the number of machines between the machine receiving the input and the machine whose output is considered 3 6 The Workcell Operations In addition to providing control over a processing linc the controller must be able to conduct simulations of the process This will allow operators to perform preliminary ji of new process configurations or control schemes without expensive and time consuming wafer processing The run by run control system under development by the BCAM group uses models for the individual machines in a process to build a model of the entire process A process specifications menu enables the user to set the product s desired characteristics and then the controller will automatically calculate the optimum equipment settings to meet that product s specifications These settings make up the process recipe Once this has bden accomplished the controller may begin processing wafers 23 BCAM Implementation Chapter 3 As wafers are processed the BCAM Environment makes a record of each machine s performance This record is use
39. chine Calculate Recipe Generate a recipe to produce the final output values specified by targets Download Recipe Download a recipe of controls to the physical equipment Deactivate this Machine Eliminate this equipment window and deactivate the corresponding machine The Model Menu is used to access all functions which deal with equipment models Load Model Select and load a model from the BCAM database Load Default Model Load the user s default model from the BCAM database if the user has no default model the BCAM system default is used Save Model Save the current model into the BCAM database under the current name Save Model As Select a name for the current model and save it into the BCAM database Display Original Model Display the model as it existed before any feedback corrections Display Current Model Display the current adaptive equipment model original model plus correction model Confirm Current Model Confirm the currently edited and displayed model and take it as the current adaptive model Predict Predict the outputs generated by the current input recipe 27 BCAM Environment User s Manual Chapter 4 Check Model Using equipment performance data execute statistical regressions to check and if needed correct the current adaptive model Response Surface Plots Activate the response surface plotting facility for equipment models Load Simulator Model Select
40. d by the alarm generation module the model update algorithm and the graph generation module 3 7 The Interface to Other BCAM Applications The Berkeley Computer Aided Manufacturing research group has develdped several applications for manufacturing These applications can be invoked for use with a piece of equipment through the BCAM environment Formal alarm generation algorithms have been developed by Sovarong Leang 22 They will be integrated into the monitoring systems of the BCAM environment Real time statistical process control SPC algorithms have been implemented by Eddie Wen 22 23 This implementation includes graphical displays The SPC application functions for measurements taken from the Berkeley Microfabrication Laboratory s Lam Autoetch 490 An application which performs diagnoses on equipment malfunctions has been developed by Dr Gary May Hao Cheng Liu and Sherry Lee 16 17 This diagnosis module is available for the Berkeley Microfabrication Laboratory s Lam Autoetcher through the BCAM environment An application to create two and three dimensional response surface plots of equipment models has been developed by Eddie Wen and Eric Braun for use with the BCAM environment 22 1 This model plotting algorithm is currently in the process of integration into the BCAM environment Chapter 4 BCAM Environment User s Manual 24 Chapter 4 BCAM Environment User s Manual 41 Introduct
41. d in the equipment models the controller will be able to determine the total process expected standard error including any errors which propagate along the process and for which feed forward control cannot compensate and thus the controller will be able to determine the expected yield of the process Hence whenever a new product is proposed automated yield prediction for the proposed product may determine whether it is technologically or financially feasible 6 5 1 Comparison of Control methods prediction and process simulation can also be used to evaluate the control system itself By simulating various process problems such as equipment drift or maintenance disturbances the response of the control system can be examined and this information can be used to adjust various settings of the controller or even to change the configuration of the process line itself For example an enginecr may wish to use process simulation to compare the controller responses with feed forward control to the responses without feed forward control and thereby evaluate the benefit of the added control This simulation may also be used to set forgetting factors for the modcl update algorithms 45 Conclusions amp Future Work Chapter 6 6 5 2 Alarm Generation through C Prediction Cok prediction when used during production may also provide a method of alarm generation When a predicted becomes too low it can be a signal that new recipes
42. delEval cc steps cc connections cc machineRW cc process cc connections cc connections cc modelEval cc modelEval cc modelEval cc modelEval cc l modelEval cc l modelEval cc l modelEval cc functions cc modelChoice cc miodelChoice cc steps cc steps cc modelEval cc Appendix E Alphabetical Library Function Listing 68 void SetWidgetLabel Widget w char label functionsicc void ShowConnections Widget parent connectionInfolype connectionInfoPtr caddr t call data connectionsJcc void processNode ShowProcessOrder Widget parent Widget command bar process void processNode ShowPredictedFinalOutputs Widget parent process cc double machineClass simulate modelEval cc double modelClass simulate int outputNum modelEvalicc void SimulateProcess Widget parent processList process caddr t call data process cc void SimulateProcessNtimes Widget parent processl ist process call data process cc void SimulateProcessNtimes Widget parent processList process cuddr_t call data process cc double outputClass SimulCoeff int coeffNum modelEval cc char modelClass SimulModelName modelEval cc modelClass SimulModelOwner modelEvalicc Widget SizedDialogBelowRight Widget parent Widget above Widget left char title char information int size int vertDist functions jcc Widget SizedLabelBelow
43. dvisor Professor Costas J Spanos His constant support and guidanqe have been invaluable to the success of my studies I also thank Professor Seth Sanders 4 serving on my dissertation committee In addition I thank Dean David A Hodges for his profound advice to me during both my undergraduate and graduate studies and also for his support and leadership of CIM research at Berkeley I am also most grateful to Professor Eugene Wong Professor Martin Graham Dr Sheila Humphreys Winsor Letton Dr Shahab Shiekholeslam and David Wagner for their sage counsel through my years at Berkeley For their generous assistance in the proofreading of this thesis I thank Dr Shahab Shiekholeslam Donald Zwakenberg Sherry Lee Eric Boskin Sovarong Leang and John Thomson I am also most appreciative of the efforts of Professor Gary May for his development of equipment model structures and his work on the BCAM LPCVD diagnostic system Hao Cheng Liu for his development of an equipment recipe editor the BCAM diagnostic system and the database tables used by the BCAM Environment Edward Wen for his work on statistical process control and response surface plotting Sovarong Leang for his experimentation and development of photolithography equipment models and alarm generation algorithms Sherry Lee for her work on the BCAM diagnostic system Eric Braun for development of the BCAM response surface plotting application Zhi Min Ling for his development of mic
44. e searchDirection double inputs connectionClass processInputs int inputCount connectionClass processOutputs int outputCount processNode processPtr double desiredOutputs double specR anges generateRecipeicc void AskForFinalSpecs Widget parent 5 184 process caddr_t call data void AskForFinalTargets Widget parent processlList process caddr t call data void AskForOutputs processNode Widget parent interfaces cc void AskForRecipe Widget parent processList process caddr t call data void AskForSimulationRepCnt Widget parent processList process caddr t call data void processNode AssignControls int waferNum char interface interfaces cc double Average double data int dataCnt mymath cc void BCAMentrance int argc char argv controllerEntrancejcc void BCAMhelp Widget w caddr_t client data caddr_t call data controllerEntrancejcc void BCAMinfo Widget w caddr t client data caddr t call data controllerEntrancej cc void BcamQuit Widget w caddr t client data caddr t call data controllerEntrancejcc void BCAMXnitialize int argc char argv controllerEntrance cc void bsubs double matrix IMAXDIM double column int dim short good mymathjcc void processNode CalcControls generateRecipe cc void CallConnect Widget w connectio
45. e table wamra rn s ion on Pare Spier m Mi Phos Devloper Pare deel D 3 The Equipment Input Output Table The equipment_io table describes the inputs settings controls or incoming measurements and outputs post processing measurements of a machine Table 3 Ingres table information for equipment_io aa oe ee shes she es 9 pue be m e s mmm e mmm m De w parameter The name of an input or output abbreviation The abbreviation of the name of an input or output units The unit of measure for an input or output io The string input or output to distinguish th two Appendix D Ingres Table Formats 54 minimum The minimum valid value for an input or the minimym expected value for an output maximum The maximum valid value for an input or the maximpm expected value for an output Table 4 Example of mtil io table recur uin om men eee meme me oo NEL S ERN EN D 4 The Equipment Recipe Table A equipment recipe table contains recipes for the operation of a particular machire Table 5 Ingres information on equipment recipe Emme usa m LIN _ step The operation step for multistep operation critical A boolean value one symbolizes true and zer
46. e the correction model s term coefficients Ac D B Ay 15 Finally the updated model coefficients c Ac and c co and the model update procedure is complete 24 Recipe Update Algorithm The implementation of a feedback control system to integrated circuit manufacturing requires that the controller be able to update machine settings whenever equipment models change The implementation of feed forward control similarly requires the calculation of machine settings For these purposes a settings recipe update algorithm is required The unconstrained recipe calculation problem reduces to the following Solve for x such that f x 16 where x e Xc R the n dimensional input space 2 e Zc R the m dimensional output space and f X Z An iterative algorithm is presented which starts with an 1 Note that some symbols in this section do not correspond directly with those of the previous section Chapter 2 Theory of Discrete Process Control 12 initial and generates a sequence x x x converging to the best compromise solution Convergence properties of this method are discussed in 18 Denote the ja component of f as f X R Then at each iteration k f can be linearized about x to get fix A x x 17 where af ie 09 A 3 59 2f 18 S f This leads to the modified problem find a compromise solution x such that fix A x
47. een established the model is modified through a model update algorithm 7 and the equipment control settings arc correspondingly adjusted The workcell controller has several process analysis functions which examine equipment interconnection information to determine the order of processing steps to predict performance of an entire workcell and to perform sensitivity analyses on the workcell Feed forward control is initiated whenever the projected properties of a wafer lot fall outside of specifications It is implemented by adjusting the recipes control settings of subsequent processing steps If projections predict that feed forward control cannot bring the lot back within the acceptance limits 13 the lot will be discarded or re processed 19 BCAM Implementation Chapter 3 This chapter gives an overview of the implementation of the BCAM Environment Low level implementations details are described in the BCAM Environment Programming Manual presented in Chapter 5 Stations Processing Equipment Measurement Operator Workcell Interface X Windows Controller Monitoring amp Modeling Response Surface Plotting Statistical Process Control Diagnosis Ingres Database Recipe Editor amp Model Editor Ei 2 The BCAM Envi 3 2 Ingres Database The BCAM environment must operate in a multiple user system with security precauti
48. ell 84 85 A G2 Formulation of Measurement Queuing Effects Appendix J Initial work to design a knowledge base with G2 includes the definition of several object types and icons and preliminary connections among instances of these icons Gensym also provides a customer support visit which is effective in assisting users new to the G2 system With such assistance a basic design can be implemented This basic design may then be further refined with the introduction of an enhanced set of rules more informative readouts and more precise timing specifications J 3 Results This study compares two distinct algorithms for the scheduling of wafer measurements These two methods are henceforth referenced as algorithm A and algorithm B and are described below J 3 1 Wafer Scheduling Algorithm A The first method algorithm A uses inventory based rules to decide the number of wafers from which measurements would be taken Each storage area immediately preceding a processing station has a specilic low level If the wafer count in the storage area falls below this low level the deficit is immediately taken from the preceding storage area and the wafers so taken do not get measured As long as the count of the storage areas remains above or at the low level each wafer will be subjected to measurement as it passes between storage areas Algorithm A proves to be successful in maintaining production levels since it foregoes mea
49. ent Programming Manual 5 1 Introduction The Basic Program Structure To aid in the ongoing quest to improve integrated circuit manufacturing techniques the BCAM group has developed an object oriented software library describing the fabrication equipment The library provides a set of functions for interacting ii equipment and databases and for manipulating various models of machine performan e Once the BCAM software has loaded equipment information into memory it can perform predictions sensitivity studies simulations recipe generation and statistical process control Also included in the software are procedures for updating machine performance models alarm generation and diagnostic analyses The BCAM software is organized ag a library which can be accessed by all modules in the BCAM architecture e g workcell controller recipe editor malfunction diagnosis and statistical process control The entire library is written in C an object oriented superset of the C programming language C extends the normal capabilities of C by adding features such as data abstraction message passing polymorphism inheritance and class hierarchy 11 The BCAM environment is built around a C class called machineClass This data structure includes all the information necessary to interact with the physical machine Member functions of this class or its member classes are used for BCAM actions related to the individual machine For every equipme
50. erkeley Computer Aided Manufacturing BCAM group was recently presented with the opportunity to study a new software product from Gensym Corporation The product G2 is a flexible tool which uses an object oriented environment to simulate and 83 A G2 Formulation of Mcasurement Queuing Effects Appendix J 35 control various types of systems Of particular interest are this product s extended graphical capabilities which assist an operator in using the system For this study the G2 software was used to simulate a photolithography workcell and to study the effects of introducing a measurement strategy into the workcell The feasibility of using G2 as an interface to a control and monitoring system is also addressed J 2 Methodology The G2 software possesses several appealing features Among these are its graphics capabilities its object oriented environment its simulation ability and its general flexibility In order to introduce customers to the software Gensym provides a two day course on the G2 system This course proved effective in familiarizing new users with the general use of G2 Although G2 is very flexible considerable effort must be expended o program algorithms into G2 The one second clock cycle for G2 is also rather restrictive These limitations prevent the use of G2 to implement the generalized BCAM control and monitoring system However one interesting feature of the software is its ability to interface
51. es a complete control system for processing workcells The environment interfaces with an Ingres database for maintenance of machine operation recipes and equipment model records In order to provide automated equipment control the controller uses an optimization algorithm for recipe updates and a statistically based algorithm for model updates 6 2 Database Storage of Wafer Measurements Currently the BCAM environment maintains wafer measurement recgrds only in memory while running These measurement records along with the machine controls used to process the wafers must also be stored in the database so that they may be accessed whenever the BCAM environment is re started after a shutdown 6 3 Alternate Storage Formats Development will be performed to allow the BCAM Environment to store information in text files or other databases than Ingres Chapter 6 Conclusions amp Future Work 44 6 4 Installation in Integrated Circuit Fabrication Facilities The connections to the physical equipment must be implemented The Berkeley Process Flow Language 14 BPFL and the SECS II protocol will be instrumental in this development The BCAM Environment will be installed at the DEC manufacturing facility in Boston Massachusetts 6 5 Process Capability Cox Evaluation and Process Simulation When the process prediction capability of the controller is combined with an analysis of the measured standard errors of the equipment as store
52. ession model which evaluates itself and whether it should be corrected to better reflect equipment behavior The model is modified through recursive estimation based on in line wafer measurements Decisions for model changes are based on formal statistical tests which use the principles of the regression control chart 1 This strategy has been tested on the photolithography sequence in the Berkeley Microfabrication Laboratory 5 21 In addition a control scheme has been which uses equipment models for feedback and feed forward control of a manufacturing workcell Included in this implementation are editing and generation functions for equipment setting recipes a model editor and interfaces to other Berkeley Computer Aided Manufacturing BCAM applications This implementation named the BCAM Control and Monitoring Environment is described in this thesis Also included in this report are an instruction manual for use of the environment and a programming manual for further development of the code Table Of Contents Table Of Contents Acknowledgments Chapter 1 Introduction Chapter 2 Theory of Discrete Process Control 2 1 An Introduction to Discrete Process Control 2 2 The Form of the Equipment Model 2 3 The Model Update Algorithm 2 4 Recipe Update Algorithm 2 5 Application of the Model Update and Recipe Update Algorithms Chapter 3 BCAM Implementation 3 1 Introduction 3 2 The Ingres Database 3 3 The Role of X Windo
53. f normalized eigenvectors An empirical constant used in an Armijo step size A term coefficient value in model equation A correction to a term coefficient value in a model equation A vector of term coefficient valucs in a model equation not including the constant term A correction to a vector of term coefficient values in a model equation not including the constant term A diagonal matrix used to numerically condition vectors of term values used in a model update algorithm A function mapping an input space into A function mapping an input space into an output space A cost function used in an recipe update algorithm A linear approximation to a function mapping an input space into R A linear approximation to a function mapping an input space into an output space An approximation to a cost function used in a recipe update algorithm A search direction used in a recipe update algorithm A vector of transformed term coefficient values A correction to a vector of transformed term coefficient values An index of an equipment input setting as in x An index for an output value An index into a set of data uscd f or regression OR an iteration index for an optimization algorithm The number of data points in a data set used for regression 10 Step An index for a term coefficient value OR an index for an size calculation Appendix B A BRR Z lt gt gt Se et FT N M N N 4 UT
54. get MakePulldownMenu The functions which handle these actions are located primarily in the files equipWind w cc and mainMenu cc The workcell controller window is created in a similar fashion to the equipment window The functions which handle these actions are located primarily in the files process cc and mainMenu cc 5 3 Naming Conventions Except in cases of imported code the following naming conventions have been adhered to Macro names are all capital letters e g MACRO Function names are lower case with all individual words beginning with capital letters for ease of reading e g FunctionName Chapter 5 BCAM Environment Programming Manual 36 Variable names except for those of Widget type are lower case with imbedded words beginning with capital letters for ease of reading e g variableName Variable names of type Widget are lower case with imbedded words separated by the underscore character e g widget_variable_name Type and class names follow the same conventions as variable names 5 4 Source Code File Hierarchy The source code file hierarchy from top down is approximately organized in the following order BCAM cc controllerEntrance cc mainMenu cc equipSetup cc machineRW cc modelRW cc modellIngres scc recipeIngres scc equipWindow cc functions cc messageWidget cc make Warning cc connections2 cc connections cc modelChoice cc p
55. h equipment activation menu e ReadEquipNames Read the list of available equipment from the database and store in memory global linked list availableEquipment MakeAddEquipmentMenu Define and create the window for equipment activation XtPopup Pop up the equipment activation window to th screen Appendix G Principal Library Functions Listed by ITierarchy G 2 2 Click on HELP BCAMhelp G 2 3 Click on INFO BCAMinfo G 2 4 Click on EXIT QuitWarning BcamQuit G 3 Activation of a Machine AddEquipment AddMachine MakeEquipWindow G 3 1 Function AddMachine machineClass LookupEquipName GetMachine GetModellO e GetModelStructure Pop up the main BCAM help window Pop up the BCAM information window Ask the user for verification before quitting Shut down the BCAM Environment Add a machine to the current setup and bring up corresponding equipment window 76 he Create a new machineClass instance and load the machine data from the database Define create and pop up the equipment window for this machine Constructor for machineClass Load machine informatjon from the database Look up machine in list of available equipment Load up machine information from the database Get the machine s input and output information Load the machine s model structure from the database e GetDefaultModelCoeffs
56. h machind in a variety of ways By accessing the system database a recipe editor allows machine settings retrieved edited and saved as desired Ownership and time stamps are maintained recipes Recipes may also be calculated to meet specified targets Analytical models for the machine are also loaded from the database The implementation allows full interaction with these models including editing automatic model updates response surface viewing and storage of all models in the database As 1 The recipe editor has been developed by Hao Cheng Liu of the Berkeley Computer Aided Manufacturing group 21 BCAM Implementation Chapter 3 models are updated corrections are also stored in the databasel Ownership and time stamps are maintained on all models The operator may use these models for prediction and recipe generation Several types of equipment connection information may also be addressed by the operator Inputs which must remain constant or are uncontrollable can be d signated as uncontrollable Outputs which are considered important or for which specifications are given can be designated as final outputs Often the output of one machine affects the performance of the following processing stcp Therefore the operator can connect the output of any machine to the input of any other machine The BCAM environment checks for validity of such connections by comparing the units of the addressed input
57. har message functions cc void choiceClass PrintChoices modelChoice cc void PrintEquipNames equipNameList equipNames modelRWicc Widget PrintInformation Widget parent Widget last_widget char message functionsicc Widget PrintInformation Widget parent Widget last_widget char message char title functions void PrintMatrix FILE outputFile double matrix MAXDIM int rowCnt int colCnt mymathjcc Widget PrintPermaInformation Widget parent Widget last widget char message 2 void PrintVector FILE outputFile double vector int dim mymathicc void ProcessAlarms Widget parent processl ist process caddr_t call data process cc void ProcessAutocorrelation Widget parent processi ist process cuddr data process cc void ProcessCUSUM Widget parent processList process caddr_t call_ data void ProcessNoiseHistory Widget parent processl ist process cadde_t call_data process cc processOptionsClass processOptionsClass void ProcessSetup Widget parent void garbage caddr_t call data process cc void processNode propagate interfacesicc double PvalueFromTstatistic double t int df mymath cc void Quit Widget w caddr t client data caddr data functions cc void QuitWarning Widget w caddr t client data caddr t call data controllerEntrance cc equipNameList ReadEquipNames modellIngres 3cc
58. ineClass machine process cc modelNameList modelNameClass LookupModelName modelName lype modelName userNameType modelOwner modelRWicc modelNameList modelNameClass LookupModelName equipName lype equipName modelNameType modelName userName lype modelOwner modelRW cc void ludec double matrix IMAXDIM double column int dim short good short pivt mymath cc machineClass machineClass char equipName machineRW cc int MachineCount machineL ist machinePtr process cc boolean processNode MachineInProcess machineClass machinePtr process cc main int argc char argv void Maint Widget w Widget diagnosis caddr_t call_ data diagnosis cc void MaintRank Widget w Widget diagnosis call data Widget MakeAddEquipMenu Widget parent equipNameL ist choices equipSetup cc Widget machineClass MakeEquipWindow Widget parent equipWindowicc Widget MakeIOMenuWidget Widget connections menu Arg argl ist int argNum char menu title boolean inNotOut Widget io_title_eqPtr machineAndIntPtrsType ioTargetPtr choiceList modelClass MakeIOChoices boolean inNotOut modelChoicelcc choiceList machineClass MakeMachineChoices modelChoice cc Widget MakeMainMenu Widget parent char menu Title menuCommand lype menuCommands int commandCnt 65 Alphabetical Library Funct
59. ion Starting the BCAM System To enter into the BCAM environment first change directories to bcamdev bl n then enter the command source bcam src main bcam and then enter the command se An introductory widow will appear Click on to continue At this point the main menu will appear To activate some equipment click on the EQUIP selection and a menu of available equipment will appear Clicking on an cquipment name activates that equipment and a window for the equipment will appear Several machines may be activated at any given time The individual equipment windows allow a multitude of operations Equipment setting recipes may be edited stored and retrieved from the BCAM database Similarly equipment performance models may be edited stored and retrieved The equipment window also facilitates the definition of equipment intcrconnections for use with he BCAM workcell controller application In addition to the workcell controller the BCAM environment supports Diagnosis and Statistical Process Control SPC applications these applications are also activated from the equipment window 1 These instructions are for the current experimental implementation on U C Berkeley s radon Sun4 computer 25 BCAM Environment User s Manual Chapter 4 42 The Equipment Window 34113 lt 1 04067 Connected to vou d 7Zr4se 08 T 2 Predic on Er Error 2 5787
60. ion Listing Appendix E void MakeOldConnectionsMenu Widget parent machineClass machines machineClass Sle ania connections cc Widget MakeProcessPulldownB ar Widget parent processl ist process process cc Widget MakePulldownBar Widget parent char menu litle pulldownCommandType menuContmands int commandCnt int barCommandWidth mainMenu cc Widget MakePulldownMenu Widget parent char menuTitle menuCommandType menuComniands int commandCat mainMenu cc Widget Make3DCommandButton Widget parent char title chur label Widget above Widget left functions cc void MakeWarning Widget parent char warningString voidFunctionPtrType callbackFn void dataPtr mhkeWarning cc void MapWidget Widget w Widget shell caddr t call data functions cc void matinvert double matrix IMAXDIM int dim mymath cc void matmultip double left MAXDIM double right MAXDIM double int m int n int 1 mymath cc double maximum double numi double nuin2 mymath cc int maximum int num1 int num2 mymath cc void MessageWidget char messageString message Widget cc double minimum double num1 double num2 mymath cc int minimum int numl int num2 mymath cc modelClass modelClass l modelEval cc char modelClass ModelName modelEval cc char modelClass ModelOwner modelEval cc int machineClass ModelUpdate modelUpdate cc
61. lick upon the name of the input side of the connection i e where that parameter shows up as an input For control purposes not all outputs are critical to the final product of that workcell To designate an output value to be of final importance double click upon the name of that output The window will then show that output to be a final output operator is Chapter 4 BCAM Environment User s Manual 28 automatically prompted for specifications whenever a final output is designated Another two clicks upon the output name return the output to normal status Multiple final outputs may be designated In many cases input parameters which affect machine performance may not be controllable Furthermore it may sometimes be desirable to hold specific machine control inputs constant In such cases the relevant inputs may be designated as uncontrollable declare an input uncontrollable double click upon the name of the input The display wil then reflect this designation Another single click reverses the designation Because the workcell configuration depends on equipment interconnectiohs connection information may not be changed while the BCAM Workcell Controllet S active 4 2 5 Example The Interconnection of a Photolithography Workcell The following figure shows a photolithography workcell using three pieces of equipment Two measurements are taken on the wafers exiting the photoresist spinner photoresist
62. mString xgraph bg white bw 10 tk bb s argv 1 system systemString sprintf systemString rm s argv 1 system systemString 75 Principal Library Functions Listed by Hicrarchy Appendix G Appendix G Principal Library Functions Listed by Hierarchy This appendix describes the basic program flow of several important sections of the BCAM program Function nesting is indicated by the number of bullets preceding a function name each bullet represents a level of nesting Only the most important function calls are listed in this description minor functions calls can be referenced in the source code G 1 The Beginning of the Program BCAMentrance Create BCAM entrance window with Continue Quit e BCAMXtInitialize Initialize X windows for BCAM x XtMainLoop Loop for events mouse clicks keyboard strikes G 1 1 Click on Entrance Window Continue StartBcam Bring up the main BCAM menu ConnectIngres Conncct to the Ingres database XtUnrealizeWidget Bring down the BCAM entrance window CreateMainBCAMMenu Define and create the main BCAM menu window and realize it to the screen e e e MakeMainMenu Create the main menu command buttons and set up the callbacks for these buttons G 1 2 Click on Entrance Window Quit BcamQuit Shut down the BCAM Environment G 2 Main BCAM Menu Actions G 2 1 Click on EQUIP PrepareToAddEquip Bring up window wit
63. ment With activation deactivation an instance of machineClass is created deleted FJ equipWindow cc This file contains all the code for creating an Equipment Window and most of the code for the Equipment Window s callback functions Appendix F Description of the Source Files 72 8 functions cc General functions mostly callback to deal with X windows 9 generateRecipe cc This file contains the code for calculating equipment setting recipes Most of this code is mathematical in nature 10 graphsBCAM cc This file contains code to present graphs for the mn environment These graphs concern themselves with the analysis of measurement records The functions in this file make use of the unix command xgraph This file does not contain the source code for response surface plotting of equipment models 11 interfaces cc This file contains code for using different interfaces to run or simulate wafer processing This is where code should be inserted for automatic communication to processing equipment and measurement equipment F 12 machineRW cc This file contains a variety of functions dealing with machineClass instances F 13 mainMenu cc This file contains the functions used to build the main BCAM menu and the bars of pulldown menus at the tops of the equipment window ahd the workcell window 4 makeWarning cc This file contains the function which creates a BCAM warning window F 15 message Widget
64. mulation would be limited to five minutes The time scale chosen for the simulation is one minute per second This time scale yields sufficient resolution for the simulation while providing results after a reasonable period of time At this scale the simulation of a 24 hour workday requires 24 minutes The second limitation of the system results from the unmanageability of the G2 rule system Creating complex rule patterns with G2 although undoubtedly possible is time consuming particularly with respect to making structural changes in the flow decision rules Hence time requirements for the implementation of the desired simulations exceed the resources allotted to the project The project is therefore somewhat scaled back Several topics of interest are ignored in these simulations An analysis of the profitability of the different algorithms is not performed The simulation of the workcell is
65. n modelEvaljcc void TransformInputs double inputVector double inputRanges int dimension generateRecipejcc void Transpose double matrix MAXDIM int rows int columns double target MAXDIM mymathjcc int trunc double x mymathicc void machineClass TurnOffFeedback machineRWicc void processNode TurnOffFeedback process cc void modelClass TurnOffNoise modelEval cc void processNode TurnOffNoise void machineClass TurnOnFeedback machineRW cc void processNode TurnOnFeedback process cc 69 Alphabetical Library Function Listing void modelClass TurnOnNoise void processNode TurnOnNoise void UnhighlightWidget Widget w Widget command caddr_t call data void UnmapWidget Widget w Widget shell caddr_t call data void Unrealize Widget w Widget shell cuddr_t call duta double Untransform double fancy transform Type xform void UntransformInputs double inputVector double inputRanges int dimension Appendix E modelEval cc functions cc functions cc functions cc modelEval cc generateRecipe cc boolean ValidConnection machineClass inputMachinePtr int inputNum machineClass outputMachinePtr int outputNum int machineClass ValidHistoryLength double inputClass Value int step double inputStepValueClass Value double outputClass Value inputStepValueClas
66. n number e double recipe The controls used to process this wafer on this machine double modelCoeffs The coefficients that the adaptive model used when this wafer was processed double output Values The output values measured for this wafer double upperSpecLimits The upper specification limits on the output measurements of this wafer double desiredOutputValues The targeted values for the output measurements of this wafer double lowerSpecLimits The lower specification limits on the output measurements of this wafer double predictedOutputValues The output values which were predicted by the adaptive model at the time this wafer was processed double trueOutputValues In the case where a simulator was used the true state of the simulator is reflected here by recording noiseldss output values of the simulator historyClass next A pointer to the next oldest wafer record 43 Conclusions amp Future Work Chapter 6 Chapter 6 Conclusions amp Future Work 6 1 Conclusions An implementation of an integrated circuit manufacturing control and monitoring environment has been realized using C and X windows This environment is named the Berkeley Computer Aided Manufacturing Environment The environment provides interfaces to a variety of manufacturing applications including statistical prodess control malfunction diagnosis and response surface visualization of equipment models The environment also provid
67. nInfoType connectionInfoPtr cuddr_t call data void CallDisconnect Widget w connectionInfoType connectionInfoPtr caddr_t call data connections cc void CallGetOutputs Widget w processNode processPtr caddr_t call data interfacesicc void CallOldConnect Widget w machineClass machinePtr caddr 1 call data equipWindowjcc void CallPropagate Widget w processNode processPtr t interfaces void CallRemoveAsGoal Widget w connectionInfo Type connectionInfoPtr caddr_t call data 61 Alphabetical Library Function Listing void CallSetAsGoal Widget w connectionInfo Type connectionInfoPtr caddr_t call data Appendix E char capitalize char string machineRW cc void Center double data MAXDIM int dim int dataCnt double center MAXDIM mymath cc double cerf prm double y mymath cc double chebyshev double a double b int n int i mymath cc void CheckModel Widget w machineClass machinePtr caddr t call data equipWindow cc int choiceClass ChoiceListLength modelChoice cc void machineClass ClearHistory machineRW cc void processNode ClearHistory process cc void ClearProcessHistory Widget parent processList process cuddr_t call data process cc void ClearProcessHistoryWarning Widget parent processl ist process caddr t call data process c
68. ning of those matrices The cost function G is simply the sum of squares of the deviations from the target values 2 j 1 m Different scales of measure for the target values and the recipe values be accommodated by placing scaling factors into the cost function G to obtain _ 2 f E x 502 53 Cil Z1 P Cio zn 25 Chapter 2 Theory of Discrete Process Control 14 where the s j 1 scale the target values and R is a diagonal n xn matrix containing the scaling factors for the recipe values so that R lx Thus 8 g Ry and fly Ry Let A S A R 26 where S is the m x m diagonal matrix containing s j 1 m This leads to the following modified equations s z l 5 szy y where z Z 28 Thus the new problem at iteration K is min X 29 If n m and is invertible then the solution to 29 is Xp x R S fle 2 x 2 30 Ifn gt mand A ve is invertible then a solution to 29 is E T X t Ax x RA S fx 2 41 1 For the calculation of machine settings s 2 min USL target target LSL 2 For the calculation of machine settings r is the range of valid settings for control i i e the maximum valid setting value minus the minimum valid setting value 3 The notation
69. nt activated a separate instance of a machineClass structure is created When the BCAM Environment is active eath machineClass structure manifests itself on the screen in an Equipment Window Although the greatest care has been taken to keep this information current herein may be discrepancies with the current code For the most recent information please refer to 9 source code 35 BCAM Environment Programming Manual Chapter 5 5 2 The Creation of the Main Windows The program first creates an entrance window which introduces the operator to the system When the operator is ready to begin a mouse click will bring up the main menu for the environment This main menu is created using the function Widget MakeMainMenu Callbacks are set up from this menu to access the highest level operations most importantly the activation of equipment The functions which handle these actions are located primarily in the files controllerEntrance cc equipSetup cc and mainMenu cc Whenever a machine is activated an instance of machineClass is reated and information from the database is loaded into this structure Then a call to Widget machineClass MakeEquipWindow creates the actual equipment window Integral in the creation of the equipment window is the creation of the bar of pulldown menus from which most operations are accessed This is accomplished through use of the functions Widget MakePulldownBar and Wid
70. nt controls into the database Save As Save current controls under a specified name Final Output Targets Specify final output targets and tolerances Final Output Specifications Specify final output targets and both upper and lower specification limits e Calculate Recipe Calculate a recipe to meet output specifications Exit Processing Workcell Exit the workcell mode and Workcell Window 4 3 2 The Workcell Wafer Menu This menu is used to initiate actions upon or about wafers including actual operation of the workcell Run Wafer Through Workcell Send a wafer to the workcell for processing e Simulate a Wafer Run Simulate the workcell s operation on a single wafer used for demonstration Simulate N Wafer Runs Simulate a series of wafers through the workcell used for demonstration Predict Final Outputs Predict the final outputs of the workcell using the current recipe Sensitivities Display the sensitivities of the final outputs to the workcell s controls e Evaluate Cpk Capability Evaluate the Cp capability of the workcell 1 Database operations for the workcell have not yet been implemented These operations are however available fom the individual equipment windows 2 Sensitivity displays have not yet been implemented 3 evaluation has not yet been implemented 33 BCAM Environment User s Manual Chapter 4 4 3 3 The Workcell Gr
71. nual pages BCAM cc The is the location of the main function All the main function does is call the BCAMentrance function The purpose of this separate main function is to allow that BCAMentrance can in the future be called from higher level software main int argc char argv 71 Description of the Source Files Appendix F extern void BCAMentrance int char BCAMentrance argc argv 2 connections cc This file contains the code for the old style connections window which is accessed through the Equipment Window s Connections Menu The code in this file is somewhat outdated newer code for menu guided connections should be written in the future F 3 connections2 cc This file contains the code for interpreting licks upon input and output names in the Equipment Window These clicks are used to infer machine interconnection information 4 controllerEntrance cc This file contains the functions used to start up the BCAM environment including the initialization of the X Windows and the creation of the entrance window and the main BCAM menu This file also contains the declarations of the global variables of the BCAM environment 5 diagnosis cc This file contains the functions for accessing the BCAM diagnosis application 16 17 This source code is written and maintained by Hao Cheng Liu F 6 equipSetup cc This file contains the higher level functiqns used to activate and deactivate equip
72. o symbolizes false True if this input at this step is critical to values of the machine s outputs Each input can only critical at a single step parameter The name of this input value The value of this input at this step recipe name The name of this recipe recipe owner The owner of this recipe 55 Ingres Table Formats Appendix D date The date and time at which this recipe was last modified Table 6 Example of mtil_recipe table a Although not shown here the date column also includes a time of day D 5 The Equipment Model Structure Table The equipment model structure table describes the terms which are used in the output models for this machine i c the ways that the inputs can affect the outputs If there are any transformations on the outputs they are also described in this table Table 7 Ingres information on equipment_model_structure CT WE ee term The term name all term names are required to be positive integers A negative term name indicates that this row describes an output transformation parameter The name of an input which shall appear in this term or the name of an output which is being transformed exp_matrix An exponent to which this parameter will be raised special_function A special transformation function for this parameter These special functions are applied to a parameter before taking it to the power of it
73. oid CovMatrix double data J MAXDIM int dim int dutaCnt double result MA XDIM double weights mymath cc wdouble inputClass CriticalValue steps cc void CreateMainBCAMmenu controllerEntrance cc inputStepValueClass inputClass CriticalStep steps cc int inputClass CriticalStepNum steps cc processList DeduceProcessFromConnections machineList machines process cc void choiceClass DeleteChoiceL ist niodelChoice cc void choiceClass DeleteChoiceListAndText niodelChoice cc void modelNameClass DeleteModelNameL ist modelRW cc machineList machineClass DeleteMachine machineClass doomedMachinePtr machineRW cc processNode processNode DeleteProcess process cc void recipeNameClass DeleteRecipeNameList recipeIngres scc void inputClass Delete ValueList steps cc Appendix E Alphabetical Library Function Listing 62 void Delete WidgetList widgetList widgets connections int DependenceLength machineClass machinePtr int recursionl evel void Desensitize Widget w Widget numb caddr t call data functions cc void DestroyParentOfParent Widget caddr t client data caddr t call data functionsicc void DestroyParentOfPofPofPofP Widget w caddr t client data caddr data functions kc void DestroyWidget Widget w Widget doomed caddr t call data functions icc double determinant double M MAXDIM int dim
74. ons and the ability to avoid conflicts when more than one user accesses the database simultaneously The environment therefore makes use of the Ingres database program This program allows multiple users to interact with a central database Ingres Chapter 3 BCAM Implementation 20 also allows different levels of permissions such as those of an operator or an engineer Ownership and time stamps are maintained for all tables stored in the database thergby preserving security and preventing access conflicts The BCAM Environment uses Ingres library functions to store and retrieve equipment recipes and models in the database In order to enhance the portability of the BCAM Environment the code has been developed to allow easy modification for use with other database programs 3 3 The Role of X Windows in the BCAM Environment The X window system provides a means to implement an aesthetically pleasing user friendly interface to the BCAM environment X windows were chosen because they are available throughout the industry and are standardized to work on most workstations commercially available graphical interface package was also investigated but it was determined to be inappropriate for the BCAM Environment This study is described in Appendix J 3 4 Operations on Individual Machines The most basic function of the BCAM environment is the selective activation of individual machines Once activated the BCAM system can interact with eac
75. or model e e modelClass simulate Evaluate the equipment simulator model for an output e modelClass eval Evaluate the equipment model e eee modelClass term Evaluate a term in the equipment model G 4 3 Controller s Current Adaptive Model Sensitivity Calculation processNode sens Calculate the sensitivity of one machine s output to f another machine s input e e modelClass sens Calculate the sensitivity of an output t an input Evaluate the derivative of the equipment model e modelClass termDeriv Evaluate the derivative of a term in the equipment model e modelClass eval Evaluate the equipment model o e modelClass term Evaluate a term in the equipment model G 5 Workcell Operation G 5 1 Simulating the Operation of the Workcell for demonstration and debugging purposes i e SimulateProcess Workcell window menu command button callback processNode operate simulator Operate workcell in simulator mode Appendix G Principal Library Functions Listed by Hierarchy e processNode AssignControls Assign the current controls to a simulated machine e e machineClass simulate Simulate the operation of a machine e processNode GetOutputs Fetch the results of the simulation processNode propagate Deal with the results of the simulation o machineClass CopyOutputsToInputs Send the results on to other machine inputs as
76. ore reap great benefit from the application of a more advanced control system A control system which can meet the stringent demands of IC fabrication must be rather sophisticated Simple feedback control applied to individual machines is unreliable due to the low inherent capabilities the ratio of specification limit ranges to noise standard error of the individual steps A fabrication line control system must therefore have a solid base in statistical analysis of equipment performance A control system must also be able to predict the equipment performance and adjust equipment settings whenever the predicted performance deviates from specifications In order to establish this capability a control system must use some sort of equipment models Furthermore in order to compensate for equipment changes the models must allow themselves to be updated according to current manufacturing conditions Statistically based models are desirable because analysis of equipment performance through regression techniques will allow the models to be updated efficiently Chapter 1 Introduction 2 The implementation of the control scheme includes regular checks of equipment models and recalculation of appropriate machine settings whenever those models are updated This is the feedback portion of the controller Whenever a process consists of several interdependent steps e g the photolithography workcell feed forward control may be implemented to compensate earl
77. pdate l quations Appendix C where z R and z e Ne Now examining an optimization problem given is a 2 e R and it is desired to find 2 the R such that L 2 is minimized Consider the case when m gt n Then the system is overdetermined It is assumed that W which implies that is invertible From 45 the optimum solution satisfies z and L 2 A72 2 2 A 2 Thus AlA amp A z A and 46 AT 47 If m lt n the system is underdetermined It is assumed that N gt which implies that is invertible and that there is of solutions of dimension n m Suppose that a solution is required which minimizes From 44 1 Ax Ax 2 u 48 so that using 42 the optimum solution satisfies x the zero vector ie e R E Therefore it must be of the form for some E e R Plugging into 48 AATE Psothat 2 which yields AT AA 2 49 Now by translating and scaling the coordinate systems the equations 47 and 49 lead to equations 32 and 31 respectively Appendix D Ingres Table Formats 52 Appendix D Ingres Table Formats D 1 Tables describing the Ingres tables used by the BCAM environment This appendix describes the structure and contents of the tables used by the BCAM environment The table structures are first described
78. put space the set of valid recipes for a machine or a workcell A matrix each row of which corresponds to a set of input settings A vector in a linear space A transformed recipe of input settings An output value A vector of output values 49 oz Az Symbols Appendix B A difference of a predicted set of output values and a set of desired output values A discrepancy between a measured output value and a predicted output value A vector of output discrepancy values An output space the set of possible output value vectors Appendix C Adjoint Derivations of the Recipe Update Equations 50 Appendix C Adjoint Derivations of the Recipe Update Equations Consider the linear operator L gt 2 where L x q Then the adjoint operator L 2 X is given by L z A z A e These operators satisfy z L x L 2 Vx e X Vz 2 Denote the null spaces and range spaces of L and L by N x Lx 0 oR 38 R z z L x R cR 39 Ne 2 L 0 40 Re x x ehre 9 CR 41 From the properties of the adjoint 15 Ny L Ri Ny D Ry R 42 Np lp Nr DR R 43 and both L R R and R 5 are one to one onto mappings Thus any vector x e 9 can be expressed as x 44 where x R and x N and any vector z e R can he expressed as y z z z 45 51 Adjoint Derivations of the Recipe U
79. rection model should only include a correction to the constant term coefficient In general the data may support a correction to some but not all of the coefficients In order to determine which coefficients can be corrected and how to correct them a principal component transformation 6 is applied to the matrix T This transformation has the added benefit that the transformed data is also orthogonally distributed a property which greatly facilitates the subsequent stepwise regression However before executing the principal component transformation the terms matrix T must be properly numerically conditioned This is accomplished by a transformation Chapter 2 Theory of Discrete Process Control which divides each column of T by the range of the corresponding term defined as the difference of the maximum and the minimum values of the terms over the experimental space used to derive the original model 4 where D is t x t diagonal matrix whose nonzero elements are the ranges of the terms and V is the K x t normalized term array This converts the terms into unitless numbers with comparable variances The principal component transformation starts with the evaluation of the weighted variance covariance matrix of the data in the normalized terms matrix VT W V Sy weightedcovariance V u W u where Sy is the tX t variance covariance matrix W is an diagonal matri
80. rent BCAM user double exp_mat A matrix containing the exponents for the inputs in all the terms used in the equipment model Each row corresponds to one term Column indices correspond to input numbers This member is private int spec fn A matrix containing special function codes for the inputs in all the terms used in the equipment model Each row corresponds to one term Column indices correspond to input numbers The code zero indicates that no special function is to bc uscd Special functions are applied to inputs before exponents This member is private inputClass inputs MAX INPUTS The array of input descriptors of the machine The current recipe is located within int input cnt The number of inputs for the machine outputClass outputs MAX OUTPUTS The array of output descriptors of the machine int output_cnt The number of outputs for the machine double simulate int outputNum Simulate and return the value for output number outputNum using the simulator performance model and the current recipe for inputs double predict int outputNum Predict and return the value of output numberloutputNum using the controller s current adaptive model and the current recipe for inputs 5 5 3 class processNode Another important class is the class processNode This class is used to describe a workcell containing several machines This class is used extensively by the BCAM Workcell Controller When
81. rformance data The identification number of the wafer currently being processed by this machine int GetInputIndex char inputName Return the array index into model inputs of the input named inputName int GetOutputIndex char outputName Return the array index into model outputs of the output named outputName double predict int outputNum void simulate int ModelUpdate machineClass next 5 5 2 class modelClass Evaluate and return the value predicted for output num outputNum using the controller machine performance model and the current recipe for inputs Simulate all outputs of this machine including Gauss n noise Simulated output values are stored in ihe model outputs array Look at the historical performance data of this mach ber ine and determine if an update to the machine s controller model is statistically justified If a correction is justified it is made and the function returns a positive iaa Otherwise the function returns zero negative ret value indicates an error A pointer to the next machine in the linked list machines In of This class contains most of the information necessary for modeling or simulating a machine s performance 39 BCAM Environment Programming Manual Chapter 5 char equipName The abbreviated name of the machine char formalName The formal name of the machine char user The login name of the cur
82. rocess cc interfaces cc generateRecipe cc modelUpdate cc graphsBCAM cc graphRM cc diagnosis cc modelEval cc steps cc modelSpecFn cc mymath cc 37 BCAM Environment Programming Manual Chapter 5 5 5 Structure Declarations Descriptions of most data classes and their member functions are contdined in the declarations file machineTypes h The principal classes have the following hierarchy ma errare ea historyClass historyClass modelClass inputStep ValueClass inputStepValueClass Figure 6 BCAM C Data Structures The principal members of some of the important structures are as follows 1 Arrows indicate pointers horizontal arrows form linked lists vertical bars indicate membership and horizontal bars indicate consecutive members of an array Chapter 5 5 5 1 class machineClass BCAM Environment Programming Manual 38 The core of the BCAM environment is the class machineClass It has many member data structures and functions only the most important of which are described here Some of these members are themselves classes and these classes are also described in this document Widget window modelClass model historyClass history int waferNum The equipment window displayed on the screen The current models for machine performance Inclu are the models both for control purposes and simulation A linked list of historical equipment pe
83. roprocessing equipment models and Lauren Massa Lochridge for her plentiful assistance with the Ingres database software During my years at Berkeley my participation on the 155 crew team had a profound effect upon my studies The training assisted my development in all aspects of my life At the heart of my rowing experience was my coach Jeff Wilk His inspiration and spiritual Acknowledgments vi guidance gave me strength which allowed my studies to flourish I must also acknowledge my teammates whose camaraderie and efforts contributed to my rowing experiences Also essential to the success of my research here at Berkeley have been the other members of the CIM CAM groups at Berkeley Professor Lawrence Rowe Raymqnd Chen Haifang Guo Annika Rogers Steven Smoot Kwan Kim Zeina Daoud Hosseini and Soheila Bana I give my special thanks to Carol Block Christopher Hylands Ken Nishimura Katdlin Voros Bob Hamilton Genevieve Thiebaut Heather Brown Cheryl Craigwell and ji staff of the Berkeley Electronics Laboratory for their continual assistance a multitudg of matters during my stay at Berkeley For their unfailing support and knowledgable advice throughout my life I am eterndlly grateful to my parents John and Barbara Bombay my sister Helen Bombay my grandparents Hunter and Annie Flores and my cousins Michael Minatrea Jeannie Joseph Miller John Minatrea Richard Buford and Janine Minatrea and the res
84. s E 5 1 1 Z Co CX CX Cy Jn where the symbols represent the coefficients of the terms of the model Although m the models are highly nonlinear with respect to the settings they are linear with respect to the coefficients This property allows us to use linear regression techniques to determine the coefficients which best fit the machine in question All equipment models use this general format although the number of terms and the form of those terms varies fr m machine to machine Several transformations such as the logarithm and the exponentipl 5 Theory of Discrete Process Control Chapter 2 are also supported on the inputs and outputs As described next the adaptive model always retains the basic structure defined by the terms of its original model although the coefficients may be updated according to need 23 TheModel Update Algorithm When over time a model fails to accurately represent a machine corrections may be applied to the coefficients of the model These corrections make up the correction model and are calculated by means of an update algorithm The correction model in qombination with the original model make up the complete adaptive modek The mddel update algorithm is initiated by means of a statistical process control alarm which is generated whenever the machine outputs differ significantly from those predicted by the model 5 The model update algorithm is de
85. s inputClass ValueList double VectorLength double vector int dimension double WeightedAverage double data double weights int dataCnt void modelClass ZeroCoeffs void modelClass ZeroCoeffs int outputNuin void ZeroMatrix matrixType matrix int rowCnt int colCnt void ZeroVector vectorType vector int dim machineRW cc machineRW cc steps cc steps cc modelEval cc steps cc mymath cc mymath cc modelEval cc modelEval cc mymath cc mymath cc Appendix F Description of the Source Files Appendix F Description of the Source Files All source files are located in the directory bcamdev BCAM bombay code 70 except the files diagnosis cc and recipelngres scc which are located in the directory bcamdev BCAM hcliu code The source files are accessed through the UNIX revision control system rcs To check out a file an authorized user must issue the command co l filename which will give that user write permission to the file Once changes have been made to the file the user must check the file back in using the command ci u filename To put a new source file under rcs control the owner must issue the command ci newfilename To add authorization to access a source file for a particular user the following command must be issued rcs ausername Note that the user name immediately follows the a switch For further details on rcs reference the UNIX ma
86. s exponent Appendix D Ingres Table Formats 56 Terms which include more than one input parameter are described by multiple lines in the table Table 8 Example of tylan16_model_structure table CEN JL CB MEM m TURN rm A temperature 1000 prone M LE 5 presse mm o 6 10 mme Fe 7 flow phone 8 psu mme 0002 wass flow 0 m mee puli mi 10 temperature none f n E 57 Ingres Table Formats Appendix D Table 8 Example of tylan16_model_structure table pn 11 temperature 20 temperature 20 0 none silane flow 2 0 Ce ERN 5 ie i pe D 6 The Equipment Models Table The equipment_models table contains for cach machine output the coefficients for terms described in the equipment_model_structure to make up the model for that output Table 9 Ingres information on equipment_models crunn nane sas a 22 ANN 08 8 E ur m e es w pe m mister utm e 9 _ e w output The output parameter name term The term name The term name 0 Zero is reserved for the constant term of the model The term std crr refers to the es
87. s inputStep ValueClass 5 5 6 class outputClass 5 5 7 class historyClass Chapter 6 Conclusions amp Future Work 6 1 Conclusions 6 2 Database Storage of Wafer Measurements 6 3 Alternate Storage Formats 6 4 Installation in Integrated Circuit Fabrication Facilities 6 5 Process Capability Cpk Evaluation and Process Simulation 6 5 1 Comparison of Control methods 6 5 2 Alarm Generation through Cpk Prediction Appendix A Acronyms Appendix B Symbols 26 26 27 29 30 30 31 32 32 33 33 33 34 34 35 35 37 38 228 39 40 40 41 42 43 43 43 45 46 47 Table Of Contents Appendix C Adjoint Derivations of the Recipe Update Equations Appendix D Ingres Table Formats Appendix E Alphabetical Library Function Listing Appendix F Description of the Source Files Appendix G Principal Library Functions Listed by Hierarchy G 1 The Beginning of the Program G 2 Main BCAM Menu Actions G 3 Activation of a Machine G 4 Equipment Model Analyses G 5 Workcell Operation Appendix H Source Code Listings Appendix I Known Bugs Appendix J A G2 Formulation of Measurement Queuing Effects J 1 Introduction J 2 Methodology J 3 Results J 4 Conclusions J 5 Future Work References 50 52 60 70 75 75 75 76 77 77 80 81 82 82 3 89 90 v Acknowledgments Acknowledgments I cannot begin to express the magnitude of my appreciation and gratitude to my research a
88. sList process caddr 1 call data wdouble DotProduct double vector1 double vector2 int dimension mymathjicc void dumpInputs modelClass modelPtr generateRecipeicc void eigen double matrix MAXDIM double eigenvalues double eigenvectors MAXDIM int dim mymathicc void EquipPredict Widget w machineClass machinePtr caddr_t call data equipWindow cc double erf prm double x mymathicc double modelClass eval int outputNum boolean useSimulCoef fs modelEvallcc void ExitProcess Widget parent processList processListPu caddr_t cull_data double exp div 10000 double input modelSpecFn cc doubie exp div 10000 inv double input modelSpecFn cc double exp div 10000 deriv double input modelSpecFnjcc double exp div 10000 deriv2 double input modelSpecFn cc int factor int k void fsubs double matrix lMAXDIM double column j int dim mymathicc double Gauss modeiEval cc double GetDiscrepancies double discrepancies connectionClass processOutputs int outputCount processNode processPtr double desiredOutputs double specRanges generateRecipe cc int GetFinalOutputs connectionClass finalOutputs machineList machines process cc int machineClass GetInputIndex char name modelE vallcc int machineClass GetModelIO modelIngres 4 int machineClass GetModelStructure modelIngres cc 63
89. should be created for the equipment or that some equipment needs servicing Appendix A A 1 Acronyms BCAM BPFL CIM CL CUSUM DEC EECS EVOP ERL ISMSS LCL LPCVD LSL SECS SPC SRC UCB UCL USL WIP Acronyins Appendix A Acronyms Berkeley Computer Aided Manufacturing Berkeley Process Flow Language Computer Integrated Manufacturing Center Line CUmulative SUMmation Digital Equipment Corporation Electrical Engineering amp Computer Sciences EVolutionary OPeration Berkeley Electronics Research Laboratory International Semiconductor Manufacturing Science Symposium Lower Control Limit Low Pressure Chemical Vapor Deposition Lower Specification Limit SEMI Equipment Communications Standard Statistical Process Control Semiconductor Research Corporation University of California at Berkelcy Upper Control Limit Upper Specification Limit Work In Progress 47 Symbols Appendix B Appendix B Symbols In this report bold faced capital letters are used for matrices and bold faced lower case letters for column arrays Row arrays are obtained by applying the transpose operator T to a column array e 99 OS u SA DR FO a The set containing only the zero vector A unitless empirical quantity used in the model update algorithm A derivative matrix of a function f evaluated at a Specie point in an input space An empirical constant used in an Armijo step size calculation A matrix o
90. signed to modify the equipment model as necessary during routine equipment operation Using historical records from a machine s operation the update algorithm performs statistical regressions to determine the optimurn correction model This algorithm performs well in either a single product or a multi product environment Because the adaptive model maintains a correction model while leaving the original model unchanged it will never lose the information gained in the origin l designed experiment For example a correction model may evolve to compensate for a failing machine part when that defective part is replaced the adaptive model can quickly abandon the obsolete correction model and return to the original model Finally each processing step has several outputs which can be controlled hence several models must be used to describe each step The spin coat operation for example is characterized by the thickness and the reflectance of the applied photoresist layer Since each output is represented by a separate model equation the update algorithm considers each of these outputs separately Chapter 2 Theory of Discrete Process Control 6 The model update algorithm is based on a weighted linear stepwise regression it mpst therefore transform the historical records into a form suitable for such an analysis This transformation procedure is as follows The values of the machine s past control settings are placed in the KX n
91. surements whenever the relevant intermediate wafer inventories fall below designated low levels Because wafers require qucuing before measurement this formulation does however increase the work in progress inventory Another drawback to this method is the variability of the frequency of measurement during some time periods man wafers are measured while during other time periods few or no wafers are measured Appendix J A G2 Formulation of Measurement Queuing Effects 86 J 3 2 Wafer Scheduling Algorithm B The second algorithm for wafer measurement algorithm B sets specific goals for the number of wafers to be measured at each step in the process One out of every four wafers is subjected to measurement as it passes between storage areas This algorithm is indifferent to the supply levels in the storage areas Algorithm B is successful at providing a steady stream of data but results in a somewhat reduced production level This method also results in a lower work in progress inventory than the first method although still higher than a process without measurements J 3 3 Results of the Simulations It should be noted that the simulations fail to give a good quality of information This deficiency is attributed to two factors The first limitation of the system is that it discretizes time into one second intervals Thus if thc time were scaled to simulate five minutes of production every second then the resolution of the process si
92. t Change the status of an input or connect the input to the output of another machine Connect Output Change the status of an output or connect the output to the input of another machine Note that connection information may also be specified by clicking directly on input and output names 4 2 4 This more direct method is generally preferred Chapter 4 BCAM Environment User s Manual 30 4 2 7 The Equipment Applications Menu This menu is used to access other major BCAM applications Workcell Controller Activate the BCAM Workcell Controller using currdnt equipment interconnection information see below The Workcell Window Statistical Process Control Activate BCAM Real Time Statistical Process Control monitoring system 22 23 This application is not available for all machines Diagnosis Activate the BCAM Diagnosis module 16 17 This application is not available for all machines Response Surface Plots Activate the response surface plotting facility for equipment models 22 4 2 8 The Equipment Window Editing Values The values shown for input values output values and model coefficient values are editable To edit these values click the mouse pointer upon the value to be edited The value may then be changed using the usual editing keys All commands from the equipment window check these editing fields for new values before executing The workcell controller however does not a
93. t of my family It is the great devotion and generosity of my family whom I must credit for al of Iny Successes I thank the National Science Foundation for their support of my graduate studies at Berkeley I thank also the Regents of the University of California the Alumni Association of the University of California Warren Dere and Edward F Kraft and Cornell C Meier for their support of my undergraduate studies This research has been jointly sponsored by the Semiconductor Research Corporatipn the National Science Foundation Texas Instruments National Semiconductor and the California MICRO program 1 Introduction Chapter 1 Chapter 1 Introduction Until recently IC fabrication facilities have relied mostly upon human experience to develop equipment recipes through trial and error But as today s designs push the borders of existing technology even the slightest maladjustment in equipment can drastically undercut production The industry has therefore experienced extremely long start up times when bringing a new product into regular production and costly cuts in production when maintaining or replacing manufacturing equipment This problem is further compounded by frequent unanticipated changes in equipment performance Today these changes are identified through Statistical Process Control SPC and sometimes a human operator attempts to re adjust the process Integrated circuit manufacturing technology can theref
94. th time a complete model structure must allow for updates of the model This is accomplished by means of creating an adaptive Chapter 2 Theory of Discrete Process Control 4 model which has two parts an original model which represents the original state of the equipment and a correction model which describes the deviation from that original state These models are used for performance prediction the generation of descriptive response surfaces and other control needs Given its prediction capability the model may also be used by optimization algorithms to deduce the required machine settings to m et target performance specifications The optimization presented herein uses a multidimensional Newton Raphson algorithm subject to inequality constraints on the machine controls 2 2 The Form of the Equipment Model Initially an equipment model is derived using a designed experiment This original model represents the general structure of the equipment behavior i e the form of the polynomial terms used in the model equation these terms represent the ways in which li machine s settings influence its outputs For example such a model has been developed for the photoresist spin coat and bake equipment of the Berkeley Microfabrication Laboratory 3 The four settings of the machine are spin speed x spin time x bake temperature x4 and bake timex The output is photoresist thickness z For this example a representative model i
95. thm is used for several purposes it is used for initial setting calculations for recipe updates whenever current equipment models change and for feed forward calculation of workcell contrals Target Output Val Processing Equipment easurement Station Processing Equipment Measurement Station Processing Equipment easurement Station Chapter 3 BCAM Implementation 18 Chapter 3 BCAM Implementation 3 1 Introduction Because the accurate control of manufacturing processes is critical to the production of integrated circuits a control scheme is needed so that deviations from product specifications may be compensated by automatic adjustments to the process This contiol must exploit the interdependence of the various steps involved in production Software has been developed to utilize equipment models for supervisory control The software uses the models for process simulation and recipe generation This recipe generation is used to accommodate product specifications and to implement feed forward control in order to compensate for deviations in the middle of a process run feed forward control adjusts the settings of subsequent process steps Feedback control is initiated by a model based control and monitoring scheme Alarms using statistical analyses 5 are employed to detect consistent departures in equipment performance from the performance predicted by the equipment models Once this departure has b
96. timated gaussian standard error of the machine for this output The term name pred err refers to the estimated prediction error of the output model The term name forget fet refers to the forgetting factor used by this model for model updates Appendix D Ingres Table Formats 58 The term name window siz refers to the maximum window size used by this model for the model updates coefficient The coefficient value for this term e model name The name of this model e model owner The owner of this model e date The most recent modification date of this coefficient Table 10 Example of tylan16 models table Model Model Lowe Dee ies widows 1S Uri tess o O foes asta Pore ue Pam ea pae ram ams uo 59 Ingres Table Formats Table 10 Example of tytan16_models table Output Term Coefficient Model Model Da Name Owner a Although not shown here this column also contains the time of day 07 apr 1992 Appendix D te The equations represented by the above tables tylan16 model structure and tylan16 models are Th exp 20 65 0 29logP logt 0 112PT 15 6441 0 039P 2725650 6070 57 3 387 SQ _
97. tion of Measurement Queuing Effects J 1 Introduction Recent developments in integrated circuit design call for the improvement of the performance of photolithography workcells In order to accomplish this improvement computer aided manufacturing techniques are being applied to the process and these techniques require regular measurements of equipment performance With thdse measurements however are the associated costs of additional hardware time and labor Hence the industry is faced with the problem of implementing these measurements in a manner which will minimize the cost per unit product produced yet improve product quality The most obvious goals are to increase product yield decrease the fraction nonconforming and improve product performance Because measurements will slow down the manufacturing process the desired implementation will attempt to minimize the impact of taking these measurements upon the product throughput and thus attempt to maintain a satisfactory production level There are several issues which must be addressed in any formulation of this scheme Specifications must be determined on how many wafers to measure which wafers to measure and how often to measure them The types of measurements must be decided upon The effects on work in progress inventory must be examined And finally the production costs must be studied to determine the magnitude of any improvement in marginal cost versus marginal revenue The B
98. tputNum void Refresh Widget Widget w Widget shell caddr t call datu void machineClass RemoveAsGoal int outputNum void machineClass RemoveAsUncontrollable int inputNum int step fnachineRW cc functions cc inachineRW cc InachineRW cc void RemoveEquipmentWarning Widget w machineClass doomedMachine caddr t call data equipSetup cc void RemoveMachine Widget w machineClass doomedMachine caddr t call data void Resensitize Widget w Widget numb caddr t call data void RestoreRecipe Widget w machineClass machinePt caddr t call data double root double x int n int modelClass SaveCoeffs int modelClass SaveModel void SaveModel Widget w machineClass machinePtr caddr t call data void SaveModelAs Widget w machineClass machinePtr caddr t call data void SaveModelWarning Widget w machineClass machinePtr caddr_t call data void SaveRecipe Widget w machineClass machinePtr caddr_t data void SaveRecipeAs Widget w machineClass machinePtr caddr t calld data double modelClass sens int outputNum int inputNum double processNode sens connectionClass output connectionClass input void machineClass SetAsGoal int outputNum void machineClass SetAsUncontrollable int inputNum int step void SetChoice Widget w returnChoice Type returnChoicePtr caddr t call data double outputClass SetCoeff int coeffNum double newValue double outputClass
99. utomatically chcck model coefficient values and it is therefore desirable to manually confirm these values from the Model pulldown menu after editing This is necessary for example whenever the simulator model is changed 31 BCAM Environment User s Manual 43 The Workcell Window Current wafer number Chapter 4 The Workcell Window is used to manipulate a group of machines connected into a processing workcell This window is activated from the Equipment Window s Applications Menu by choosing the Workcell Controller Equipment interconnections must be defined before invoking the workcell window and they cannot be changed while the workcell window is present To disengage the workcell window use the Exit Process Workcell command from the Workcell Recipe Menu Chapter 4 BCAM Environment User s Manual 4 3 1 The Workcell Recipe Menu This menu accesses functions for manipulating workcell recipes The Workcell Window is also disengaged through this menu In addition this menu can be used to specify target values for the final outputs of the workcell Upon receipt of the specifications the controller automatically attempts to calculate a recipe of controls which will yield the desired results Edit Edit the current workcell controls Load Load a new recipe for the workcell controls from the database Load Default Load default controls for the workcell e Save Save curre
100. ws in the BCAM Environment 3 4 Operations on Individual Machines The Recipe Editor The Model Editor Connections 3 5 Process Analysis Functions 3 5 1 Deduction of Process Order 3 5 2 Workcell Performance Prediction 3 5 3 Workcell Sensitivity Analyses 3 6 The Workcell Operations Basic Functions Workcell Controller 3 7 The Interface to Other BCAM Applications Alarm Generation Statistical Process Control Diagnosis Response Surface Plots Chapter 4 BCAM Environment User s Manual 4 1 Introduction Starting the BCAM System 4 2 The Equipment Window 4 2 1 General Description WwW 17 18 18 19 20 20 21 21 22 22 22 23 24 24 25 25 Table Of Contents 4 2 2 The Equipment Recipe Menu 4 2 3 The Equipment Model Menu 4 2 4 The Equipment Window Defining Equipment Connections 4 2 6 The Equipment Connections Menu 4 2 7 The Equipment Applications Menu 4 2 8 The Equipment Window Editing Values 4 3 The Workcell Window 4 3 1 The Workcell Recipe Menu 4 3 2 The Workcell Wafer Menu 4 3 3 The Workcell Graph Menu 4 3 4 The Workcell Alarm Menu 4 3 5 The Workcell Options Menu Chapter 5 BCAM Environment Programming Manual 5 1 Introduction The Basic Program Structure 5 2 The Creation of the Main Windows 5 3 Naming Conventions 5 5 Structure Declarations 5 5 1 class machineClass 5 5 2 class modelClass 5 5 3 class processNode 5 5 4 class inputClass 5 5 5 clas
101. x containing the weighting coefficients Wal off diagonal elements of W are zero u a t dimensional vector whose elements are all ones and V is the centered V array whose elements are given by Va Ve V k lx j 1 m 6 ckj J UP where is the weighted average of the elements in the column of V This variance covariance matrix is then factored B A B Sy 7 5 5 9 Theory of Discrete Process Control _ Chapter 2 where A is the zx t diagonal matrix containing the eigenvalues of S and is the txt orthonormal matrix whose columns are the corresponding eigenvectors of S The matrix is then used to transform V to its principal component space as follows Voc V B 8 where has the same dimensions n x z as V and T and it contains the input terms data transformed into the principal component space The output discrepancies may now be represented by rewriting 3 as Az z tG D B B D ccc k II m 5 or equivalently Az amp veci Y Co k 1 10 where are the rows of and y B D represents the vector of the term coefficients of the original model transformed into the principal component space Next a weighted stepwise regression is performed considering each principal component separately in order to obtain a model correction coefficient Y I 1 t for that component
102. y deviations in equipment performance by adjusting the settings of subsequent processing steps So that this control scheme may be integrated into the factory environment it interacts with a database facility to store measurements and maintain a record of control recipes and equipment models In addition the control environment includes interfaces to alarm generation diagnosis and statistical process control applications The implementation of this control environment and the underlying analysis functions have been realized using C and X windows This realization is named the Berkeley Computer Aided Manufacturing BCAM Control and Monitoring Environment and is described in this thesis After this introduction the thesis devotes a chapter to the mathematical theory behind the controller s model update and recipe update algorithms This is followed by a chapter describing the implementation of the BCAM environment The BCAM user s manual il the BCAM programming manual constitute the next two chapters Finally the conclusians of this thesis are presented and the possibilities for future development are discussed 3 Theory of Discrete Process Control Chapter 2 Chapter 2 Theory of Discrete Process Control 21 An Introduction to Discrete Process Control The characterization of IC processes through equipment modeling has become a necessity in semiconductor manufacturing Equipment models may be physical empirical or a com
Download Pdf Manuals
Related Search
Related Contents
ICY BOX IB-351StU3S-B Mode d`emploi MicroJet - MA MK 004 3 AT9934USB 取扱説明書 - Audio Technica Trust Football edition - England [U7.05.11] Procédure IMPR_RESU au format `CASTEM` [AXR7 250XE 1GBD5 Dell SE2416H User`s Guide Sony VAIO VPCEA3PGX Copyright © All rights reserved.
Failed to retrieve file