OPC model optimization method and system, equipment and storage medium
The global search algorithm generates candidate values and optimizes OPC model parameters in combination with local search algorithms, which solves the problem of insufficient optimization of OPC model parameter acquisition method, improves the accuracy and reliability of the model, and reduces the calculation amount and running time.
Patent Information
- Application Number
- CN202310763944.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-26
- Publication Date
- 2024-12-27
- Estimated Expiration
- 2043-06-26
AI Technical Summary
The existing OPC model parameter acquisition method has insufficient optimization, resulting in reduced model accuracy and reliability, which is easy to fall into local optimal solutions, and increases the computational volume and running time.
The global search algorithm is used to perform the first search process, generate multiple candidate values, and set a smaller second search range based on these candidate values, and perform the second search process in combination with the local search algorithm to avoid local optimal solutions and improve the final candidate value. accuracy and efficiency.
It improves the optimization effect of the OPC model, enhances accuracy and reliability, reduces the calculation amount and running time, avoids the trap of local optimal solutions, and improves the correction effect of optical proximity correction.
Smart Images

Figure CN119200316A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present invention relate to the field of semiconductor manufacturing, and in particular to an optimization method and system, device and storage medium of an OPC model. Background Art
[0002] As the size of devices decreases, the difference between the pattern on the chip surface and the original mask pattern increases after the photolithography process. In order to avoid the inconsistency between the pattern on the chip and the mask pattern caused by the optical proximity effect, the current solution is usually to perform optical proximity correction (OPC) on the mask pattern, and then perform pattern transfer based on the corrected mask pattern.
[0003] There are two main methods for implementing OPC: Rule-Based OPC and Model-Based OPC. Early rule-based OPC was widely used due to its simplicity and fast calculation. However, this method requires artificial formulation of OPC rules. As optical distortion increases, these rules become extremely complex and difficult to continue. Therefore, model-based OPC came into being. The model-based OPC method establishes an accurate calculation model through optical simulation, and then adjusts the edge of the graphic to continuously simulate and iterate until it approaches the ideal graphic. Traditional model-based OPC requires accurate photolithography modeling, which usually includes optical modeling and photoresist modeling. The optical image can be converted into a photoresist graphic through the photoresist model (Resist Image), and the photoresist model directly determines the accuracy of the model.
[0004] However, the current method of obtaining OPC model parameters still needs to be optimized. Summary of the invention
[0005] The problem solved by the embodiments of the present invention is to provide an optimization method and system, device and storage medium for an OPC model, so as to improve the optimization effect of the OPC model and thus improve the accuracy and reliability of the OPC model.
[0006] To solve the above problems, an embodiment of the present invention provides an optimization method for an OPC model, wherein the parameters of the OPC model include nonlinear parameters; the optimization method for the OPC model includes: performing a first initialization process on the nonlinear parameters to determine a first search range of the nonlinear parameters; based on the first search range, performing a first search process on the nonlinear parameters using a global search algorithm to generate a plurality of first candidate values corresponding to each nonlinear parameter; setting a second search range based on the plurality of first candidate values, and the second search range is smaller than the first search range; based on the second search range, performing a second search process on the nonlinear parameters using a local search algorithm to obtain final candidate values.
[0007] Correspondingly, an embodiment of the present invention also provides an optimization system for an OPC model, wherein the parameters of the OPC model include nonlinear parameters; the optimization system for the OPC model includes: an initialization module, used to perform a first initialization process on the nonlinear parameters to determine a first search range for the nonlinear parameters; a first search module, used to perform a first search process on the nonlinear parameters based on the first search range using a global search algorithm to generate multiple first candidate values corresponding to each nonlinear parameter; a setting module, used to set a second search range based on the multiple first candidate values, and the second search range is smaller than the first search range; a second search module, used to perform a second search process on the nonlinear parameters based on the second search range using a local search algorithm to obtain final candidate values.
[0008] Correspondingly, an embodiment of the present invention also provides a device, comprising at least one memory and at least one processor, wherein the memory stores one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the OPC model optimization method provided by the embodiment of the present invention.
[0009] Correspondingly, an embodiment of the present invention further provides a storage medium, wherein the storage medium stores one or more computer instructions, and the one or more computer instructions are used to implement the OPC model optimization method provided by the embodiment of the present invention.
[0010] Compared with the prior art, the technical solution of the embodiment of the present invention has the following advantages:
[0011] In the optimization method of the OPC model provided by the embodiment of the present invention, based on the first search range, a global search algorithm is used to perform a first search process on the nonlinear parameters to generate multiple first candidate values corresponding to each nonlinear parameter, so as to set a second search range smaller than the first search range based on the multiple first candidate values, thereby not only reducing the initial search range of the local search algorithm, but also providing a more accurate search range for performing a second search process on the nonlinear parameters using the local search algorithm through the second search range set by the first candidate values obtained based on the global search algorithm. Accordingly, in the process of performing a second search process on the nonlinear parameters using the local search algorithm based on the second search range, it is also beneficial to avoid the local search algorithm from falling into a local optimal solution as much as possible. Accordingly, the embodiment of the present invention combines the global search algorithm with the local search algorithm, which is beneficial to improving the accuracy of the final candidate value and avoiding falling into a local optimal solution, while also reducing the amount of calculation and shortening the running time for obtaining the final candidate value, thereby improving the optimization effect of the OPC model, and correspondingly improving the accuracy and reliability of the OPC model.
[0012] In the optimization system of the OPC model provided by the embodiment of the present invention, the first search module is used to perform a first search process on the nonlinear parameters using a global search algorithm based on the first search range to generate multiple first candidate values corresponding to each nonlinear parameter, so that the setting module sets a second search range smaller than the first search range based on the multiple first candidate values, thereby not only reducing the initial search range of the local search algorithm, but also providing a more accurate search range for performing a second search process on the nonlinear parameters using the local search algorithm through the second search range set by the first candidate values obtained based on the global search algorithm. Accordingly, in the process of the second search module performing a second search process on the nonlinear parameters using the local search algorithm based on the second search range, it is also beneficial to avoid the local search algorithm from falling into a local optimal solution as much as possible. Accordingly, the embodiment of the present invention combines the global search algorithm with the local search algorithm, which is beneficial to improving the accuracy of the final candidate value and avoiding falling into a local optimal solution, while also reducing the amount of calculation and shortening the running time for obtaining the final candidate value, thereby improving the optimization effect of the OPC model, and correspondingly improving the accuracy and reliability of the OPC model. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Figure 1 It is a flow chart of an optimization method of an OPC model;
[0014] Figure 2 Shows Figure 1 Schematic diagram of the simulation error of the OPC model obtained by the optimization method of the OPC model shown in ;
[0015] Figure 3 It is a flow chart of an embodiment of an optimization method of an OPC model of the present invention;
[0016] Figure 4 yes Figure 3 A schematic diagram of a flow chart of an embodiment of step S2 in FIG.
[0017] Figure 5 yes Figure 3 A schematic diagram of a flow chart of an embodiment of step S4 in FIG.
[0018] Figure 6 (a) shows the model error of the model obtained after performing step S2, Figure 6 (b) shows the model error of the final OPC model;
[0019] Figure 7 It is a functional block diagram of an embodiment of an optimization system of an OPC model of the present invention;
[0020] Figure 8 It is a hardware structure diagram of an embodiment of the device provided by the present invention. DETAILED DESCRIPTION
[0021] As can be seen from the background technology, the current method for obtaining OPC model parameters still needs to be optimized.
[0022] Specifically, the OPC model R(x, y) usually includes a photoresist model, which can be expressed by formula (I):
[0023]
[0024] Among them, C i are linear coefficients, F i (x,y) is the model term, F i (x,y) is calculated by formula (II).
[0025]
[0026] Where k is the derivative order, which can be 0, 1, or 2, n is an integer exponent, and I ±b (x,y) n Refers to acid-base neutralization, G s (x,y) refers to Gaussian convolution, b refers to the truncation of neutralizations, and s refers to the radius of convolution. b and s are nonlinear variables.
[0027] Furthermore, in the semiconductor field, the accuracy of a model is usually evaluated by the root mean square (RMS), which is calculated by formula (III).
[0028]
[0029] CD i,measure Refers to the critical dimension actually measured, CD i,simulation Refers to the critical dimensions obtained by simulation using the OPC model.
[0030] Among them, the linear coefficient C i and nonlinear variables b, s need to be obtained during the model calibration process.
[0031] The following combines an optimization method of the OPC model to analyze the reasons why the current method of obtaining OPC model parameters still needs to be optimized. Figure 1 It is a flowchart of an optimization method of an OPC model.
[0032] Among them, the parameters of the OPC model include linear parameters and nonlinear parameters; Figure 1 The steps of the optimization method of the OPC model shown include:
[0033] Step S10: Initializing the nonlinear parameters to set initial values for the nonlinear parameters.
[0034] Step S20: searching for linear parameters based on the initial values of the nonlinear parameters, and calculating the root mean square based on the initial values of the current nonlinear parameters and the searched linear parameters.
[0035] Step S30: perform one or more iterations, each iteration includes: Step S31: use a local search algorithm to search for nonlinear parameters; Step S32: search for linear parameters, and calculate the root mean square based on the linear parameters and nonlinear parameters currently searched.
[0036] Step S40: After one or more iterations, the best iteration result is output.
[0037] Among them, in the process of searching for nonlinear parameters using a local search algorithm, it is easy to fall into a local optimal solution, resulting in a decrease in the accuracy of the nonlinear parameters searched, and further resulting in a decrease in the accuracy and reliability of the OPC model.
[0038] Combined with reference Figure 2 , showing Figure 1 Schematic diagram of the simulation error of the OPC model obtained by the optimization method of the OPC model shown in FIG.
[0039] in, Figure 2 In FIG. 1 , the obtained OPC model simulation error and the reference model simulation error (Model Simulation Error) are shown by dots of different colors. Specifically, the green dots (such as Figure 2 The points in color 1 (shown in Figure 1) show the simulation errors of the obtained OPC model, and the points in red (shown in Figure 1) show the simulation errors of the obtained OPC model. Figure 2 The points shown in color 2 show the simulation errors of the reference model.
[0040] in, Figure 2 The horizontal axis shows multiple points, and the vertical axis shows the simulation error (simErr, unit: nanometer / nm) corresponding to each point.
[0041] Depend on Figure 2 It can be seen that using Figure 1 The difference between the OPC model obtained by the optimization method of the OPC model shown and the reference model is large. Figure 1 The model error of the OPC model obtained by the optimization method of the OPC model shown is relatively large.
[0042] In order to solve the technical problem, an embodiment of the present invention provides an optimization method of an OPC model. Figure 3 It is a flow chart of an embodiment of an optimization method of an OPC model of the present invention.
[0043] In this embodiment, the parameters of the OPC model include nonlinear parameters.
[0044] like Figure 3 As shown, in this embodiment, the optimization method of the OPC model includes the following basic steps:
[0045] Step S1: performing a first initialization process on the nonlinear parameters to determine a first search range of the nonlinear parameters;
[0046] Step S2: Based on the first search range, a global search algorithm is used to perform a first search process on the nonlinear parameters to generate a plurality of first candidate values corresponding to each nonlinear parameter;
[0047] Step S3: setting a second search range based on the multiple first candidate values, and the second search range is smaller than the first search range;
[0048] Step S4: Based on the second search range, a local search algorithm is used to perform a second search process on the nonlinear parameter to obtain a final candidate value.
[0049] In the optimization method of the OPC model provided by the embodiment of the present invention, based on the first search range, a global search algorithm is used to perform a first search process on the nonlinear parameters to generate multiple first candidate values corresponding to each nonlinear parameter, so as to set a second search range smaller than the first search range based on the multiple first candidate values, thereby not only reducing the initial search range of the local search algorithm, but also providing a more accurate search range for performing a second search process on the nonlinear parameters using the local search algorithm through the second search range set by the first candidate values obtained based on the global search algorithm. Accordingly, in the process of performing a second search process on the nonlinear parameters using the local search algorithm based on the second search range, it is also beneficial to avoid the local search algorithm from falling into a local optimal solution as much as possible. Accordingly, the embodiment of the present invention combines the global search algorithm with the local search algorithm, which is beneficial to improving the accuracy of the final candidate value and avoiding falling into a local optimal solution, while also reducing the amount of calculation and shortening the running time for obtaining the final candidate value, thereby improving the optimization effect of the OPC model and improving the accuracy and reliability of the OPC model.
[0050] In order to make the above-mentioned purposes, features and advantages of the embodiments of the present invention more obvious and understandable, specific embodiments of the present invention are described in detail below with reference to the accompanying drawings.
[0051] In the present embodiment, the OPC model is used to carry out the optical proximity correction process. Specifically, in the process of carrying out the optical proximity correction process, the edge of the pattern is adjusted by the OPC model and the continuous simulation iteration is performed until the ideal pattern is approached. More specifically, in the process of a typical optical proximity correction process, the edge of the design pattern is divided into a plurality of line segments, and the OPC model is utilized to obtain the simulation pattern of the design pattern on the photoresist. The difference between the simulation pattern and the target pattern is calculated at each line segment position, and the difference between the simulation pattern and the target pattern is minimized by repeatedly iteratively moving the position of the line segment. Therefore, the accuracy of the OPC model is most important to the correction effect of the optical proximity correction.
[0052] In this embodiment, the OPC model includes an optical model and a resist model. The optical model is used to describe the characteristics of the imaging system during the exposure process; the resist model is used to obtain the chemical reaction characteristics of the resist during the photolithography process.
[0053] In this embodiment, the OPC model is used as a photoresist model, and the optimization of the photoresist model is used as an example for explanation. The photoresist model describes the chemical reaction characteristics of the photoresist during the photolithography process, that is, the chemical process, which is difficult to describe mathematically and is more difficult to simulate. Therefore, optimizing the photoresist model can significantly improve the reliability of the photoresist model, thereby significantly improving the reliability of the OPC model.
[0054] In a specific implementation, the accuracy of the parameters of the OPC model determines the accuracy and reliability of the model.
[0055] In this embodiment, the parameters of the OPC model include nonlinear parameters and linear parameters.
[0056] Specifically, in this embodiment, the model-based OPC model R(x, y) includes a photoresist model, and the photoresist model can be expressed by formula (IV):
[0057]
[0058] Among them, C i are linear coefficients, F i (x,y) is the model term, F i (x,y) is calculated using formula (V).
[0059]
[0060] Where k is the derivative order, which can be 0, 1, or 2, n is an integer exponent, and I ±b (x,y) n Refers to acid-base neutralization, G s (x,y) refers to Gaussian convolution, b refers to the truncation of neutralizations, and s refers to the radius of convolution. b and s are nonlinear parameters.
[0061] refer to Figure 3 Step S1: Perform a first initialization process on the nonlinear parameters to determine a first search range of the nonlinear parameters. Perform a first initialization process to determine a first search range of the nonlinear parameters so that a first search process is subsequently performed on the nonlinear parameters based on the first search range using a global search algorithm.
[0062] Specifically, in this embodiment, a first search process is subsequently performed on the nonlinear parameters based on the first search range using a global search algorithm, so as to generate a plurality of first candidate values for each nonlinear parameter, and a second search range is also set based on the plurality of first candidate values.
[0063] In this embodiment, in the step of performing the first initialization processing on the nonlinear parameters, a first search range set for the nonlinear parameters is relatively large, so that a subsequent second search range can be smaller than the first search range.
[0064] Furthermore, the first search range is relatively large, which facilitates providing a relatively large search range for the first search process using a global search algorithm, so as to improve the accuracy of the multiple first candidate values.
[0065] As an example, Table 1 shows an embodiment of multiple nonlinear parameters and their first search ranges in this embodiment.
[0066] Table 1
[0067]
[0068]
[0069] Among them, item refers to the model item. Acid1 and Acid2 refer to the reaction and diffusion of photoacids, Base1 and Base2 refer to the reaction and diffusion of photobases, Gradient refers to the gradient of light intensity; Truncation and sigma refer to the nonlinear parameters b and s in the model item respectively.
[0070] It should be noted that the model items and the first search range of the nonlinear parameters shown in Table 1 are only used as an example. In other embodiments, the model items may also include other contents, and the first search range of the nonlinear parameters of each model item may also be other ranges.
[0071] Continue to refer Figure 3 , Step S2: Based on the first search range, a global search algorithm is used to perform a first search process on the nonlinear parameters to generate a plurality of first candidate values corresponding to each nonlinear parameter.
[0072] The plurality of first candidate values are used to provide a basis for subsequently setting a second search range that is smaller than the first search range.
[0073] In this embodiment, by obtaining the first candidate value based on the global search algorithm and subsequently setting the second search range based on multiple first candidate values, a more accurate search range is provided for performing the second search process on the nonlinear parameters using the local search algorithm. Accordingly, in the process of performing the second search process on the nonlinear parameters using the local search algorithm based on the second search range, it is also beneficial to avoid the local search algorithm from falling into the local optimal solution as much as possible.
[0074] A global search algorithm is a search method in a global sense. It can conduct a search on the entire feasible set to find the global minimum point, which is beneficial to reduce the probability of falling into a local optimal solution. Therefore, a first search process is performed on the nonlinear parameters by using the global search algorithm to generate multiple first candidate values. The first candidate values are used to subsequently set the second search range, which is beneficial to provide a better starting search range for the subsequent local search algorithm.
[0075] In this embodiment, the global search algorithm includes a heuristic algorithm. A heuristic algorithm is a computational method commonly used to solve complex optimization problems. Its main idea is to simulate the wisdom and experience contained in humans or nature to find the optimal solution to the problem. Compared with traditional mathematical methods, heuristic algorithms pay more attention to searching in the approximate solution space, so that better results can be found quickly. Therefore, by selecting a heuristic algorithm, it is beneficial to improve the efficiency and accuracy of the global search algorithm.
[0076] As an example, the global search algorithm includes a genetic algorithm (GA).
[0077] Specifically, the genetic algorithm originated from computer simulation research on biological systems. It is a random global search optimization method that simulates phenomena such as replication, crossover, and mutation in natural selection and inheritance. Starting from any initial population, through random selection, crossover, and mutation operations, a group of individuals that are more suitable for the environment are generated, so that the group evolves to better and better areas in the search space. In this way, it continues to multiply and evolve from generation to generation, and finally converges to a group of individuals that are most adapted to the environment, thereby obtaining a high-quality solution to the problem. Since a group of candidate solutions is used instead of a single candidate solution, and in many cases, crossover and mutation operations will cause the candidate solution to be different from the previous solution, it is conducive to generating a global optimal solution.
[0078] It should be noted that, in this embodiment, the global search algorithm is taken as an example of a heuristic algorithm for description, and the implementation method of the global search algorithm is not limited to this.
[0079] It should also be noted that in this embodiment, the global search algorithm is described by taking the genetic algorithm as an example, and the implementation of the global search algorithm is not limited to this. For example: in other embodiments, the global search algorithm can also be a heuristic algorithm such as an annealing algorithm, a particle swarm method, etc.
[0080] Figure 4 yes Figure 3 The following is a flow chart of an embodiment of step S2. Figure 4 , the steps of performing the first search processing on the nonlinear parameters using the global search algorithm based on the first search range in this embodiment are described in detail.
[0081] like Figure 4 As shown, step S21: encode the nonlinear parameters to obtain the encoded values.
[0082] In this embodiment, the encoding value is the representation of the solution in the solution space in the genetic algorithm. In the genetic algorithm, the mapping from the solution to the genotype is called encoding, that is, the conversion method of converting the feasible solution of a problem from its solution space to the search space of the genetic algorithm. Before searching, the genetic algorithm first represents the solution of the solution space as the genotype string (that is, chromosome) structure data of the genetic algorithm, and different combinations of these string structure data constitute different points.
[0083] In a specific implementation, the method of encoding the nonlinear parameters includes binary encoding, Gray code encoding, floating point encoding, cascade encoding of each parameter or multi-parameter cross encoding.
[0084] In this embodiment, the encoding process of nonlinear parameters using binary encoding is described as an example. Binary encoding, that is, the gene sequence constituting the chromosome is represented by binary numbers, has the characteristics of simple encoding and decoding, and easy crossover and mutation program implementation.
[0085] like Figure 4 As shown, step S22: based on the coding value, randomly generate an initial population.
[0086] In this embodiment, the initialization population is a group of valid candidate solutions (individuals) selected randomly. Since the genetic algorithm uses chromosomes to represent each individual, the initial population is actually a group of chromosomes.
[0087] like Figure 4 As shown, step S23: searching for linear parameters based on the initialized population.
[0088] As an example, a gradient descent algorithm is used to search for linear parameters. The gradient descent algorithm has a fast calculation speed, and by using the gradient descent algorithm to search for linear parameters, it is conducive to rapid convergence.
[0089] It should be noted that, in this embodiment, the use of the gradient descent algorithm to search for linear parameters is only used as an example. In other embodiments, other search algorithms may be used to search for linear parameters, for example, Newton method or quasi-Newton method may be used to search for linear parameters.
[0090] like Figure 4 As shown, step S24: determine whether the linear parameters and nonlinear parameters currently searched meet the preset conditions. Determine whether the linear parameters and nonlinear parameters currently searched meet the preset conditions, so as to determine whether to decode the coded value or select the parent generation from the initialization population so as to perform crossover mutation on the parent generation.
[0091] Specifically, in this embodiment, the step of determining whether the linear parameters and nonlinear parameters currently searched for satisfy preset conditions includes: calculating the root mean square and / or model error based on the current nonlinear parameters and the linear parameters currently searched for; and determining whether the root mean square and / or model error are within a corresponding preset threshold range based on the calculated root mean square and / or model error.
[0092] Correspondingly, in this embodiment, the preset conditions include that the root mean square and the model error are respectively within preset threshold ranges.
[0093] The RMS is calculated by the aforementioned formula (III); the model error is calculated by the difference between the critical dimension (CD) value simulated by the model and the critical dimension value actually measured.
[0094] like Figure 4 As shown, step S25: if yes, the encoded value is decoded.
[0095] The encoded value is decoded to achieve the conversion of genetic algorithm chromosomes into problem solutions.
[0096] In a specific implementation, a corresponding decoding processing method is selected based on the actual encoding processing method.
[0097] In this embodiment, the encoding process of the nonlinear parameter using the binary encoding method is used as an example for description. Accordingly, the decoding process of the encoded value is performed by binary decoding.
[0098] In other embodiments, when other encoding processing methods are used to encode the nonlinear parameters, corresponding decoding processing methods are used to decode the encoded values. This embodiment will not be described in detail one by one.
[0099] like Figure 4 As shown, step S26: otherwise, select a parent generation from the initialization population. Select a parent generation from the initialization population so that the parent generation can be cross-mutated to obtain corresponding offspring.
[0100] Specifically, in this embodiment, the step of selecting a parent from the initialization population includes: selecting a parent from the initialization population based on fitness (Fitness).
[0101] The degree of adaptation of each individual to the environment is called fitness. In order to reflect the adaptability of chromosomes, a function that can measure each chromosome in the problem is introduced, called fitness function.
[0102] Therefore, in this embodiment, the fitness (ie, fitness function value) of each individual in the initialization population is first calculated, and then the individuals in the initialization population are sorted according to the fitness, and a portion of individuals with higher fitness are selected as the parent generation.
[0103] As an example, the fitness of each individual in the initialization population is calculated based on the root mean square and the model error. In a specific implementation, corresponding weights may be assigned to the root mean square and the model error in the fitness function.
[0104] like Figure 4 As shown, step S27: performing crossover and mutation processing on the mother generation to obtain corresponding offspring. In this embodiment, performing crossover and mutation processing on the mother generation includes: performing crossover processing and mutation processing on the mother generation.
[0105] Among them, crossover processing refers to randomly selecting two individuals from the initial population, and through the exchange and combination of two chromosomes, the excellent characteristics of the mother generation are passed on to the offspring, thereby generating new excellent individuals.
[0106] In a specific implementation, a single-point crossover method may be used to perform crossover processing on the parent generation. The single-point crossover method randomly selects a crossover position in the paired chromosomes, and then performs gene position transformation on the paired chromosomes at the crossover position.
[0107] In other embodiments, other crossover methods may be used to perform crossover processing on the parent generation, such as: double-point crossover or multi-point crossover method, uniform crossover method, arithmetic crossover method, etc.
[0108] Mutation processing refers to the mutation of chromosomes using the mutation probability (Mutate_rate), which helps prevent the genetic algorithm from falling into a local optimal solution during the optimization process.
[0109] In this embodiment, the single-point mutation method is used as an example to mutate the parent generation. The single-point mutation method is also called bit mutation, that is, only one bit in the gene sequence needs to be mutated, taking binary coding as an example, that is, 0 becomes 1, and 1 becomes 0.
[0110] In other embodiments, other mutation methods may be used to perform mutation processing on the parent generation.
[0111] like Figure 4 As shown, step S28: using the obtained offspring to update the nonlinear parameters, and returning to the step of searching for linear parameters.
[0112] The nonlinear parameters are updated using the offspring, and the process returns to the step of searching for the linear parameters for the next search iteration.
[0113] It should be noted that, in this embodiment, the number of iterations of the genetic algorithm should not be too few or too many. If the number of iterations of the genetic algorithm is too few, it is easy to cause the genetic algorithm to provide a more accurate search range for the subsequent second search process, and the effect of reducing the subsequent local search algorithm from falling into the local optimal solution is not obvious; if the number of iterations of the genetic algorithm is too many, it is easy to increase the amount of calculation and the operation cycle. For this reason, in this embodiment, the number of iterations of the genetic algorithm is 1 to 5 times. For example: the number of iterations of the genetic algorithm is 3 times.
[0114] Accordingly, in this embodiment, the number of iterations of the genetic algorithm is small, which is conducive to obtaining the globally optimal first candidate value within the first search range, thereby improving the accuracy of the first candidate value, so as to provide a more accurate second search range for the subsequent second search processing using the local search algorithm, while also reducing the amount of calculation and shortening the calculation time, thereby improving the efficiency of optimizing the OPC model.
[0115] refer to Figure 3 , step S3: setting a second search range based on multiple first candidate values, and the second search range is smaller than the first search range.
[0116] In this embodiment, there are multiple first candidate values, and correspondingly, multiple second search ranges are obtained based on the multiple first candidate values, so as to provide more choices for the subsequent local search algorithm.
[0117] The second search range is smaller than the first search range, which is beneficial to provide a smaller starting search range for the local search algorithm to perform the second search processing, and further beneficial to reduce the amount of calculation of the local search algorithm and shorten the calculation time; moreover, the second search range is set based on multiple first candidate values obtained by the global search algorithm. The multiple first candidate values obtained by the global search algorithm have high accuracy and are the global optimal solution within the first search range. Therefore, the second search range set based on multiple first candidate values is beneficial to avoid the subsequent local search algorithm from falling into the local optimal solution as much as possible.
[0118] As an example, the step of setting the second search range based on multiple first candidate values includes: based on a preset evaluation criterion, screening multiple first candidate values to obtain second candidate values; and setting the second search range based on the second candidate values.
[0119] Specifically, in this embodiment, based on the preset evaluation criteria, the step of screening multiple first candidate values includes: calculating the root mean square and model error corresponding to each first candidate value; based on the weights corresponding to the preset root mean square and model error and the root mean square and model error corresponding to each first candidate value, screening multiple first candidate values to obtain the second candidate value corresponding to each nonlinear parameter.
[0120] As an example, Table 2 shows some examples of second candidate values obtained by screening in this embodiment.
[0121] Table 2
[0122]
[0123] It should be noted that the items and the second candidate values shown in Table 2 are only provided as an example. In other embodiments, the second candidate value may also be other values.
[0124] Specifically, in this embodiment, the step of setting the second search range based on the second candidate value includes: floating up and down a preset numerical range based on the second candidate value to obtain the second search range.
[0125] The preset numerical range that fluctuates up and down based on the second candidate value is smaller, so as to obtain a smaller second search range.
[0126] As an example, Table 3 shows some examples of the second search range of this embodiment.
[0127] Table 3
[0128]
[0129] It should be noted that the second search range shown in Table 3 is only used as an example. In other embodiments, based on actual needs, the second search range may also be other value ranges.
[0130] refer to Figure 3 , Step S4: Based on the second search range, a second search process is performed on the nonlinear parameter using a local search algorithm to obtain a final candidate value.
[0131] In this embodiment, based on the first search range, a global search algorithm is used to perform a first search process on the nonlinear parameters to generate multiple first candidate values, so as to set a second search range smaller than the first search range based on the multiple first candidate values, thereby not only reducing the initial search range of the local search algorithm, but also providing a more accurate search range for performing a second search process on the nonlinear parameters using the local search algorithm through the second search range set by the first candidate values obtained based on the global search algorithm. Accordingly, in the process of performing a second search process on the nonlinear parameters using the local search algorithm based on the second search range, it is also beneficial to avoid the local search algorithm from falling into a local optimal solution as much as possible. Accordingly, the embodiment of the present invention combines the global search algorithm with the local search algorithm, which is beneficial to improving the accuracy of the final candidate value and avoiding falling into a local optimal solution, while also reducing the amount of calculation and shortening the running time for obtaining the final candidate value, thereby improving the optimization effect of the OPC model and improving the accuracy and reliability of the OPC model.
[0132] More specifically, in this embodiment, the photoresist model is optimized to obtain final candidate values of the nonlinear parameters of the photoresist model. While improving the accuracy of the final candidate values and avoiding falling into local optimal solutions, it is also beneficial to reduce the amount of calculation and shorten the running time for obtaining the final candidate values, thereby improving the optimization effect of the photoresist model, improving the accuracy and reliability of the photoresist model, and correspondingly improving the accuracy and reliability of the OPC model.
[0133] As an example, the local search algorithm includes a Constrained Optimization By Linear Approximation (COBYLA) algorithm. The COBYLA algorithm handles nonlinear problems by linearly approximating the objective function and the constraints. Moreover, the COBYLA algorithm runs fast and is also helpful in shortening the running time.
[0134] Figure 5 yes Figure 3 As an example, based on the second search range, the step of performing a second search process on the nonlinear parameter using a local search algorithm includes:
[0135] like Figure 5 As shown, step S41: based on the second search range, performing a second initialization process on the nonlinear parameter to obtain an initial value of the nonlinear parameter.
[0136] A second initialization process is performed on the nonlinear parameters, thereby providing a search starting point for a second search process on the nonlinear parameters based on a second search range.
[0137] like Figure 4As shown, step S42: searching for linear parameters based on the initial values of the nonlinear parameters;
[0138] As an example, a gradient descent algorithm is used to search for linear parameters. The gradient descent algorithm has a fast calculation speed, and by using the gradient descent algorithm to search for linear parameters, it is conducive to rapid convergence.
[0139] It should be noted that, in this embodiment, the use of the gradient descent algorithm to search for linear parameters is only used as an example. In other embodiments, other search algorithms may be used to search for linear parameters, for example, Newton method or quasi-Newton algorithm may be used to search for linear parameters.
[0140] like Figure 5 As shown, step S43: perform one or more loop iteration processing, each loop iteration processing includes: step S431, using the linear approximation constraint optimization algorithm to perform a second search processing on the nonlinear parameters; step S432, after the second search processing, search processing on the linear parameters, and determine whether the linear parameters and nonlinear parameters currently searched meet the preset conditions; step S433, when the preset conditions are not met, update the linear parameters and nonlinear parameters, and return to the step of using the linear approximation constraint optimization algorithm to perform a second search processing on the nonlinear parameters.
[0141] In this embodiment, the step of determining whether the linear parameters and nonlinear parameters currently obtained by the search meet preset conditions includes: calculating the root mean square and / or model error (model error) based on the linear parameters and nonlinear parameters obtained by the search; and determining whether the root mean square and / or model error is within a corresponding preset threshold range based on the calculated root mean square and / or model error.
[0142] like Figure 5 As shown, step S44: when the preset conditions are met, output the final candidate value of the nonlinear parameter. Output the final candidate value of the nonlinear parameter as the final candidate value.
[0143] The final candidate values are used to obtain the final OPC model.
[0144] Continue to refer Figure 3 In this embodiment, the optimization method of the OPC model further includes: after obtaining the final candidate value, step S5: obtaining the final OPC model based on the final candidate value.
[0145] Specifically, in this embodiment, there are multiple final candidate values; based on the final candidate values, the step of obtaining the final OPC model includes: based on the final candidate values, selecting the final OPC model according to the root mean square, model error and experience.
[0146] Combined with reference Figure 6 , Figure 6 (a) shows the model error of the model obtained after performing step S2, Figure 6 (b) shows the model error of the final OPC model, and Figure 6 (a) and Figure 6 (b) shows the reference model. Figure 6 (a) It can be seen that after performing step S2, the obtained model (i.e., GA search with 3 iterations) is less different from the reference model, and the model error is smaller; Figure 6 (b) It can be seen that the difference between the final OPC model (Final model) obtained by the OPC model optimization method of the embodiment of the present invention and the reference model is further reduced, the model error of the final OPC model is smaller, and the accuracy and reliability of the model are improved.
[0147] Correspondingly, the present invention also provides an optimization system for an OPC model. Figure 7 It is a functional block diagram of an embodiment of an optimization system of an OPC model of the present invention.
[0148] refer to Figure 7 In this embodiment, the parameters of the OPC model include nonlinear parameters; the optimization system 100 of the OPC model includes: an initialization module 101, used to perform a first initialization process on the nonlinear parameters and determine a first search range of the nonlinear parameters; a first search module 102, used to perform a first search process on the nonlinear parameters based on the first search range using a global search algorithm to generate a plurality of first candidate values corresponding to each nonlinear parameter; a setting module 103, used to set a second search range based on the plurality of first candidate values, and the second search range is smaller than the first search range; a second search module 104, used to perform a second search process on the nonlinear parameters based on the second search range using a local search algorithm to obtain a final candidate value.
[0149] In the present embodiment, the OPC model is used to carry out the optical proximity correction process. Specifically, in the process of carrying out the optical proximity correction process, the edge of the pattern is adjusted by the OPC model and the continuous simulation iteration is performed until the ideal pattern is approached. More specifically, in the process of a typical optical proximity correction process, the edge of the design pattern is divided into a plurality of line segments, and the OPC model is utilized to obtain the simulation pattern of the design pattern on the photoresist. The difference between the simulation pattern and the target pattern is calculated at each line segment position, and the difference between the simulation pattern and the target pattern is minimized by repeatedly iteratively moving the position of the line segment. Therefore, the accuracy of the OPC model is most important to the correction effect of the optical proximity correction.
[0150] In this embodiment, the OPC model includes an optical model and a resist model. The optical model is used to describe the characteristics of the imaging system during the exposure process; the resist model is used to obtain the chemical reaction characteristics of the resist during the photolithography process.
[0151] In this embodiment, the OPC model is used as a photoresist model, and the optimization of the photoresist model is used as an example for explanation. The photoresist model describes the chemical reaction characteristics of the photoresist during the photolithography process, that is, the chemical process, which is difficult to describe mathematically and is more difficult to simulate. Therefore, optimizing the photoresist model can significantly improve the reliability of the photoresist model, thereby significantly improving the reliability of the OPC model.
[0152] In a specific implementation, the accuracy of the parameters of the OPC model determines the accuracy and reliability of the model.
[0153] In this embodiment, the parameters of the OPC model include nonlinear parameters and linear parameters.
[0154] Specifically, in this embodiment, the model-based OPC model R(x, y) includes a photoresist model, and the photoresist model can be expressed by formula (IV):
[0155]
[0156] Among them, C i are linear coefficients, F i (x,y) is the model term, F i (x,y) is calculated using formula (V).
[0157]
[0158] Where k is the derivative order, which can be 0, 1, or 2, n is an integer exponent, and I ±b (x,y) n Refers to acid-base neutralization, G s (x,y) refers to Gaussian convolution, b refers to the truncation of neutralizations, and s refers to the radius of convolution. b and s are nonlinear parameters.
[0159] The initialization module 101 performs a first initialization process to set a first search range for the nonlinear parameter, so that the first search module 102 performs a first search process on the nonlinear parameter based on the first search range using a global search algorithm.
[0160] Specifically, in this embodiment, the first search module 102 performs a first search process on the nonlinear parameters using a global search algorithm based on the first search range to generate multiple first candidate values for each nonlinear parameter, and also sets a second search range based on the multiple first candidate values.
[0161] In this embodiment, in the step of performing the first initialization processing on the nonlinear parameters by the initialization module 101, the first search range set for the nonlinear parameters is relatively large, so that the second search range set by the setting module 103 can be smaller than the first search range.
[0162] Furthermore, the first search range is relatively large, which facilitates providing a relatively large search range for the first search process using a global search algorithm, so as to improve the accuracy of the multiple first candidate values.
[0163] As an example, Table 1 (as shown in the aforementioned embodiment) shows an embodiment of multiple nonlinear parameters and their first search ranges in this embodiment.
[0164] Among them, item refers to the model item. Acid1 and Acid2 refer to the reaction and diffusion of photoacids, Base1 and Base2 refer to the reaction and diffusion of photobases, Gradient refers to the gradient of light intensity; Truncation and sigma refer to the nonlinear parameters b and s in the model item respectively.
[0165] It should be noted that the model items and the first search range of the nonlinear parameters shown in Table 1 are only used as an example. In other embodiments, the model items may also include other contents, and the first search range of the nonlinear parameters of each model item may also be other ranges.
[0166] The first search module 102 is used to perform a first search process on the nonlinear parameters based on the first search range using a global search algorithm, and generate multiple first candidate values for each nonlinear parameter. The multiple first candidate values are used to provide a basis for the setting module 103 to set a second search range that is smaller than the first search range.
[0167] In this embodiment, by obtaining the first candidate value based on the global search algorithm and setting the second search range based on multiple first candidate values, a more accurate search range is provided for performing the second search processing on the nonlinear parameters using the local search algorithm. Accordingly, in the process of performing the second search processing on the nonlinear parameters using the local search algorithm based on the second search range, it is also beneficial to avoid the local search algorithm from falling into a local optimal solution as much as possible.
[0168] A global search algorithm is a search method in a global sense. It can conduct a search on the entire feasible set to find the global minimum point, which is beneficial to reduce the probability of falling into a local optimal solution. Therefore, a first search process is performed on the nonlinear parameters by using the global search algorithm to generate multiple first candidate values. The first candidate values are used to subsequently set the second search range, which is beneficial to provide a better starting search range for the subsequent local search algorithm.
[0169] In this embodiment, the global search algorithm includes a heuristic algorithm. A heuristic algorithm is a computational method commonly used to solve complex optimization problems. The main idea is to simulate the wisdom and experience contained in humans or nature to find the optimal solution to the problem. Compared with traditional mathematical methods, heuristic algorithms pay more attention to searching in the approximate solution space, so that better results can be found quickly. Therefore, by selecting a heuristic algorithm, it is beneficial to improve the efficiency and accuracy of the global search algorithm.
[0170] As an example, the global search algorithm includes a genetic algorithm (GA).
[0171] Specifically, the genetic algorithm originated from computer simulation research on biological systems. It is a random global search optimization method that simulates phenomena such as replication, crossover, and mutation in natural selection and inheritance. Starting from any initial population, through random selection, crossover, and mutation operations, a group of individuals that are more suitable for the environment are generated, so that the group evolves to better and better areas in the search space. In this way, it continues to multiply and evolve from generation to generation, and finally converges to a group of individuals that are most adapted to the environment, thereby obtaining a high-quality solution to the problem. Since a group of candidate solutions is used instead of a single candidate solution, and in many cases, crossover and mutation operations will cause the candidate solution to be different from the previous solution, it is conducive to generating a global optimal solution.
[0172] It should be noted that, in this embodiment, the global search algorithm is taken as an example of a heuristic algorithm for description, and the implementation method of the global search algorithm is not limited to this.
[0173] It should also be noted that in this embodiment, the global search algorithm is described by taking the genetic algorithm as an example, and the implementation of the global search algorithm is not limited to this. For example: in other embodiments, the global search algorithm can also be a heuristic algorithm such as an annealing algorithm, a particle swarm method, etc.
[0174] As an example, the first search module 102 includes: an encoding unit (not shown in the figure), which is used to encode the nonlinear parameters to obtain the encoded values; an initialization unit (not shown in the figure), which is used to randomly generate an initialization population based on the encoded values; a search unit (not shown in the figure), which is used to search the linear parameters based on the initialization population; a first judgment unit (not shown in the figure), which is used to judge whether the linear parameters and nonlinear parameters currently searched meet the preset conditions; a decoding unit (not shown in the figure), which is used to decode the encoded values when the preset conditions are met; a selection unit (not shown in the figure), which is used to select a parent generation from the initialization population when the preset conditions are not met; a crossover mutation unit (not shown in the figure), which is used to perform crossover mutation processing on the parent generation to obtain corresponding offspring; an update unit (not shown in the figure), which is used to update the nonlinear parameters using the obtained offspring and return to the search unit.
[0175] The encoding unit performs encoding processing on the nonlinear parameters to obtain encoding values.
[0176] In this embodiment, the encoding value is the representation of the solution in the solution space in the genetic algorithm. In the genetic algorithm, the mapping from the solution to the genotype is called encoding, that is, the conversion method of converting the feasible solution of a problem from its solution space to the search space of the genetic algorithm. Before searching, the genetic algorithm first represents the solution of the solution space as the genotype string (that is, chromosome) structure data of the genetic algorithm, and different combinations of these string structure data constitute different points.
[0177] In a specific implementation, the encoding method of the encoding unit for encoding the nonlinear parameters includes binary encoding, Gray code encoding, floating point encoding, cascade encoding of each parameter or multi-parameter cross encoding.
[0178] In this embodiment, the encoding process of nonlinear parameters using binary encoding is described as an example. Binary encoding, that is, the gene sequence constituting the chromosome is represented by binary numbers, has the characteristics of simple encoding and decoding, and easy crossover and mutation program implementation.
[0179] like Figure 4 As shown, step S22: an initialization unit is used to randomly generate an initialization population based on the coding value.
[0180] In this embodiment, the initialization population is a group of valid candidate solutions (individuals) selected randomly. Since the genetic algorithm uses chromosomes to represent each individual, the initial population is actually a group of chromosomes.
[0181] The search unit is used to search for linear parameters based on the initialized population.
[0182] As an example, the search unit uses a gradient descent algorithm to search for linear parameters. The gradient descent algorithm has a fast calculation speed, and by using the gradient descent algorithm to search for linear parameters, it is conducive to rapid convergence.
[0183] It should be noted that, in this embodiment, the use of the gradient descent algorithm to search for linear parameters is only used as an example. In other embodiments, other search algorithms may be used to search for linear parameters, for example, Newton method or quasi-Newton method may be used to search for linear parameters.
[0184] The judging unit is used to judge whether the linear parameters and nonlinear parameters obtained by the current search meet the preset conditions. The judging unit judges whether the linear parameters and nonlinear parameters obtained by the current search meet the preset conditions, so as to judge whether to decode the coded value or select the parent generation from the initialization population so as to perform crossover mutation on the parent generation.
[0185] Specifically, in this embodiment, the step of determining whether the linear parameters and nonlinear parameters currently searched meet preset conditions includes: calculating the root mean square and / or model error based on the current nonlinear parameters and the linear parameters currently searched; and determining whether the root mean square and / or model error are within a corresponding preset threshold range based on the calculated root mean square and / or model error.
[0186] Correspondingly, in this embodiment, the preset conditions include that the root mean square and the model error are respectively within preset threshold ranges.
[0187] The RMS is calculated by the aforementioned formula (III), and the model error is calculated by the difference between the critical dimension (CD) value simulated by the model and the critical dimension value actually measured.
[0188] The decoding unit is used to decode the coded value when the preset conditions are met, so as to realize the conversion of the genetic algorithm chromosome into the problem solution.
[0189] In a specific implementation, a corresponding decoding processing method is selected based on the actual encoding processing method.
[0190] In this embodiment, the encoding process of the nonlinear parameter using the binary encoding method is used as an example for description. Accordingly, the decoding process of the encoded value is performed by binary decoding.
[0191] In other embodiments, when other encoding processing methods are used to encode the nonlinear parameters, corresponding decoding processing methods are used to decode the encoded values. This embodiment will not be described in detail one by one.
[0192] The selection unit is used to select a mother generation from the initialization population when the preset condition is not met, so as to perform crossover mutation processing on the mother generation to obtain corresponding offspring. Specifically, in this embodiment, the selection unit selects the mother generation from the initialization population based on fitness.
[0193] The degree of adaptation of each individual to the environment is called fitness. In order to reflect the adaptability of chromosomes, a function that can measure each chromosome in the problem is introduced, called fitness function.
[0194] Therefore, in this embodiment, the fitness (ie, fitness function value) of each individual in the initialization population is first calculated, and then the individuals in the initialization population are sorted according to the fitness, and a portion of individuals with higher fitness are selected as the parent generation.
[0195] As an example, the fitness of each individual in the initialization population is calculated based on the root mean square and the model error. In a specific implementation, corresponding weights may be assigned to the root mean square and the model error in the fitness function.
[0196] The crossover mutation unit is used to perform crossover mutation processing on the parent generation to obtain the corresponding offspring.
[0197] In this embodiment, the crossover mutation unit performs crossover mutation processing on the mother generation, including: performing crossover processing on the mother generation and performing mutation processing on the mother generation. The crossover processing refers to randomly selecting two individuals from the initialization population, and passing the excellent characteristics of the mother generation to the offspring through the exchange combination of two chromosomes, thereby generating new excellent individuals.
[0198] In a specific implementation, a single-point crossover method may be used to perform crossover processing on the parent generation. The single-point crossover method randomly selects a crossover position in the paired chromosomes, and then performs gene position transformation on the paired chromosomes at the crossover position.
[0199] In other embodiments, other crossover methods may be used to perform crossover processing on the parent generation, such as: double-point crossover or multi-point crossover method, uniform crossover method, arithmetic crossover method, etc.
[0200] Mutation processing refers to the mutation of chromosomes using the mutation probability (Mutate_rate), which helps prevent the genetic algorithm from falling into a local optimal solution during the optimization process.
[0201] In this embodiment, the single-point mutation method is used as an example to mutate the parent generation. The single-point mutation method is also called bit mutation, that is, only one bit in the gene sequence needs to be mutated, taking binary coding as an example, that is, 0 becomes 1, and 1 becomes 0.
[0202] In other embodiments, other mutation methods may be used to perform mutation processing on the parent generation.
[0203] The updating unit is used to update the nonlinear parameters using the obtained offspring and return them to the searching unit for the next searching iteration.
[0204] It should be noted that, in this embodiment, the number of iterations of the genetic algorithm should not be too few or too many. If the number of iterations of the genetic algorithm is too few, it is easy to cause the genetic algorithm to provide a more accurate search range for the subsequent second search process, and the effect of reducing the subsequent local search algorithm from falling into the local optimal solution is not obvious; if the number of iterations of the genetic algorithm is too many, it is easy to increase the amount of calculation and the operation cycle. For this reason, in this embodiment, the number of iterations of the genetic algorithm is 1 to 5 times. For example: the number of iterations of the genetic algorithm is 3 times.
[0205] Accordingly, in this embodiment, the number of iterations of the genetic algorithm is small, which is conducive to obtaining the globally optimal first candidate value within the first search range, thereby improving the accuracy of the first candidate value, so as to provide a more accurate second search range for the subsequent second search processing using the local search algorithm, while also reducing the amount of calculation and shortening the calculation time, thereby improving the efficiency of optimizing the OPC model.
[0206] The setting module 103 is configured to set a second search range based on the multiple first candidate values, wherein the second search range is smaller than the first search range.
[0207] In this embodiment, there are multiple first candidate values, and correspondingly, multiple second search ranges are obtained based on the multiple first candidate values, so as to provide more choices for the local search algorithm.
[0208] The second search range is smaller than the first search range, which is beneficial to provide a smaller starting search range for the local search algorithm to perform the second search processing, and further beneficial to reduce the amount of calculation of the local search algorithm and shorten the calculation time; moreover, the second search range is set based on multiple first candidate values obtained by the global search algorithm. The multiple first candidate values obtained by the global search algorithm have high accuracy and are the global optimal solution within the first search range. Therefore, the second search range set based on multiple first candidate values is beneficial to avoid the subsequent local search algorithm from falling into the local optimal solution as much as possible.
[0209] As an example, the setting module 103 includes: a screening unit (not shown) for screening multiple first candidate values based on a preset evaluation criterion to obtain a second candidate value; a setting unit (not shown) for setting a second search range based on the second candidate value.
[0210] Specifically, in this embodiment, the screening unit calculates the root mean square and model error corresponding to each first candidate value; based on the preset weights corresponding to the root mean square and model error and the root mean square and model error corresponding to each first candidate value, multiple first candidate values are screened to obtain the second candidate value corresponding to each nonlinear parameter.
[0211] As an example, Table 2 (as shown in the aforementioned embodiment) shows some examples of second candidate values obtained by screening in this embodiment.
[0212] It should be noted that the items and the second candidate values shown in Table 2 are only provided as an example. In other embodiments, the second candidate value may also be other values.
[0213] Specifically, in this embodiment, the setting unit floats up and down a preset numerical range based on the second candidate value to obtain the second search range.
[0214] The preset numerical range that fluctuates up and down based on the second candidate value is smaller, so as to obtain a smaller second search range.
[0215] As an example, Table 3 (as shown in the aforementioned embodiment) shows some examples of the second search range of this embodiment.
[0216] It should be noted that the second search range shown in Table 3 is only used as an example. In other embodiments, based on actual needs, the second search range may also be other value ranges.
[0217] The second search module 104 is used to perform a second search process on the nonlinear parameter based on the second search range by using a local search algorithm to obtain a final candidate value.
[0218] In this embodiment, the second search module 104 performs a first search process on the nonlinear parameters using a global search algorithm based on the first search range to generate multiple first candidate values, so that the setting module 103 sets a second search range smaller than the first search range based on the multiple first candidate values, thereby not only reducing the initial search range of the local search algorithm, but also providing a more accurate search range for the second search module 104 to perform a second search process on the nonlinear parameters using the local search algorithm through the second search range set by the first candidate values obtained based on the global search algorithm. Accordingly, in the process in which the second search module 104 performs a second search process on the nonlinear parameters using the local search algorithm based on the second search range, it is also beneficial to avoid the local search algorithm from falling into a local optimal solution as much as possible. Accordingly, the embodiment of the present invention combines the global search algorithm with the local search algorithm, which is beneficial to improving the accuracy of the final candidate value and avoiding falling into a local optimal solution, while also reducing the amount of calculation and shortening the running time for obtaining the final candidate value, thereby improving the optimization effect of the OPC model and improving the accuracy and reliability of the OPC model.
[0219] More specifically, in this embodiment, the OPC model optimization system 100 optimizes the photoresist model to obtain final candidate values of the nonlinear parameters of the photoresist model. While improving the accuracy of the final candidate values and avoiding falling into local optimal solutions, it is also beneficial to reduce the amount of calculation and shorten the running time for obtaining the final candidate values, thereby improving the optimization effect of the photoresist model, improving the accuracy and reliability of the photoresist model, and correspondingly improving the accuracy and reliability of the OPC model.
[0220] As an example, the local search algorithm includes a linear approximation constrained optimization algorithm. The linear approximation constrained optimization algorithm processes nonlinear problems by linearly approximating the objective function and the constraint conditions. Moreover, the linear approximation constrained optimization algorithm runs fast and is also conducive to shortening the running time.
[0221] As an example, the second search module 104 includes: a second initialization unit (not shown), which is used to perform a second initialization process on the nonlinear parameters based on a second search range to obtain the initial values of the nonlinear parameters; a linear search unit, which is used to search the linear parameters based on the initial values of the nonlinear parameters; a loop iteration unit (not shown), which is used to perform one or more loop iteration processes, and each loop iteration process includes: performing a second search process on the nonlinear parameters using a linear approximation constraint optimization algorithm; after the second search process, searching the linear parameters, and judging whether the linear parameters and nonlinear parameters currently searched meet preset conditions; when the preset conditions are not met, updating the linear parameters and nonlinear parameters, and returning to the step of performing a second search process on the nonlinear parameters using a linear approximation constraint optimization algorithm; an output unit, which is used to output the final candidate values of the nonlinear parameters when the preset conditions are met.
[0222] The second initialization unit performs a second initialization process on the nonlinear parameter, thereby providing a search starting point for a second search process on the nonlinear parameter based on a second search range.
[0223] The linear search unit is used to search for linear parameters based on initial values of the nonlinear parameters.
[0224] As an example, the linear search unit uses a gradient descent algorithm to search for linear parameters. The gradient descent algorithm has a fast calculation speed, and by using the gradient descent algorithm to search for linear parameters, it is conducive to rapid convergence.
[0225] It should be noted that, in this embodiment, the use of the gradient descent algorithm to search for linear parameters is only used as an example. In other embodiments, other search algorithms may be used to search for linear parameters, for example, Newton method or quasi-Newton algorithm may be used to search for linear parameters.
[0226] The loop iteration unit performs one or more loop iteration processes, and each loop iteration process includes: using a linear approximation constrained optimization algorithm to perform a second search process on the nonlinear parameters; after the second search process, searching the linear parameters and judging whether the linear parameters and nonlinear parameters currently searched meet preset conditions; when the preset conditions are not met, updating the linear parameters and nonlinear parameters, and returning to the step of performing a second search process on the nonlinear parameters using the linear approximation constrained optimization algorithm.
[0227] In this embodiment, determining whether the preset conditions are met includes: calculating the root mean square and / or model error based on the linear parameters and nonlinear parameters obtained through the search; and determining whether the root mean square and / or model error is within a corresponding preset threshold range based on the calculated root mean square and / or model error.
[0228] The output unit outputs the final candidate value of the nonlinear parameter as the final candidate value. The final candidate value is used to obtain the final OPC model.
[0229] In this embodiment, the OPC model optimization system further includes: a model acquisition module 105, which is used to obtain a final OPC model based on the final candidate value.
[0230] Specifically, in this embodiment, there are multiple final candidate values; based on the final candidate values, the step of obtaining the final OPC model includes: based on the final candidate values, selecting the final OPC model according to the root mean square, model error and experience.
[0231] Combined with reference Figure 6 , Figure 6 (a) shows the model error of the model obtained after performing step S2, Figure 6 (b) shows the model error of the final OPC model, and Figure 6 (a) and Figure 6 (b) shows the reference model. Figure 6 (a) It can be seen that after performing step S2, the obtained model (i.e., GA search with 3 iterations) is less different from the reference model, and the model error is smaller; Figure 6 (b) It can be seen that the difference between the final OPC model (Final model) obtained by the OPC model optimization method of the embodiment of the present invention and the reference model is further reduced, the model error of the final OPC model is smaller, and the accuracy and reliability of the model are improved.
[0232] The embodiment of the present invention further provides a device, which can implement the OPC model optimization method provided by the embodiment of the present invention by loading the above OPC model optimization method in the form of a program.
[0233] An optional hardware structure of the terminal device provided by the embodiment of the present invention can be as follows Figure 8 As shown, it includes: at least one processor 01, at least one communication interface 02, at least one memory 03 and at least one communication bus 04.
[0234] In the embodiment of the present invention, the number of the processor 01 , the communication interface 02 , the memory 03 , and the communication bus 04 is at least one, and the processor 01 , the communication interface 02 , and the memory 03 communicate with each other through the communication bus 04 .
[0235] Optionally, the communication interface 02 may be an interface of a communication module for network communication, such as an interface of a GSM module.
[0236] The processor 01 may be a central processing unit CPU, or an application specific integrated circuit ASIC (Application Specific Integrated Circuit), or one or more integrated circuits configured to implement the embodiments of the present invention.
[0237] The memory 03 may include a high-speed RAM memory, and may also include a non-volatile memory (non-volatile memory), such as at least one disk memory.
[0238] The memory 03 stores one or more computer instructions, and the one or more computer instructions are executed by the processor 01 to implement the OPC model optimization method provided in the embodiment of the present invention.
[0239] It should be noted that the above-mentioned terminal device may also include other devices (not shown) that may not be necessary for understanding the contents disclosed in the embodiments of the present invention; given that these other devices may not be necessary for understanding the contents disclosed in the embodiments of the present invention, the embodiments of the present invention will not introduce them one by one.
[0240] Correspondingly, an embodiment of the present invention further provides a storage medium, wherein the storage medium stores one or more computer instructions, and the one or more computer instructions are used to implement the OPC model optimization method provided by the embodiment of the present invention.
[0241] The embodiments of the present invention described above are combinations of elements and features of the present invention. Unless otherwise mentioned, elements or features may be considered as optional. Each element or feature may be put into practice without being combined with other elements or features. In addition, embodiments of the present invention may be constructed by combining some elements and / or features. The order of operations described in the embodiments of the present invention may be rearranged. Some constructions of any one embodiment may be included in another embodiment, and may be replaced by the corresponding construction of another embodiment. It is obvious to those skilled in the art that claims that do not have a clear reference relationship to each other in the attached claims may be combined into embodiments of the present invention, or may be included as new claims in the amendment after submitting this application.
[0242] The embodiments of the present invention can be implemented by various means such as hardware, firmware, software or a combination thereof. In a hardware configuration, the method according to the exemplary embodiment of the present invention can be implemented by one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, etc.
[0243] In a firmware or software configuration, the embodiments of the present invention may be implemented in the form of modules, procedures, functions, etc. The software code may be stored in a memory unit and executed by a processor. The memory unit is located inside or outside the processor and may send data to and receive data from the processor via various known means.
[0244] The above description of the disclosed embodiments enables those skilled in the art to implement or use the present invention. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present invention. Therefore, the present invention will not be limited to the embodiments shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.
[0245] Although the present invention is disclosed as above, the present invention is not limited thereto. Any person skilled in the art can make various changes and modifications without departing from the spirit and scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the scope defined by the claims.
Claims
1. An optimization method for an OPC model, characterized in that: The parameters of the OPC model include nonlinear parameters; The optimization method of the OPC model includes: Performing a first initialization process on the nonlinear parameter to determine a first search range of the nonlinear parameter; Based on the first search range, a global search algorithm is used to perform a first search process on the nonlinear parameters to generate a plurality of first candidate values corresponding to each nonlinear parameter; Setting a second search range based on the plurality of first candidate values, wherein the second search range is smaller than the first search range; Based on the second search range, a second search process is performed on the nonlinear parameter using a local search algorithm to obtain a final candidate value.
2. The method for optimizing the OPC model according to claim 1, characterized in that: The global search algorithm includes a heuristic algorithm.
3. The method for optimizing the OPC model according to claim 1, characterized in that: The global search algorithm includes a genetic algorithm.
4. The method for optimizing the OPC model as claimed in claim 3, characterized in that: The parameters of the OPC model also include linear parameters; based on the first search range, the step of performing a first search process on the nonlinear parameters using a global search algorithm includes: Performing encoding processing on the nonlinear parameter to obtain an encoding value; Based on the encoding value, randomly generate an initialization population; Based on the initialized population, searching for the linear parameter; Determine whether the linear parameters and nonlinear parameters currently searched meet the preset conditions; If yes, the encoded value is decoded; Otherwise, selecting a parent generation from the initialization population; Performing crossover mutation processing on the parent generation to obtain corresponding offspring; The nonlinear parameters are updated using the obtained offspring, and the process returns to the step of searching for linear parameters.
5. The method for optimizing the OPC model according to claim 3 or 4, characterized in that: The iteration number of the genetic algorithm is 1 to 5.
6. The method for optimizing the OPC model as claimed in claim 4, characterized in that: The preset conditions include that the root mean square and the model error are respectively within preset threshold ranges.
7. The method for optimizing the OPC model according to claim 1, characterized in that: The step of setting a second search range based on the multiple first candidate values includes: screening the multiple first candidate values based on a preset evaluation standard to obtain a second candidate value; and setting a second search range based on the second candidate value.
8. The method for optimizing the OPC model as claimed in claim 7, characterized in that: Based on a preset evaluation criterion, the step of screening the multiple first candidate values includes: calculating the root mean square and model error corresponding to each first candidate value; based on the weights corresponding to the preset root mean square and model error and the root mean square and model error corresponding to each first candidate value, screening the multiple first candidate values to obtain a second candidate value corresponding to each nonlinear parameter.
9. The method for optimizing the OPC model according to claim 7, characterized in that: The step of setting a second search range based on the second candidate value includes: floating up and down a preset numerical range based on the second candidate value to obtain the second search range.
10. The method for optimizing the OPC model according to claim 1, characterized in that: The local search algorithm includes a linear approximation constrained optimization algorithm.
11. The method for optimizing the OPC model according to claim 10, characterized in that: The parameters of the OPC model also include linear parameters; based on the second search range, the step of performing a second search process on the nonlinear parameters using a local search algorithm includes: Based on the second search range, performing a second initialization process on the nonlinear parameter to obtain an initial value of the nonlinear parameter; Searching for the linear parameter based on the initial value of the nonlinear parameter; Perform one or more loop iterations, each loop iteration includes: using a linear approximation constraint optimization algorithm to perform a second search process on the nonlinear parameters; after the second search process, perform a search process on the linear parameters, and determine whether the linear parameters and nonlinear parameters currently searched meet preset conditions; when the preset conditions are not met, update the linear parameters and nonlinear parameters, and return to the step of performing a second search process on the nonlinear parameters using the linear approximation constraint optimization algorithm; When the preset conditions are met, the final candidate value of the nonlinear parameter is output.
12. The method for optimizing the OPC model according to claim 4 or 10, characterized in that: The linear parameters are searched using a gradient descent algorithm.
13. The method for optimizing the OPC model according to claim 1, characterized in that: The OPC model optimization method further includes: after obtaining the final candidate value, obtaining a final OPC model based on the final candidate value.
14. The method for optimizing the OPC model according to claim 1, characterized in that: The OPC model is a photoresist model.
15. An optimization system for an OPC model, characterized in that: The parameters of the OPC model include nonlinear parameters; The optimization system of the OPC model includes: An initialization module, used for performing a first initialization process on the nonlinear parameter to determine a first search range of the nonlinear parameter; A first search module, configured to perform a first search process on the nonlinear parameters using a global search algorithm based on the first search range, and generate a plurality of first candidate values corresponding to each nonlinear parameter; A setting module, configured to set a second search range based on the plurality of first candidate values, wherein the second search range is smaller than the first search range; The second search module is used to perform a second search process on the nonlinear parameter based on the second search range by using a local search algorithm to obtain a final candidate value.
16. A device, characterized in that The method comprises at least one memory and at least one processor, wherein the memory stores one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the OPC model optimization method according to any one of claims 1 to 14.
17. A storage medium, characterized in that: The storage medium stores one or more computer instructions, and the one or more computer instructions are used to implement the OPC model optimization method as described in any one of claims 1-14.
Citation Information
Patent Citations
Underwater vehicle three-dimensional path planning method based on Lazy Theta satellite and particle swarm hybrid algorithm
CN106444835A
Global optimization, searching and machine learning method based on Lamarck's principle of inheritance of acquired characters
CN107229972A
Nonlinear optimization method and storage medium
CN107491841A
Hybrid global optimization method
CN108133258A
A difference search algorithm to improve the search strategy
CN109214499A