Mask data processing method and apparatus for lithography
By employing multiple rounds of small-amplitude folding and error diffusion, the problem of coarse mask data conversion in existing technologies has been solved, achieving high-quality mask data conversion and improving the final quality of the mask.
Patent Information
- Application Number
- CN202511365211.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-23
- Publication Date
- 2025-11-21
AI Technical Summary
Existing error diffusion methods have a coarse single-round traversal process when converting continuous mask data into binary mask data, which affects the final quality of the mask.
By employing a multi-round, small-amplitude folding and error diffusion approach, continuous mask data is acquired to determine a discrete set of step values. Preset folding target values are inserted during multiple iterations to gradually reduce the number of step values until only the preset folding target values remain, thus obtaining the target mask data.
It significantly improves the final quality of the mask, overcomes the coarseness problem in the single-round traversal process, and makes the target mask data closer to the preset shrinkage target value.
Smart Images

Figure CN120993686A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of integrated circuit manufacturing, and more specifically to a mask data processing method and apparatus for photolithography. Background Technology
[0002] Photolithography machines are crucial equipment in the field of large-scale integrated circuit manufacturing, and their performance directly determines the transistor density and final performance of the processed chips. To reduce costs, lensless imaging technology has attracted significant attention due to its elimination of complex projection lenses. Currently, lensless imaging technology is mainly applied in three areas of photolithography: interference lithography, Talbot lithography, and holographic diffraction lithography (HDL). Among these, holographic diffraction lithography is suitable for the exposure of complex, non-periodic integrated circuits without lenses.
[0003] The core component of holographic diffraction lithography is the mask, which contains crucial information about the image-side diffraction field. Based on the mask's ability to modulate the illumination wavefront, masks are broadly classified into continuous and discrete types. Further, according to the domain of the modulation function, masks are divided into complex-valued and real-valued types, resulting in a total of four types. Among these, continuous complex-valued masks offer the most degrees of freedom and are therefore the optimal masks for holographic lithography. However, due to fabrication limitations, phase modulation requires thin film materials of specific thickness and refractive index, making continuous complex-valued masks difficult to implement. Real-valued masks, on the other hand, only require amplitude modulation and are easier to manufacture.
[0004] To reduce the difficulty of mask manufacturing, error diffusion algorithms are commonly used to synthesize masks. The core of these algorithms is to sequentially convert continuous mask data into binary mask data through error propagation. However, existing error diffusion methods mostly use a single-round traversal to complete the conversion, traversing each mask data only once. This process is relatively coarse and affects the final quality of the mask. Summary of the Invention
[0005] In view of this, the present invention provides a mask data processing method for photolithography, comprising:
[0006] S1, acquire continuous mask data;
[0007] S2, determine the discrete step value set based on the transmittance value corresponding to each aperture position in the continuous mask data;
[0008] S3, using the step values in the discrete step value set as the diffusion target, the continuous mask data is sequentially subjected to error diffusion based on a preset diffusion path to obtain continuous diffusion mask data;
[0009] S4, insert the preset folding target value into the discrete step value set to obtain the discrete step value set to be folded;
[0010] S5, fold the discrete step value set to be folded to subtract the step values other than the preset folding target value, thereby reducing the number of step values and obtaining the folded discrete step value set;
[0011] S6, using the step value in the set of folded discrete step values as the diffusion target, the continuous diffusion mask data is sequentially subjected to error diffusion based on a preset diffusion path, and then the process returns to step S5 until only the preset folded target value remains in the set of folded discrete step values. Then, using the preset folded target value in the set of folded discrete step values as the diffusion target again, the continuous diffusion mask data is sequentially subjected to error diffusion based on a preset diffusion path, and then the error diffusion of the continuous diffusion mask data is stopped to obtain the target mask data.
[0012] Optionally, step S2 includes:
[0013] S21, determine the range of the continuous mask data based on the transmittance value corresponding to each aperture position in the continuous mask data;
[0014] S22, determine the number of steps according to the range;
[0015] S23, the range is evenly divided into multiple numerical steps according to the number of steps to obtain a discrete step value set, and each step value in the discrete step value set is arranged in ascending order.
[0016] Optionally, step S4 includes:
[0017] S41, the discrete step value set is grouped according to the preset folding target value and the number of preset folding target values to obtain multiple discrete step value subsets and corresponding folding target values, wherein the number of discrete step value subsets is equal to the number of preset folding target values;
[0018] S42, insert the folding target value into the corresponding discrete step value subset to obtain multiple discrete step value subsets to be folded, and combine the multiple discrete step value subsets to be folded to obtain the discrete step value set to be folded.
[0019] Optionally, step S5 includes:
[0020] S51a, determine whether the first and last two step values in the set of discrete step values to be folded are preset folding target values;
[0021] S52a, if the first and last two steps in the set of discrete steps to be folded are both preset folding target values, then the set of discrete steps to be folded is not folded to obtain the folded discrete steps set.
[0022] S53a, if the first and last two step values in the set of discrete step values to be folded are not the preset folding target values, then the first and last two step values in the set of discrete step values to be folded are removed to obtain the set of folded discrete step values.
[0023] S54a, if any one of the first or last step values in the set of discrete step values to be folded is a preset folding target value, then the step values that are not the preset folding target value are removed to obtain the set of discrete step values to be folded.
[0024] Optionally, step S5 includes:
[0025] S51b, determine whether the first and last two step values in each subset of discrete step values to be folded are preset folding target values;
[0026] S52b, if the first and last two step values in the discrete step value subset to be folded are not the preset folding target values, then the first and last two step values in the discrete step value subset to be folded are removed to obtain the folded discrete step value subset.
[0027] S53b, if any one of the first or last step values in the subset of discrete step values to be folded is a preset folding target value, then remove the step values that are not the preset folding target value to obtain the subset of discrete step values to be folded.
[0028] S54b, the folded discrete step value set is obtained by combining multiple subsets of folded discrete step values.
[0029] Optionally, the number of folding rounds to obtain the preset folding target value from the folded discrete step value set is obtained by the number of step values between the step value in each discrete step value subset and the corresponding folding target value.
[0030] Alternatively, the number of folding cycles can be calculated using the following method:
[0031] k=max{k_1+1,k_2+1,…,k_n+1}
[0032] Where k represents the folding cycle, k_1 represents the number of step values in the first discrete step value subset that are farthest from the corresponding folding target value and the interval between the corresponding folding target value, k_2 represents the number of step values in the second discrete step value subset that are farthest from the corresponding folding target value and the interval between the corresponding folding target value, and k_n represents the number of step values in the nth discrete step value subset that are farthest from the corresponding folding target value and the interval between the corresponding folding target value.
[0033] Optionally, the preset folding target value is a binary folding target, and the number n of the discrete step value subset is 2.
[0034] Optionally, the preset folding target value is a folding target multi-value, the number of folding target multi-values is greater than 2, and the number n of the discrete step value subset is greater than 2.
[0035] A second aspect of the present invention provides a mask data processing apparatus for photolithography, the apparatus comprising: a processor and a memory connected to the processor; wherein the memory stores instructions executable by the processor, the instructions being executed by the processor to cause the processor to perform the above-described mask data processing method for photolithography.
[0036] This invention acquires continuous mask data and determines a discrete step value set based on the transmittance values of each aperture in the continuous mask data. It then performs error diffusion on the continuous mask data with the discrete step value set as the target to obtain continuously diffused mask data. Next, a preset folding target value is inserted into the discrete step value set to obtain a discrete step value set to be folded, ensuring that the set contains the preset folding target value. The set is then folded to reduce the number of step values, resulting in a folded discrete step value set that is close to the preset folding target value, further narrowing the data range and making the mask data more focused on the folding target value. Finally, error diffusion is performed on the continuously diffused mask data with the folded discrete step value set as the target, and the process returns to step S5 for iterative iteration until only the preset folding target value remains in the set. After the final error diffusion, the target mask data is obtained. Compared with existing single-round traversal error diffusion methods, this multi-round small-amplitude folding and error diffusion method makes the target mask data closer to the preset shrinkage target value by continuously adjusting the discrete step value and performing error diffusion. This overcomes the problem of coarseness in the single-round traversal process and significantly improves the final quality of the mask. Attached Figure Description
[0037] To more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.
[0038] Figure 1 This is a flowchart of a mask data processing method for photolithography in an embodiment of the present invention;
[0039] Figure 2 This is a schematic diagram of continuous mask data in an embodiment of the present invention;
[0040] Figure 3 This is a schematic diagram of the error diffusion results in an embodiment of the present invention. Detailed Implementation
[0041] The technical solution of the present invention will now be clearly and completely described with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0042] In the description of this invention, it should be noted that the terms "center," "upper," "lower," "left," "right," "vertical," "horizontal," "inner," and "outer," etc., indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings. They are used only for the convenience of describing the invention and for simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation. Therefore, they should not be construed as limitations on the invention. Furthermore, the terms "first," "second," and "third" are used for descriptive purposes only and should not be construed as indicating or implying relative importance.
[0043] Furthermore, the technical features involved in the different embodiments of the present invention described below can be combined with each other as long as they do not conflict with each other.
[0044] like Figure 1 As shown, this embodiment of the invention provides a mask data processing method for photolithography, which is executed by an electronic device such as a computer or server, and specifically includes:
[0045] S1, acquire continuous mask data.
[0046] like Figure 2As shown, this embodiment uses a 4*4 continuous mask as an example, illustrating the transmittance values corresponding to each aperture. The continuous mask data can be complex-valued mask data, which can be generated using existing computer tools through numerical modeling of the target circuit. Each aperture corresponds to a continuous complex value x+yi, where x and y can be values between -1 and 1, and i is the imaginary unit. Continuous mask data can also be real-valued mask data, where each aperture corresponds to a continuous real value, for example... Figure 2 The values [0.40922, -3.86484, 5.79713, 3.05183, 1.53362, 5.4042, 0.39557, 2.5953, 1.93349] are also present.
[0047] -3.65837, 0.97975, -1.41642, 0.32261, -3.3321, 1.7482, -0.66345).
[0048] S2, determine the discrete step value set based on the transmittance value corresponding to each aperture position in the continuous mask data.
[0049] In this embodiment, the transmittance values corresponding to each aperture are processed. For example, these transmittance values can be discretized using an equal-spacing method or other methods to obtain a set of discrete step values with constant differences between elements.
[0050] S3, using the step values in the discrete step value set as the diffusion target, sequentially performs error diffusion on the continuous mask data based on the preset diffusion path to obtain continuous diffusion mask data.
[0051] In this embodiment, the preset diffusion path can be any diffusion path, such as a cyclic diffusion path, a polygonal diffusion path, or a Floyd-Steinberg diffusion method. Taking the Floyd-Steinberg diffusion method as an example, it first traverses the row within the Y-axis direction, and then traverses the row between the rows along the X-axis direction. Its diffusion coefficients are w1 = 7 / 16, w2 = 3 / 16, w3 = 5 / 16, and w4 = 1 / 16. Figure 3As shown, starting from the transmittance value corresponding to the upper left aperture, the discrete step value closest to the transmittance value of 0.40922 is 0.5. The diffusion error e1 = 0.40922 - 0.5 = -0.09078. Therefore, the diffusion coefficient of the aperture on the right is w1 = 7 / 16, the diffusion coefficient of the aperture on the lower left is w2 = 3 / 16 (this aperture is empty and not calculated), and the diffusion coefficient of the aperture below is w3 = 5 / 16. The diffusion coefficient of the bottom right aperture is w4 = 1 / 16. Then, iterating through the transmittance values of the second aperture, the diffusion error of this transmittance value is e1 × w1 = -0.09078 × 7 / 16 = -0.03971. Therefore, the diffused transmittance value is -3.86484 - 0.03971 = -3.90455. The closest discrete step value is -4. Therefore, the transmittance value after diffusion of the error at the second aperture is -4. And so on, we can obtain... Figure 3 The diffusion results are shown. Furthermore, the diffusion coefficients mentioned above are compatible with other coefficient combinations and can be set as needed.
[0052] S4, insert the preset folding target value into the discrete step value set to obtain the discrete step value set to be folded.
[0053] For example, with [0,0.8] as the preset folding target value, the discrete step value set is [-4,-3.5,-3,-2.5,-2,-1.5,-1,-0.5,0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6]. Then, the preset folding target value is inserted into the discrete step value set. Since 0 already exists in the discrete step value set, only 0.8 is inserted. The resulting discrete step value set to be folded is [-4,-3.5,-3,-2.5,-2,-1.5,-1,-0.5,0,0.5,0.8,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6].
[0054] S5, fold the discrete step value set to be folded to subtract the step values other than the preset folding target value, thereby reducing the number of step values and obtaining the folded discrete step value set.
[0055] A folding operation is performed on the set of discrete step values to be folded, removing other step values in the set except for the preset folding target value, thereby reducing the number of step values. Since the preset folding target value has already been inserted in step S4, this step continuously obtains a set of folded discrete step values that are close to the preset folding target value through the folding operation.
[0056] S6, using the step value in the folded discrete step value set as the diffusion target, perform error diffusion on the continuous diffusion mask data sequentially based on the preset diffusion path, and return to step S5 until only the preset folded target value remains in the folded discrete step value set. Then, again using the preset folded target value in the folded discrete step value set as the diffusion target, perform error diffusion on the continuous diffusion mask data sequentially based on the preset diffusion path, and stop performing error diffusion on the continuous diffusion mask data to obtain the target mask data.
[0057] This step uses each step value in the folded discrete step value set as the diffusion target. Following a pre-defined diffusion path, error diffusion is performed on the continuous diffusion mask data one by one. After each error diffusion, the process returns to step S5, where the folded discrete step value set is folded again to further reduce the number of step values and update the folded discrete step value set. This iterative process continues until only the preset folding target value remains in the folded discrete step value set. Then, using the preset folding target value in the folded discrete step value set as the diffusion target, error diffusion is performed on the continuous diffusion mask data sequentially based on the preset diffusion path. At this point, error diffusion on the continuous diffusion mask data stops, and the target mask data that meets the requirements is finally obtained.
[0058] This embodiment acquires continuous mask data and determines a discrete step value set based on the transmittance values of each aperture in the continuous mask data. It then performs error diffusion on the continuous mask data with the discrete step value set as the target to obtain continuous diffusion mask data. Next, a preset folding target value is inserted into the discrete step value set to obtain a discrete step value set to be folded, ensuring that the set contains the preset folding target value. The set is then folded to reduce the number of step values, resulting in a folded discrete step value set close to the preset folding target value, further narrowing the data range and making the mask data more focused on the folding target value. Finally, error diffusion is performed on the continuous diffusion mask data with the folded discrete step value set as the target, and the process returns to step S5 for iterative iteration until only the preset folding target value remains in the set. After the final error diffusion is completed, the target mask data is obtained. Compared with existing single-round traversal error diffusion methods, this multi-round small-amplitude folding and error diffusion method makes the target mask data closer to the preset shrinkage target value by continuously adjusting the discrete step value and performing error diffusion. This overcomes the problem of coarseness in the single-round traversal process and significantly improves the final quality of the mask.
[0059] In some optional embodiments of this example, step S2 includes:
[0060] S21, determine the range of the continuous mask data based on the transmittance value corresponding to each aperture position in the continuous mask data.
[0061] For example Figure 2The range of transmittance values in the data is [-4, 6].
[0062] S22, determine the number of steps based on the range.
[0063] If the range of continuous mask data is determined to be [-4, 6], in order to divide -4 to 6 evenly so that the discrete step values are equidistant intervals, the number of discrete steps n = 21 can be set.
[0064] S23, the range is evenly divided into multiple numerical steps according to the number of steps to obtain a discrete step value set, and the step values in the discrete step value set are arranged in ascending order.
[0065] Based on this step number, the previously determined range is evenly divided into multiple numerical steps. Specifically, if the range is [-4, 6] and the step number is 21, the interval from -4 to 6 will be divided into 21 equal parts, resulting in a series of evenly distributed values. These values form a discrete step value set, such as [-4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6]. The step values in the set are arranged in ascending order.
[0066] The above examples are only to explain the meaning of the discrete step value set in this step. In addition to using the above method to determine the discrete step value set, other methods can be used in other embodiments, such as the discrete step values being unevenly distributed, etc.
[0067] This embodiment determines the data range based on the transmittance values of each aperture in the continuous mask data. Then, it determines an appropriate number of steps based on this range. Finally, it evenly divides the range into multiple numerical steps according to the determined number of steps, forming a discrete set of step values arranged in ascending order. This processing method rationally discretizes the continuous mask data, providing an accurate and orderly data foundation for subsequent operations such as error propagation targeting discrete step values. This helps improve the accuracy and efficiency of subsequent processing, thereby enhancing the overall quality and performance of the system in processing mask data.
[0068] In some optional embodiments of this example, step S4 includes:
[0069] S41, the discrete step value set is grouped according to the preset folding target value and the number of preset folding target values to obtain multiple discrete step value subsets and corresponding folding target values. The number of discrete step value subsets is equal to the number of preset folding target values.
[0070] In step S4, inserting the preset folding target value into the discrete step value set can also be done as follows: If the discrete step value set is [-4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6], first group the discrete step value set. For example, if [0, 0.8] is the preset folding target value, then group the discrete step values closer to 0 and 0.8. Grouping the step values yields the first discrete step value subset [-4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5]. Step values closer to 0 correspond to a folding target value of 0. The second discrete step value subset [1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6] corresponds to a folding target value of 0.8.
[0071] S42, insert the folded target value into the corresponding discrete step value subset to obtain multiple discrete step value subsets to be folded, and combine the multiple discrete step value subsets to be folded to obtain the discrete step value set to be folded.
[0072] The target values 0 and 0.8 are inserted into the corresponding discrete step value subsets. Specifically, 0 is inserted into the first discrete step value subset. Since 0 already exists in the first subset, the first discrete step value subset to be folded is [-4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5]. Then, 0.8 is inserted into the second discrete step value subset, resulting in the second discrete step value subset to be folded: [0.8, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6].
[0073] This embodiment groups the discrete step value set according to a preset folding target value and its quantity, resulting in multiple discrete step value subsets and corresponding folding target values. This grouping method can reasonably divide the data based on their proximity, ensuring that each subset matches the corresponding folding target value. Then, the folding target value is inserted into the corresponding discrete step value subset, forming multiple discrete step value subsets to be folded. This ensures that the discrete step value subsets to be folded contain the preset folding target value, providing clear directional guidance for the subsequent discrete step value folding process. This allows the discrete step values in subsequent processing to more accurately approach the preset folding target value.
[0074] In some optional embodiments of this example, step S5 includes:
[0075] S51a, determine whether the first and last step values in the set of discrete step values to be folded are preset folding target values. If both the first and last step values in the set of discrete step values to be folded are preset folding target values, then execute step S52a; if neither the first nor last step value in the set of discrete step values to be folded is a preset folding target value, then execute step S53a; if any one of the first or last step values in the set of discrete step values to be folded is a preset folding target value, then execute step S54a.
[0076] In this embodiment, it is first determined whether the first step value is a preset folding target value. For example, the first and last steps of [-4,-3.5,-3,-2.5,-2,-1.5,-1,-0.5,0,0.5,0.8,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6] are -4 and 6, respectively. Since neither of the first nor last step values is the preset folding target value 0 or 0.8, step S53a is executed. If the first and last step values in a certain loop step are 0 and 0.8, then step S52a is executed. If the first and last step values in a certain loop step are 0 and 2, and only one of them is a preset folding target value, then step S54a is executed.
[0077] S52a, without folding the discrete step value set to be folded, obtains the folded discrete step value set.
[0078] For example, if the first and last step values are 0 and 0.8 respectively, then the first and last step values 0 and 0.8 are not removed. If [0, 0.5, 0.8] is finally obtained in a certain loop step, and it cannot be folded further, then the set of folded discrete step values [0, 0.8] is directly obtained. Then, step S6 takes [0, 0.8] as the diffusion target, performs error diffusion on the continuous diffusion mask data for the last time based on the preset diffusion path, and then stops the error diffusion on the continuous diffusion mask data to obtain the target mask data.
[0079] S53a, remove the first and last two step values in the set of discrete step values to be folded to obtain the set of folded discrete step values.
[0080] For example, if the first and last step values obtained above are -4 and 6, which are not the preset folding target values of 0 and 0.8, then by directly removing -4 and 6 from the set of discrete step values to be folded, we get the set of folded discrete step values [-3.5,-3,-2.5,-2,-1.5,-1,-0.5,0,0.5,0.8,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5].
[0081] S54a, remove the step values that are not the preset folding target values to obtain a set of discrete folding step values.
[0082] If the first and last step values in a certain loop step are 0 and 2, and only one of them is the preset folding target value, then only the 2 in the set of discrete step values to be folded is removed to obtain the set of folded discrete step values.
[0083] This embodiment determines the outcome based on whether the first and last step values of the discrete step value set to be folded are preset folding target values, categorizing the cases into three types and corresponding to different subsequent steps. If both the first and last values are preset folding target values, step S52a is executed, directly obtaining the folded discrete step value set without folding, avoiding unnecessary operations and ensuring accurate error diffusion for subsequent steps. If neither the first nor last value is a preset folding target value, step S53a is executed, removing the first and last step values to reduce the number of step values and make the set closer to the preset folding target value. If only one of the first or last values is a preset folding target value, step S54a is executed, removing the non-preset folding target value step values to reduce the number of step values and make the set closer to the preset folding target value. This processing method effectively filters and optimizes the discrete step value set to be folded, providing an accurate and reasonable data foundation for subsequent error diffusion of continuous diffusion mask data using the folded discrete step value set as the diffusion target to obtain the target mask data, thus improving the final quality of the target mask.
[0084] In some optional embodiments of this example, step S5 may also be:
[0085] S51b: Determine whether the first and last step values in each subset of discrete step values to be folded are preset folding target values. If neither of the first nor last step values in the subset of discrete step values to be folded are preset folding target values, then proceed to step S52b. If either of the first or last step values in the subset of discrete step values to be folded is a preset folding target value, then proceed to step S53b.
[0086] In step S5, folding the discrete step value set to be folded can also be done as follows: Based on the discrete step value subset to be folded obtained in step S42 above, for example, the first discrete step value subset to be folded is [-4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 0, 0.5], and the second discrete step value subset to be folded is [0.8, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6]. Therefore, this embodiment needs to determine whether the first and last step values in each discrete step value subset to be folded are the preset folding target values. Specifically, first, it is determined whether the first and last step values of the first discrete step value subset to be folded are 0 and 0.8, and then it is determined whether the first and last step values of the second discrete step value subset to be folded are 0 and 0.8. This can be divided into the following cases:
[0087] In the first case, the first and last step values of the first discrete step value subset to be folded are -4 and 0.5, and neither of the two step values is 0 or 0.8, so step S52b is executed directly; the first and last step values of the second discrete step value subset to be folded are 0.8 and 6, and only one step value is 0.8, so step S53b is executed; since the preset folding target values are located in each discrete step value subset to be folded, there will not be a single discrete step value subset to be folded containing all the preset folding target values.
[0088] S52b removes the first and last two step values from the discrete step value subset to be folded, thus obtaining the folded discrete step value subset.
[0089] For example, in step S51b, if the first and last step values of the first discrete step value subset to be folded are not 0 and 0.8, then remove the step values -4 and 0.5 to obtain the first folded discrete step value subset [-3.5, -3, -2.5, -2, -1.5, -1, -0.5, 0].
[0090] S53b removes the step values that are not the preset folding target values to obtain a subset of discrete folding step values.
[0091] For example, in step S51b, if the first and last step values of the second subset of discrete step values to be folded are 0.8 and 6, and there is only one step value of 0.8, then only the step value 6 is removed to obtain the second subset of discrete step values to be folded [0.8,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5].
[0092] S54b, multiple folded discrete step value subsets are combined to obtain a folded discrete step value set.
[0093] This embodiment describes the process of folding a set of grouped discrete step value subsets. Step S51b determines whether the first and last step values of each subset are preset folding target values, and executes subsequent steps based on the results. If neither the first nor the last is a preset folding target value, step S52b removes the first and last step values to make the subset more aligned with the target. If either the first or last is a preset folding target value, step S53b removes the non-preset folding target value step values, reducing the number of step values and making the subset closer to the preset folding target value. Finally, step S54b combines the processed subsets of folded discrete step values into a set of folded discrete step values. This approach not only enables precise optimization for each subset, avoiding unnecessary operations and data interference, but also ensures that the final set of folded discrete step values better matches the preset folding target value. This provides an accurate and reasonable data foundation for subsequent error diffusion of the continuous diffusion mask data to obtain the target mask data, thereby improving the final quality of the target mask.
[0094] In some optional embodiments of this example, the number of folding rounds in step S6 to fold the discrete step value set to obtain the preset folding target value is obtained by the number of step values between the step value in each discrete step value subset and the corresponding folding target value.
[0095] Taking the first set of discrete step values to be folded [-4,-3.5,-3,-2.5,-2,-1.5,-1,-0.5,0,0.5] and the second set of discrete step values to be folded [0.8,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6] obtained in step S42 as an example, the folding target value of the first set of discrete step values to be folded is 0, and the step value farthest from 0 is -4, where 0 and -4 are separated by 7 step values. The folding target value of the second set of discrete step values to be folded is 0.8, and the step value farthest from 0.8 is 6, where 0.8 and 6 are separated by 10 step values. Then the number of folding rounds to fold the discrete step value sets to obtain the preset folding target value is determined by 7 and 10.
[0096] For example, the number of folding cycles is calculated as follows:
[0097] k=max{k_1+1,k_2+1,…,k_n+1}
[0098] Where k represents the folding cycle, k_1 represents the number of step values in the first discrete step value subset that are farthest from the corresponding folding target value and the interval between the corresponding folding target value, k_2 represents the number of step values in the second discrete step value subset that are farthest from the corresponding folding target value and the interval between the corresponding folding target value, and k_n represents the number of step values in the nth discrete step value subset that are farthest from the corresponding folding target value and the interval between the corresponding folding target value.
[0099] If the preset folding target value is a binary folding target, the number of discrete step value subsets n is 2.
[0100] Taking the binary target [0, 0.8] as an example, n = 2. If the number of step values of the interval between the two discrete step value subsets to be folded is 7 and 10, then the number of folding rounds k = max{7, 10} = 10.
[0101] If the preset folding target value is a folding target multi-value, the number of folding target multi-values is greater than 2, and the number of discrete ladder value subsets n is greater than 2.
[0102] Taking the folded target binary [0, 0.8, 1] as an example, n = 3
[0103] In some optional embodiments of this example, if the number of step values of the interval between the two discrete step value subsets to be folded are 7, 10 and 14, then the folding round k = max{7,10,14} = 14.
[0104] This embodiment determines the folding rounds based on the number of intervals between the step value and the corresponding folding target value in each discrete step value subset. Specifically, it calculates the folding rounds by taking the maximum value of the interval between the furthest step value and the target value in each subset. This method is applicable to both binary and multi-valued folding targets, and can accurately plan the folding rounds based on data characteristics to precisely control the error diffusion of continuous diffusion mask data, resulting in a high-quality mask.
[0105] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0106] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0107] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0108] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0109] Obviously, the above embodiments are merely illustrative examples for clear explanation and are not intended to limit the implementation. Those skilled in the art will recognize that other variations or modifications can be made based on the above description. It is neither necessary nor possible to exhaustively list all possible implementations here. However, obvious variations or modifications derived therefrom are still within the scope of protection of this invention.
Claims
1. A method for processing mask data for photolithography, characterized in that, include: S1, acquire continuous mask data; S2, determine the discrete step value set based on the transmittance value corresponding to each aperture position in the continuous mask data; S3, using the step values in the discrete step value set as the diffusion target, the continuous mask data is sequentially subjected to error diffusion based on a preset diffusion path to obtain continuous diffusion mask data; S4, insert the preset folding target value into the discrete step value set to obtain the discrete step value set to be folded; S5, fold the discrete step value set to be folded to subtract the step values other than the preset folding target value, thereby reducing the number of step values and obtaining the folded discrete step value set; S6, using the step value in the set of folded discrete step values as the diffusion target, the continuous diffusion mask data is sequentially subjected to error diffusion based on a preset diffusion path, and then the process returns to step S5 until only the preset folded target value remains in the set of folded discrete step values. Then, using the preset folded target value in the set of folded discrete step values as the diffusion target again, the continuous diffusion mask data is sequentially subjected to error diffusion based on a preset diffusion path, and then the error diffusion of the continuous diffusion mask data is stopped to obtain the target mask data.
2. The method according to claim 1, characterized in that, Step S2 includes: S21, determine the range of the continuous mask data based on the transmittance value corresponding to each aperture position in the continuous mask data; S22, determine the number of steps according to the range; S23, the range is evenly divided into multiple numerical steps according to the number of steps to obtain a discrete step value set, and each step value in the discrete step value set is arranged in ascending order.
3. The method according to claim 2, characterized in that, Step S4 includes: S41, the discrete step value set is grouped according to the preset folding target value and the number of preset folding target values to obtain multiple discrete step value subsets and corresponding folding target values, wherein the number of discrete step value subsets is equal to the number of preset folding target values; S42, insert the folding target value into the corresponding discrete step value subset to obtain multiple discrete step value subsets to be folded, and combine the multiple discrete step value subsets to be folded to obtain the discrete step value set to be folded.
4. The method according to claim 1, characterized in that, Step S5 includes: S51a, determine whether the first and last two step values in the set of discrete step values to be folded are preset folding target values; S52a, if the first and last two steps in the set of discrete steps to be folded are both preset folding target values, then the set of discrete steps to be folded is not folded to obtain the folded discrete steps set. S53a, if the first and last two step values in the set of discrete step values to be folded are not the preset folding target values, then the first and last two step values in the set of discrete step values to be folded are removed to obtain the set of folded discrete step values. S54a, if any one of the first or last step values in the set of discrete step values to be folded is a preset folding target value, then the step values that are not the preset folding target value are removed to obtain the set of discrete step values to be folded.
5. The method according to claim 3, characterized in that, Step S5 includes: S51b, determine whether the first and last two step values in each subset of discrete step values to be folded are preset folding target values; S52b, if the first and last two step values in the discrete step value subset to be folded are not the preset folding target values, then the first and last two step values in the discrete step value subset to be folded are removed to obtain the folded discrete step value subset. S53b, if any one of the first or last step values in the subset of discrete step values to be folded is a preset folding target value, then remove the step values that are not the preset folding target value to obtain the subset of discrete step values to be folded. S54b, the folded discrete step value set is obtained by combining multiple subsets of folded discrete step values.
6. The method according to claim 1, characterized in that, The number of folding cycles to obtain the preset folding target value from the folded discrete step value set is obtained by the number of step values between the step value in each discrete step value subset and the corresponding folding target value.
7. The method according to claim 6, characterized in that, The number of folding cycles is calculated using the following method: k=max{k_1+1,k_2+1,…,k_n+1} Where k represents the folding cycle, k_1 represents the number of step values in the first discrete step value subset that are farthest from the corresponding folding target value and the interval between the corresponding folding target value, k_2 represents the number of step values in the second discrete step value subset that are farthest from the corresponding folding target value and the interval between the corresponding folding target value, and k_n represents the number of step values in the nth discrete step value subset that are farthest from the corresponding folding target value and the interval between the corresponding folding target value.
8. The method according to claim 7, characterized in that, The preset folding target value is a binary folding target value, and the number n of the discrete step value subset is 2.
9. The method according to claim 8, characterized in that, The preset folding target value is a folding target multi-value, the number of the folding target multi-value is greater than 2, and the number n of the discrete ladder value subset is greater than 2.
10. A mask data processing apparatus for photolithography, characterized in that, include: A processor and a memory connected to the processor; wherein the memory stores instructions executable by the processor, the instructions being executed by the processor to cause the processor to perform the mask data processing method for photolithography as described in any one of claims 1-9.