Mask pattern optimization method, system, device and computer readable storage medium
By detecting and correcting the spatial dispersion of mask variables in reverse lithography, the problem of getting trapped in local optima during the ILT iterative optimization process is solved, achieving high-quality mask pattern optimization and imaging accuracy.
Patent Information
- Application Number
- CN202611560816.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-10-10
- Publication Date
- 2026-11-06
AI Technical Summary
Inverted lithography (ILT) is prone to getting caught in local optima during the iterative optimization process, resulting in excessively large mask pattern dispersion, which affects manufacturability and imaging quality.
After each iteration, the spatial dispersion of the mask variables is detected, and if it exceeds a threshold, it is corrected to reduce the dispersion until the convergence condition is met and the final mask pattern is output.
This effectively avoids falling into local optima during iterative optimization, ensuring the manufacturability of the mask pattern and imaging accuracy, and improving the optimization effect.
Smart Images

Figure CN123047201A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of optical correction of microelectronic layout data, and in particular to a method, system, device and computer-readable storage medium for optimizing mask patterns. Background Technology
[0002] In nanofabrication, the exposed patterns on wafers are distorted due to light diffraction and interference effects. Inverse lithography (ILT) is a key technology for improving image quality and plays a crucial role in advanced node manufacturing. ILT solves for mask patterns through iterative optimization, but its computational complexity is enormous, placing high demands on the selection of optimization algorithms. Gradient descent is one of the widely used optimization algorithms in ILT. However, ILT is essentially a high-dimensional, non-convex numerical optimization problem, and iterative optimization using gradient descent is prone to falling into local optima traps, leading to optimization stagnation. In this case, the resulting mask patterns often have excessive dispersion, resulting in poor manufacturability. Therefore, how to avoid falling into local optima traps during iterative optimization is a technical problem that needs to be solved by those skilled in the art. Summary of the Invention
[0003] The purpose of this application is to provide a method, system, device, and computer-readable storage medium for optimizing mask patterns, thereby avoiding getting trapped in local optima during iterative optimization.
[0004] To achieve the above objectives, this application provides a method for optimizing mask patterns, comprising: Iterative optimization of the current mask variables; After each iteration, the spatial dispersion of the current mask variable is detected; When the spatial dispersion exceeds the detection threshold, the current mask variable is corrected so that the spatial dispersion of the corrected mask variable is less than that of the uncorrected mask variable, and the corrected mask variable is used as the current mask variable to continue the iterative optimization. The mask pattern corresponding to the current mask variable is output when the iterative optimization meets the preset convergence condition.
[0005] Optionally, detecting the spatial dispersion of the current mask variable includes: The detection area of the current mask variable is determined based on the position of the target graphic. The detection area includes a target detection area and an auxiliary detection area. The target detection area corresponds to at least a portion of the area inside the target graphic, and the auxiliary detection area corresponds to at least a portion of the area outside the target graphic within a preset range. The spatial dispersion of the target detection region and the spatial dispersion of the auxiliary detection region are determined; the spatial dispersion of the target detection region is the sum of the absolute values of the spatial gradients of the current mask variables within the target detection region, and the spatial dispersion of the auxiliary detection region is the sum of the absolute values of the spatial gradients of the current mask variables within the auxiliary detection region. A first weight is applied to the spatial dispersion of the target detection region, and a second weight is applied to the spatial dispersion of the auxiliary detection region. The spatial dispersion of the current mask variable is obtained by weighted summation; the first weight is greater than the second weight.
[0006] Optionally, the current mask variable is modified, including: The current mask variable is smoothed to obtain a smoothed mask variable; Extract the edge contours corresponding to the smoothed mask variables; The mask variables are regenerated based on the edge contours to obtain the corrected mask variables.
[0007] Optionally, the smoothing process for the current mask variable includes: The current mask variable is Gaussian smoothed to obtain the smoothed mask variable.
[0008] Optionally, extracting the edge contour corresponding to the smoothed mask variable includes: An edge detection algorithm is used to perform convolution processing on the smoothed mask variables to extract the edge amplitude of the smoothed mask variables; Points whose edge amplitude is greater than the preset contour extraction threshold are extracted to form the edge contour.
[0009] Optionally, the current mask variable is a matrix of pixel grid values, and the step of regenerating the mask variable based on the edge contour to obtain the corrected mask variable includes: The edge contour is discretized into a pixel grid using the scan line method to obtain pixelated grid values, which are then used as the corrected mask variables.
[0010] Optionally, the iterative optimization of the current mask variables includes: Determine the loss function value between the photoresist pattern corresponding to the current mask variable and the target pattern; When the loss function value does not meet the preset convergence condition, the gradient of the loss function value with respect to the current mask variable is determined, and the current mask variable is updated according to the gradient.
[0011] To achieve the above objectives, this application also provides a mask pattern optimization system, comprising: The iterative optimization module is used to iteratively optimize the current mask variables; The discreteness detection module is used to detect the spatial discreteness of the current mask variable after each iteration; The correction module is used to correct the current mask variable when the spatial dispersion exceeds the detection threshold, so that the spatial dispersion of the corrected mask variable is less than the spatial dispersion of the mask variable before correction, and to use the corrected mask variable as the current mask variable to control the iterative optimization module to continue to execute the iterative optimization. The output module is used to output the mask pattern corresponding to the current mask variable when the iterative optimization meets the preset convergence condition.
[0012] To achieve the above objectives, this application also provides a mask pattern optimization device, comprising: Memory, used to store computer programs; A processor for executing the computer program to implement the steps of the mask pattern optimization method as described above.
[0013] To achieve the above objectives, this application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of the mask pattern optimization method as described above.
[0014] Obviously, the mask pattern optimization method provided in this application, during the iterative optimization of the current mask variable, detects the spatial dispersion of the current mask variable after each iteration. When the spatial dispersion exceeds a detection threshold, the current mask variable is corrected to reduce its spatial dispersion. The iteration continues with the corrected mask variable until convergence, at which point the final mask pattern is output. Since spatial dispersion reflects whether the mask pattern is too discrete and whether the manufacturing quality is good, when the dispersion exceeds the threshold, it indicates that the optimization has deviated from the right track. At this time, by correcting and reducing the dispersion and returning to continue the iteration, the optimization process is prevented from falling into a local optimum trap, ensuring that the optimization can continue to move towards the global optimum. This effectively avoids the problem of the iterative optimization process being unable to escape due to being trapped in a local optimum. At the same time, since the corrected mask variable has lower dispersion, the dispersion of the final output mask pattern is effectively controlled while satisfying the convergence condition, thereby ensuring the manufacturability of the mask pattern and improving the imaging accuracy. This application also provides a mask pattern optimization system, device, and computer-readable storage medium, which have the above-mentioned beneficial effects. Attached Figure Description
[0015] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of this application. For those skilled in the art, other drawings can be obtained based on the provided drawings without creative effort.
[0016] Figure 1 A flowchart illustrating a method for optimizing a mask pattern provided in an embodiment of this application; Figure 2 This application provides a schematic diagram of a partition for calculating the discreteness of a mask variable. Figure 3 A schematic diagram of the overall operation flow of a reverse lithography online inspection and reset system provided in this application embodiment; Figure 4 This is a schematic diagram of an online mask detection and reset process provided in an embodiment of this application; Figure 5 This is a structural block diagram of a mask pattern optimization system provided in an embodiment of this application. Detailed Implementation
[0017] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0018] In nanoscale manufacturing, the diffraction and interference effects of light during exposure distort and blur the exposed pattern on the wafer, causing it to deviate significantly from the target pattern. Therefore, traditional Optical Proximity Correction (OPC) is widely used in semiconductor manufacturing, especially in advanced node manufacturing, such as Model-Based OPC (MBOPC). However, as Moore's Law faces further challenges, various Resolution Enhancement Technologies (RETs) have been proposed to adapt to increasingly limited chip sizes. Inverse Lithography Technology (ILT) is one type of RET. This technology is one of the key technologies for continuing Moore's Law and driving semiconductor manufacturing into the nanoscale era. With the shrinking of process nodes (<5nm), the importance of ILT is increasingly prominent, and it has become an indispensable technology for advanced nodes.
[0019] However, ILT also faces significant challenges in actual manufacturing processes. ILT solves for mask patterns through iterative optimization, and its computational principle dictates high computational complexity and low efficiency; even small pattern fragments can require substantial computational time. Therefore, the choice of optimization algorithm is crucial for the practical application of ILT. Gradient descent is one of the widely used optimization algorithms in ILT. However, ILT is essentially a high-dimensional, non-convex numerical optimization problem, and iterative optimization using gradient descent is prone to falling into local optima traps, leading to optimization stagnation. In such cases, the resulting mask patterns often exhibit excessive dispersion, resulting in poor manufacturability.
[0020] Therefore, this application provides a method for optimizing mask patterns. In the process of iteratively optimizing the current mask variables, the spatial dispersion of the current mask variables is detected after each iteration. When the spatial dispersion exceeds the detection threshold, the current mask variables are corrected to reduce their spatial dispersion. The corrected mask variables are then used to continue iterating until convergence, and the final mask pattern is output. This avoids falling into the local optimum trap during the iterative optimization process.
[0021] Please refer to Figure 1 , Figure 1 A flowchart illustrating a method for optimizing a mask pattern provided in this application embodiment, the method may include: S101: Iteratively optimize the current mask variables.
[0022] It should be noted that this application can be applied to any iterative optimization method, including but not limited to reverse lithography optimization methods.
[0023] In some embodiments, the specific method of iterative optimization is not limited, as long as the mask variables can be updated through multiple iterations. For example, the following methods can be used: Determine the loss function value between the photoresist pattern corresponding to the current mask variable and the target pattern; When the loss function value does not meet the preset convergence condition, determine the gradient of the loss function value with respect to the current mask variable, and update the current mask variable according to the gradient.
[0024] It should be noted that before each iteration, the loss function value needs to be determined first, and then it needs to be determined whether the loss function value meets the preset convergence condition. When the loss function value meets the preset convergence condition, the mask pattern corresponding to the current mask variable can be output.
[0025] When the loss function value does not meet the preset convergence condition, the gradient of the loss function value with respect to the current mask variable can be determined, and the current mask variable can be updated according to the gradient.
[0026] Understandably, by determining the loss function value and judging whether the convergence condition is met, the imaging quality of the current mask variable can be accurately evaluated before each iteration, avoiding invalid iterations when convergence has already occurred. When convergence has not occurred, the current mask variable is updated by calculating the gradient, causing it to evolve in the direction of reducing the loss function value, providing an optimization basis for subsequent discreteness detection and correction, thereby enabling the entire iterative optimization process to advance synergistically in both imaging accuracy and image quality.
[0027] In some embodiments, the specific method of obtaining the photoresist pattern is not limited, as long as the photoresist pattern corresponding to the current mask variable can be obtained. For example, the following methods can be used: The optical pattern is obtained by using a photolithography imaging model to simulate the current mask variables. The photoresist response is simulated on the optical pattern to obtain the photoresist pattern.
[0028] It should be noted that the photolithography imaging model is a forward model, used to perform imaging simulation on mask variables (i.e., forward calculation from mask variables to wafer imaging) to obtain the photoresist pattern corresponding to the mask variables.
[0029] It should be noted that before performing imaging simulation on the current mask variables using the photolithography imaging model, the process also includes the step of establishing the photolithography imaging model. In some embodiments, the step of establishing the photolithography imaging model may include: Obtain the parameters used to build the photolithography imaging model; A photolithography imaging model is established based on the parameters.
[0030] Understandably, lithography imaging models are fundamental tools for imaging simulation. By obtaining the parameters used to build lithography imaging models and establishing them, imaging simulations can more closely approximate the imaging performance of actual lithography processes, providing a reliable foundation for subsequent optical pattern calculations.
[0031] In some embodiments, the specific type of parameters used to establish the photolithography imaging model is not limited, and can be set according to the requirements of different photolithography nodes. For example, the parameters used to establish the photolithography imaging model may include photolithography parameters, process conditions, and photoresist thresholds. Photolithography parameters may include light source parameters, optical parameters, and imaging thin film parameters. Optionally, light source parameters may include the light source polarization state and partial coherence factor σ. Optionally, optical parameters may include numerical aperture NA and wavelength λ. Optionally, imaging thin film parameters may include the photoresist refractive index and absorptivity.
[0032] Process parameters may include exposure dose and defocus.
[0033] It should be noted that the process window refers to the range within which process parameters can be varied within an acceptable image quality range. To expand the process window in subsequent optimization, multiple process parameter values (i.e., multiple exposure dose values and multiple defocus values) need to be set. Different combinations of these process parameters constitute multiple process conditions. The subsequent loss function value will be weighted and calculated for different process conditions to ensure that the optimization result exhibits good imaging performance under multiple process conditions.
[0034] Understandably, by weighting different process conditions in the loss function value, the optimization results can be effectively improved over a wider process window, resulting in good imaging performance of the final mask pattern under different exposure doses and defocusing conditions.
[0035] In some embodiments, the specific values and number of process parameters are not limited, as long as they can cover the target process window range. For example, a series of exposure doses can be initialized, with a total of N dose values (D1, D2, ..., D...). N The corresponding weights are (wD1, wD2, ..., wD). N ); Initialize a series of defocus values (F1, F2, ..., F... M There are M defocus values in total, with corresponding weights (wF1, wF2, ..., wF). M ).
[0036] It should be noted that, under normal conditions (dose=1, defocus=0), the weight is the largest, while the weights of other conditions are relatively low.
[0037] Understandably, different combinations of these dose and defocus values constitute multiple process conditions. The selection of process conditions is crucial, as it directly determines whether subsequent optimization results can be effectively improved within the corresponding process window.
[0038] It should be noted that the purpose of setting the photoresist threshold is to extract the photoresist pattern from the optical pattern as the final result, and to use the difference between it and the target pattern as the basis for optimization direction.
[0039] In some embodiments, the specific method of establishing the lithography imaging model based on parameters is not limited, as long as the lithography imaging model can be used to perform imaging simulation of mask variables. For example, when the lithography imaging model adopts the Hopkins imaging model, the following method can be used: Based on all lithography parameters and defocusing amount, a pupil function is established for each defocusing amount; the pupil function is used to describe the collection and transmission of diffracted light by the projection lens; Based on the pupil function, the transmission cross coefficient (TCC) corresponding to different defocus amounts in the lithography imaging model is determined in advance. Eigenvalue decomposition is performed on the transitive cross coefficients to obtain the dimension-reduced TCC kernel H. km Each defocusing amount Fm stores the corresponding TCC core H. km This serves as intermediate data for determining the optical pattern.
[0040] It should be noted that the TCC nucleus is only related to the defocus amount, and different exposure doses do not affect the value of the TCC nucleus. Therefore, the same set of TCC nuclei can be reused when calculating optical patterns under different exposure doses.
[0041] Understandably, dimensionality reduction through TCC eigenvalue decomposition can significantly improve computational efficiency while maintaining the accuracy of imaging simulation. Reusing the same set of TCC kernels under different exposure doses can further reduce redundant calculations and improve overall optimization efficiency.
[0042] It should be noted that the optical pattern reflects the light intensity distribution on the wafer surface. In some embodiments, the specific method of imaging simulation is not limited, as long as the light intensity distribution on the wafer surface can be simulated based on the current mask variables. For example, the following methods can be used: The optical pattern under the current process conditions is obtained by convolving the current mask variable with the TCC kernel using a photolithography imaging model and then calculating the square of the modulus. The corresponding optical pattern OI is obtained when the exposure dose is Dn and the defocusing amount is Fm. mn The expression is: ; In the formula, OImn This represents the optical pattern corresponding to the nth exposure dose and the mth defocus amount; D n H represents the nth exposure dose value; km M0 represents the k-th TCC kernel corresponding to the m-th defocusing amount; M0 represents the current mask variable. This represents the convolution operation; K represents the number of TCC cores.
[0043] It should be noted that the TCC kernel can be obtained by eigenvalue decomposition of the pupil function and the transfer cross coefficient, with each defocus amount corresponding to a set of TCC kernels. Understandably, by convolving the mask variables with the TCC kernels, the light intensity distribution on the wafer surface corresponding to the mask pattern can be calculated efficiently, providing accurate input data for subsequent photoresist response simulation.
[0044] It should be noted that the photoresist pattern reflects the final pattern outline developed after the photoresist chemical reaction. In some embodiments, the specific method of simulating the photoresist response is not limited, as long as the optical pattern can be converted into a photoresist pattern. For example, the following methods can be used: The Sigmoid function is used to simulate the photoresist response of the optical pattern. When the process conditions are the nth exposure dose and the mth defocusing amount, the expression of the Sigmoid function can be: ; In the formula, RI mn This represents the photoresist pattern corresponding to the nth exposure dose and the mth defocusing amount; OI mn This represents the optical pattern corresponding to the nth exposure dose and the mth defocusing amount; α is the slope of the Sigmoid function, characterizing the edge sharpness of the extracted photoresist pattern; thres R This is the photoresist threshold, used to extract the photoresist pattern from the optical pattern.
[0045] It should be noted that the value of α determines the steepness of the photoresist pattern edge; a larger value results in a steeper edge. In this embodiment, α can be set to 90. The photoresist threshold (thres)... R It can be determined based on the actual photolithography conditions. Understandably, by simulating the photoresist development process using the Sigmoid function, continuous optical patterns can be converted into photoresist patterns with sharp edges, making the photoresist patterns closer to the actual imaging results on the wafer.
[0046] It should be noted that the loss function value, also known as the evaluation function, is used to evaluate the degree of difference between the photoresist pattern corresponding to the current mask variable and the target pattern. The smaller the loss function value, the closer the imaging quality corresponding to the current mask variable is to the target pattern. In some embodiments, the specific method of determining the loss function value is not limited, as long as the loss function value can be calculated based on the difference between the current mask variable and the target pattern. For example, the expression for the loss function value can be: ; In the formula, error represents the loss function value; N represents the number of exposure dose values; M represents the number of defocus values; wD n wF represents the weight corresponding to the nth exposure dose value. m I represents the weight corresponding to the m-th defocus value; target (u,v) represents the pixel value at pixel position (u,v) of the pixelated target graphic; RI mn (u,v) represents the pixel value of the photoresist pattern at pixel position (u,v) under the nth exposure dose and the mth defocus amount; It represents the square of the magnitude of the difference between the pixel values of the target image and the photoresist image at the same pixel position, that is, the square of the Euclidean distance.
[0047] It is understandable that by weighting and summing the errors under different process conditions, the optimization results can be effectively improved over a wider process window, so that the final mask pattern has good imaging performance under different exposure doses and defocusing conditions.
[0048] In some embodiments, the specific form of determining the preset convergence condition is not limited, as long as it can be used to determine whether the iterative optimization should be terminated. For example, the preset convergence condition may include whether the loss function value is less than a preset loss threshold.
[0049] Understandably, when the loss function value is less than the preset loss threshold, it indicates that the imaging quality corresponding to the current mask variable already meets the requirements, and further iteration is unnecessary; when the loss function value is not less than the preset loss threshold, it indicates that the imaging quality corresponding to the current mask variable does not meet the requirements, and further iteration is needed. By setting a preset loss threshold as a convergence condition, the termination time of iterative optimization can be flexibly controlled, ensuring the optimization effect while avoiding the introduction of additional computational load.
[0050] In some embodiments, the specific method for determining the gradient is not limited, as long as the gradient of the loss function value with respect to the current mask variable can be determined. For example, the following methods can be used: By backpropagating the loss function value, the gradient of the loss function value with respect to the current mask variable is derived; the expression for the gradient can be: ; In the formula, error represents the gradient of the loss function value with respect to the current mask variable; M v This represents the current mask variable.
[0051] Understandably, by calculating the gradient of the loss function value with respect to the mask variable through backpropagation, the adjustment direction and magnitude of each pixel in the mask variable can be accurately determined, providing a basis for updating the mask variable.
[0052] It should be noted that in each iteration, based on the loss function value between the photoresist pattern corresponding to the current mask variable and the target pattern, the gradient is calculated through backpropagation and the mask variable is updated to gradually reduce the loss function value, making the photoresist pattern corresponding to the mask variable approximate the target pattern. This process belongs to the inverse model, that is, the process of deriving the optimal mask variable from the target pattern. It works in conjunction with the forward model (photolithography imaging model) used for imaging simulation to jointly constitute the inverse photolithography optimization method.
[0053] It should be noted that the gradient of the current mask variable update can be obtained in each iteration, and the update can be performed after setting the update step size. In some embodiments, the specific method of determining the update of the current mask variable is not limited, as long as the loss function value can be reduced according to the gradient. For example, the following methods can be used: The current mask variable is updated using gradient descent in the opposite direction of the gradient; the update formula can be: ; In the formula, This represents the current mask variable after k iterations; This represents the current mask variable at iteration k+1; Indicates the learning rate (step size). , This is represented as the gradient of the loss function value with respect to the current mask variable.
[0054] It is understandable that by updating variables in the opposite direction of the gradient, the loss function value can be gradually reduced, thereby driving the mask variables to evolve towards the optimal solution.
[0055] It's important to note that in gradient descent, the choice of learning rate (step size) is crucial. Smaller step sizes can be used in regions with large gradients to avoid oscillations, while larger step sizes can be used in regions with small gradients to accelerate convergence. In some embodiments, an adaptive learning rate can be used to adjust the update step size of gradient descent, such as the Adam adaptive learning rate method. It's understood that an adaptive learning rate can accelerate optimization speed and improve iteration efficiency while maintaining convergence stability. Furthermore, in practice, multiple different learning rate methods can be selected to improve optimization results.
[0056] In some embodiments, the specific method of obtaining the current mask variable is not limited, as long as it can provide input for iterative optimization. For example, before S101, it may also include: Obtain the target image; Initial mask variables are generated based on the target image, and these initial mask variables are used as the current mask variables before the iteration begins.
[0057] Understandably, this method enables the initial mask variables to correspond precisely with the target image in space, which is beneficial for subsequent iterative optimization to be adjusted in the correct spatial position, thereby improving optimization efficiency.
[0058] In some embodiments, the specific method of obtaining the target image is not limited, as long as the desired target image can be obtained. For example, the following methods can be used: Read the target graphic file and select the region containing the target graphic from the target graphic file as the target region.
[0059] It is understandable that by reading the target graphic file and selecting the region containing the target graphic, the spatial range of subsequent discretization processing can be determined.
[0060] In some embodiments, the specific storage format of the target graphic is not limited, as long as the target graphic to be optimized can be obtained. For example, the target graphic file can be a GDS file.
[0061] In some embodiments, the specific method for generating the initial mask variables based on the target image is not limited, as long as the target image can be converted into the initial mask variables. For example, the following methods can be used: Using the scanline method, the target region is discretized into a pixel grid according to a preset spatial scale, resulting in pixelated grid point values; these pixelated grid point values constitute the pixelated target graphic (denoted as I). target The size of the pixel grid can be U rows and V columns, where U represents the number of rows and V represents the number of columns. An initial mask variable (denoted as M0) is generated based on the pixelated target image; where the size of M0 is related to I. target Consistent; in M0, pixels corresponding to positions inside the target graphic are light-transmitting pixels (transmittance of 1), while pixels corresponding to positions outside the target graphic are light-blocking pixels (transmittance of 0).
[0062] It should be noted that the reverse process of the reverse lithography optimization method is based on the optimization of discretized and rasterized graphic variables. Therefore, it is necessary to perform raster discretization on the given original target graphic, transforming it from the original point graphic into pixelated grid points, which serve as the basis for subsequent mask graphic pixel grid optimization. In essence, raster discretization converts the continuous target graphic into computer-processable pixelated data, facilitating subsequent iterative optimization calculations.
[0063] In some embodiments, prior to S101, the following may also be included: Obtain the mask extraction threshold.
[0064] Understandably, when using reverse lithography optimization, the resulting mask variable is a continuously varying variable between 0 and 1 (1 represents complete transparency, and 0 represents complete opacity). Therefore, this continuous variable needs to be binarized to obtain a fabricable mask pattern. A mask extraction threshold can be used to binarize this continuous variable.
[0065] S102: After each iteration, detect the spatial dispersion of the current mask variable.
[0066] In some embodiments, the specific method for calculating spatial dispersion is not limited, as long as it can reflect the degree of dispersion of the mask variables. For example, the following methods can be used: The detection area of the current mask variable is determined based on the position of the target graphic. The detection area includes the target detection area and the auxiliary detection area. The target detection area corresponds to at least a portion of the area inside the target graphic, and the auxiliary detection area corresponds to at least a portion of the area outside the target graphic within a preset range. Determine the spatial dispersion of the target detection region and the spatial dispersion of the auxiliary detection region; the spatial dispersion of the target detection region is the sum of the absolute values of the spatial gradients of the current mask variables within the target detection region, and the spatial dispersion of the auxiliary detection region is the sum of the absolute values of the spatial gradients of the current mask variables within the auxiliary detection region; A first weight is applied to the spatial dispersion of the target detection area, and a second weight is applied to the spatial dispersion of the auxiliary detection area. The spatial dispersion of the current mask variable is obtained by weighted superposition; the first weight is greater than the second weight.
[0067] Understandably, by detecting the spatial dispersion of mask variables during the iteration process, it is possible to accurately assess whether the mask variables tend to become fragmented and disjointed. Specifically, by setting an auxiliary detection region and detecting the dispersion within that region, sub-resolution auxiliary graphics appearing in the vicinity of the target image can be detected immediately. This triggers correction in the early stages of abnormal growth of sub-resolution auxiliary graphics, preventing the optimization from deviating from its intended path and avoiding the iteration ultimately converging to a local optimum with excessive dispersion. Furthermore, since the target detection region has a more direct and significant impact on the final image quality than the auxiliary detection region, it is given a higher weight. This allows the dispersion calculation results to more accurately reflect the main problems of the mask variables, improving the accuracy and reliability of the detection.
[0068] In some embodiments, the specific weights of the target detection region and the auxiliary detection region are not limited, as long as the first weight is greater than the second weight, and the specific values can be determined according to the actual situation.
[0069] In some embodiments, the number and arrangement of auxiliary detection areas are not limited, as long as they can cover all directions around the target detection area. For example: The auxiliary detection area can include multiple auxiliary detection sub-areas, which are respectively deployed in different directions around the target detection area to ensure that the areas around the target detection area can be basically covered.
[0070] The size of each auxiliary detection sub-region can be determined based on the shape of the target image: In areas where the edges of the target image are relatively consistent and straight, a larger auxiliary detection sub-region is selected; In areas where the edge curvature of the target graphic is large or in corner areas, select a smaller auxiliary detection sub-region.
[0071] Understandably, flexibly selecting the size and number of detection boxes according to the shape of the target graphic can improve the accuracy and efficiency of discreteness detection while ensuring detection coverage, and avoid missed or false detections due to improper setting of the detection area.
[0072] Please refer to Figure 2 , Figure 2 This is a schematic diagram of a partition for calculating the discreteness of a mask variable, provided as an embodiment of this application. Figure 2 Taking a short bar graphic as an example (bar refers to a strip-shaped graphic, a basic graphic unit in integrated circuit layout), the specific division method between the target detection area and the auxiliary detection area is shown: the red-framed area is the target detection area, specifying at least a portion of the area inside the target graphic; the blue-framed area is the auxiliary detection area, specifying at least a portion of the area outside the target graphic. In this embodiment, the first weight can be 1, and the second weight can be 0.5.
[0073] It should be noted that the spatial dispersion of the target detection area and the spatial dispersion of the auxiliary detection area are the sum of the absolute values of the spatial gradients of the current mask variables within their respective detection areas, and can be referred to the expression for spatial dispersion below.
[0074] In this embodiment, spatial dispersion is defined as the sum of the absolute values of the spatial gradients of the current mask variables, used as the criterion for determining dispersion. The expression for spatial dispersion can be: ; In the formula, Diverge represents spatial dispersion (including the spatial dispersion of the target detection area or the spatial dispersion of the auxiliary detection area). G(x,y) represents the spatial gradient of the current mask variable at coordinates (x,y); (x,y) is the coordinate position of the detection region.
[0075] Understandably, spatial gradients can reflect the degree of drastic change between adjacent positions of mask variables in space. When the mask pattern is discrete and fragmented, the sum of the absolute values of spatial gradients will increase accordingly. Therefore, the sum of the absolute values of spatial gradients can effectively quantify the degree of discreteness of the mask pattern.
[0076] It should be noted that after each iteration, the spatial dispersion of the current mask variable needs to be calculated first, and then it needs to be determined whether the spatial dispersion exceeds the detection threshold. When the spatial dispersion does not exceed the detection threshold, it indicates that the current mask variable is in good shape and does not need to be corrected. Iterative optimization can continue with the current mask variable. When the spatial dispersion exceeds the detection threshold, it indicates that the current mask variable is becoming increasingly fragmented and needs to be corrected. In step S103, the current mask variable is corrected.
[0077] It is understandable that by performing a threshold judgment on the spatial dispersion after each iteration, it is possible to promptly identify whether the mask variable deviates from the correct path and trigger a restart step when the dispersion exceeds the standard (the corrected mask variable obtained after correction is the initial value of the mask variable after restart, and this mask variable will be used as the current mask variable to continue iterative optimization). In this way, the quality of the mask pattern is continuously monitored during the optimization process, avoiding the iteration from eventually converging to a local optimum with excessive dispersion.
[0078] S103: When the spatial dispersion exceeds the detection threshold, the current mask variable is corrected so that the spatial dispersion of the corrected mask variable is less than that of the original mask variable. The corrected mask variable is then used as the current mask variable, and iterative optimization continues.
[0079] In some embodiments, the specific method of modification is not limited, as long as it can reduce the spatial dispersion of the mask variables. For example, the following methods can be used: Smooth the current mask variables to obtain smoothed mask variables; Extract the edge contours corresponding to the smoothed mask variables; The mask variables are regenerated based on the edge contours to obtain the corrected mask variables.
[0080] Understandably, when the detected dispersion exceeds the detection threshold, it indicates that the optimized mask variable has excessive dispersion, the mask fabrication quality is poor, and subsequent optimization results may not be able to iterate to a reasonable value. This embodiment, through a combination of smoothing processing, edge contour extraction, and mask variable regeneration, can effectively remove broken structures and fine noise in the current mask variable while preserving the main contour of the image, generating a smooth and structurally complete new mask variable. This improves mask fabricationability while allowing the optimization to escape the local optimum trap.
[0081] In some embodiments, the specific method of smoothing is not limited, as long as it can remove minor noise in the mask variables and preserve the main structure. For example, the following methods can be used: Apply Gaussian smoothing to the current mask variables to obtain smoothed mask variables; The expression for the smoothed mask variable can be: ; In the formula, M k (x, y) represents the current mask variable when the spatial dispersion exceeds the detection threshold in the k-th detection, indicating that the dispersion is too large; M gk (x,y) represents the smoothed mask variables; σ x and σ y is the standard deviation of the Gaussian kernel in the x and y directions; (x0, y0) is the center position of the Gaussian kernel.
[0082] Understandably, Gaussian smoothing can remove minor noise and burrs from mask variables, restore the main skeleton of the image, and make subsequent edge extraction more accurate and reliable.
[0083] In some embodiments, the specific method for extracting the edge contours is not limited; the main edge contours of the mask pattern need to be extracted. For example, the following methods can be used: An edge detection algorithm is used to perform convolution processing on the smoothed mask variables to extract the edge amplitude of the smoothed mask variables; Points with edge amplitudes greater than the preset contour extraction threshold are extracted to form the edge contour; The expression for the edge magnitude can be: ; In the formula, Mag contour(x,y) represents the edge magnitude; M gk (x,y) represents the smoothed mask variables; Kernel sobel Represents the convolution kernel; The expression for the edge contour can be: ; In the formula, contour(x,y) represents the edge contour; threshold contour This indicates the preset contour extraction threshold; It is understandable that by extracting the main edge contours of the mask image through edge detection algorithms, the discrete and fragmented mask variables can be converted into clear contour information, filtering out internal fine noise points and burr structures, providing accurate boundary basis for subsequent contour-based regeneration of mask variables, thereby ensuring that the reconstructed mask variables have a smooth and complete structure.
[0084] In some embodiments, the specific type of edge detection algorithm is not limited, as long as it can extract the main edge contours of the mask image; for example, the Sobel operator can be used. It is understood that the Sobel operator, as a classic edge detection operator, has the advantages of strong noise resistance and high computational efficiency.
[0085] In some embodiments, the specific method of regenerating mask variables based on edge contours is not limited, as long as the extracted edge contours can be converted into pixelated data to serve as mask variables for subsequent iterations. For example, when the current mask variable is a matrix of pixel grid values, the following method can be used: The edge contour is discretized into a pixel grid using the scan line method, resulting in pixelated grid values, which are then used as the corrected mask variables.
[0086] Understandably, discretizing the extracted edge contours into pixel grid values using the scanline method can convert the contour information into a pixelated data format compatible with iterative optimization. The reconstructed pixelated grid values remain within the range of 0 to 1, which can meet the requirements of subsequent gradient descent iterative optimization for the mask variable format. This allows the reconstructed mask variables to retain the main contour information of the original image while having better smoothness and structural integrity. Thus, while improving the manufacturability of the mask, it provides an optimization starting point for subsequent iterations, which is conducive to the optimization converging towards the global optimum.
[0087] S104: Output the mask pattern corresponding to the current mask variable until the iterative optimization meets the preset convergence condition.
[0088] In some embodiments, the preset convergence condition may include: the loss function value between the photoresist pattern corresponding to the current mask variable and the target pattern is less than a preset loss threshold. It is understood that the loss function value directly reflects the degree of difference between the imaged pattern and the target pattern. When the loss function value is less than the preset loss threshold, it indicates that the imaging quality corresponding to the current mask variable has met the requirements, and there is no need to continue iterating; the mask pattern corresponding to the current mask variable can be directly output.
[0089] In some embodiments, the specific method of outputting the mask pattern is not limited, as long as the mask variables can be converted into a mask pattern after the iterative optimization is completed. For example, the following methods can be used: The current mask variable is binarized using a preset mask extraction threshold to obtain a binarized mask image.
[0090] It should be noted that when using the reverse lithography optimization method for iterative optimization, the mask variables obtained after iterative optimization are matrices with continuous values between 0 and 1. However, in actual manufacturing, the mask only has two states: transparent and opaque. Therefore, it is necessary to binarize the pixelated mask variables to obtain a manufacturable mask pattern. Understandably, binarization transforms the continuously valued mask variables obtained from iterative optimization into the binarized pattern required for actual mask manufacturing, achieving an effective conversion from optimization results to a manufacturable mask.
[0091] In some embodiments, the specific binarization method is not limited, as long as it can convert the mask variable that continuously changes between 0 and 1 into a binary mask pattern. For example, the following methods can be used: The sigmoid function is used to binarize the current mask variable, resulting in a binarized mask image; the expression for the mask image can be: ; In the formula, mask represents the binarized mask pattern; M v The thresholds represent the current mask variable. m The threshold value represents the mask extraction threshold, used to binarize the mask variables (1 represents complete transparency, 0 represents complete opacity) to obtain a manufacturable mask pattern; α is the slope of the Sigmoid function, which can be preset according to the mask manufacturing accuracy requirements.
[0092] Understandably, the Sigmoid function provides a smooth binarization transition, making the binarization process differentiable, which facilitates further optimization and adjustment when needed; at the same time, the final output binarized mask pattern can be directly used for mask fabrication, realizing an effective transformation from optimization results to manufacturable masks.
[0093] It should be noted that the mask extraction threshold has been obtained before step S101. Here, the mask extraction threshold is directly used to perform binarization on the mask variables obtained after the iterative optimization to obtain the final manufacturable mask pattern.
[0094] Based on the above embodiments, in the iterative optimization process of the current mask variable, this application detects the spatial dispersion of the current mask variable after each iteration. When the spatial dispersion exceeds the detection threshold, the current mask variable is corrected to reduce its spatial dispersion. The iterative process continues with the corrected mask variable until convergence, at which point the final mask pattern is output. Since spatial dispersion reflects whether the mask pattern is too discrete and whether the manufacturing quality is good, when the dispersion exceeds the standard, it indicates that the optimization has deviated from the right track. At this time, by correcting and reducing the dispersion and returning to continue the iteration, the optimization process is prevented from falling into a local optimum trap, ensuring that the optimization can continue to move towards the global optimum. This effectively avoids the problem of the iterative optimization process being unable to escape due to falling into a local optimum. At the same time, since the corrected mask variable has lower dispersion, the dispersion of the final output mask pattern is effectively controlled while satisfying the convergence condition, thereby ensuring the manufacturability of the mask pattern and improving the imaging accuracy.
[0095] The optimization process of the above mask pattern is illustrated below with specific examples. Please refer to [link / reference]. Figure 3 and Figure 4 , Figure 3 A schematic diagram of the overall operation process of online inspection for reverse lithography provided in this application embodiment; Figure 4 This application provides a schematic diagram of an online mask detection and reset process, which is detailed below: 1. Input the target image file, perform raster discretization on the target image to obtain a pixelated target image, and establish an initial mask variable as the current mask variable; A photolithography imaging model is established based on the set light source parameters, optical parameters, imaging thin film parameters, photoresist threshold, and mask extraction threshold.
[0096] 2. Enter the iterative loop, use the photolithography imaging model to calculate the optical pattern corresponding to the current mask variable, and then calculate the photoresist pattern; Calculate the loss function value based on the photoresist pattern and the target pattern; Determine if the loss function value is less than the convergence threshold; If so, the mask variable is binarized, and the optimized binarized mask image is output. If not, then gradient descent is used to iteratively update the mask variables, and then proceed to... Figure 4 The mask online detection and reset process is shown.
[0097] 3. Online mask inspection and reset process: Calculate the spatial dispersion of the current mask variables; Determine whether the spatial dispersion is less than the detection threshold; If so, the current mask variable does not need to be modified; the mask variable is output directly, and the process returns to step 2 to continue iterating. If not, the current mask variable is processed sequentially using Gaussian smoothing, Sobel operator to extract edge contours, and scan line method to regenerate the mask variable. The regenerated mask variable is then used as the current mask variable to return to step 2 and continue iterating.
[0098] 4. Repeat the above iterative process until the loss function value is less than the convergence threshold. Then, binarize the mask variables and output the optimized binarized mask pattern.
[0099] This embodiment mainly involves online real-time detection of the dispersion of the partitioned rasterized mask variables during the optimization iteration process of reverse lithography. When the dispersion of the mask variables is large, Gaussian smoothing is performed in time, and then the Sobel operator is superimposed to extract the edge contour. Based on the edge contour, new mask variables are discretized to ensure that the mask optimization direction is deduced in a smoother and more reasonable direction.
[0100] This online mask variable detection and reset algorithm is not a simple restart of the initial values. Instead, it first detects the dispersion of the mask variables by calculating the spatial gradient, and uses this as the restart criterion. If the dispersion is too large, the mask variables are adjusted numerically in a timely manner during the iteration process. Then, Gaussian smooth convolution is performed on the mask variables, and the Sobel operator is superimposed to extract the mask edges. The initial mask variables are then regenerated for the extracted edges to prevent the mask pattern from being too discrete and having low manufacturability. At the same time, it also avoids the optimization saturation problem caused by the iteration entering local optima.
[0101] The following describes a mask pattern optimization system, device, and computer-readable storage medium provided in the embodiments of this application. The mask pattern optimization system, device, and computer-readable storage medium described below can be referred to in correspondence with the mask pattern optimization method described above.
[0102] Please refer to Figure 5 , Figure 5 This application provides a structural block diagram of a mask pattern optimization system, which may include: The iterative optimization module 100 is used to iteratively optimize the current mask variables; The discreteness detection module 200 is used to detect the spatial discreteness of the current mask variable after each iteration; The correction module 300 is used to correct the current mask variable when the spatial dispersion exceeds the detection threshold, so that the spatial dispersion of the corrected mask variable is less than the spatial dispersion of the mask variable before correction, and uses the corrected mask variable as the current mask variable to control the iterative optimization module to continue to perform iterative optimization. Output module 400 is used to output the mask pattern corresponding to the current mask variable when the iterative optimization meets the preset convergence condition.
[0103] Based on the above embodiments, in the iterative optimization process of the current mask variable, this application detects the spatial dispersion of the current mask variable after each iteration. When the spatial dispersion exceeds the detection threshold, the current mask variable is corrected to reduce its spatial dispersion. The iterative process continues with the corrected mask variable until convergence, at which point the final mask pattern is output. Since spatial dispersion reflects whether the mask pattern is too discrete and whether the manufacturing quality is good, when the dispersion exceeds the standard, it indicates that the optimization has deviated from the right track. At this time, by correcting and reducing the dispersion and returning to continue the iteration, the optimization process is prevented from falling into a local optimum trap, ensuring that the optimization can continue to move towards the global optimum. This effectively avoids the problem of the iterative optimization process being unable to escape due to falling into a local optimum. At the same time, since the corrected mask variable has lower dispersion, the dispersion of the final output mask pattern is effectively controlled while satisfying the convergence condition, thereby ensuring the manufacturability of the mask pattern and improving the imaging accuracy.
[0104] Based on the above embodiments, the discreteness detection module 200 may include: The detection region determination unit is used to determine the detection region of the current mask variable based on the position of the target graphic. The detection region includes a target detection region and an auxiliary detection region. The target detection region corresponds to at least a portion of the region inside the target graphic, and the auxiliary detection region corresponds to at least a portion of the region outside the target graphic within a preset range. The spatial dispersion determination unit is used to determine the spatial dispersion of the target detection region and the spatial dispersion of the auxiliary detection region. The spatial dispersion of the target detection region is the sum of the absolute values of the spatial gradients of the current mask variables within the target detection region, and the spatial dispersion of the auxiliary detection region is the sum of the absolute values of the spatial gradients of the current mask variables within the auxiliary detection region. The weighted stacking unit is used to apply a first weight to the spatial dispersion of the target detection area and a second weight to the spatial dispersion of the auxiliary detection area. The weighted stacking results in the spatial dispersion of the current mask variable. The first weight is greater than the second weight.
[0105] Based on the above embodiments, the correction module 300 may include: The smoothing unit is used to smooth the current mask variable to obtain the smoothed mask variable; The edge contour extraction unit is used to extract the edge contours corresponding to the smoothed mask variables; The mask variable reconstruction unit is used to regenerate mask variables based on edge contours to obtain the corrected mask variables.
[0106] Based on the above embodiments, the smoothing unit is specifically used to perform Gaussian smoothing on the current mask variable to obtain the smoothed mask variable.
[0107] Based on the above embodiments, the edge contour extraction unit is specifically used for: An edge detection algorithm is used to perform convolution processing on the smoothed mask variables to extract the edge amplitude of the smoothed mask variables; Points with edge amplitudes greater than the preset contour extraction threshold are extracted to form the edge contour.
[0108] Based on the above embodiments, the mask variable reconstruction unit is specifically used to discretize the edge contour into a pixel grid using the scan line method, obtain pixelated grid values, and use the pixelated grid values as the corrected mask variables.
[0109] Based on the above embodiments, the iterative optimization module 100 may include: The loss function determination unit is used to determine the loss function value between the photoresist pattern corresponding to the current mask variable and the target pattern. The gradient update unit is used to determine the gradient of the loss function value with respect to the current mask variable when the loss function value does not meet the preset convergence condition, and to update the current mask variable according to the gradient.
[0110] Based on the above embodiments, this application also provides a mask pattern optimization device, including: a memory and a processor, wherein the memory is used to store a computer program; the processor is used to execute the computer program to implement the steps of the mask pattern optimization method of the above embodiments. Of course, the mask pattern optimization device may also include various necessary network interfaces, power supplies, and other components.
[0111] This application also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the mask pattern optimization method of the above embodiments. The storage medium may include various media capable of storing program code, such as a USB flash drive, a portable hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0112] This document uses specific examples to illustrate the principles and implementation methods of this application, and the various embodiments are progressively related. Each embodiment focuses on the differences from other embodiments, and similar or identical parts between embodiments can be referred to interchangeably. For the systems disclosed in the embodiments, please refer to the corresponding method description. The above descriptions of the embodiments are only for helping to understand the methods and core ideas of this application. For those skilled in the art, several improvements and modifications can be made to this application without departing from the principles of this application, and these improvements and modifications also fall within the protection scope of this application.
[0113] It should also be noted that, in this specification, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes the element.
Claims
1. A method for optimizing mask patterns, characterized in that, include: Iterative optimization of the current mask variables; After each iteration, the spatial dispersion of the current mask variable is detected; When the spatial dispersion exceeds the detection threshold, the current mask variable is corrected so that the spatial dispersion of the corrected mask variable is less than that of the uncorrected mask variable, and the corrected mask variable is used as the current mask variable to continue the iterative optimization. The mask pattern corresponding to the current mask variable is output when the iterative optimization meets the preset convergence condition.
2. The method for optimizing mask patterns according to claim 1, characterized in that, Detecting the spatial dispersion of the current mask variable includes: The detection area of the current mask variable is determined based on the position of the target graphic. The detection area includes a target detection area and an auxiliary detection area. The target detection area corresponds to at least a portion of the area inside the target graphic, and the auxiliary detection area corresponds to at least a portion of the area outside the target graphic within a preset range. The spatial dispersion of the target detection region and the spatial dispersion of the auxiliary detection region are determined; the spatial dispersion of the target detection region is the sum of the absolute values of the spatial gradients of the current mask variables within the target detection region, and the spatial dispersion of the auxiliary detection region is the sum of the absolute values of the spatial gradients of the current mask variables within the auxiliary detection region. A first weight is applied to the spatial dispersion of the target detection region, and a second weight is applied to the spatial dispersion of the auxiliary detection region. The spatial dispersion of the current mask variable is obtained by weighted summation; the first weight is greater than the second weight.
3. The method for optimizing mask patterns according to claim 1, characterized in that, The current mask variable is modified, including: The current mask variable is smoothed to obtain a smoothed mask variable; Extract the edge contours corresponding to the smoothed mask variables; The mask variables are regenerated based on the edge contours to obtain the corrected mask variables.
4. The method for optimizing mask patterns according to claim 3, characterized in that, The smoothing process for the current mask variable includes: The current mask variable is Gaussian smoothed to obtain the smoothed mask variable.
5. The method for optimizing mask patterns according to claim 3, characterized in that, The step of extracting the edge contour corresponding to the smoothed mask variable includes: An edge detection algorithm is used to perform convolution processing on the smoothed mask variables to extract the edge amplitude of the smoothed mask variables; Points whose edge amplitude is greater than the preset contour extraction threshold are extracted to form the edge contour.
6. The method for optimizing mask patterns according to claim 3, characterized in that, The current mask variable is a matrix of pixel grid values. The process of regenerating the mask variable based on the edge contour to obtain the corrected mask variable includes: The edge contour is discretized into a pixel grid using the scan line method to obtain pixelated grid values, which are then used as the corrected mask variables.
7. The method for optimizing mask patterns according to claim 1, characterized in that, The iterative optimization of the current mask variables includes: Determine the loss function value between the photoresist pattern corresponding to the current mask variable and the target pattern; When the loss function value does not meet the preset convergence condition, the gradient of the loss function value with respect to the current mask variable is determined, and the current mask variable is updated according to the gradient.
8. A mask pattern optimization system, characterized in that, include: The iterative optimization module is used to iteratively optimize the current mask variables; The discreteness detection module is used to detect the spatial discreteness of the current mask variable after each iteration; The correction module is used to correct the current mask variable when the spatial dispersion exceeds the detection threshold, so that the spatial dispersion of the corrected mask variable is less than the spatial dispersion of the mask variable before correction, and to use the corrected mask variable as the current mask variable to control the iterative optimization module to continue to execute the iterative optimization. The output module is used to output the mask pattern corresponding to the current mask variable when the iterative optimization meets the preset convergence condition.
9. A mask pattern optimization device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the mask pattern optimization method as described in any one of claims 1 to 7 when executing the computer program.
10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the mask pattern optimization method as described in any one of claims 1 to 7.
