ABSTRACT Title of dissertation: DEVELOPMENT OF AN OBJECT- ORIENTED FRAMEWORK FOR MODULAR CHEMICAL PROCESS SIMULATION WITH SEMICONDUCTOR MANUFACTURING APPLICATIONS Jing Chen, Doctor of Philosophy, 2006 Dissertation directed by: Professor Raymond A. Adomaitis Department of Chemical and Biomolecular Engineering Chemical Vapor Deposition (CVD) processes constitute an important unit op- eration for micro electronic device fabrication in the semiconductor industry. Sim- ulators of the deposition process are powerful tools for understanding the transport and reaction conditions inside the deposition chamber and can be used to optimize and control the deposition process. This thesis discusses the development of a set of object-oriented modular sim- ulation tools for solving lumped and spatially distributed models generated from chemicalprocess design and simulation problems. The application of object-oriented design and modular approach greatly reduces the software development cycle time associated with designing process systems and improves the overall efficiency of the simulation process. The framework facilitates an evolutionary approach to simu- lator development, starting with a simple process description and building model complexity and testing modeling hypothesis in a step-by-step manner. Modular- ized components can be easily assembled to form a modeling system for a desired process. The framework also brings a fresh approach to many traditional scientific computing procedures to make a greater range of computational tools available for solving engineering problems. Two examples of tungsten chemical vapor deposition simulation are presented to illustrate the capability of the tools developed to facilitate an evolutionary simu- lation approach. The first example demonstrates how the framework is applied for solving systems assembled from separate modules by simulating a tungsten CVD deposition process occurring in a single wafer LPCVD system both at steady-state and dynamically over a true processing cycle. The second example considers the development of a multi-segment simulator describing the gas concentration profiles in the newly designed Programmable CVD reactor system. The simulation model is validated by deposition experiments conducted in the three-segment prototype. To facilitate the CVD system design, experimental data archiving, and dis- tributed simulation, a three-tier Java and XML-based integrated information tech- nology system has also been developed. DEVELOPMENT OF AN OBJECT-ORIENTED FRAMEWORK FOR MODULAR CHEMICAL PROCESS SIMULATION WITH SEMICONDUCTOR MANUFACTURING APPLICATIONS by Jing Chen Dissertation submitted to the Faculty of the Graduate School of the University of Maryland, College Park in partial fulfillment of the requirements for the degree of Doctor of Philosophy 2006 Advisory Committee: Professor Raymond A. Adomaitis, Chair/Advisor Professor Mark A. Austin Professor Kyu Yong Choi Professor Panagiotis Dimitrakopoulos Professor Evanghelos Zafiriou c? Copyright by Jing Chen 2006 DEDICATION To my father, mother, and brother, who always love and support me To my husband, who loves and encourages me all the time To my daughter, who brings me joy ii ACKNOWLEDGMENTS I would like to express my sincere gratitude to my advisor, Prof. Raymond A. Adomaitis, for his invaluable guidance, encouragement and support during my graduate study. His knowledge, patience, and vision have provided me with lifetime benefits. I am very grateful to all my teachers. Courses taught by them have provided me with the background and foundations for my thesis research. Special thanks to Profs. Evanghelos Zafiriou, Mark Austin, Kyu Yong Choi, and Panagiotis Dimi- trakopoulos of my thesis committeefor theirfascinating lectures, academicguidance, time, valuable comments and encouragement. I want to thank Dr. Jae-Ouk Choo for the beneficial discussions and help from the very beginning of my research. In addition, I would like to thank Ramaswamy Sreenivasan and Dr. Yuhong Cai for sharing experimental data. I am so grateful to my husband, Jian Ma, for his love and encouragement. Thanks Mom and Dad for everything. Without your love, nurturing and support, I could never accomplish all this. iii TABLE OF CONTENTS List of Tables vi List of Figures vii 1 Introduction 1 1.1 Mathematical Modeling in Semiconductor Manufacturing . . . . . . . 2 1.2 Multiscale Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Software Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Modular Approach for Flowsheet Tools . . . . . . . . . . . . . . . . . 8 1.5 Object-Oriented Approach for PDE Solvers . . . . . . . . . . . . . . . 9 1.6 OurApproach............................... 10 1.7 Thesis Organization and Contributions . . . . . . . . . . . . . . . . . 11 2 Framework of Object-oriented Simulation Tools 13 2.1 Overview of Framework Architecture . . . . . . . . . . . . . . . . . . 13 2.2 Simulation Framework Implementation . . . . . . . . . . . . . . . . . 15 2.2.1 Modular Components . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.2 The mwrmodel Class . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.3 Physical Property Data . . . . . . . . . . . . . . . . . . . . . . 20 2.3 The modsys and relation Classes . . . . . . . . . . . . . . . . . . . . 20 2.4 The Solver Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3 Modeling and Simulation of Tungsten CVD Reactor System 37 3.1 Thermal Model of the Wafer/Ring Assembly . . . . . . . . . . . . . . 39 3.1.1 Wafer Module Solution . . . . . . . . . . . . . . . . . . . . . . 41 3.1.2 Solving the wafer and lampflux Modules . . . . . . . . . . . . 44 3.1.3 Solving the wafer + lampflux + chamber Subsystem . . . . . . 46 3.2 Gas Species Material Balance . . . . . . . . . . . . . . . . . . . . . . 47 3.3 Combined Thermal and Mass Balance Model Solution . . . . . . . . . 51 4 Simulation-based Design and Analysis of the Programmable CVD System 58 4.1 Introduction of the Programmable CVD System . . . . . . . . . . . . 58 4.2 Modeling and Simulation of the Multi-segment CVD System . . . . . 61 4.2.1 Challenges in Building a Multi-segment CVD Simulator . . . . 62 4.2.2 Construction of Simulator Modules . . . . . . . . . . . . . . . 64 4.2.3 Solving the Multi-Segment CVD System . . . . . . . . . . . . 71 4.3 Model Validation in the Three-segment Programmable CVD System . 74 4.3.1 Gas Concentration Profiles along Vertical Segments . . . . . . 75 4.3.2 Kinetic Rate Mechanism Validation through Uniform Deposi- tion Experiments . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.3.3 Model Predictions for Nonuniform Deposition Experiments . . 84 4.3.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 iv 5 XML-based Information System for the Programmable CVD System 88 5.1 Research Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 5.2 Literature Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 5.3 Information System Framework . . . . . . . . . . . . . . . . . . . . . 95 5.3.1 Data Store and Archive . . . . . . . . . . . . . . . . . . . . . 97 5.3.2 Data Access and Retrieval . . . . . . . . . . . . . . . . . . . . 98 5.3.3 Data Presentation and Applications . . . . . . . . . . . . . . . 100 5.4 Demonstration of the Framework Functionalities . . . . . . . . . . . . 101 5.4.1 Data Management for Prototype I CVD System . . . . . . . . 102 5.4.2 Data Management for Prototype II CVD System . . . . . . . 110 6 Conclusions and Perspectives 112 6.1 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.2 FutureWork................................114 A Sample MATLAB codes 117 A.1 Definition of wafertherm class . . . . . . . . . . . . . . . . . . . . . . 117 A.1.1 wafertherm class: constructor method . . . . . . . . . . . . . . 117 A.1.2 wafertherm class: residual method . . . . . . . . . . . . . . . . 117 A.2 Definition of windowtherm class . . . . . . . . . . . . . . . . . . . . . 118 A.2.1 windowtherm class: constructor method . . . . . . . . . . . . 118 A.2.2 windowtherm class: residual method . . . . . . . . . . . . . . 118 A.3 Definition of wafer module class . . . . . . . . . . . . . . . . . . . . . 119 A.3.1 wafer class: constructor method . . . . . . . . . . . . . . . . . 119 A.3.2 wafer class: residual method . . . . . . . . . . . . . . . . . . . 120 Bibliography 121 v LIST OF TABLES 2.1 Physical constants and RTP furnace design parameters. . . . . . . . . 25 4.1 List of part of parameters in the segment class............. 67 4.2 List of part of parameters in the gap class ............... 69 4.3 Experimental recipe for gas concentration profile measurement: Gap = 1mm, Pressure = 1 torr, Temperature = room temperature. . . . . 76 4.4 Experimental recipe for uniform tungsten deposition: Pressure = 1 torr, Heater temperature = 673 K, Gap = 1mm. . . . . . . . . . . . . 80 4.5 Rate constants for the empirical rate expression . . . . . . . . . . . . 81 4.6 Comparison of uniform deposition experimental data of W film thick- ness measured by four-point probe (4pp) with simulation results: Gap = 1mm, Pressure = 1 torr, Wafer temperature is to be determined, chamber gas diffusion is counted (i.e., ch:on). . . . . . . . . . . . . . . 83 4.7 Experimental recipe for nonuniform tungsten deposition: Pressure = 1 torr, Heater temperature = 673 K, Gap = 1mm. . . . . . . . . . . . 84 4.8 Comparison of nonuniform deposition experimental results of W film thickness [28] with simulation results: Gap = 1mm, Pressure = 1 torr, Wafer temperature is to be determined, chamber gas diffusion is counted (i.e., ch:on), rate expression: Model 4.5-(1). . . . . . . . . 85 vi LIST OF FIGURES 2.1 The main packages in the simulation framework . . . . . . . . . . . . 14 2.2 The class diagram of the simulator framework . . . . . . . . . . . . . 16 2.3 The class diagram of a standalone model module . . . . . . . . . . . 18 2.4 The mwrmodel interface for wrapping the ooMWR class subsystem . 19 2.5 The class diagram of modsys and relation classes and their relation- ships with user-defined system and standalone modules . . . . . . . . 22 2.6 The diagram of a wafer heated by a lamp through a quartz window . 24 2.7 The sequence diagram for solving an assembled system with two mod- ularobjects ................................ 33 2.8 The class diagram of the solver package................. 34 3.1 The schematic diagram of the CVD reactor chamber . . . . . . . . . 38 3.2 Solution of the wafer module withheating lamp flux fixedat 5000W/m 2 : The dynamic wafer temperature distribution corresponds to heating the wafer for 10 mins with full lamp power . . . . . . . . . . . . . . . 43 3.3 Heating lamp radiant flux distribution at the wafer assembly surface; note how it is relatively uniform over the wafer surface . . . . . . . . 45 3.4 Comparison of steady state wafer temperature for different simula- tion cases with heating lamp set at full power: (a) Solving the wafer module only (W); (b) Solving the combined wafer and lampflux mod- ules (WL); (c) Solving the combined wafer, lampflux, and chamber modules (WLC); (d) Solving the combined mass and thermal models (WLCG).................................. 48 vii 3.5 Comparison of gas composition profiles during deposition process: (a) Solving the rxngas module at constant wafer temperature, T w = 673K. For the first 10 mins, only H 2 is induced to the chamber; then WF 6 is introduced to the chamber during 10 mins deposition process after which the WF 6 is shut off; (b) Solving the combined mass and thermal models where the wafer is heated with full lamp power for 10 mins while only H 2 filled the chamber, followed by introducing WF 6 for a 10 mins deposition reaction with 0.7 heating lamp power, ending with the shut off of WF 6 and chamber purged with H 2 , cooling the wafer10mins............................... 52 3.6 The class diagram of the CVD simulation system assembled from modular objects of wafer, lampflux, chamber, recipe, and rxngas classes 54 3.7 Solving the combined mass and thermal models: Dynamic wafer tem- perature distribution of the wafer heated with full lamp power for 10 mins while only H 2 filled the chamber, followed by introducing WF 6 for a 10 mins deposition reaction with 0.7 heating lamp power, ending with the shut off of WF 6 and chamber purged with H 2 , cooling the waferfor10mins............................. 55 3.8 Snapshot of wafer temperature at different times (t=2,6,8,10 min) for the four simulation cases with heating lamp set at full power: (a) Solving the wafer module only; (b) Solving the combined wafer and lampflux modules; (c) Solving the combined wafer, lampflux, and chamber modules; (d) Solving the combined mass and thermal models 57 4.1 The programmable chemical vapor deposition reactor system . . . . . 59 4.2 The schematic diagram of three-segment programmable CVD system 61 4.3 Representative patterns of segment arrangements . . . . . . . . . . . 63 4.4 The building blocks of programmable CVD modeling system . . . . . 66 4.5 The geometry diagram of one individual segment . . . . . . . . . . . 68 4.6 The class diagram of the programmable CVD system . . . . . . . . . 72 4.7 The alignment pattern of three-segment design . . . . . . . . . . . . . 74 4.8 Gas composition profiles as the function of position within each segment 75 4.9 The simulated gas composition profiles vs. experimental measure- ments by mass spectrometry (one object created for the exhaust vol- ume area). Sum of squre error (SSE) = 0.0156 for Ar simulation . . . 77 viii 4.10 The improved simulation gas composition profiles vs. experimental measurements by mass spectrometry (three objects created for the exhaust volume area). Sum of square error (SSE) = 0.0042 for Ar simulation................................. 79 5.1 The challenges of different format data management and sharing within the research groups . . . . . . . . . . . . . . . . . . . . . . . . 89 5.2 Snapshot of mass spectrometry data file . . . . . . . . . . . . . . . . 90 5.3 The Information System Framework for the Programmable CVD Sys- tem..................................... 95 5.4 The XML data file viewed using Internet Explorer web browser . . . 103 5.5 Hierarchical data structure of the XML data file for prototype I . . . 104 5.6 The data flow from an XML file to a MATLAB application . . . . . . 106 5.7 Applications of data retrieval from an XML data file . . . . . . . . . 109 5.8 Hierarchical data structure of the XML data file for prototype II . . . 111 ix Chapter 1 Introduction Semiconductor device fabrication consists of multi-step chemical and physical processes to create the silicon-based integrated circuit chips. These steps include wafer preparation, device fabrication, device test, and packaging. Device fabrica- tion is among the most complex manufacturing steps in producing semiconductor integrated circuits, and typically includes cleans, photolithography, ion implanta- tion, etching, thermal treatments, chemical vapor deposition (CVD), physical vapor deposition, molecular beam epitaxy, electroplating, chemical-mechanical polishing, wafer testing and backgrinding [90]. These processes, some of which take place on the molecular or atom-scale level, are modeled as chemical reaction engineering problems, and the operations themselves constitute the unit operations of micro- electronic device fabrication. Along with these similarities to the more traditional chemical process modeling issues are some differences, including an understanding of the basic chemical and physical processes at work that is less well-developed compared to the petro-chemical industries, and a more rapidly evolving process equipment and product design time scale. Simulation tools are widely used in the semiconductor industry to supplement experiments and reduce the cost in developing new generations of products and in solving manufacturing problems [86]. However, it can be argued that simulation- 1 based design tools have failed to keep pace with equipment design evolution, because of the lackof trulyflexiblesimulatorsthat can model the exoticchemicalmechanisms at work, as well as the large range of time and length scales characteristic of these manufacturing process systems. 1.1 Mathematical Modeling in Semiconductor Manufacturing Physicallybased mathematical models for microelectronicprocessing provide a better understanding of process transport phenomena and reaction kinetics and can be used for advanced process control and optimization. The ultimate aim of process control is to improve equipment performance and overcome uniformity problems (temperature, film thickness, etc.). General automatic control approaches includes statistical process control (SPC), model-based control [102, 38, 8, 82], run-to-run control [16, 13], and real-time control [77, 26]. CVD processes, as one of the main unit operations of devicefabrication, can be classified on the basis of different reactor categories: atmospheric pressure CVD (APCVD), low pressure CVD (LPCVD), cold-wall and hot-wall types, multiwafer or single-wafer, and different geometries such as vertical vs. horizontal, rotating disk, barrel, etc. The early efforts of reactor modeling work can be traced back to 1970s [39, 104, 107]. Kleijn [62] gave an overview of CVD reactor modeling studies from the modeling and simulation point of view, Badgwell et al. [7] reviewed the status of CVD process modeling in detail from the modeling and control point of view. Other excellentreviewsof CVD process modeling can be found in the papers [47, 67, 49]. 2 The modelingequations corresponding to the specificreactor types haveevolved from the simple deposition reaction to more complicated models that consider sur- face reaction and transport phenomena in 1, 2 and 3 dimensions. Finding analytical solutions becomes infeasible with the increasing complexity of modeling equations. Typical numerical solution strategies to solve PDE (Partial Differential Equation) models include the finite volume method (FVM) [60, 61], finite element method (FEM) [57, 58, 80, 41, 53], finite difference method (FDM) [79, 55, 18, 106], orthog- onal collocation method (OC) [56, 95, 6], and the use of model reduction techniques through proper orthogonal decomposition (POD) [105, 5, 10, 24, 59, 11, 3]. 1.2 Multiscale Modeling Technology computer-aided design (TCAD) models havebeen extensivelyused to develop and optimize semiconductor manufacturing processes. TCAD covers a wide region of semiconductor modeling areas which include front end process modeling, lithography modeling, device modeling, interconnect and integrated pas- sive modeling, circuit element modeling, package simulation, materials modeling, and equipment/feature scale modeling [54]. With decreasing feature sizes in each generation of semiconductor devices, the understanding of underlying physical and chemical mechanisms in manufacturing processes grows in importance. Key phe- nomena often exist at different scales which are governed by different physical laws. Hence, the validity of conventional continuum-based or empirical models applied to these processes becomes questionable. The computational cost makes it impracti- 3 cal to treat all phenomena in a single finer scale level. To take into account their multiphysical nature, multiscale modeling methods now are regularly employed in semiconductor processes simulation. Multiscale modeling has long been studied and extensively used in the various areas such as chemistry, materials, biology, and so on [36]. It provides a way for fundamental understanding and prediction of a process or material structure ac- curately. However, because multiscale modeling addresses a wide range of length and time scales inherent in a system, together with the lack of reliable fundamental data availability, it can be a challenge to find validated solutions to these types of simulation problems. From theviewpointof numericalmethods, traditionaltechniquesincludemulti- grid methods, domain decomposition, fast multipole methods, adaptive mesh refine- ment, multiresolution methods, and the conjugate gradient method, which focus on solving microscale problems. The modern multiscale methods aim to reduce the computational complexity by using a scale separation approach. Representative methods of this technique are quasi-continuum method, Car-Parrinello method, su- perparametrization, heterogeneous multiscale method, coarse-grained Monte Carlo models, adaptive model refinement, and so on [34, 35]. From the implementation of the computation approach, the strategies can be classified as ?parallel? and ?serial? in terms of space or time scale. The representative methods of parallel length-scale approach include quasi-continuum method and the macro-scopic-atomistic-ab initio dynamics (MAAD) method. This approach implements different-scale techniques simultaneously in the same decomposed domain, whereas the serial approach imple- 4 ments different-scaletechniquessequentiallyin different leveldiscretizationdomains, and the information obtained from finer scales is the input of coarser scales. Kinetic Monte Carlo (KMC) and hyperdynamics methods can be categorized into serial and parallel approaches, respectively, in terms of time-scale [72]. These various multi- scale methods are not suited for all kinds of applications, and different methods are limited for solving different problems. E and Enquist proposed a general framework called heterogenous multiscale method (HMM) for designing and analyzing multi- scale methods, which can be applied to a wide variety of applications [36]. The main feature of HMM is linking models at different scales. The knowledge-based incom- plete macroscale model is supplemented by the microscale model which provides missing numerical data information. An overview of current status of multiscale simulations of materials can be found in Lu?s paper [71]. Maroudas [72] highlighted the elements of a multiscale methodological approach and the ways to link the elements together. He also clearly stated the opportunities and challenges for chemical engineers on multiscale mate- rials modeling in the semiconductor industry. A broader range of chemical reactors, relevant to issues in semiconductor processing is covered in Raimondeau and Vla- chos? paper [91], where they also present a multiscale hierarchical computational framework for modeling homogeneous-heterogeneous reactors. Braatz et al. [17] give an excellent review on multiscale simulations in semiconductor process, multi- scale applications, solution methods and issues of design and control of these sys- tems. They discuss the challenges and requirements associated with the design and control of multiscale system tools. The information transfer between simulation 5 modules and parameter estimations is also addressed. 1.3 Software Approaches Chemical process design, development and simulation, all of which encompass reactor design, equipment sizing and rating, steady-state or dynamic process sim- ulation, chemically reacting and multi-phase flow simulation, or plant optimization and control, generate large sets of nonlinear algebraic and/or differential equation systems to be solved. Generally, three approaches can be taken to solve the resulting systems. One is for the user to develop the entire simulation program using a high- level programming language: this approach not only requires the user to understand the chemical and transport phenomena in the particular process very well, but also demands knowledge of the appropriate numerical methods and programming skills. The second approach is to use commercial or other specialized software designed for specific applications. Examples of these simulation packages for semiconductor processing simulations include the CHEMKIN 1 Collection for simulations of com- bustion, catalysis, corrosion, plasma etching, and CVD process; PHOENICS-CVD 2 for different types of CVD reactors and processes, such as rapid thermal processes, hot-wall batch reactors, and cold-wall single wafer reactors; and MPSalsa 3 for com- plex chemically reacting flow simulations, atmospheric chemistry modeling, surface catalytic reactors and 3D CVD simulation. Process simulators, such as Athena 4 , 1 CHEMKIN: a software developed by Sandia National Laboratories 2 PHOENICS-CVD: a software product of CHAM Ltd. 3 MPSalsa: product of Sandia National Laboratories 4 Athena: product of SILVACO International 6 TSUPREM-4, Taurus-Process and FLOOPS-ISE 5 , have been developed to simulate and optimize semiconductor manufacturing processes. The third approach is to meet the user?s needs in the middle between the first two approaches, i.e., using a relatively general commercial or other engineering soft- ware product to obtain simulationresults where the full simulation is developed from a combination of built-in modules and user specified elements. These more general engineering simulation tools include flowsheet tools and PDE (Partial Differential Equations) solvers. Flowsheet tools are used for simulation, design, optimization and control of a complete plant or process with the simulator built-up from model modules describing unit operations. The PDE solvers are used for simulating dis- tributed parameter systems focusing on the detailed transport phenomena within a contiguous spatial region, e.g. the dynamics of fluid flow through a specified enclo- sure. Representative commercial flowsheet tools are CHEMCAD 6 , PRO/II 7 , and Aspen Plus 8 , while FLUENT, FIDAP 9 , FLOW-3D 10 , and COMSOL Multiphysics, formerly FEMLAB 11 are typical PDE-type applications. These software tools of- fer users a graphic interface to set up problems and run the simulations, and users generally must specify the physical domain, the transport and chemical processes, and boundary conditions without the need for detailed knowledge of fluid dynamics 5 TSUPREM-4, Taurus-Process, FLOOPS-ISE: products of Synopsys, Inc. 6 CHEMCAD, product of Chemstations, Inc. 7 PRO/II: product of SimSci-Esscor 8 Aspen Plus: product of Aspen Technology, Inc. 9 FLUENT, FIDAP: products of Fluent Inc. 10 FLOW-3D: product of Flow Science Inc. 11 COMSOL Multiphysics, FEMLAB: products of COMSOL, Inc. 7 and computational techniques. While these are powerful tools, this approach can offer less flexibility in choosing the specific computational tools (e.g. solvers), fewer possibilities of customizing the problem physical domain, limitations on model re- duction, control and other specialized applications, code reusability, and the cost of purchasing and updating commercial software. 1.4 Modular Approach for Flowsheet Tools Steady state or dynamic process flowsheet simulators can be broadly classi- fied into three categories: simultaneous (equation-based), sequential modular, and simultaneous modular. An overview of these approaches can be found in the pa- per of Hillestad and Hertzberg [48]. Equation-based simulators collect all modeling equations from each unit associated with a process and solve them simultaneously [83, 97, 101, 50, 51]. While the resulting simulators can be computationally efficient, problems can be encountered by users when model elements must be modified, both in terms of analyzing convergence problems as well as the difficulty with which these changes are made. Furthermore, computational efficiency can suffer in those cases where a unique relationship between model elements is lost when all equations are placed into a single module. Modular-based strategies, widely used in many different applications [43, 85, 33, 66, 69], incorporate models of individual equipment elements or unit operations as a set of modules connected by material, energy, and information streams all com- municating with a physical properties database. This approach allows the use of 8 different types of models (such as lumped or distributed models) for each chemi- cal process and determines the solution to each module using the most appropriate algorithms [87]. The solution strategy used in sequential modular simulators is to determine a solution to each module separately and in a sequence determined by process material flow, incorporating an outer iteration loop if the process has recycle streams. While computationally straightforward to implement, this approach suf- fers from computing inefficiencies, and the need to frequently update local module states. To address these computational drawbacks, the simultaneous modular simu- lators use a hybrid approach, incorporating simultaneous and sequential simulation concepts by partitioning a process into several modules or module-clusters consist- ing of coupled units [40, 68]. The module-clusters that have strong interdependence are solved simultaneously, while the process as a whole is solved sequentially from cluster to cluster. 1.5 Object-Oriented Approach for PDE Solvers The primary challenge to the development of numerical PDE solvers is how sets of the partial differential equations generated from distributed systems can be solved rapidly, robustly, and reliably. The application of object-oriented program- ming (OOP) techniques to fluid dynamics software design in conjunction with the development of parallelized computational techniques have greatly improved the computing efficacy, the flexibility of these computing environments, and the degree of code reusability and extensibility. Cai et al. [19, 20] demonstrated the advantage 9 of using multiple processor computing platforms with OOP techniques and devel- oped a parallel PDE solver based on the existing serial libraries of Diffpack [64], an object-oriented PDE solver for scientific computing applications. Ramirez et al. [92, 93] proposed an object-oriented framework using a design patterns methodology to solve CFD problems efficiently on high performance parallel computers. Peskin et al. [84] designed a software package to solve transport phenomena problems on moving boundary domains using the Galerkin finite element method. Langtangen et al. [65] built a simulator based on Diffpack to solve nonlinear, coupled PDEs using independent solvers for different equations in the system, i.e., different solvers for implicit or explicit equations and compound systems. 1.6 Our Approach Because the primary goal of our simulator development is to provide a flexible and extensiblestructure for solving a widerange of chemicalprocess simulationprob- lems, the proposed framework makes extensive use of object-oriented programming techniques. Our approach is to break simulation problems into modular compo- nents, where a module typically consists of a subelement of a single manufacturing process, such as a wafer heater, reaction chamber, or reaction network; the modules can be solved and analyzed individually, which is an asset in tracking the source of solution divergence or other numerical problems. Assemblies of modules can be formed by combining the modular model elements and defining how information is exchanged between modules; this makes it possible to define modular systems com- 10 bining lumped and distributed parameter models. The defined modules become a reusable part of modeling library. The properties of modularity are related to object-oriented features of pro- gramming languages. Object-oriented programming supports encapsulation, inheri- tance and polymorphism. Objects are categorized into classes and class hierarchies, and each class contains attributes describing objects of that class and operations defining their behavior. Encapsulation packs data and the operations that manip- ulate the data into a single named object. Inheritance enables the attributes and operations of a class to be inherited by all subclasses and the objects that are in- stantiated from the subclasses. Polymorphism allows the use of a common name for a method that acts differently among objects of different classes [88]. 1.7 Thesis Organization and Contributions In this thesis, we first discuss the design and implementation of the simulation framework, then demonstrate the framework functionalities through the applica- tions on semiconductor CVD process. The thesis concludes with final remarks and recommendations for future work. Details are as follows: Chapter 2: Introduce the framework architecture and discuss the detailed structure of each individual package through a simplified model of heat transfer in a single wafer CVD system. The software and the examples discussed in Chapter 2 and Chapter 3 can be found at the website: http://www.isr.umd.edu/Labs/CACSE/A team/software/mcps. 11 Chapter 3: Model and simulate a tungsten deposition process in a cold-wall single wafer CVD reactor system both at steady state and dynamically over a true processing cycle to demonstrate the functionalities of the modular simulation frame- work. Chapter 4: Discuss the modeling and simulation of gas concentration profiles in the newly designed programmable CVD reactor system. The model has been validated by the experiments conducted on the three-segment prototype. Chapter 5: Discuss the development of a Java and XML based three-tier infor- mation system to facilitate CVD system data archiving, analysis and management. Chapter 6: Conclude the thesis with final remarks and future work. 12 Chapter 2 Framework of Object-oriented Simulation Tools 2.1 Overview of Framework Architecture Starting with a general problem solving environment (MATLAB 1 ), we de- velop a simulation framework incorporating elements of flowsheet and PDE solvers, that facilitate a flexible, modular, model building and analysis approach, allowing an evolutionary approach to simulator development. We develop this modular ap- proach in the context of semiconductor manufacturing process simulation, where the granularity of modularization is less clearly defined than in the unit operations of traditional chemical processes. A central feature of our framework is the incor- poration of object-oriented techniques for implementing weighted residual methods, which allows the solution of PDE based models. As shown in Figure 2.1, the main packages in our simulation framework include a physical property database, modular components, system and relation classes and solver tools. The property database package works like a library for physical properties of common semiconductor processing gases. The modular components package includes standalone modules that encapsulate subsystem design information and modeling equation definitions. The function of the system and relation packages is to facilitate integration of independent modules to form user-defined systems. 1 MATLAB: product of The MathWorks, Inc. 13 Systems of this type are solved using the methods offered in the solver packages. Property Data Modular components System Relation SolverManager Solutions Figure 2.1: The main packages in the simulation framework We present our software design concepts in the context of a design patterns methodology. A design pattern is a good solution to a general or commonly recurring software design problem. The use of design patterns has multiplebenefits; saving the designer time and effort by making the communication between designer and user or other programmers easier and clearer, making the design more flexible, extensible and reusable, and by avoiding details in the early stage of design giving the designer a higher-level view of the problem and on the process of design [42, 30, 99]. Although design patterns provide a general approach to object-oriented soft- ware design, the particular implementation can differ based on the choice of pro- gramming language; some patterns are not needed, while other patterns are more easily expressed in one language than another. Our simulation framework is im- plemented using a programming environment for scientific computing (MATLAB) that has a number of object-oriented features. We use the mediator pattern for 14 communication among objects of module classes. The facade pattern is used to provide a simple interface to a subsystem of weighted residual method tools. We also have used the strategy and adaptor patterns in the solver package to provide different algorithms and integrate other numerical packages. The patterns used in our system design will be explained in the following sections. 2.2 Simulation Framework Implementation We focus on solving models of the form: ?x ?t = M(x,p) 0=N(x,p) whereM, N denote nonlinear algebraic or differentialoperators, xis a data structure containing model variables, and p isa data structure defining modelparameters. Our goal is to develop a framework where these equations can be easily incorporated into a modeling module and subsequently solved, both for dynamic and steady state solutions. It will be described later in this paper how these modules can be interconnected to form larger modeling equation systems. The class diagram of proposed framework is depicted in Figure 2.2. 2.2.1 Modular Components Compared to the classic modeling of large and complex systems, modular approaches break down a complete chemical processing system into smaller building blocks, reducing the complexity of model building, simplifying maintenance, making 15 solver modsys relation modules user-defined system naemodel odemodel mwrmodel ooMWR Figure 2.2: The class diagram of the simulator framework it safer and easier to modify a model component, and in some instances facilitating distributed or parallel simulation [31]. How to decompose a large system into smaller modules and later reassemble them without loss of essential information about the original system is the primary challenge in developing simulation modules. Meyer [78] proposed the ?open-closed principle? for software design where the modules, classes, methods, etc. should be open for extension, but closed for modification to avoid introducing errors. Cota and Sargent [31] suggest that modularity should have the properties of locality and encapsulation: locality means that all design decision information related to the system being modeled should be stored in the same place, and encapsulation keeps the state variables and behavior of one component isolated from other components. Using these properties, the modeler can make internal changes in one component without considering other parts of the model as long as the exposed interfaceremains 16 the same. Zeigler [109, 110] argues that a module should be like ?black box?, i.e. its internal state and behavior must make no references to analogous information of any other module, and the modules must communicate with others only through their input and output. Based on the properties of modularity, a standalone module class shown in Figure 2.3 is formulated in terms of the following methods: a constructor method, a residual or evalvar method, and plotting or display methods. All process design, equipment geometry, and related information are stored in the constructor method, where the data fields are categorized into two types: var representing variables and param representing parameters. The data type of var and param is defined as an object of the class assocaarray. The class assocarray acts as a hash table, storing both variable names and values. Helper methods such as delete, sort, insert, and more were written to facilitate manipulation of assocarray objects. In the module class, if the variables to be found can be expressed by the modeling equations in terms of parameters explicitly, i.e., in the form of x = g(p), then these equations are placed in the evalvar method; if only implicit expressions define the model residual, i.e., f(x,p) = 0, they should be used to define the residual method. The number of variables must be same as or less than that of the modeling equations. Modules can be solved individually to test the convergence behavior of each. 17 module - var - param + residual() + evalvar() mwrmodel weighted residual method for PDEs gasmixture offering physical property data Figure 2.3: The class diagram of a standalone model module 2.2.2 The mwrmodel Class If the modeling equations to be solved consist of partial differential equa- tions (PDEs), a spectral projection or other discretization method implemented in ooMWR tools can be used to solve these systems. ooMWR tools was developed for solving boundary value problems (BVPs) in relatively simple geometries using global trial function expansions and weighted residual methods (MWR) [1, 2, 70]. Objects of mwrmodel class are created to discretize the PDEs into algebraic equa- tions (AEs), or semidiscretizeequations into ordinary differential equations (ODEs), or algebraic-differential equations (DAEs). The resulting systems then can be solved using the tools developed in solver classes which will be introduced in the following sections. To integrate the ooMWR tools into the current framework, the facade pat- tern is applied to develop the mwrmodel class, which provides an interface to the ooMWR class subsystem, as depicted in Figure 2.4. The facade pattern wraps a 18 complex subsystem together and provides the user a simplified interface to access the functionality of the wrapped subsystem. basisfunperiodic mwrmodel quadgrid linearoperator basisfun scalarfield basisfunjacobi basisfunlegendre basisfungeneral basisfunsl relquad ooMWR classes subsystem Figure 2.4: The mwrmodel interface for wrapping the ooMWR class subsystem By creating an object of mwrmodel class, the user automatically obtains all ooMWR objects needed to discretize PDE systems without the need for any knowl- edge regarding its underlying classes, reducing the number of objects that the user must create, simplifying the discretization process. Also, the mwrmodel class de- couples the subsystem of ooMWR from the user or other subsystems, promoting subsystem independence and portability. Any changes to the ooMWR classes will not affect the user or other subsystems provided the mwrmodel interface does not change, minimizing future module modification. 19 In most applications, the mwrmodel class interface provides all the functional- ity needed to implement numerical MWR. However, this pattern does not prevent users from accessing the underlying classes and methods directly, indeed, a sophis- ticated user preferring more controllability and flexibility may choose to instantiate objects from ooMWR classes directly. 2.2.3 Physical Property Data The current database package provides methods for determining properties of non-polar and polar gases and organic and inorganic gases with emphasis on sup- porting common semiconductor process gases such as silane, tungsten hexafluoride and trimethylgallium. The thermo-physical properties include viscosity, thermal conductivity, binary diffusivity, heat capacity, molecular weight and density of pure gases and mixtures at an ideal gas state. Properties of 62 pure gases and their mixtures may be obtained through the interface. This package is implemented in JAVA for both web applications and local simulations. An interface wrapper class, gasmixture, was developed in MATLAB to facilitate data retrieval from the JAVA physical property objects. 2.3 The modsys and relation Classes With a computational methodology for creating standalone model modules in hand, several issues must now be addressed. For example, how does one assemble several modules together to construct more complex modules or a complete chemical 20 process simulator? Modules developed by different research groups or developed for different applications may use different names for the same variables or same names for different variables, and so how do we relate each to the others when solving the integrated system? Finally, how is information exchanged among objects during computations involving assemblies of modules? Direct communication among objects would result in a tight coupling of mod- ules and loss of modularity. To link the modules together and still preserve the loose coupling and flexibility, we create a class called relation. The variables or parameters with same or different names in different modules are related through the information users provide when instantiating the objects of the relation class. Although we have methods for updating data fields of related objects in the relation class, they are not intended to be called explicitly. Communication among objects is administrated through the methods of the modsysclass, which is developed using the mediator pattern. The mediator pattern defines the only object that knows the state of all others and coordinates information exchange among the other objects in the system. These classes communicate with or through the mediator without referring each other explicitly. Building simulators in this modular fashion is easy to understand, maintain and extend. The modsys approach replaces many-to-many relationships with one-to-many relations between the module systems and module objects. It also decouples the module objects with plug and play functionality. As depicted in Figure 2.5, the user may create a modular modeling system using one of two approaches. The first is to create an object of the modsys class directly by inputting the objects of individual module classes and the objects of the 21 relation class describing the relationship between variables and parameters among those module objects. Alternatively, a user can wrap all information relating to module objects and their relationships into a user-defined system, which is defined as a subclass of modsys class. In this way, users need only to instantiate the user- defined system in the main program, which makes the simulation programs simple to follow and hides unnecessary information from the clients. modsys relation module user-defined system Figure 2.5: The class diagram of modsys and relation classes and their relationships with user-defined system and standalone modules As mentioned earlier, each module class has a method called residual to store the modeling equations. Like the module class, the modsys class has a residual method as well, but its functionality is different: instead of combining all modeling equations from the individual module classes, the residual method in the modsys class acts as a coordinator for distributing, exchanging and receiving information among different objects. During computation, solvers only access and update the system?s variables. In the residual method, these updated variable values first are distributed to each cor- 22 responding module object, and then the residual method for each object is invoked to update the data field resid and the values of pseudo-constant parameters that are function of variables defined in that model. According to the relation objects, information in related module objects is updated by calling the method updatefields in the relation class. Finally, the computational results are collected and saved in the data field, resid, in the modsys object for the next calculation. To demonstrate how this process works, we use a highly simplified model of heat transfer in a single wafer CVD system. The wafer is heated by a lamp bank located outside the reactor chamber (Figure 2.6). T w is wafer temperature and T q is quartz window temperature. Lamp radiation reaches wafer through the quartz reactor window; the window itself absorbs a fraction of the lamp radiation. The equations are coupled through the nonlinear radiative heat transfer terms between the wafer and window. The parameters used for simulation is listed in the Table 2.1 and the steady state modeling equations are given below. 23 Lamp heating Quartz reactor window Wafer Tq T w Chamber Coolant gas q wq q wc Figure 2.6: The diagram of a wafer heated by a lamp through a quartz window f 1 (T w ,T q ) wafer energy balance = ?epsilon1 w epsilon1 q T 4 a (T 4 q ?T 4 w ) wafer/window radiation (q wq ) +?epsilon1 q epsilon1 s T 4 a (1?T 4 w ) wafer bottom/chamber heat transfer (q wc ) +(1?a)Q lamp heating of wafer f 2 (T w ,T q ) quartz window energy balance = ?epsilon1 w epsilon1 q T 4 a (T 4 w ?T 4 q ) window/wafer radiation +hT a (1?T q ) window coolant gas +aQ lamp heating of window 24 Table 2.1: Physical constants and RTP furnace design parameters. Parameter Value Description epsilon1 w 0.7 Si emissivity epsilon1 q 0.5 quartz emissivity (high temperature) epsilon1 s 0.07 steel emissivity (room temperature) a 0.01 quartz absorptivity ? 5.670?10 ?8 J/(K 4 m 2 s) Stefan-Boltzmann constant T a 300 K ambient temperature h 300 W/m 2 quartz window/cooling gas heat transfer coeff Q 5000 W/m 2 lamp radiation flux The iterative approach to solving for the coupled set of nonlinear algebraic equations can be written as: parenleftBigg T w T q parenrightBigg (n+1) = parenleftBigg T w T q parenrightBigg (n) + parenleftBigg ? w ? q parenrightBigg (n) and the update vector ? can be obtained by: ? = ?J ?1 f where J is the Jacobian matrix of the linearized system, and f is the vector of functions f 1 (T w ,T q ) and f 2 (T w ,T q ). The Jacobian matrix is defined as follows: J = ? ? ? ?f 1 ?T w ?f 1 ?T q ?f 2 ?T w ?f 2 ?T q ? ? ? 25 Now we solve this system using our modular approach. First, two individual modules called wafertherm and windowtherm are defined as: wafertherm class: var : T w param : ?, epsilon1 w , epsilon1 q , epsilon1 s , T a , T q , a, Q residual function : f 1 (T w ,T q ) windowtherm class: var : T q param : ?, epsilon1 w , epsilon1 q , T a , T w , h, a, Q residual function : f 2 (T w ,T q ) where the data field var includes the information on all variable names and initial solution estimates (or initial conditions for a time dependent-problem), and the date field paramwraps all parameter names and values into an assocarrayobject. The residual method stores all linearor nonlinear algebraic equations whose residuals are to be driven to zero to define the variable values which constitute a steady-state solution. The number of equations must be equal to or greater than the number of variables. The complete class definitions in MATLAB is attached in the Appendix. Each module can be solved independently: an object of each class is defined and the Newton?s method is applied to each. For example,T q is defined as a constant 600Kin the wafertherm module, the MATLAB script for solving the wafertherm module is as follows: A = wafertherm; % create instance of wafertherm class 26 A = newton(A); % solve function f1 unpack(A) % extract converged solution Wafertemp = Tw*Ta The convergence of the Newton procedure and resulting steady state wafer temperature are shown below: Update/residual norm = 0.58589 / 368.2513 Update/residual norm = 0.031479 / 9.7532 Update/residual norm = 0.00086492 / 0.44817 Update/residual norm = 3.9704e-005 / 0.020345 Update/residual norm = 1.8024e-006 / 0.00092408 Update/residual norm = 8.1869e-008 / 4.1972e-005 Update/residual norm = 3.7185e-009 / 1.9063e-006 Update/residual norm = 1.6889e-010 / 8.6587e-008 Update/residual norm = 7.6711e-012 / 3.9345e-009 Update/residual norm = 3.4857e-013 / 1.7917e-010 Wafertemp = 766.5719 Note that because finite differences are used to compute Jacobian array el- ements, the convergence is less than quadratic; additional computational details follow. Solving for windowtherm module individually, T w is defined as a constant 600K. The computational procedure is as follow: 27 B = windowtherm; B = newton(B); unpack(B) Windowtemp = Tq*Ta The updates during solution procedure and the resulting steady state quartz window temperature are: Update/residual norm = 0.98835 / 1405.161 Update/residual norm = 0.016202 / 64.0842 Update/residual norm = 0.00073866 / 2.9101 Update/residual norm = 3.3544e-005 / 0.13218 Update/residual norm = 1.5236e-006 / 0.0060036 Update/residual norm = 6.92e-008 / 0.00027268 Update/residual norm = 3.1431e-009 / 1.2385e-005 Update/residual norm = 1.4276e-010 / 5.6253e-007 Update/residual norm = 6.4841e-012 / 2.5558e-008 Update/residual norm = 2.946e-013 / 1.1655e-009 Windowtemp = 308.1433 To solve for the two unknowns (T w and T q ) simultaneously, we must define an integrated system. The relationship of the two independent modules are described as objects of the relation class, i.e., the parameter T q in wafertherm class is equivalent 28 to the variable T q in windowtherm class, and the variable T w in wafertherm class is the parameter T w in windowtherm class. The procedure for assembling the integrated system begins by instantiating an object of modsys class using its constructor method, with the list of modeling objects and relationships as input parameters. A table of variables is created by mapping system variables to their corresponding module objects. Instead of pulling all equations from the individual modules? residual method and putting them into that of modsys class, the residual method of this class is used to manage each module class data updates and retrieve computed residuals from these modules, returning them as the residuals of system equations. To illustrate how this works, consider computing of the first column of the Jacobian matrix by perturbing the variable T w with ?. Then we calculate f 1 (T w ,T q ) and f 1 (T w +?,T q ) from the residual method of the wafertherm class, and f 2 (T w ,T q ) and f 2 (T w +?,T q ) from the residual method of the windowtherm class. To evaluate f 1 (T w ,T q ) and f 2 (T w ,T q ), the parameter T q in the wafertherm class object must be updated by the value of variable T q in the windowtherm class object, similarly, the parameter T w in the windowtherm class must be updated by the value of variable T w in the wafertherm class. Hence, when the residual method of modsys class is called, it updates each module object?s variables with the latest values of the system variables through the mapping table; then it calls the updateall method of the relation class to exchange data information between the two module objects according to their relationship stated in the objects of the relation class; lastly it calls the residual method of each individual module object to retrieve the value of function residuals 29 and return them as f 1 (T w ,T q ) and f 2 (T w ,T q ). Computation of f 1 (T w + ?,T q ) and f 2 (T w + ?,T q ) is, in principle, the same as that of f 1 (T w ,T q ) and f 2 (T w ,T q ). However, because only one system variable is perturbed, it is not necessary to update all objects? variables and to perform the relationship check of which parameters must be updated. Therefore, each time the residual method of the modsys class is called, it will check and compare the latest system variables with the previous ones to determine which has changed, and then only update the corresponding variables of the appropriate module object. The relationship of other objects associated with this object is determined and stored for further usage. Then only those parameters connected with this variable are modified according to the saved new relationships. In this example, T w is perturbed and T q remains unchanged, so only the variable in the object of wafertherm class and the parameter T w in the object of windowtherm class are updated with T w +?, respectively. Finally the individual object?s residual method is called to collect the function residuals, and they are returned in the residual method of modsys class as the values of f 1 (T w +?,T q ) and f 2 (T w + ?,T q ). Finally, the system solutions obtained by calling the newton method defined in the naemodel class are retrieved through the getobj method in modsys class. The following is the actual code in MATLAB for the implementation of this example. % define relationship between A and B R = relation( A,B,{ ?Tw? ?Tw? ?Tq? ?Tq? } ); S = modsys(R,A,B); % create modular system 30 S = newton(S); % use Newton method to solve D = getobj(S); % extract converged module objects unpack(D); unpack(A,?var?); unpack(B,?var?); Wafertemp = Tw*Ta Windowtemp = Tq*Ta The steady state solutions of wafer and quartz window temperatures are ob- tained as follows: Update/residual norm = 0.21692 / 138.182 Update/residual norm = 0.015952 / 5.2968 Update/residual norm = 0.00056957 / 0.24148 Update/residual norm = 2.6063e-005 / 0.010966 Update/residual norm = 1.1834e-006 / 0.00049808 Update/residual norm = 5.375e-008 / 2.2623e-005 Update/residual norm = 2.4413e-009 / 1.0275e-006 Update/residual norm = 1.1088e-010 / 4.6668e-008 Update/residual norm = 5.0366e-012 / 2.1164e-009 Update/residual norm = 2.286e-013 / 9.7218e-011 Wafertemp = 697.3332 Windowtemp = 315.1561 The sequence diagram in Figure 2.7 illustrates the interaction of these objects and eachfunction callprocedure. The modsysclass is mainlyused for solving coupled 31 modules simultaneously, while independent modules can be solved sequentially. The current computational framework supports both approaches. 2.4 The Solver Package Generally, the modeling systems we wish to solve consists of algebraic equa- tions (AEs), ordinary differential equations (ODEs) or partial differential equations (PDEs), and differential-algebraic equations (DAEs). As discussed in the previous section, PDE systems normally are (semi)discretized using a global spectral projec- tion method. Alternatively, we can use the quadgrid, linearoperator and scalarfield classes in combination to discretize a PDE system into a semi-discretized ODE sys- tem by collocation; this approach normally results in the boundary conditions be- coming algebraic equations. In our framework, ODE model systems assembled with objects having residual and evalvar methods become DAE systems automatically because the evalvar method stores algebraic equations defining variables explicitly. Therefore, in the solver package, we must provide computational tools for solving AE, ODE or DAE systems. The class diagram of this package is illustrated in Figure 2.8. In this package, we have a base class, solver, which defines data fields such as var, param,resid, solverset, currtime, and more for subclass usage, and offers utility methods such as unpack, display, get, set, columnnae, residual and evalvar, to facilitate derived class operations. The residual method and evalvar method are both abstract methods and, as we have seen, must be overloaded in subclasses of the solver class. If only the evalvar method is overloaded, the abstract residual method 32 :naemodelA:wafertherm B:windowthermmain R:relation S:modsys instantiate() instantiate() instantiate() instantiate() instantiate() newton() jacobian() residual() updatefields() residual() residual() getobj() unpack() residual() residual() Loop Loop :solver instantiate() Figure 2.7: The sequence diagram for solving an assembled system with two modular objects 33 is used to handle several tasks of the evalvar method, such as setting the dxdtcoeff field to indicate equations in the evalvar method that are algebraic equations, and updating the resid field for the evalvar method where only var field is updated during each computation procedure. solver odemodelnaemodel solving non-linear systems solving ODE/DAE systems Figure 2.8: The class diagram of the solver package Solving linear/nonlinear systems is a common operation in scientific comput- ing. In addition to the Newton-Raphson procedure described, generic methods used for finding solutions to nonlinear systems include the Quasi-Newton, bisection, and successive substitution methods, and for linear systems, iterative methods such as Krylov subspace method. To group a number of different algorithms together, the class naemodel was developed using the strategy pattern. The strategy pattern sup- ports a familyof algorithms, which conceptuallydo the same thing but have different implementations. Different numerical algorithms are implementedas member meth- ods of the naemodel class, and the user can invoke different numerical algorithms 34 by calling these methods directly. Individual module classes or the modsys class are defined as a subclass of this solver class. MATLAB supports multi-inheritance. To be able to use the different methods of the odemodel class for solving ODE/DAE systems, the module class or modsys class also must be a subclass of the odemodel class. But the design of the odemodel class is totally different from that of naemodel class. There are many numerical computation packages developed in MATLAB for solving ODEs and DAEs with different algorithms. To make use of these existing solvers, we designed an interface, class odemodel, using the adapter pattern, to allow integration of MATLAB built-in ODE/DAE solver packages into our simulation framework. The adapter pattern, also known as a wrapper, converts the interface of a class into another interface to be compatible with other classes. In MATLAB, a representative interface of the ODE and DAE solvers is: [t,y] = ode45(odefun, tspan,y0,options, p1,p2 ); and the returned time t and solution y has the form of column vector and array, respectively. The function reference and variable data type are not compatible with our design because in the module class, the data type of var and param is assocarray. Variables wrapped in var may have other format data types, such as double, array or scalarfield which is defined to wrap the quadrature grid and state variable values for discretized states. Recall also modeling equations are defined in the module class residual method with the form of A = residual(A) instead of the user supplied functions with the form of dydt = odefun(t,y). 35 Therefore, a method called odesolver in the odemodel class was developed to perform multiple functions: (1) to be responsible for data type conversion, i.e., change the user defined data type to one compatible with that recognized by the MATLAB ode solvers and recover the results in the user-defined type; (2) redirect the function reference: instead of directly referring the residual or evalvar method of the module class, the function handler (odefun) in the standard ode solver is referred to a function defined within the odesolver method, where the module or modsys object is passed as a parameter and the residual method of the object is called to compute and return the time-derivative values; and (3) to generate a mass matrix for DAE systems automatically. By evaluating the data field dxdtcoeff, which is set in the residual method of module class, it will be determined whether this is an ODE system or a DAE system. For a DAE system, the size of the dependent variables is evaluated and a sparse mass matrix is generated. The default DAE solver is called to solve the system if users do not supply one. The odesolver method has the interface: Bv = odesolver(Aobj, tspan, options, solver); where Aobj is the object of odemodel class, tspan and options are same as that defined in standard MATLAB ODE solvers, solver is a string to allow the user to choose different solvers in MATLAB, for example, ?ode45?, ?ode23?, and so on. It is important to note that the output Bv is a vector of odemodel objects corresponding to the state variable at each point in time. 36 Chapter 3 Modeling and Simulation of Tungsten CVD Reactor System To demonstrate the use of the modular simulation framework, we now consider the problem of simulating a tungsten CVD deposition process both at steady state and dynamically over a true processing cycle. While single wafer CVD systems are true dynamic processes, steady state simulations are useful for determining the maximum temperature a wafer can reach during a processing cycle. A schematic diagram of the tungsten CVD reactor system under consideration is shown in Figure 3.1. We will consider the H 2 reduction of WF 6 as the deposition process for this example. Hydrogen enters the chamber through the transparent showerhead mounted in the top of the chamber, and tungsten hexafluoride is injected through a slit on one side of the chamber wall. A tungsten-halogen lamp ring is located outside the reactor chamber and is used to heat the wafer through the transparent quartz showerhead window. The precursor gases mix in the chamber and react at the wafer surface, forming thin film layer of tungsten on the wafer. The 4-inch diameter wafer is supported by a slowly rotating quartz susceptor and its outer edge is covered by a quartz guard ring. More details on the model derivation, heat transfer parameter selection and reactor geometry can be found in the paper [3]. In the following sections we will discuss modeling gas composition change dur- 37 hs = 0.092 m hl = 1.016m Rl = 0.0984 m Rs = 0.121 m Rw = 0.0508 m R = 0.22 m Heating Lamp Showerhead dz = 0.004 m wafer Susceptor/Guard Ring Water-cooled Al chamber wall Figure 3.1: The schematic diagram of the CVD reactor chamber ing thedeposition process and temperaturedistributionon thesurface of wafer/guard ring assembly. The formulation of individual modular components, solution of the individual modules to test each model components, and the solutions of the com- bined modeling system are discussed in turn. Dynamic models of the type ultimately developed are useful for deposition process recipe development. 38 3.1 Thermal Model of the Wafer/Ring Assembly To describe the one-dimensional thermal dynamics of the wafer, susceptor and guard ring assembly, several assumptions are made: ? The wafer is thin, and there is no temperature gradient across the wafer thick- ness; ? We neglect any wafer assembly temperature gradients in azimuthal direction; ? Heat transfer through the wafer assembly vertical support rod is not included. Under these assumptions, the energy balance of the wafer assembly can be written as: trianglez? ?(C p (T,r)T) ?t = trianglez r ? ?r bracketleftBigg k(T,r)r ?T ?r bracketrightBigg ???(r)T 4 +Q other (3.1) with boundary conditions and initial condition, r =0, ?T ?r =0; r = R, k ?T ?r = ???(R)T 4 +q c ; t =0,T(r)=T 0 The first term on the right hand side of (1) accounts for the conductive heat transfer through the wafer assembly in the radial direction. The second is the radiation from wafer surface to the wafer?s environment whose temperature will be initially set to zero. The term Q other represents the net heat flux to the wafer including that exchanged by radiative with other components. The thermal properties of the assembly are functions of temperature and radial position, with a jump discontinuity where the wafer and guard ring meet. The symbol R represents for the guard ring radius, and R w is the wafer radius. For rR w , k = k gr ; C p = C p gr ; ? = ? q The heat transfer parameters can be found in the paper [3]. For this particular case, Q other is the total energy flux from the heating lampQ l , heat exchange betweenwafer and reactor chamber Q c , and heat transfer between wafer and gas phase Q g , i.e., Q other = ?(r)u(t)Q l (r)+Q c (T,r)+Q g (T,x) where ? = ? w for rRw. The time-dependent lamp power controller u(t) is defined as 0 ? u(t) ? 1. Instead of putting all equations into a single large module to solve this complex system, several smaller and simpler modules are created to describe different heat transfer phenomena. The advantages of doing so include: 1. Module reusability: different CVD reactor systems have different materials of construction and heating systems; for example, instead of using a heating lamp, the wafer could be heated with substrate heater. Separating modules defining the heat sources and other components from the wafer module as much as possible improves the flexibility of model building because reactor systems can be defined simply by combining the required modules from a model library. 2. Convergence problems are more easily debugged by starting with the solution 40 to a single module, and then adding modules in an incrementalfashion. In this way, we can monitor how new heat transfer terms affect wafer temperature profiles and track down the source of solution divergence when it occurs. 3. The approach avoids repeated computations: for example, the heating lamp flux Q l is not the function of wafer temperature. Solving it once separately from the remainder of the system improves computational efficiency. Four independent module classes are defined to describe heat transfer in this system: wafer, lampflux, chamber and recipe. To demonstrate how the framework is applied for solving systems assembled from separate modules, we will solve the individual wafer module first, then add one module at each step and solve the sub- systems, finishing with the complete system solved simultaneously. We intentionally use differing and equivalent variable and parameter names to represent temperature or fluxes in different modules to demonstrate how the framework handles these po- tential sources of problems using the relation class. 3.1.1 Wafer Module Solution The wafer class is derived as subclass of naemodel and odemodel classes. Equa- tion (1) is an implicit function of T, and the discretized version of this equation is stored in the residual method. In the constructor method, the heat flux of heating lamp Q l , radiation between chamber and wafer Q c , and conduction between gas and wafer Q g , are defined as parameters. The data type of each is scalarfield. The default state of objects of this model assume constant values for each Q. One data 41 field is defined as an object of recipe class, which is used to control the power of the heating lamp; this allows the standalone solution of those objects when no other heat transfer information is present. The sample script is as follows. The source code of the wafer class constructor and residual methods can be found in the appendix. % create wafer object discretized with N collocation points A = wafer(N); % process recipe; lamp power u changes within time interval ti B = recipe(ti,u); A = set(A,?param?,B,?ru?); % update process recipe in object A A_s = newton(A); % solve for steady state solution A_t = odesolver(A,t); % solve for dynamic solution To solve partial differential equation (1), the roots of a Jacobi polynomial generated from the quadgrid class are used as collocation points; together with the differen- tial operator objects of linearoperator class, the PDE and boundary conditions are discretized with this collocation method. The interior residuals (within the defined physical domain) are calculated using the discretized equation (1), and the resid- uals at the two end points are defined by the boundary conditions. The resulting system becomes a differential-algebraic-equation system for the dynamic case or a non-linear algebraic equation system for the steady state case. To obtain the dy- namic solution of wafer temperature, we assume the initial temperature of the wafer surface is 300K, and the power of heating lamp is set to 5000W/m 2 . Figure 3.2 depicts the dynamic wafer temperature distribution when wafer is heated for 10 42 mins, and the steady state solution of temperature distribution on the wafer surface is shown on Figure 3.4; in both cases the full lamp power is used, i.e.,u(t)=1. 0 0.05 0.1 0.15 0.2 0 2 4 6 8 10 250 300 350 400 450 Radial position r (m) Dynamic wafer temperature Time t (min) Temperature (K) Figure 3.2: Solution of the wafer module with heating lamp flux fixed at 5000W/m 2 : The dynamic wafer temperature distribution corresponds to heating the wafer for 10 mins with full lamp power The results show the temperature on the wafer surface increases with constant heating flux. Because of the larger absorptivity of the wafer relative to the suscep- tor/guard ring and the contribution of radiant energy exchange of the guard ring edge with the environment, the temperature reaches the maximum at the center of 43 assembly and gradually decreases to the outer edge. 3.1.2 Solving the wafer and lampflux Modules The heat flux from the heating lamp to wafer, Q l (r), which is named as Q in the lampflux module, can be computed by (2), for a single lamp ring of radius R l at a distance h l from the wafer surface [3]: Q(r)=0.7 h l (6,000W) (4pi)(2pi) pi integraldisplay ?pi bracketleftBig h 2 l +r 2 +R 2 l ?2rR l cos? l bracketrightBig ?3/2 d? l (3.2) Because the heat flux from heating lamp is the function of radius only and can be obtained by calling evalvar method directly,when constructing the lampflux module, the evalvar method is overloaded to wrap the equation and the class is derived as subclass of the solver class only. To obtain the wafer temperature distribution using the heat flux from the heating lamp instead of the assumed value, 5000W/m 2 , the wafer and lampflux modules are solved together. However, creating the object of modsys class is not necessary. Because the heat flux of lamp Q is not a function of wafer temperature, we can solve the lampflux module first to obtain the flux distribution along wafer radial direction, then solve the wafer temperature by substituting the parameter Q l in the wafer class by Q. The simulation script is as follows: C = lampflux(A); % create lampflux object based on the wafer model [A,C] = exchange(A,C,{?Ql?,?Q?}); % substitute Ql in wafer object by Q AC_s = newton(A); % steady state wafer temperature AC_t = odesolver(A,t); % dynamic wafer temperature profiles 44 The radiant heat flux of the lamp and wafer steady state and dynamic temperature distribution computed from the more accurate Q are shown in Figure 3.3, Figure 3.4 and Figure 3.8, respectively. The heating lamp flux distribution corresponds to full lamp power. Compared to the solution obtained by setting Q l constant (5000W/m 2 ), we can see the wafer temperature is higher and less spatially uniform because of larger heat flux Q l . 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 Radial position r (m) Lamp flux Q (W/m 2 ) Wafer Guard Ring Figure 3.3: Heating lamp radiant flux distribution at the wafer assembly surface; note how it is relatively uniform over the wafer surface 45 3.1.3 Solving the wafer + lampflux + chamber Subsystem The radiative heat exchange from the wafer to chamber, Q c , which is assumed zero in the previous cases, is expressed as Q in the chamber module: Q = ??(r)? s F a (r)(T 4 sh ?T 4 )+??(r)? c (T 4 c ?T 4 )+??(r)T 4 (3.3) where ? s and ? c are emissivity for the showerhead and aluminum chamber wall. The geometry shape factor F a (r) is computed using F a (r)= 1 2 ? ? ? 1? (r/h s ) 2 +1?(R s /h s ) 2 radicalBig (r/h s ) 4 + 2[1?(R s /h s ) 2 ](r/h s ) 2 +[1+(R s /h s ) 2 ] 2 ? ? ? The radiative heat flux q c in the boundary conditions of equation (1) which is as- sumed zero previously can be obtained by: q = ??(R)T 4 +??(R)? c (T 4 c ?T 4 ) Because Q and q are explicitfunctions of the state variable, temperature T, they can be computed directly, therefore only evalvar method is overloaded and the chamber module class is derived as the subclass of solver class. To substitute these models into wafer module and solve them simultaneously, an instance of a relation class is used to indicate the relationship of var and param in different modules, and an object of modsys class is created to define the system to be solved. The script below continues that of the previous sections: D = chamber(A); % create chamber thermal model object E = relation(A,D,{?T?,?Tw?,?qc?,?q?,?Qc?,?Q?}); F = modsys(E,A,D); % modular system: wafer + chamber 46 F_s = newton(F); % steady state solution F_t = odesolver(F,t); % dynamic solution The simulation results are depicted in Figure 3.4 and Figure 3.8 for the steady and dynamic states, respectively. As shown in the figures, the steady state and dynamic temperatures are higher than that of corresponding cases when solving only wafer or wafer/lampflux modules. This is because the radiation term of the standalone wafer module assumes no radiation is returned to the wafer. By putting the wafer inside the reactor chamber, the radiative heat flux of the wafer/showerhead and wafer/chamber wall are considered. Similarly, for the q c in the boundary conditions, heat exchange between assembly outer edge and chamber wall is accounted for when solving combined modules. 3.2 Gas Species Material Balance When we solve the thermal model of wafer, we assume no gases fill the chamber and the heat transfer between wafer and gas, Q g , is zero. To consider a dynamic deposition process, we add a material balance model of the reactant and product gases into the previous subsystem. To simplify the complexity of the transport modeling in the gas phase, a CSTR model is used and several assumptions are made for this tungsten chemical vapor deposition process: ? Gases are well mixed in the reactor chamber; ? Gases can be treated as ideal gases for these operating conditions; 47 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 300 400 500 600 700 800 900 1000 Radial position r (m) Temperature (K) Steady state wafer temperature T wafer T wafer+lamp T wafer+lamp+chamber T wafer+lamp+chamber+gas Wafer Guard Ring Figure 3.4: Comparison of steady state wafer temperature for different simulation cases with heating lamp set at full power: (a) Solving the wafer module only (W); (b) Solving the combined wafer and lampflux modules (WL); (c) Solving the combined wafer, lampflux, and chamber modules (WLC); (d) Solving the combined mass and thermal models (WLCG) 48 ? No significant temperature or pressure gradients exist within the chamber; ? Gas phase variables are functions of time only, not spatial position; Based on the gas flow rate, pressure and temperature conditions used in the CVD process, it is reasonable to say the above assumptions are accurate. The reaction occurring on the wafer surface is described as: WF 6 +3H 2 ? 6HF + W(s) The empirical expression for reaction rate is chosen as: R rxn = k 0 P m H 2 P n WF 6 exp(? E a RT w ) (3.4) where the reaction rate order m is usually taken to be 1/2 and n depends on the ratio of H 2 : WF 6 , where for high ratio values, n is 0, and for low ratio value, n is 1/6 [63]. The lumped model for the molar balance of the reaction gases can be written as: d(Nx H 2 ) dt = F in x H 2,in ?F out x H 2 ?3A w R rxn (3.5) d(Nx WF 6 ) dt = F in x WF 6,in ?F out x WF 6 ?A w R rxn d(Nx HF ) dt = ?F out x HF +6A w R rxn where N is the total number of moles inside the reactor, A w is wafer area, and F in and F out are molar flow rates calculated by: N = PV RT g (3.6) T g = T w +T a 2 49 F in = F out +2A w R rxn where, T a is the ambient environment temperature. The conductive heat transfer between gas phase and wafer, Q g , can be approximated by: Q g (T w ,r,x)= k wg (x,T g ,P) L ww (T g ?T w ) (3.7) The gas thermal conductivityk wg is a function of gas composition, temperature, and pressure; L ww represents the length scale of the gas thermal boundary layer. For a given wafer temperature, the steady state and dynamic solutions of gas compo- sition can be obtained by solving above nonlinear algebraic or differential-algebraic equations. A module class called rxngas is constructed to wrap the mass balance model. The modeling equations from (3.4) to (3.7) are stored in the class method residual. Other utility methods such as rxnrate, growthrate, and residtime are created to facilitate the computation and simulation results retrieval. A sample script for solving rxngas module with constant wafer temperature is shown below: G = gascomp(A,D); % create gas composition model object G_s = newton(G); % steady state solution G_d = odesolver(G,t); % dynamic solution Figure 3.5 depicts the gas composition profiles for solving a rxngas module under the operation conditions: P =0.5torr, T a = 300K, T w = 673K, q tot =50sccm (H 2 :WF 6 = 4:1). During the first 10 mins, only H 2 is introduced to the chamber, after which the gas flow of WF 6 is turned on. The deposition process lasts 10 mins, 50 after which the WF 6 gas is turned off and only the H 2 gas is used to flush the chamber. At the steady state, for m =1/2, n =1/6, x H 2 =0.7570, x WF 6 =0.1869, x HF =0.0560, the tungsten growth rate is 25.0 nm/min. This simulation result is close to the average deposition rate of 21.6nm/min, experimental results produced under the same operation conditions except the wafer temperature setting was 773K during experiments [108]. It is reasonable to set the wafer temperature to 673K in the simulator because the true wafer temperature normally is at least 100K lower than the controller setting in the particular reactor studied [25]. 3.3 Combined Thermal and Mass Balance Model Solution During the deposition process, the gas phase concentration changes due to reaction and the process recipe, gas phase thermal conductivity changes with com- position, and the reaction rate is a function of wafer temperature. Therefore, the one-dimensional thermal model and lumped mass balance model become coupled through gas composition x and wafer temperature T. To solve this combined mod- eling system, the total reaction rate is obtained through the integration of wafer temperature along the radial direction, i.e., R tot = R w integraldisplay 0 R rxn 2pirdr where R tot represents the product of A w R rxn . The script for the main program is as follows: H = recipe(ti,xfeed); % process recipe object G = set(G,?param?,H,?Rf?); % set process recipe in chamber model object 51 0 5 10 15 20 25 30 0.7 0.8 0.9 1 xH2 Gas composition profiles during deposition process 0 5 10 15 20 25 30 0 0.05 0.1 0.15 0.2 xWF6 0 5 10 15 20 25 30 0 0.02 0.04 0.06 xHF Time t (min) (a) Material balance (b) Material and thermal balance (b) Material and thermal balance (b) Material and thermal balance (a) Material balance (a) Material balance Figure 3.5: Comparison of gas composition profiles during deposition process: (a) Solving the rxngas module at constant wafer temperature, T w = 673K. For the first 10 mins, only H 2 is induced to the chamber; then WF 6 is introduced to the chamber during 10 mins deposition process after which the WF 6 is shut off; (b) Solving the combined mass and thermal models where the wafer is heated with full lamp power for 10 mins while only H 2 filled the chamber, followed by introducing WF 6 for a 10 mins deposition reaction with 0.7 heating lamp power, ending with the shut off of WF 6 and chamber purged with H 2 , cooling the wafer 10 mins 52 E(2) = relation(A,G,{?T?,?Tw?,?Qg?,?Qg?)}); I = modsys(E,A,D,G); % complete CVD system model I_s = newton(I); % steady state solution I_d = odesolver(I,t); % dynamic simulation Figure 3.6 illustrates the class diagram of this assembled modular system. To test the integrated modeling system, a complete deposition process is simulated. The process cycle consists of: 1. Load the wafer and introduce precursor gas H 2 to purge the reactor, preheating the wafer for 10 minutes with full lamp power; 2. Introduce the gas WF 6 to the chamber with the heating lamp controller main- tained at 0.7. The reaction starts and deposition process lasts 10 minutes; 3. Terminate the WF 6 flow, turn off the lamp, and introduce a large flow of H 2 to cool down the wafer for 10 minutes prior to removing it. The transient phases of gas composition and dynamic and steady state wafer temperature distribution are shown in Figure 3.5, Figure 3.7 and Figure 3.4, respec- tively. The steady state gas compositions are: x H 2 =0.4356, x WF 6 =0.0891 and x HF =0.4753, where m =1/2 and n =1/6. Comparing the transient gas profiles when the rxngas module is solved alone with the combined mass and thermal system, we observe that the conversion rate of WF 6 is higher and the gas phase steady state is reached quickly for the first situation because the wafer temperature is constant at 673K. For the second case, 53 naemodelsolver relation modsys rxngas + constructor() + residual() + growthrate() + residtime() + rxnrate() wafer + constructor() + residual() + plot() lampflux + constructor() + evalvar() + plot() chamber + constructor() + evalvar() + plot() odemodel recipe + constructor() + gasflow() + powerfrac() Figure 3.6: The class diagram of the CVD simulation system assembled from mod- ular objects of wafer, lampflux, chamber, recipe, and rxngas classes at the time the precursor gas WF 6 is introduced into the chamber to start the deposition process, the wafer surface temperature is only about 580K after 10 mins of preheating. Although the generation rate of HF climbs with increasing wafer temperature, the deposition rate is still much lower relative to the first case because at the end of deposition the wafer temperature can not reach 673K and only is 660K. The steady state wafer temperature and snapshots of transient wafer temper- ature corresponding to the four different simulation cases are plotted in Figure 3.4 and Figure 3.8, respectively. They show the wafer temperature changes with the heating power and environment. In the first simulation case, the wafer temperature 54 0 0.05 0.1 0.15 0.2 0 5 10 15 20 25 30 300 350 400 450 500 550 600 Radial position r (m) Dynamic wafer temperature Time t (min) Temperature (K) Figure 3.7: Solving the combined mass and thermal models: Dynamic wafer tem- perature distribution of the wafer heated with full lamp power for 10 mins while only H 2 filled the chamber, followed by introducing WF 6 for a 10 mins deposition reaction with 0.7 heating lamp power, ending with the shut off of WF 6 and chamber purged with H 2 , cooling the wafer for 10 mins 55 is lower than that found by combining the lampflux and wafer modules because we assume the heating lamp power is constant 5000W/m 2 , which is much lower than the true value distributed over the wafer surface, ranging from 11000W/m 2 to 3000W/m 2 . After adding the chamber module, the wafer temperature increases because the heat lost in the wafer module is partly compensated by the chamber wall radiation. Finally, the wafer temperature slightly decreases when the rxngas module is added because of wafer cooling by conduction through the gas phase. 56 0 0.05 0.1 0.15 0.2 300 320 340 360 380 400 Radial position r (m) Temperature (K) Wafer temperature at t = 2 min W WL WLC WLCG 0 0.05 0.1 0.15 0.2 300 350 400 450 500 550 Radial position r (m) Temperature (K) Wafer temperature at t = 6 min W WL WLC WLCG 0 0.05 0.1 0.15 0.2 300 350 400 450 500 550 600 Radial position r (m) Temperature (K) Wafer temperature at t = 8 min W WL WLC WLCG 0 0.05 0.1 0.15 0.2 300 350 400 450 500 550 600 Radial position r (m) Temperature (K) Wafer temperature at t = 10 min W WL WLC WLCG Wafer Guard Ring Wafer Guard Ring Wafer Guard Ring Wafer Guard Ring Figure 3.8: Snapshot of wafer temperature at different times (t=2,6,8,10 min) for the four simulation cases with heating lamp set at full power: (a) Solving the wafer module only; (b) Solving the combined wafer and lampflux modules; (c) Solving the combined wafer, lampflux, and chamber modules; (d) Solving the combined mass and thermal models 57 Chapter 4 Simulation-based Design and Analysis of the Programmable CVD System This chapter discusses the development of a simulator describing the reac- tion gas transport in the multi-segmented showerhead for better understanding and control of gas composition across a wafer surface in a spatially controllable or pro- grammable CVD reactor system using the modular simulation approach. The exper- imental data obtained from the three-segment prototype system are used to validate the simulation models and assumptions. 4.1 Introduction of the Programmable CVD System The Programmable CVD reactor (PCVD) shown in Figure 4.1, a spatially con- trollable CVD system [27], was developed at the University of Maryland. Compared to conventional CVD reactors, this new reactor system features spatially-tunable process recipes. Equipped with a distributed sensing system, the design of pro- grammable CVD system aims to achieve several goals, including: (1) across-wafer uniformity and desired product performance of deposited thin film; (2) controlled nonuniformity across the wafer for combinatorial study of complex materials and processes; (3) advanced process control through in-situ sensors. The main components of the programmable CVD system include: (1) a feed 58 G as D i str ibu t ion B o x Mass S p ectr o meter R e a c t o r S y s t e m Control System Figure 4.1: The programmable chemical vapor deposition reactor system 59 gas distribution box; (2) a process control system; (3) a mass spectrometer sys- tem for sensing gas composition; (4) and a deposition system including one load lock chamber and one reactor chamber. The key design feature of this system is its segmented showerhead which makes possible true 2-dimensional control of gas phase composition across the wafer surface. As shown in Figure 4.2, each segment of the showerhead includes individually controllable gas feeds, and exhaust gases are recirculated through the showerhead itself to the common exhaust zone. This construction enables control of spatial distribution of gas flow rate and minimizes the interaction among the segments. To proceed with a deposition process, a process recipe including pressure, temperature, precursor gas flow rates, deposition time, etc. is enteredas input to the control system. The precursor gases are introduced into the segmented showerhead through feed tubes, and the residual gases are redirected and pumped out through each segment. The deposition is performed on the wafer surface which is heated by the substrate heater. The gas composition in each segment is monitored with respective mass spectrometry sampling tube during operation. To gain the insight into the operation of this CVD system and quantify the relative importance of different precursor transport and reaction mechanisms inside this reactor system, a set of simulation tools is necessary to supplement experimental methods. 60 Feed gas Exhaust gas Wafer Substrate heater Segmented showerhead CVD reactor chamber Gas feeding tubes Exhaust port Figure 4.2: The schematic diagram of three-segment programmable CVD system 4.2 Modeling and Simulation of the Multi-segment CVD System Although the simulation will not completely replace the need for experiments, simulators can result in very substantial cost savings in developing new generation CVD reactor systems and in solving manufacturing problems [86]. Because of the complexity of this system, conventional CVD simulation tools may not be appropri- ate to design and analyze the programmable CVD system. 61 To model gas species transport within each individual segment, the Maxwell- Stefan equation is employed to describe multicomponent gas species transport: ?x k i = n summationdisplay j=1 bracketleftBigg 1 CD ij (x k i N k j ?x k j N k i )+ x k i x k j D ij parenleftBigg D T j ? j ? D T i ? i parenrightBigg ?lnT bracketrightBigg , 0