Performing fabrication process simulations
A trained model translates between process output and parameter values to optimize semiconductor fabrication processes, addressing simulation complexity and time challenges, enabling rapid identification of optimized parameters.
Patent Information
- Application Number
- PCT/US2025/015676
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-26
- Filing Date
- 2025-02-13
- Publication Date
- 2025-09-04
AI Technical Summary
Semiconductor fabrication processes, particularly those involving multiple sequential steps like chemical mechanical planarization (CMP), are difficult to accurately simulate or model due to the complexity of numerous parameters and the computational resources required, making optimization challenging and time-consuming.
A trained model is used to translate between process output values and parameter values, enabling optimization without directly simulating the fabrication process, utilizing either a forward or backward mapping to determine optimized parameter values efficiently.
This approach significantly reduces computational complexity and time, allowing for rapid identification of optimized process parameters in nanoseconds compared to minutes required for direct simulation, facilitating faster and more accurate fabrication process optimization.
Smart Images

Figure US2025015676_04092025_PF_FP_ABST
Abstract
Description
PERFORMING FABRICATION PROCESS SIMULATIONSINCORPORATION BY REFERENCE
[0001] A PCT Request Form is filed concurrently with this specification as part of the present application. Each application that the present application claim benefit of or priority to as identified in the concurrently filed PCT Request Form is incorporated by reference herein in its entirety and for all purposes.BACKGROUND
[0002] Many semiconductor fabrication processes are complicated to simulate or model. For example, a fabrication process that requires multiple sequential steps may be difficult to simulate, because the result of one step is needed to perform simulation of the next step. It may be particularly difficult, or even impossible, to accurately simulate such a process.
[0003] The background description provided herein is for the purposes of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.SUMMARY
[0004] Techniques for performing fabrication process simulations are provided. The techniques may be practiced with a method (e.g., a processor- implemented method), a system (e.g., a system comprising one or more processors), and / or one or more non-transitory computer-readable media.
[0005] In some embodiments, the techniques may involve receiving, via a user interface, user- specified target output values for a set of output parameters associated with a fabrication process. The techniques may further involve determining optimized process parameter values by providing the user- specified target output values as input to a trained model, wherein the trained model has been trained to represent a function that associates output parameter values to process parameter values such that a simulation of a fabrication process using the process parameter values yields a simulated fabricated substrate having the output parameter values. The techniques may further involve simulating the fabrication process using the optimized process parameter values by using a fabrication process simulation algorithm.
[0006] In some embodiments, the techniques may involve receiving, via a user interface, user- specified target output parameter values for a set of output parameters associated with a fabrication process; and performing a process optimization. The process optimization may involve: (a) determining an initial set of process parameter values; (b) translating the initial set of process parameter values to a corresponding set of output parameter values using a trained model that relates process parameter values to output parameter values, wherein the trained model was trained using a design of experiments (DoE) simulation of the fabrication process designed to simulate a solution space of the fabrication process; (c) modifying the set of process parameter values based on a difference between the user-specified target output parameter values and the output parameter values obtained in (b); and (d) repeating b) and c) until the difference between the user- specified target output parameter values and the output parameter values obtained in b) is less than a stopping criterion to obtain optimized process parameter values. The techniques may further involve simulating the fabrication process using the optimized process parameter values using a fabrication process simulation algorithm.
[0007] In some embodiments, the techniques may involve receiving a set of output parameters and a fabrication process to be simulated. The techniques may further involve performing a design of experiments (DoE) simulation of the fabrication process by iterating over a plurality of sets of values for a set of process parameters. The techniques may further involve generating a model that relates values of the output parameters to values of the plurality of sets of values for the set of process parameters.BRIEF DESCRIPTION OF THE DRAWINGS
[0008] FIG. 1 is a schematic diagram of a system for performing a process simulation by translating target output values to simulation input values in accordance with some embodiments.
[0009] FIG. 2 is a schematic diagram of a system for performing process simulation optimization using a model to translate between target output values and simulation input values in accordance with some embodiments.
[0010] FIGS. 3 A and 3B are flowcharts of example processes for performing a process simulation optimization using a model that translates between process parameter values and target output values in accordance with some embodiments.
[0011] FIG. 4 is a flowchart of an example process for training a model that translates between process parameter values and target output values in accordance with some embodiments.
[0012] FIG. 5 is an example of a user interface for initializing a process simulationoptimization procedure in accordance with some embodiments.
[0013] FIGS. 6A, 6B, 6C, 6D, 6E, and 6F illustrate example architectures for a model that translates between process parameter values and target output values in accordance with some embodiments.
[0014] FIG. 7 presents an example computer system that may be employed to implement certain embodiments described herein.DETAILED DESCRIPTION
[0015] In the following description, numerous specific details are set forth to provide a thorough understanding of the presented embodiments. The disclosed embodiments may be practiced without some or all of these specific details. In other instances, well-known process operations have not been described in detail to not unnecessarily obscure the disclosed embodiments. While the disclosed embodiments will be described in conjunction with the specific embodiments, it will be understood that it is not intended to limit the disclosed embodiments.
[0016] Many semiconductor fabrication processes are complicated to simulate or model. For example, a fabrication process that requires multiple sequential steps may be difficult to simulate, because the result of one step is needed to perform simulation of the next step. It may be particularly difficult, or even impossible, to accurately simulate such a process. However, accurate simulation of such fabrication processes are desirable and useful, because they may allow a process engineer to accurately select process parameter values that will enable a resulting fabricated substrate to meet various output parameter values, or specifications. For example, process parameter values may be selected to enable the resulting substrate to meet output parameter values or specifications for output parameters such as critical dimension (CD), bow CD, bow location, etch depth, or the like.
[0017] An example of a fabrication process that may be difficult or impossible to accurately simulate or model using conventional behavior or physics-based models is a chemical mechanical planarization (CMP) process. In some cases, it may be possible to implement a behavioral model (e.g., a model that utilizes heuristics rather than numerical physics-based simulations) that simulates a simple CMP process with, e.g., 2 parameters such as stopping layer and dishing. However, in a more realistic CMP process, there may be many more parameters, such as the effects of different reaction rates, etc. A realistic simulation of a CMP process may include 10, 15, 20, or more parameters. Moreover, in a realistic CMP process, various steps may be performed multiple times in a loop, where the result of one loop impactsa successive loop. The impact of a high number of parameters may be particularly detrimental with modeling a process utilizing multiple loops, which may cause the behavioral model to lose accuracy. Alternatively, the CMP process may be modeled using a more complicated physics-based model that uses numerical simulation techniques to iteratively model various physical reactions occurring, however, generating such a physics-based model may be impossible due to complexity, and may require extreme computational resources.
[0018] In addition to being difficult to model, simulations of such fabrication processes may be difficult to optimize. For example, behavioral or physics-based models may require minutes to run for a single set of process parameter values. It may therefore require hours, days, or even weeks for a process engineer to identify optimal process parameter values if each simulation with a different process parameter value requires minutes and tens, hundreds, or thousands of process parameter values need to be tried.
[0019] Disclosed herein are techniques for optimizing fabrication process simulations. In some embodiments, a trained model (sometimes referred to herein as an “translation model”) is generated. The trained model is trained to learn a mapping between process output values and process parameter values. In general, a “process output parameter” or “output parameter” as used herein refers to parameters or characteristics of a fabricated substrate. Examples include CD, bow CD, etch depth, bow location, or the like. Process output parameters may include those that may be measured using metrology techniques or virtual metrology techniques. In general, a “process parameter” as used herein refers to knobs of a fabrication process that may be modified. Examples include gas flow species, gas flow rates, temperature, pressure, or the like.
[0020] A trained model may represent a mapping between process output values (generally referred to herein as Y ) and process parameter values (generally referred to herein as X). A trained model may be a forward model that represents a function Y = f (X), such that given process parameter values (e.g., temperature, pressure, gas flow rate, etc.), output values for a set of output parameters (e.g., CD, bow CD, etch depth, etc.) may be predicted. Additionally or alternative, in some embodiments, a trained model may be a backward model that represents a function X = g(Y), such that given output values for a set of output parameters (e.g., target output values such as a target CD, or the like), process parameter values that may be used to achieve the given output values may be predicted. An example of use of a backwards model is shown in and described below in connection with FIG. 1.
[0021] A trained model (sometimes referred to herein as a “translation model”) may be used to perform fabrication process optimization. For example, as shown in and described below inconnection with FIG. 2, a forward model may be used in conjunction with an optimizer algorithm (e.g., a differential optimization algorithm, or any other suitable type of optimization technique or algorithm). Given user-specified target output values (e.g., a target CD, a target bow CD, a target depth, etc.), optimized process parameter values may be determined. The optimized process parameter values may be determined by determining initial process parameter values and predicting corresponding output values using a trained forward model. A difference between the predicted output values and the user- specified target output values may then be used by the optimizer algorithm to determine updated process parameter values. Corresponding updated output values may then be determined using the forward model. This process may be repeated until optimized process parameter values are identified. Note that, in some embodiments, rather than using a forward model in conjunction with an optimizer to identify optimized process parameter values, a backward model may directly be used. Whether a forward model or a backward model are used may depend on the complexity in training an accurate model of the given type. Additionally, it should be noted that regardless of the model type used to generate the optimized process parameter values, optimized process parameter values may be identified without directly simulating the fabrication process. This reduces computational complexity and improves computational processing, because the trained model may translate between process parameter values and output values in a time period on the order of nanoseconds, whereas a single run of a fabrication process simulation may require minutes. Accordingly, optimized process parameter values may be identified in nanoseconds using the techniques disclosed herein. Note that the trained model may be a regression model, include one or more neural networks, and / or be of any other suitable type or architecture.
[0022] After optimized process parameter values are identified, the fabrication process may be simulated, e.g., in a virtual fabrication engine using the optimized process parameter values. In some embodiments, the simulation may generate a visualization of the fabricated substrate. The simulation may generate virtual metrology metrics corresponding to the output parameters on which optimization was performed, and / or any other parameters.
[0023] In some embodiments, a trained model may be provided as a script or other executable. In some embodiments, the script or executable may be packaged in a library, which may optionally include an optimizer algorithm configured to iteratively select optimized process parameter values, and / or a fabrication process simulation algorithm (e.g., a behavioral or physics-based simulation of the fabrication process). Using the library, a user may be able to specify target output values for a set of output parameters, identified optimized process parameter values, and simulate the fabrication process using the optimized process parametervalues. In some embodiments, the library may be provided as a customized Python library or module. An example user interface for interfacing with such a library is shown in and described below in connection with FIG. 5.
[0024] It should be noted that one or more operations or functions described herein may be performed within a virtual fabrication environment. A virtual fabrication environment for a semiconductor device structure offers a platform for performing semiconductor process development at a lower cost and higher speed than is possible with conventional trial-and-error physical experimentation. In contrast to conventional computer-aided design (CAD) and technology-CAD (TCAD) environments, a virtual fabrication environment is capable of virtually modeling an integrated process flow and predicting the complete 3D structures of all devices and circuits that comprise a full technology suite. Virtual fabrication can be described in its most simple form as combining a description of an integrated process sequence with a subject design, in the form of 2D design data (masks or layout), and producing a 3D structural model that is predictive of the result expected from a real / physical fabrication run. A 3D structural model includes the geometrically accurate 3D shapes of multiple layers of materials, implants, diffusions, etc. that comprise a chip or a portion of a chip. Virtual fabrication is done in a way that is primarily geometric, however the geometry involved is instructed by the physics of the fabrication processes. By performing the modeling at the structural level of abstraction (rather than physics-based simulations), construction of the structural models can be dramatically accelerated, enabling full technology modeling, at a circuit-level area scale. The use of a virtual fabrication environment thus provides fast verification of process assumptions, and visualization of the complex interrelationship between the integrated process sequence and the 2D design data. In some cases, a virtual fabrication environment may be configured to provide one or more virtual metrology measurement steps, which allow virtual metrology measurement data to be collected from modeled structures. The virtual metrology data may then be exported (e.g., to a data analysis tool, saved in a file or other document, etc.) and / or displayed to a user (e.g., such that the user can modify process steps based on the virtual metrology). In some embodiments, the techniques disclosed herein for performing a fabrication process simulation using optimized process parameters may utilize virtual metrology techniques, e.g., to verify and / or validate that the simulated fabrication process meets user-specified targets.
[0025] In some embodiments, a virtual fabrication environment may utilize a 3D modeling engine which represents an underlying structural model in the form of voxels. Voxels are essentially 3D pixels. Each voxel is a cube of the same size, and may contain one or morematerials, or no materials. Most of the operations performed by the 3D modeling engine in the embodiment are voxel modeling operations. Modeling operations based on a digital voxel representation may be more robust than corresponding operations in a conventional analog solid modeling kernel. In some embodiments, a three-dimensional visualization that includes a visualization of a fabricated substrate may be generated based on an underlying structural model in the form of voxels. However, it should be understood that, in some embodiments, non-voxel based modeling methods may be used in conjunction with the techniques disclosed herein.
[0026] FIG. 1 illustrates an example of a system for performing a process simulation by translating a user- specified target output parameter value to a process parameter value in accordance with some embodiments. As illustrated, a user- specified target output 102 (generally referred to herein as Y) is provided to simulation block 104. Simulation block 104 includes a trained translation model 106 and a process simulation model 108. Trained translation model 106 is configured to translate the user- specified target output 102 to a process parameter value (generally referred to herein as X) that will be utilized by process simulation model 108 to simulate a given fabrication process. Note that translation model 106 is a backward model that represents a X=g(Y) function. By way of example, in some embodiments, the user- specified target output 102 may include, e.g., a target critical dimension (CD), or other target value or specification value(s). The trained translation model 106 may be configured to determine one or more process parameter values that will yield the user-specified target output 102 when utilized by process simulation model 108. Process simulation model 108, when utilizing the determined process parameter values X, generates a process output Y’ 110. Note that process output Y’ 110 is generally substantially similar to or close to in value to user- specified target output 102. The difference between process output Y’ 110 and user-specified target output 102 may depend on the accuracy in training of input translation model 106.
[0027] In some embodiments, a trained model that translates between output parameter values and process parameter values to be used to simulate a fabrication process may be utilized to optimize a fabrication process. In particular, optimization of the fabrication process may be performed to identify process parameter values that, when utilized in a simulation of the fabrication process, yield a processed substrate having characteristics that meet the target output parameter values. For example, the target output parameter values may include a target CD, a target etch depth, a target bow CD, a target bow location, and / or any other suitable target output values. In some implementations, a backward model such as that shown in FIG. 1 may be used. In such cases, the trained model may directly determine optimized process parametervalues based on user-specified target output parameter values. Note that, because the backward model directly provides optimized process parameter values, the optimized process parameter values may be determined in a duration of time that corresponds to the duration of time required to utilize the trained model to make a single inference, which may be on the order of a nanosecond, or tens of nanoseconds.
[0028] In some implementations, a forward model (which represents a mapping of Y=f(X)) may be used to determine optimized process parameter values that, when utilized to simulate a fabrication process, will yield user-specified target output parameter values. For example, an initial set of process parameter values (generally referred to herein as X values) may be selected. These initial set of process parameter values may be provided to the trained model, which may translate the initial process parameter values to corresponding output values Y’. In other words, the trained model may utilize a learned mapping that translates process parameter values X to corresponding output values Y’ when the simulation of the fabrication process is performed using the process parameter values X. A difference between the output values and target output values Y (e.g., specified by a user) may be determined, and the process parameter values may be iteratively optimized based on the difference. Over several iterations or loops (e.g., hundreds of iterations, thousands of iterations, tens of thousands of iterations, etc.), the process parameter values X may be adjusted to optimized values that, when used by the simulation of the fabrication process, yield output values that are substantially similar to or the same as the target output values Y specified by the user. Note that, by utilizing the trained machine learning model to translate between fabrication process simulation output values Y and process parameter values X (where the trained machine learning model is using a learned mapping between X and T), the process parameter values may be optimized without running the simulation of the fabrication process. Because each iteration of optimization utilizing the trained model may be on the order of, e.g., nanoseconds, optimization using the trained machine learning model rather than optimizing using the output of a simulation of the fabrication process (each run through of which may take minutes) may allow optimization of process parameter values to be performed many orders of magnitude faster than when performing optimization using the simulation of the fabrication process.
[0029] FIG. 2 illustrates a schematic diagram of a system that utilizes a forward model for optimizing fabrication processes in accordance with some embodiments. As illustrated, a target output 102 (T) is provided to a model utilizing optimization block 204. Target output 102 may be a user-specified target output parameter value. Target output 102 may include values for one or more parameters or characteristics of a simulated fabricated substrate, suchas a target CD, a target depth, a target bow CD, a target bow location, etc.
[0030] As illustrated, optimization block 204 may include a translation model 206 (e.g., a trained model that represents a learned Y=f(X) function), a residue block 208, an optimizer block 210, and a process simulation 212. To begin, translation model 206, which is a trained model configured to translate between process parameter values and corresponding simulation output values for one or more parameters or characteristics of a simulated fabricated substrate, may determine initial process parameter values (generally referred to herein as Xo). Translation model 206 may then determine output parameter values for the one or more parameters or characteristics of the simulated fabricated process when the simulation process is simulated using the initial process parameter values Xo. For example, the translation model 206 may determine output values Yo that include CD, target depth, bow CD, bow location, or any other suitable characteristics if a simulation were performed using initial process parameter values Xo. Note that the values Yo are determined based on translation model 206, which utilizes a learned mapping between process parameter values and corresponding output parameter values, and the Yo values are not determined by directly simulating the fabrication process. Accordingly, the Yo values may be determined by input translation model 206 on the order of picoseconds, nanoseconds, microseconds or other relatively short time scale compared to the time that would be required to perform the simulation of the fabrication process directly (e.g., using a numerical simulation or physics-based simulation of the fabrication process).
[0031] Residue block 208 may determine a difference between the output parameter values Yo and target output 202 (e.g., a difference between Yo and Y). The difference between the output parameter values Yo and the target output 202 is then provided to optimizer 202. Optimizer 202 may utilize any suitable optimization technique to identify a next iteration of process parameter values Xi based on the difference between Yo and Y. The next iteration of process parameter values Xi may be those likely to yield corresponding output values Yi that are closer to the target output values Y than the initial output values Yo. The next iteration of process parameter values Xi are then provided to input translation model 206, which generates the next iteration of output values Yi, which are in turn provided to residue block 208. The loop of input translation model 206, residue block 208, and optimizer 210 may be repeated hundreds, thousands, or tens of thousands of times. The loop may be repeated a fixed number of iterations, and / or until a stopping criterion is met.
[0032] After the optimization loop of input translation model 206, residue block 208, and optimizer 210 has completed, the resulting optimized process parameter values Xncorresponding to the 7 / z' (and final) optimization loop may be provided to process simulation212. Process simulation 212 may be a full simulation of the fabrication process, e.g., a numerical or physics-based simulation or a behavioral model of the fabrication process. For example, process simulation 212 may be executed within a virtual fabrication engine. Using the optimized process parameter values Xn, process simulation 212 may simulate the fabrication process to generate a simulated fabricated substrate. Process simulation 212 may require tens of seconds or minutes to generate the simulated fabricated substrate. In some embodiments, process simulation 212 may generate, as an output, a visualization (e.g., a three-dimensional representation) of the simulated fabricated substrate). Process simulation 212 may generate process output characteristics 214 (referred to herein as F’). Process output characteristics 212 may correspond to virtual metrology values for one or more characteristics of the simulated fabricated substrate, such as a CD, a bow CD, a depth, a bow location, etc.
[0033] In other words, translation model 206 is used to optimize process parameter values that will yield a user-specified target output 202 when utilized by a full process simulation 212. By utilizing translation model 206 to identify the optimized process parameter values, the full process simulation may only be run once using the optimized process parameter values, rather than at every iteration of an optimization process.
[0034] It should be noted that, in some embodiments, the components of optimization block 204 (e.g., input translation model 206, residue block 208, optimizer 210, and / or process simulation 212) may be packaged together in a single library. This library may be provided to, e.g., a user such as a process engineer, such that the user may utilized the packaged library to identify optimized process parameter values and then perform a simulation of the fabrication process using the optimized process parameter values. An example of a graphical user interface (GUI) that may be used by a user to access the library is shown in and described below in connection with FIG. 5.
[0035] FIGS. 3A and 3B illustrate processes 300 and 350, respectively, for performing fabrication process optimization in accordance with some embodiments. In some embodiments, processes 300 and 350 may be performed by one or more processors of a computing device, such as a desktop computer, a laptop computer, a server device, or the like. In some embodiments, blocks of processes 300 and / or 350 may be performed by two or more different computing devices, such as a laptop computer and a server, or the like. In some embodiments, blocks of processes 300 and / or 350 may be performed in an order other than what is shown. In some embodiments, two or more blocks may be performed substantially in parallel. In some embodiments, one or more blocks may be omitted.
[0036] Process 300 can begin at 302 by receiving (e.g., via a user interface), user- specifiedtarget output values for a set of target parameters. As described above, the target output values for the set of target parameters are generally referred to herein as Y. The target output values may represent a specification to be achieved by a simulated fabricated substrate. For example, the target output values may be target values for a set of parameters such as CD, bow CD, bow location, etch depth, etc. An example of a user interface that may be used to receive the user- specified target output values is shown in and described below in connection with FIG. 5.
[0037] At 304, process 300 can perform a process optimization, where the process optimization results in obtaining optimized process parameter values. In some embodiments, optimized process parameter values may be identified using a backward model (e.g., as shown in and described above in connection with FIG. 1), where the optimized process parameter values are an output of the backward model based on the input user- specified target output values. Alternative, as described above in connection with FIG. 2, the process optimization may be performed using a trained forward model (e.g., translation model 206 of FIG. 2) that operates in conjunction with an optimizer. Regardless of what type of model is used, in some embodiments, the trained model may have been trained using a design of experiments (DoE) simulation of the fabrication process, where the DoE simulation was designed to simulate or cover a solution space of the fabrication process. An example of a training method is shown in and described below in connection with FIG. 4
[0038] An example of a process 350 for performing fabrication process optimization using a forward model and an optimizer is shown in FIG. 3B. Process 350 can begin by determining an initial set of process parameter values at 352. The initial set of process parameter values may be, e.g., default process parameter values for a given fabrication process. The initial set of process parameter values may be represented as Xo.
[0039] At 354, process 350 can translate the set of process parameter values to a corresponding set of output parameter values using a trained model that relates process parameter values to output parameter values. An example of such a trained model is translation model 206 shown in and described above in connection with FIG. 2.
[0040] As described above in connection with FIG. 2, the trained model may be configured to, for the set of process parameter values Xo, determine corresponding output values Yo. In other words, the trained model may represent the mapping Y = g(X).
[0041] At 356, process 350 can determine whether a stopping criterion has been reached. For example, in some embodiments, process 350 can determine whether the output values determined at block 354 are within a predetermined range of the user-specified target values Y obtained at block 302 of FIG. 3A.
[0042] If, at 356, process 350 determines that the stopping criterion has been reached (“yes” at 356), process 350 can end.
[0043] Conversely, if, at 356, process 350 determines that the stopping criterion has not been reached (“no” at 356), process 350 can proceed to 358 and can modify the set of process parameter values based on a difference between the user- specified target output values (e.g., the user- specified target output values Y obtained at block 302 of FIG. 3A) and the obtained output values at block 354. For example, during a first iteration of the optimization loop, process 350 may modify the set of process parameter values Xo based on the difference between Yo and Y. Any suitable optimization techniques or algorithms may be used to modify the set of process parameter values such that successive iterations of process parameter values cause the resulting output values to trend toward the user- specified target values.
[0044] Note that, in some embodiments, process 350 may determine whether output parameter values (e.g., Yo) are within a solution space associated with the fabrication process. For example, process 350 may determine whether output parameter values are within the solution space by checking whether the corresponding process parameter values are within a solution space associated with process parameters of the fabrication process. As a more particular example, process 350 may check whether output parameter values Yo are within a solution space by checking whether corresponding process parameter values Xo are within the process parameter solution space.
[0045] Process 350 can then loop back the block 354 and can translate the modified set of process parameter values to corresponding output values. Process 350 can loop through blocks 354-358 until the stopping criterion is reached at block 356.
[0046] When the stopping criterion is reached at block 356, the resulting process parameter values may be considered the optimized process parameter values Xn, e.g., the process parameter values X at the nthand final iteration of the optimization loop.
[0047] Referring back to FIG. 3A, the optimized process parameter values may then be used to simulate the fabrication process, regardless of whether the optimized process parameter values are obtained using a forward model operating in conjunction with an optimizer, or a backward model. At 306, process 300 may simulate the fabrication process by providing the optimized process parameter values to the simulation of the fabrication process. As described above, the simulation of the fabrication process may be performed as part of or within a virtual fabrication engine. The simulation may result in a simulated fabricated substrate as a result of the simulated fabrication process. The simulation may result in a visualization of the fabricated substrate. Additionally, in some embodiments, virtual metrology may be performed on thesimulated fabricated substrate. For example, the virtual metrology may result in measured output values Y. In general, the measured output values Y may substantially correspond to or match (or be within a predetermined range of) the user-specified target output values Y due to identification of the optimized process parameter values.
[0048] In some implementations, a trained model that translates between values of target output characteristics or parameters (e.g., CD, bow CD, depth, bow location, etc.) and process parameter values may be trained using data from a DoE-based simulation of a given fabrication process associated with the trained model. In particular, a set of target output characteristics or parameters may be identified, such as CD, bow CD, depth, bow location, etc. Continuing with this example, the fabrication process may be simulated multiple times using different process parameter values for each simulation. Examples of process parameters may include gas flow rate, pressure, temperature, etc., and a process parameter value for a given process parameter corresponds to a value for that process parameter (e.g., a temperature of 400 degrees Celsius, or the like). The values of the process parameters may be selected using a DoE technique to ensure that process parameter values are selected using statistical techniques that optimally identify process parameter values that will ensure the full solution space is explored via the multiple simulations of the fabrication process. Note that the fabrication process may be simulated using a simulation that runs in a virtual fabrication engine, and may be a physicsbased model and / or behavioral model of the fabrication process. Each simulation may take tens of seconds or minutes to run.
[0049] After the multiple simulations of the fabrication process, the trained model may be generated. For example, the model may be trained using a training set that includes a set of training samples. Each training sample may include a set of process parameter values and the corresponding output values for the set of target parameters that were obtained when the simulation of the fabrication process was run using the set of process parameter values. Note that, for each simulation run, the output values may be obtained using virtual metrology techniques (e.g., within the virtual fabrication engine). The model may have any suitable architecture, which may include one or more neural networks or other machine learning architectures. As another example, the model may be a regression model. Any suitable machine learning training technique may be utilized to train the model using the training set.
[0050] As described above, once the model has been trained, to perform fabrication process optimization, the trained model may be used to identify optimized process parameter values without utilizing the simulation of the fabrication process directly, because the trained model has learned a mapping between process parameter values and values of output parameters.
[0051] FIG. 4 is a flowchart of an example process 400 for generating a model that relates process parameter values to output parameter values in accordance with some embodiments. In some embodiments, blocks of process 400 may be executed by one or more processors of a computing device, such as a laptop computer, a desktop computer, a server, or the like. In some embodiments, blocks of process 400 may be executed in an order other than what is shown in FIG. 4. In some embodiments, two or more blocks of process 400 may be executed substantially in parallel. In some embodiments, one or more blocks of process 400 may be omitted.
[0052] Process 400 can begin at 402 by receiving a set of output parameters and a fabrication process to be simulated. For example, the set of output parameters may include CD, etch depth, bow CD, bow location, or the like. The fabrication process may be a deposition process, an etching process, or any other suitable fabrication process or combination of fabrication processes.
[0053] At 404, process 400 can perform a DoE simulation of the fabrication process by iterating over a plurality of sets of values for a set of process parameters. For example, given a set of process parameters (e.g., temperature, gas flow rate, pressure, etc.), process 400 may perform a first simulation using a first set of values for the set of process parameters. As a result of the first simulation, process 400 may determine a corresponding first set of output values for the set of output parameters received at block 402. The output values may be obtained by performing virtual metrology on a simulated fabricated substrate resulting from the first simulation. Process 400 may then identify a second set of process parameter values. The second set of process parameter values may be identified or determined using DoE statistical techniques such that identified values of process parameter values span a full solution space of the fabrication process. A second simulation may then be run using the second set of process parameter values to obtain a corresponding second set of output values for the set of output parameters. These simulations may be repeated tens, hundreds, or thousands of times. Each simulation may be performed within a virtual fabrication environment.
[0054] The results of the simulations performed at block 404 may be used to form a training set. For example, each training sample may include a set of process parameter values and the corresponding set of output values resulting from simulation of the fabrication process using the set of process parameter values.
[0055] At 406, process 400 can generate a model that relates values of the output parameters to values of the plurality of sets of values for the set of process parameters. For example, the model may be trained using the training set generated using the simulations performed at block404. Any suitable training techniques (e.g., gradient descent and backpropagation) may be used to train the model.
[0056] As a result of process 400, a trained model may be generated that has learned a mapping between process parameter values and resulting output parameter values.
[0057] It should be noted that a trained model (e.g., trained using the techniques shown in and described above in connection with FIG. 4) may be a forward model that, given a set of process parameter values, generates corresponding output parameter values (e.g., given a set of process parameter values, generates a corresponding CD, bow location, or the like). A forward model may be utilized in connection with the optimization techniques shown in and described above in connection with FIGS. 2, 3 A, and 3B. Additionally or alternatively, the model may be a backward model that, given a set of output parameter values (e.g., CD, bow location, etch depth, etc.), generates process parameter values that will yield, when simulated, the set of output parameter values, as shown in and described above in connection with FIG. 1. Example architectures for each are shown in and described below in connection with FIGS. 6A-6F.
[0058] Additionally, note that, in some embodiments, the techniques described in connection with process 400 of FIG. 4 may be packaged as a script (e.g., a Python script) or an executable which may allow a user to generate a trained model corresponding to a given fabrication process. In some embodiments, a script to train the model may be packaged in a library with one or more scripts or programs to perform DoE-based simulations. This may allow a user to generate a trained model for any fabrication process.
[0059] As described above, in some embodiments, a trained model that translates between process parameter values and output parameter values may be packaged in a library. In an instance in which the trained model is a forward model, the library may additionally include an optimizer (e.g., configured to iteratively identify optimized process parameter values). Regardless of whether the trained model is a forward model or a backward model, the library may include a fabrication process simulation script or executable (e.g., a configured to generate a simulated fabricated substrate given a set of process parameter values). The library may be, e.g., a custom Python library or module, although other languages or environments may be additionally or alternatively used. In some embodiments, a user may use a user interface to access the contents of the library. For example, the user may enter output parameters (e.g., depth, CD, etc.) and target values for the output parameters. Entry of these parameters and values may cause the fabrication process optimization to be run, which may entail using the optimizer packaged in the library to iteratively identify process parameter values, translate the process parameter values to output values using the trained model in the library, and, onceoptimized process parameter values have been determined, execute the fabrication process simulation included in the library to generate a simulated fabricated substrate. In some embodiments, contents of the library (e.g., one or more scripts packaged in the library) may be utilized to perform virtual metrology on the fabricated substrate to provide output values. These output values may allow the user to confirm that the output values of the fabricated substrate correspond to the user- specified target output values.
[0060] FIG. 5 depicts an example of a user interface 500 for initializing and performing a fabrication process optimization in accordance with some embodiments. As illustrated, user interface 500 may include a model input 502 that may allow a user to specify a trained model that translates between process parameter values and output parameter values. In the example shown in FIG. 5, the model is specified as a particular Python module, although this is merely one example. User interface 500 includes output parameter input 504, which may allow a user to specify a set of output parameters. The output parameters indicated in output parameter input 502 are depth, TCD, bow CD, and Bow. User interface 500 includes target output parameter input 504, which may allow a user to specify target values 506 for each output parameter. For example, the target value for the output parameter of “depth” in the example shown in FIG. 5 is 221. In some embodiments, user interface 500 may include a user interface control, such as a push button, that may cause the optimization and simulation process to begin. In some embodiments, once the optimization and simulation process has terminated, a visualization of the fabricated substrate (e.g., a three-dimensional visualization) may be presented. Additionally or alternatively, in some embodiments, virtual metrology associated with the fabricated substrate may be presented (e.g., via a user interface) and / or saved (e.g., a log file).
[0061] FIGS. 6A-6F illustrate various architectures for utilizing a model that translates between process parameter values and output parameter values.
[0062] FIG. 6A illustrates use of a forward model (referred to in the figure as “FML”) used in conjunction with an optimizer. This architecture is similar to what is shown in and described above in connection with FIG. 2. As shown, user- specified target output values may be provided to block 602, which includes an optimizer and an FML model. The FML model may be configured to take, as input, an initial set of process parameter values Xi and generate predicted output parameter values Yi, where z corresponds to the optimization iteration. The output of block 602 is optimized process parameter values Xi, indicated as “X solution” in FIG. 6A, which may then be validated, e.g., by simulating the fabrication process.
[0063] FIG. 6B illustrates an architecture similar to that of FIG. 6A. However, block 604 takesas input an incoming parameter and a weight of output parameter in addition to user- specified target output values. The weight for the output parameter may specify one or more weights to be applied to each output parameter. For example, weights may include a first weight for a CD, a second weight for a depth, etc. Note that, in some embodiments, weights may be the same or different from each other. By allowing each output parameter to be weighted differently, optimized results may prioritize more heavily weighted output parameter relative to others. In other words, the weights may allow the optimized results to consider an importance of each output parameter in the optimized results. In some implementations, the weights may be user- specified.
[0064] FIG. 6C illustrates an example in which a reverse, or backwards model (referred to in FIG. 6C as “BML”) is utilized. A BML may take, as input, a user- specified target values Y and directly predict process parameter values X that correspond to the user-specified target values Y. Note that, as shown in FIG. 6C, optimized process parameter values (represented as “X solution” in FIG. 6C) need not be identified using an optimizer, because the BML itself provides the optimized process parameter values.
[0065] Note that, based on the fabrication process and the data obtained, either a FML or a BML may be easier to generate and train.
[0066] FIGS. 6D, 6E, and 6F illustrate example architectures that utilize forward neural networks (FNNs) and backward neural networks (BNN), which may be particular implementations of FMLs and BMLs, respectively. In general, an FNN and a BNN may work in conjunction to reduce or balance model predicted error for both input parameters X and output parameter Y. For example, an FNN may predict output parameters Y given input parameters X, while a BNN may predict input parameters X given output parameters Y. By combining the results of the FNN and the BNN, the differences from target values (e.g., the residuals of both the FNN and BNN models) may be combined and utilized as an optimization parameter to make sure the errors of both the FNN and the BNN are below an error threshold.
[0067] FIG. 6D illustrates an example of use of an FNN and an BNN that operate in conjunction with an optimizer to identify optimized process parameter values. In the example shown in FIG. 6D, the error of the Y prediction by the FNN (referred to as DY) and the error of the X prediction by the BNN (referred to as DX) are combined such that the optimizer uses the value of DX2+ DY2to minimize overall prediction error.
[0068] FIG. 6E illustrates an example of use of an FNN and a BNN without an optimizer to identify optimized process parameter values. In the example shown in FIG. 6E, a BNN predicts X’, and an FNN utilizes X’ to predict Y’. The predicted Y’ is compared to the user- specified Ytarget value, and the value F+a*DF, where DY is the difference between Y’ and the user- specified Y target value to update the BNN. The term a*DF is a composite term used to ensure that each Y’ prediction in subsequent iterations is closer to the Y target value than in previous iterations. Note that, in the example shown in FIG. 6E, the loop may be repeated 10 times, although this is merely an example, and, in some implementations, other numbers of iterations may be used (e.g., five, twenty, one hundred, etc.).
[0069] FIG. 6F illustrates an example architecture similar to that of FIG. 6D that includes use of the incoming parameter and the weight parameter to identify the optimized process parameter values. In particular, similar to what is described above in connection with FIG. 6B, each output parameter may be associated with a weight that allows output parameters to be weighted differently in generating the optimized results.CONTEXT FOR DISCLOSED COMPUTATIONAL EMBODIMENTS
[0070] Systems including fabrication tools as described herein may include logic for process simulations.
[0071] The logic may be designed and implemented in any of various ways. For example, the logic can be implemented in hardware and / or software. Examples are presented in the controller section herein. Hardware-implemented control logic may be provided in any of a variety of forms, including hard coded logic in digital signal processors, application- specific integrated circuits, and other devices that have algorithms implemented as hardware. Analysis logic may also be implemented as software or firmware instructions configured to be executed on a general-purpose processor. System control software may be provided by “programming” in a computer readable programming language.
[0072] The computer program code for controlling processes in a process sequence can be written in any conventional computer readable programming language: for example, assembly language, C, C++, Pascal, Fortran, Python, or others. Compiled object code or script is executed by the processor to perform the tasks identified in the program. Also as indicated, the program code may be hard coded.
[0073] Integrated circuits used in logic may include chips in the form of firmware that store program instructions, digital signal processors (DSPs), chips defined as application specific integrated circuits (ASICs), and / or one or more microprocessors, or microcontrollers that execute program instructions (e.g., software). Program instructions may be instructions communicated in the form of various individual settings (or program files), defining operational parameters for carrying out a particular analysis or image analysis application.
[0074] Figure 7 is a block diagram of an example of the computing device 700 suitable for usein implementing some embodiments of the present disclosure. For example, device 700 may be suitable for implementing some or all functions for translating between inputs and target outputs or vice versa, performing process simulations, or the like.
[0075] Computing device 700 may include a bus 702 that directly or indirectly couples the following devices: memory 704, one or more central processing units (CPUs) 706, one or more graphics processing units (GPUs) 708, a communication interface 710, input / output (VO) ports 712, input / output components 714, a power supply 716, and one or more presentation components 718 (e.g., display(s)). In addition to CPU 706 and GPU 708, computing device 700 may include additional logic devices that are not shown in Figure 7, such as but not limited to an image signal processor (ISP), a digital signal processor (DSP), an ASIC, an FPGA, or the like.
[0076] Although the various blocks of Figure 7 are shown as connected via the bus 702 with lines, this is not intended to be limiting and is for clarity only. For example, in some embodiments, a presentation component 718, such as a display device, may be considered an VO component 714 (e.g., if the display is a touch screen). As another example, CPUs 706 and / or GPUs 708 may include memory (e.g., the memory 704 may be representative of a storage device in addition to the memory of the GPUs 708, the CPUs 706, and / or other components). In other words, the computing device of Figure 7 is merely illustrative. Distinction is not made between such categories as “workstation,” “server,” “laptop,” “desktop,” “tablet,” “client device,” “mobile device,” “hand-held device,” “electronic control unit (ECU),” “virtual reality system,” and / or other device or system types, as all are contemplated within the scope of the computing device of Figure 7.
[0077] Bus 702 may represent one or more busses, such as an address bus, a data bus, a control bus, or a combination thereof. The bus 702 may include one or more bus types, such as an industry standard architecture (ISA) bus, an extended industry standard architecture (EISA) bus, a video electronics standards association (VESA) bus, a peripheral component interconnect (PCI) bus, a peripheral component interconnect express (PCIe) bus, and / or another type of bus.
[0078] Memory 704 may include any of a variety of computer-readable media. The computer- readable media may be any available media that can be accessed by the computing device 700. The computer-readable media may include both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, the computer-readable media may comprise computer-storage media and / or communication media.
[0079] The computer- storage media may include both volatile and nonvolatile media and / orremovable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, and / or other data types. For example, memory 704 may store computer-readable instructions (e.g., that represent a program(s) and / or a program element(s), such as an operating system. Computer-storage media may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device 700. As used herein, computer storage media does not comprise signals per se.
[0080] The communication media may embody computer-readable instructions, data structures, program modules, and / or other data types in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” may refer to a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, the communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer- readable media.
[0081] CPU(s) 706 may be configured to execute the computer-readable instructions to control one or more components of the computing device 700 to perform one or more of the methods and / or processes described herein. CPU(s) 706 may each include one or more cores (e.g., one, two, four, eight, twenty-eight, seventy-two, etc.) that are capable of handling a multitude of software threads simultaneously. CPU(s) 706 may include any type of processor and may include different types of processors depending on the type of computing device 700 implemented (e.g., processors with fewer cores for mobile devices and processors with more cores for servers). For example, depending on the type of computing device 700, the processor may be an ARM processor implemented using Reduced Instruction Set Computing (RISC) or an x86 processor implemented using Complex Instruction Set Computing (CISC). Computing device 700 may include one or more CPUs 706 in addition to one or more microprocessors or supplementary co-processors, such as math co-processors.
[0082] GPU(s) 708 may be used by computing device 700 to render graphics (e.g., 3D graphics). GPU(s) 708 may include many (e.g., tens, hundreds, or thousands) of cores that are capable of handling many software threads simultaneously. GPU(s) 708 may generate pixeldata for output images in response to rendering commands (e.g., rendering commands from CPU(s) 706 received via a host interface). GPU(s) 708 may include graphics memory, such as display memory, for storing pixel data. The display memory may be included as part of memory 704. GPU(s) 708 may include two or more GPUs operating in parallel (e.g., via a link). When combined, each GPU 708 can generate pixel data for different portions of an output image or for different output images (e.g., a first GPU for a first image and a second GPU for a second image). Each GPU can include its own memory or can share memory with other GPUs.
[0083] In examples where the computing device 700 does not include the GPU(s) 708, the CPU(s) 706 may be used to render graphics.
[0084] Communication interface 710 may include one or more receivers, transmitters, and / or transceivers that enable computing device 700 to communicate with other computing devices via an electronic communication network, included wired and / or wireless communications. Communication interface 710 may include components and functionality to enable communication over any of a number of different networks, such as wireless networks (e.g., Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee, etc.), wired networks (e.g., communicating over Ethernet), low-power wide-area networks (e.g., LoRaWAN, SigFox, etc.), and / or the internet.
[0085] I / O ports 712 may enable the computing device 700 to be logically coupled to other devices including I / O components 714, presentation component(s) 718, and / or other components, some of which may be built in to (e.g., integrated in) computing device 700. Illustrative I / O components 714 include a microphone, mouse, keyboard, joystick, track pad, satellite dish, scanner, printer, wireless device, etc. I / O components 714 may provide a natural user interface (NUI) that processes air gestures, voice, or other physiological inputs generated by a user. In some instances, inputs may be transmitted to an appropriate network element for further processing. An NUI may implement any combination of speech recognition, stylus recognition, facial recognition, biometric recognition, gesture recognition both on screen and adjacent to the screen, air gestures, head and eye tracking, and touch recognition (as described in more detail below) associated with a display of computing device 700. Computing device 700 may be include depth cameras, such as stereoscopic camera systems, infrared camera systems, RGB camera systems, touchscreen technology, and combinations of these, for gesture detection and recognition. Additionally, computing device 700 may include accelerometers or gyroscopes (e.g., as part of an inertia measurement unit (IMU)) that enable detection of motion. In some examples, the output of the accelerometers or gyroscopes may be used by computing device 700 to render immersive augmented reality or virtual reality.
[0086] Power supply 716 may include a hard-wired power supply, a battery power supply, or a combination thereof. Power supply 716 may provide power to computing device 700 to enable the components of computing device 700 to operate.
[0087] Presentation component(s) 718 may include a display (e.g., a monitor, a touch screen, a television screen, a heads-up-display (HUD), other display types, or a combination thereof), speakers, and / or other presentation components. Presentation component(s) 718 may receive data from other components (e.g., GPU(s) 708, CPU(s) 706, etc.), and output the data (e.g., as an image, video, sound, etc.).
[0088] The disclosure may be described in the general context of computer code or machine- useable instructions, including computer-executable instructions such as program modules, being executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program modules including routines, programs, objects, components, data structures, etc., refer to code that perform particular tasks or implement particular abstract data types. The disclosure may be practiced in a variety of system configurations, including hand-held devices, consumer electronics, general-purpose computers, more specialty computing devices, etc. The disclosure may also be practiced in distributed computing environments where tasks are performed by remote-processing devices that are linked through a communications network.Additional Considerations
[0089] As used in this specification and appended claims, the singular forms “a”, “an”, and “the” include plural referents unless the content and context dictates otherwise. For example, reference to “a cell” includes a combination of two or more such cells. Unless indicated otherwise, an “or” conjunction is used in its correct sense as a Boolean logical operator, encompassing both the selection of features in the alternative (A or B, where the selection of A is mutually exclusive from B) and the selection of features in conjunction (A or B, where both A and B are selected).
[0090] It is to be understood that the phrases “for each <item> of the one or more <items>,” “each <item> of the one or more <items>,” or the like, if used herein, are inclusive of both a single-item group and multiple-item groups, i.e., the phrase “for ... each” is used in the sense that it is used in programming languages to refer to each item of whatever population of items is referenced. For example, if the population of items referenced is a single item, then “each” would refer to only that single item (despite the fact that dictionary definitions of “each” frequently define the term to refer to “every one of two or more things”) and would not imply that there must be at least two of those items. Similarly, the term “set” or “subset” should notbe viewed, in itself, as necessarily encompassing a plurality of items — it will be understood that a set or a subset can encompass only one member or multiple members (unless the context indicates otherwise).
[0091] The use, if any, of ordinal indicators, e.g., (a), (b), (c)... or the like, in this disclosure and claims is to be understood as not conveying any particular order or sequence, except to the extent that such an order or sequence is explicitly indicated. For example, if there are three steps labeled (i), (ii), and (iii), it is to be understood that these steps may be performed in any order (or even concurrently, if not otherwise contraindicated) unless indicated otherwise. For example, if step (ii) involves the handling of an element that is created in step (i), then step (ii) may be viewed as happening at some point after step (i). Similarly, if step (i) involves the handling of an element that is created in step (ii), the reverse is to be understood. It is also to be understood that use of the ordinal indicator “first” herein, e.g., “a first item,” should not be read as suggesting, implicitly or inherently, that there is necessarily a “second” instance, e.g., “a second item.”
[0092] Various computational elements including processors, memory, instructions, routines, models, or other components may be described or claimed as “configured to” perform a task or tasks. In such contexts, the phrase “configured to” is used to connote structure by indicating that the component includes structure (e.g., stored instructions, circuitry, etc.) that performs the task or tasks during operation. As such, the unit / circuit / component can be said to be configured to perform the task even when the specified component is not necessarily currently operational (e.g., is not on).
[0093] The components used with the “configured to” language may refer to hardware — for example, circuits, memory storing program instructions executable to implement the operation, etc. Additionally, “configured to” can refer to generic structure (e.g., generic circuitry) that is manipulated by software and / or firmware (e.g., an FPGA or a general-purpose processor executing software) to operate in manner that is capable of performing the recited task(s). Additionally, “configured to” can refer to one or more memories or memory elements storing computer executable instructions for performing the recited task(s). Such memory elements may include memory on a computer chip having processing logic. In some contexts, “configured to” may also include adapting a manufacturing process (e.g., a semiconductor fabrication facility) to fabricate devices (e.g., integrated circuits) that are adapted to implement or perform one or more tasks.
[0094] Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may bepracticed within the scope of the appended claims. It should be noted that there are many alternative ways of implementing the processes, systems, and apparatus of the present embodiments. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the embodiments are not to be limited to the details given herein.
Claims
CLAIMSWhat is claimed is:
1. A method for performing fabrication process simulations, the method comprising: receiving, via a user interface, user-specified target output values for a set of output parameters associated with a fabrication process; determining optimized process parameter values by providing the user-specified target output values as input to a trained model, wherein the trained model has been trained to represent a function that associates output parameter values to process parameter values such that a simulation of a fabrication process using the process parameter values yields a simulated fabricated substrate having the output parameter values; and simulating the fabrication process using the optimized process parameter values by using a fabrication process simulation algorithm.
2. The method of claim 1, wherein the trained model is a backward model that maps output parameter values as input to process parameter values generated by the backward model as output.
3. The method of claim 1, wherein the trained model is a forward model, and wherein the optimized process parameter values are obtained in conjunction with an optimization algorithm.
4. The method of any one of claims 1 or 2, wherein the trained model was trained using a design of experiments (DoE) simulation of the fabrication process designed to simulate a solution space of the fabrication process.
5. The method of any one of claims 1 or 2, wherein each output parameter of the set of output parameters is associated with a weight, and wherein the optimized process parameter values are determined in accordance with the weight associated with each output parameter.
6. A method for performing fabrication process simulations, the method comprising: receiving, via a user interface, user- specified target output parameter values for a set of output parameters associated with a fabrication process; performing a process optimization, wherein the process optimization comprises: a) determining an initial set of process parameter values; b) translating the initial set of process parameter values to a corresponding set of output parameter values using a trained model that relates process parameter values to output parameter values, wherein the trained model was trained using a design of experiments (DoE) simulation of the fabrication process designed to simulate a solution space of the fabrication process; c) modifying the set of process parameter values based on a difference between the user-specified target output parameter values and the output parameter values obtained in b); and d) repeating b) and c) until the difference between the user- specified target output parameter values and the output parameter values obtained in b) is less than a stopping criterion to obtain optimized process parameter values; and simulating the fabrication process using the optimized process parameter values using a fabrication process simulation algorithm.
7. The method of claim 6, wherein the fabrication process simulation algorithm is packaged as a script in a package with the trained model.
8. The method of claim 7, wherein the package further comprises a script associated with an optimizer algorithm configured to perform (c).
9. The method of claim 6, wherein simulating the fabrication process comprises executing a behavioral model of the fabrication process.
10. The method of claim 9, wherein simulating the fabrication process comprises executing the behavioral model a plurality of times in a series of sequential iterations.
11. The method of any one of claims 6-10, wherein the fabrication process comprises an etching process or a deposition process.
12. The method of any one of claims 6-10, wherein the user- specified target output parameter values comprise metrology metrics.
13. The method of any one of claims 6-10, wherein results of the simulation of the fabrication process are provided via the user interface and / or stored in a log file.
14. The method of claim 13, wherein the results comprise virtual metrology metrics associated with a simulated fabricated substrate.
15. The method of any one of claims 6-10, further comprising checking, after (b), whether the output parameter values obtained in (b) are within a solution space.
16. The method of claim 15, wherein checking whether the output parameter values are within the solution space comprises checking whether corresponding process parameter values are within a process parameter solution space.
17. The method of any one of claims 6-10, wherein the trained model comprises a trained neural network.
18. A method for generating models for translating between inputs and outputs, the method comprising: receiving a set of output parameters and a fabrication process to be simulated; performing a design of experiments (DoE) simulation of the fabrication process by iterating over a plurality of sets of values for a set of process parameters; and generating a model that relates values of the output parameters to values of the plurality of sets of values for the set of process parameters.
19. The method of claim 18, further comprising providing the model for use by a downstream model for translating between a given target parameter value and a process parameter value.
20. The method of claim 19, wherein providing the model comprises generating a package that includes parameters of the model with a script for simulating the process.
121. The method of any one of claims 18-20, wherein the model that relates the values of the output parameters to values of the plurality of sets of values for the set of process parameters comprises a regression model.
22. The method of any one of claims 18-20, wherein the model that relates the values of the output parameters to values of the plurality of sets of values for the set of process parameters comprises a neural network.
23. The method of any one of claims 18-20, wherein generating the model comprises training the model using a training set comprised of the plurality of sets of values for the set of process parameters and corresponding output parameter values obtained using the DoE simulation of the fabrication process.
24. A non-transitory computer-readable medium comprising computer-readable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising: receiving, via a user interface, user- specified target output parameter values for a set of output parameters associated with a fabrication process; performing a process optimization, wherein the process optimization comprises: a) determining an initial set of process parameter values; b) translating the initial set of process parameter values to a corresponding set of output parameter values using a trained model that relates process parameter values to output parameter values, wherein the trained model was trained using a design of experiments (DoE) simulation of the fabrication process designed to simulate a solution space of the fabrication process; c) modifying the set of process parameter values based on a difference between the user-specified target output parameter values and the output parameter values obtained in b); and d) repeating b) and c) until the difference between the user- specified target output parameter values and the output parameter values obtained in b) is less than a stopping criterion to obtain optimized process parameter values; and simulating the fabrication process using the optimized process parameter values using a fabrication process simulation algorithm.
25. The non-transitory computer-readable medium of claim 24, wherein the fabrication process simulation algorithm is packaged as a script in a package with the trained model.
26. The non-transitory computer-readable medium of claim 25, wherein the package further comprises a script associated with an optimizer algorithm configured to perform (c).
27. The non-transitory computer-readable medium of claim 24, wherein simulating the fabrication process comprises executing a behavioral model of the fabrication process.
28. The non-transitory computer-readable medium of claim 27, wherein simulating the fabrication process comprises executing the behavioral model a plurality of times in a series of sequential iterations.
29. The non-transitory computer-readable medium of claim 33, wherein checking whether the output parameter values are within the solution space comprises checking whether corresponding process parameter values are within a process parameter solution space.
30. The non-transitory computer-readable medium of any one of claims 24-28, wherein the trained model comprises a trained neural network.
31. A non-transitory computer-readable medium comprising computer-readable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising: receiving a set of output parameters and a fabrication process to be simulated; performing a design of experiments (DoE) simulation of the fabrication process by iterating over a plurality of sets of values for a set of process parameters; and generating a model that relates values of the output parameters to values of the plurality of sets of values for the set of process parameters.
32. A system for performing fabrication process simulations, the system comprising one or more processors configured to execute computer-readable instructions that, when executed, cause the one or more processors to: receive, via a user interface, user- specified target output values for a set of output parameters associated with a fabrication process; determine optimized process parameter values by providing the user-specified target output values as input to a trained model, wherein the trained model has been trained to represent a function that associates output parameter values to process parameter values such that a simulation of a fabrication process using the process parameter values yields a simulated fabricated substrate having the output parameter values; and simulate the fabrication process using the optimized process parameter values by using a fabrication process simulation algorithm.
Citation Information
Patent Citations
LED street light cooling system
KR1020220114206A
System and method for optimization of an imaged pattern of a semiconductor device
US20140264773A1
Predictive 3-d virtual fabrication system and method
US20140282324A1
System and method for key parameter identification, process model calibration and variability analysis in a virtual semiconductor device fabrication environment
US20180365370A1
Machine learning platform for substrate processing
US20230089092A1