Polygon decomposition method, electronic device, and computer-readable storage medium
By using shape matching and polygon update iteration processing, the problem of high time consumption in polygon decomposition in integrated circuit layout is solved, achieving efficient polygon decomposition and improving universal applicability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-24
- Publication Date
- 2026-03-31
AI Technical Summary
Existing technologies are time-consuming and have low applicability when decomposing polygons in integrated circuit layouts, especially when the graphic size is large.
By obtaining the polygons to be decomposed and candidate polygon templates of the integrated circuit layout, shape matching processing and polygon update iteration processing are performed to obtain the shape matching result. Based on the matching result, polygon decomposition is performed to generate a set of trapezoids for making masks.
It reduces the time spent in the polygon decomposition process, improves decomposition efficiency and universal applicability, and can handle polygons with large graphic sizes.
Smart Images

Figure CN115915617B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of integrated circuit manufacturing technology, and in particular to a polygon decomposition method, electronic device, and computer-readable storage medium. Background Technology
[0002] The rapid development of integrated circuit design is underway, and photolithography is one of the most crucial steps in integrated circuit manufacturing. After the integrated circuit design is completed, the layout needs to be made into a mask, and then photolithography is performed on the layout. The process of making the mask involves a mask-making machine. The integrated circuit layout is composed of various polygons, but the mask-making machine can only create one trapezoid (including triangles, rectangles, and parallelograms) at a time with an electron beam; it cannot process polygons. Therefore, to successfully use the mask-making machine to create the mask, the polygons in the integrated circuit layout need to be decomposed before mask production. When a polygon has hundreds or even tens of thousands of sides, there may be thousands of possible segmentation paths. Finding a relatively good segmentation path is a challenging problem.
[0003] The relevant technologies mainly focus on the decomposition of individual polygons. This involves performing independent calculations for each polygon to find a more effective decomposition method. However, when dealing with large-scale graphics, this method of decomposing individual polygons is time-consuming and has limited general applicability. Summary of the Invention
[0004] This application provides a polygon decomposition method, an electronic device, and a computer-readable storage medium, which can perform more efficient decomposition processing on polygons in integrated circuit layouts, thereby reducing decomposition time and improving general applicability.
[0005] In a first aspect, embodiments of this application provide a polygon decomposition method, comprising: obtaining a polygon to be decomposed from an integrated circuit layout; obtaining multiple candidate polygon templates from a template library; performing shape matching processing and polygon update iteration processing on the polygon to be decomposed and the candidate polygon templates to obtain a shape matching result; and performing polygon decomposition processing on the polygon to be decomposed based on the shape matching result to obtain a set of decomposed trapezoids for making a mask.
[0006] In a second aspect, embodiments of this application provide an electronic device, including: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the polygon decomposition method as described in the first aspect.
[0007] Thirdly, embodiments of this application provide a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, implement the polygon decomposition method as described in the first aspect.
[0008] This application includes the following embodiments: obtaining polygons to be decomposed from an integrated circuit layout; obtaining multiple candidate polygon templates from a template library; performing shape matching and polygon update iteration processing on the polygons to be decomposed and the candidate polygon templates to obtain shape matching results; and performing polygon decomposition processing on the polygons to be decomposed based on the shape matching results to obtain a set of decomposed trapezoids for mask fabrication. According to the scheme of this application embodiment, after obtaining the polygons to be decomposed from the integrated circuit layout and obtaining multiple candidate polygon templates from the template library, shape matching and polygon update iteration processing are performed on the polygons to be decomposed and the candidate polygon templates to obtain shape matching results. Then, polygon decomposition processing is performed on the polygons to be decomposed based on the shape matching results to obtain a set of decomposed trapezoids. The output trapezoid set can be used to fabricate a mask. By adopting processing methods such as polygon update iteration and shape matching based on candidate polygon templates, the time consumption in the polygon decomposition process is reduced, and the polygon decomposition efficiency is improved. That is to say, the scheme of this application embodiment can perform relatively efficient decomposition processing on polygons in an integrated circuit layout, thereby reducing decomposition time and improving general applicability.
[0009] Other features and advantages of this application will be set forth in the following description and will be apparent in part from the description or may be learned by practicing the application. The objectives and other advantages of this application may be realized and obtained by means of the structures particularly pointed out in the description and the accompanying drawings. Attached Figure Description
[0010] Figure 1 This is a schematic diagram of a system architecture for performing a polygon decomposition method according to an embodiment of this application;
[0011] Figure 2 This is a schematic diagram of the structure of a polygon processing apparatus provided in one embodiment of this application;
[0012] Figure 3 This is a flowchart of a polygon decomposition method provided in one embodiment of this application;
[0013] Figure 4 yes Figure 3 A flowchart illustrating a specific method of step S340;
[0014] Figure 5 yes Figure 3 A flowchart illustrating another specific method of step S340;
[0015] Figure 6 yes Figure 3 A flowchart illustrating another specific method of step S340;
[0016] Figure 7 This is a schematic diagram of a template library provided in one embodiment of this application;
[0017] Figure 8 This is a schematic diagram of a polygon to be decomposed provided in one embodiment of this application;
[0018] Figure 9 yes Figure 8 A schematic diagram of the matching situation of the polygons to be decomposed;
[0019] Figure 10 Yes Figure 8 A schematic diagram of polygon decomposition processing of the polygon to be decomposed;
[0020] Figure 11 This is a schematic diagram illustrating the matching of the first remaining graphic according to an embodiment of this application;
[0021] Figure 12 This is a schematic diagram of polygon decomposition processing of a first remaining graphic according to an embodiment of this application;
[0022] Figure 13 This is a schematic diagram of the third partial decomposition result provided in one embodiment of this application;
[0023] Figure 14 This is a schematic diagram of a synthesized trapezoidal set provided in one embodiment of this application;
[0024] Figure 15 This is a schematic diagram of an updated template library provided in one embodiment of this application. Detailed Implementation
[0025] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0026] It should be noted that although a logical order is shown in the flowchart, in some cases, the steps shown or described may be performed in a different order than that shown in the flowchart. The terms "first," "second," etc., in the specification, claims, and the aforementioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0027] This application provides a polygon decomposition method, an electronic device, and a computer-readable storage medium. After obtaining the polygons to be decomposed from an integrated circuit layout and acquiring multiple candidate polygon templates from a template library, shape matching and polygon update iteration processing are performed on the polygons to be decomposed and the candidate polygon templates to obtain shape matching results. Then, based on the shape matching results, polygon decomposition processing is performed on the polygons to be decomposed to obtain a set of decomposed trapezoids. The output trapezoid set can be used to create a mask. By employing processing methods such as updating and iterating polygons and performing shape matching based on candidate polygon templates, the time consumption in the polygon decomposition process is reduced, and the polygon decomposition efficiency is improved. Therefore, the solution of this application embodiment can perform relatively efficient decomposition processing on polygons in integrated circuit layouts, thereby reducing decomposition time and improving general applicability.
[0028] The embodiments of this application will be further described below with reference to the accompanying drawings.
[0029] like Figure 1 As shown, Figure 1 This is a schematic diagram of a system architecture for performing a polygon decomposition method according to an embodiment of this application. Figure 1 In the example, the system framework includes a polygon input device 110, a polygon processing device 120, a template library 130, and a result output device 140, wherein the polygon processing device 120 is communicatively connected to the polygon input device 110, the template library 130, and the result output device 140, respectively.
[0030] The polygon input device 110 is used to input the polygons to be decomposed from the integrated circuit layout and outputs them to the polygon processing device 120. The template library 130 stores candidate polygon templates and correspondingly stores preset decomposition methods for these templates. The result output device 140, after receiving the trapezoid set output by the polygon processing device 120, displays the trapezoid set or sends it to other processing software. The polygon processing device 120 can obtain the polygons to be decomposed from the integrated circuit layout through the polygon input device 110, then obtain multiple candidate polygon templates from the template library, perform shape matching processing and polygon update iteration processing on the polygons to be decomposed and the candidate polygon templates to obtain shape matching results, and finally perform polygon decomposition processing on the polygons to be decomposed based on the shape matching results to obtain the decomposed trapezoid set used for mask fabrication, and output the trapezoid set to the result output device 140. In actual integrated circuit production, through methods such as... Figure 1 The system block diagram shown enables efficient decomposition of polygons in the integrated circuit layout before mask fabrication, thereby reducing decomposition time, improving general applicability, and ultimately increasing the production efficiency of integrated circuits.
[0031] In one alternative implementation, such as Figure 2 As shown, the polygon processing device 120 includes at least a polygon acquisition module 121, a template acquisition module 122, a matching processing module 123, and a decomposition processing module 124.
[0032] The polygon acquisition module 121 acquires the polygons to be decomposed from the integrated circuit layout; the template acquisition module 122 acquires multiple candidate polygon templates from a template library; the matching processing module 123 performs shape matching and polygon update iteration processing on the polygons to be decomposed and the candidate polygon templates to obtain shape matching results; and the decomposition processing module 124 performs polygon decomposition processing on the polygons to be decomposed based on the shape matching results to obtain a set of trapezoids used for mask fabrication. Through the coordinated operation of these modules, the polygon processing device 120 can perform relatively efficient decomposition processing on the polygons in the integrated circuit layout, thereby reducing decomposition time and improving general applicability.
[0033] The system architecture and application scenarios described in this application are intended to more clearly illustrate the technical solutions of this application and do not constitute a limitation on the technical solutions provided in this application. Those skilled in the art will understand that as system architectures evolve and new application scenarios emerge, the technical solutions provided in this application are also applicable to similar technical problems.
[0034] It will be understood by those skilled in the art that Figure 1 The system architecture shown does not constitute a limitation on the embodiments of this application. It may include more or fewer components than shown, or combine certain components, or have different component arrangements.
[0035] Based on the above system architecture, various embodiments of the polygon decomposition method of this application are proposed below.
[0036] Firstly, such as Figure 3 As shown, Figure 3 This is a flowchart of a polygon decomposition method provided in one embodiment of this application. This polygon decomposition method can be applied to a polygon processing device, such as... Figure 1 In the polygon processing device 120 of the system architecture shown, the polygon decomposition method may include, but is not limited to, steps S310 to S340.
[0037] Step S310: Obtain the polygons to be decomposed from the integrated circuit layout.
[0038] Step S320: Obtain multiple candidate polygon templates from the template library.
[0039] Step S330: Perform shape matching processing and polygon update iteration processing on the polygon to be decomposed and the candidate polygon template to obtain the shape matching result.
[0040] Step S340: Perform polygon decomposition processing on the polygon to be decomposed based on the shape matching result to obtain a set of decomposed trapezoids for making a mask.
[0041] In this embodiment, through steps S310 to S340, after obtaining the polygon to be decomposed and multiple candidate polygon templates from the template library, shape matching and polygon update iteration processing are performed on the polygon to be decomposed and the candidate polygon templates to obtain shape matching results. Then, based on the shape matching results, polygon decomposition processing is performed on the polygon to be decomposed to obtain a set of decomposed trapezoids. The output set of trapezoids can be used to make masks. By adopting processing methods such as updating and iterating polygons and performing shape matching based on candidate polygon templates, the time consumption in the polygon decomposition process is reduced and the polygon decomposition efficiency is improved. Therefore, the solution of this embodiment can perform more efficient decomposition processing on polygons in integrated circuit layouts, thereby reducing decomposition time and improving universal applicability.
[0042] It is understood that there may be multiple polygons to be decomposed in an integrated circuit layout, and this application does not impose a specific limit on the number of polygons to be decomposed. Furthermore, the embodiments of this application can also handle polygons with large graphic sizes, demonstrating universality.
[0043] In another embodiment, step S330, "performing shape matching processing and polygon update iteration processing on the polygon to be decomposed and the candidate polygon template to obtain a shape matching result," is further explained. This step may include, but is not limited to, the following steps:
[0044] The process involves dividing the multiple vertices of the polygon to be decomposed into a starting point and an ordered set of vertices including the remaining vertices. A first polygon to be matched is obtained based on the starting point and the vertices obtained from the ordered set. The first polygon to be matched is then matched with a candidate polygon template to obtain a first matching result. Based on this first matching result, the first polygon to be matched is iteratively updated to obtain a second polygon to be matched. The second polygon to be matched is then matched with the candidate polygon template again to obtain a next matching result. Finally, after the processing of the polygon to be decomposed is complete, the matching results are summarized to obtain the shape matching result of the polygon to be decomposed.
[0045] Specifically, the polygon to be decomposed has multiple vertices. First, the multiple vertices of the polygon to be decomposed are partitioned to obtain a starting point and an ordered set of vertices including the remaining vertices. That is, after determining a starting point that is easy to detect, the remaining vertices are partitioned sequentially in a clockwise direction from the starting point to obtain an ordered set of vertices. It is understood that this application does not impose specific restrictions on the vertex selected as the starting point.
[0046] Then, the first polygon to be matched is obtained based on the starting point and vertices obtained from the ordered vertex set. That is, one vertex is obtained sequentially from the ordered vertex set, and the first polygon to be matched is constructed based on the starting point and vertices obtained from the ordered vertex set. It is understandable that at least three points are needed to form a polygon. Therefore, if there are only two points and it is not possible to form a polygon, the next vertex is obtained sequentially to construct the first polygon to be matched.
[0047] Next, after obtaining the first polygon to be matched, a shape matching process is performed between the first polygon and the candidate polygon templates to obtain a matching result. It can be understood that in a shape matching process, the first polygon to be matched is compared in shape with at least one candidate polygon template. After completing a shape matching process, the matching result for this process can be obtained. The matching result includes two cases: successful matching and failed matching. Successful matching means matching a target template with the same shape; failed matching means not matching a target template with the same shape.
[0048] Subsequently, based on the matching result, the first polygon to be matched is updated and iterated to obtain the second polygon to be matched.
[0049] In cases where no matching target template of the same shape is found, the first polygon to be matched is updated iteratively based on the ordered vertex set to obtain the second polygon to be matched. Specifically, when no matching target template of the same shape is found, the next vertex is sequentially obtained from the ordered vertex set, and the vertices constituting the first polygon to be matched are sequentially connected to the obtained next vertex to obtain the second polygon to be matched. The first polygon to be matched is then updated iteratively using the second polygon to be matched. That is, in the next shape matching process, the second polygon to be matched becomes the new processing object.
[0050] Furthermore, when a target template with the same shape is matched, the unmatched remaining shape is obtained by segmenting the polygon to be decomposed based on the first polygon to be matched. The remaining shape is then re-divided into vertices to obtain the second polygon to be matched, and the first polygon to be matched is updated using the second polygon to be matched. Specifically, when a target template with the same shape is matched, the first polygon to be matched is segmented from the polygon to be decomposed to obtain the remaining shape; for the remaining shape, the above vertex division process is repeated to obtain the second polygon to be matched, and the first polygon to be matched is updated using the second polygon to be matched. That is, in the next shape matching process, the second polygon to be matched is the new processing object. It can be understood that the polygon update iteration method can be determined based on the current matching situation to obtain the second polygon to be matched, so that the next shape matching process can be performed based on the second polygon to be matched. When the polygon size is large, compared to the method of searching all polygons and performing independent calculations on each individual polygon, the solution of this embodiment reduces the computational complexity through polygon update iteration, which is beneficial to reducing the time consumption in the polygon decomposition process.
[0051] Next, the second polygon to be matched is subjected to another shape matching process with the candidate polygon template to obtain the next matching result. It can be understood that after completing the shape matching process based on the second polygon to be matched, the matching result of this shape matching process can be obtained. The second polygon to be matched is then iteratively updated based on this matching result to obtain the third polygon to be matched; and so on, until all vertices in the ordered vertex set have been traversed or the remaining shape cannot be further divided, at which point the processing of the polygons to be decomposed ends.
[0052] Finally, after the processing of the polygons to be decomposed is completed, the matching results are summarized to obtain the shape matching results of the polygons to be decomposed.
[0053] Specifically, when all vertices in the ordered vertex set have been traversed or the remaining shape cannot be further divided, the matching results are summarized to obtain the shape matching result of the polygon to be decomposed.
[0054] In some embodiments, the matching status of each shape matching process is obtained. If only the last matching case is successful, the shape matching result of the polygon to be decomposed is determined to be a global shape match. That is, starting from the starting point of the polygon to be decomposed, the probe continues until the last vertex of the ordered vertex set is reached, meaning the first polygon to be matched has been updated and iterated into a global polygon to be decomposed. Only then is a target template matching the global shape found in the template library. In other words, only one target template with the same global shape as the polygon to be decomposed is matched. Conversely, if all matching cases fail, the shape matching result of the polygon to be decomposed is determined to be a global shape mismatch. That is, starting from the starting point of the polygon to be decomposed, the probe continues until the last vertex of the ordered vertex set is reached, meaning the first polygon to be matched has been updated and iterated into a global polygon to be decomposed. Even then, a target template with the same shape as the polygon to be decomposed cannot be found in the template library. In other cases, the shape matching result of the polygon to be decomposed is determined to be a local shape match.
[0055] This application embodiment determines the method for updating and iterating the polygons to be matched based on the matching results of shape matching processing. New polygons to be matched are obtained based on the selected update and iteration method, and the next shape matching process is performed until all polygons to be decomposed are processed. The shape matching result is obtained by combining the matching results of each iteration. This application embodiment reduces computational complexity, which helps to reduce the time consumed in the polygon decomposition process and improves the efficiency of polygon decomposition. Furthermore, this application embodiment can handle polygons with larger graphic scales and complex shape structures, and has universal applicability.
[0056] Understandably, different polygon decomposition methods exist based on different shape matching results; next, we will combine... Figure 4 , Figure 5 and Figure 6 Each will be explained separately.
[0057] In one embodiment, such as Figure 4 As shown, Figure 4 yes Figure 3 A flowchart illustrating a specific method for step S340. Step S340 may include, but is not limited to, steps S410 to S460.
[0058] Step S410: If the shape matching result is a local shape matching, determine the local matching template that matches the local shape of the polygon to be decomposed from the candidate polygon templates.
[0059] Step S420: Divide the polygon to be decomposed into locally matching regions and non-matching regions according to the local matching template.
[0060] Step S430: Query the template library for the corresponding preset decomposition method based on the local matching template.
[0061] Step S440: Perform a first decomposition process on the local matching region according to the preset decomposition method to obtain the first decomposition result, which is a trapezoidal set corresponding to the local matching region.
[0062] Step S450: Perform a second decomposition process on the mismatched region using a preset polygon decomposition algorithm to obtain the second decomposition result, which is a set of trapezoids corresponding to the mismatched region.
[0063] Step S460: Combine the first decomposition result and the second decomposition result to obtain a trapezoidal set.
[0064] In this embodiment, steps S410 to S460 enable the use of a preset decomposition method to directly perform a first decomposition on the local matching region when the shape matching result is a local shape match. Specifically, the first decomposition result is a set of trapezoids obtained after decomposing the local matching region. Then, a preset polygon decomposition algorithm is used to perform a second decomposition on the non-matching region, resulting in a second decomposition result. This second decomposition result is also a set of trapezoids obtained after decomposing the non-matching region. Combining the first and second decomposition results yields a set of trapezoids representing the polygon to be decomposed, which is used to create a mask. This embodiment reduces the time required for polygon decomposition by using a preset segmentation method, thus possessing universality.
[0065] It is understood that the preset polygon decomposition algorithm used in the second decomposition process can be an optimal segmentation algorithm based on integer linear programming or other Fracture (decomposition) algorithms. This application does not impose specific restrictions on the preset polygon decomposition algorithm used in the second decomposition process.
[0066] According to some embodiments of this application, after step S460: "combining the first decomposition result and the second decomposition result to obtain a trapezoidal set", the following steps are included, but not limited to: first, vectorizing the mismatched region to construct a reference polygon template for the mismatched region; then, saving the reference polygon template for the mismatched region to a template library; finally, saving the second decomposition result corresponding to the reference polygon template to a template library to update the template library.
[0067] In some embodiments of this application, vectorization processing includes: acquiring a graphic to be processed; dividing the graphic into multiple vertices to obtain vector starting points and remaining vertices; sequentially traversing the remaining vertices to obtain initial vectors pointing from the vector starting points to the remaining vertices; determining a reference vector from each initial vector and obtaining the reference length of the reference vector; dividing all initial vectors by the reference length to obtain the scaling vectors of each initial vector; and scaling the vectors in an ordered set to obtain a reference polygon template. The reference polygon template is composed of vectors, and since the direction of the vectors is not affected by scaling, the reference polygon template can match polygons of the same shape but different sizes. Furthermore, by performing operations such as rotation and mirroring on the reference polygon template, polygons with different shapes and overall angular orientations can be matched. It is understood that the operations performed on the reference polygon template during shape matching include at least one of the following: scaling, rotation, and mirroring. In other words, the reference polygon template can be processed by scaling, rotation, and mirroring simultaneously; or by using one of the three operations; or by using two of the three operations.
[0068] In another embodiment, if all matching attempts are successful, the shape matching result is determined to be a local shape matching; a local matching template that matches the local shape of the polygon to be decomposed is determined from the candidate polygon templates; the polygon to be decomposed is divided into multiple local matching regions according to the local matching template; a corresponding preset decomposition method is found in the template library according to the local matching template; the multiple local matching regions are subjected to a first decomposition process according to the preset decomposition method to obtain multiple first decomposition results. It can be understood that each first decomposition result is a trapezoidal set corresponding to each local matching region; then, the multiple first decomposition results are combined to obtain a trapezoidal set corresponding to the polygon to be decomposed.
[0069] In one embodiment, such as Figure 5 As shown, Figure 5 yes Figure 3 A flowchart illustrating another specific method of step S340. Step S340 may include, but is not limited to, steps S510 to S530.
[0070] Step S510: If the shape matching result is an overall shape match, determine the overall matching template that matches the overall shape of the polygon to be decomposed from the candidate polygon templates;
[0071] Step S520: Based on the overall matching template, query the template library to obtain the corresponding preset decomposition method;
[0072] Step S530: Perform the first decomposition process on the entire polygon to be decomposed according to the preset decomposition method to obtain a trapezoid set.
[0073] In this embodiment, steps S510 to S530 enable the system to perform a first decomposition process on the entire polygon to be decomposed by querying a corresponding preset decomposition method through the overall matching template when the shape matching result is an overall shape match. This process yields a set of trapezoids used to create a mask. When the shape of the polygon to be decomposed matches a template as a whole, complex decomposition calculations are not required, achieving a more efficient polygon decomposition process.
[0074] In one embodiment, such as Figure 6 As shown, Figure 6 yes Figure 3 A flowchart illustrating another specific method of step S340. Step S340 may include, but is not limited to, step S610.
[0075] Step S610: If the shape matching result is that the overall shape does not match, the polygon to be decomposed is subjected to a second decomposition process using a preset polygon decomposition algorithm to obtain a set of trapezoids.
[0076] In this embodiment, step S610 involves decomposing polygons that cannot be matched with templates of the same shape from the template library using a preset polygon decomposition algorithm to obtain a set of trapezoids for mask creation. Decomposing polygons that fail to match facilitates further learning of these polygons to obtain new polygon templates. Adding these new polygon templates to the template library enriches the library and further enhances the versatility of this solution.
[0077] In some embodiments of this application, after step S610: when the shape matching result is an overall shape mismatch, and after obtaining a trapezoid set by performing a second decomposition process on the polygon to be decomposed using a preset polygon decomposition algorithm, the following steps are further included: vectorizing the polygon to be decomposed to construct a reference polygon template for the polygon to be decomposed; saving the reference polygon template for the polygon to be decomposed to a template library; and saving the trapezoid set corresponding to the reference polygon template to the template library to update the template library. This application embodiment obtains new polygon templates by further learning polygons that cannot be matched with existing templates, and adds the new polygon templates and their corresponding decomposition methods to the template library, enriching the template library and further improving the universal applicability of the solution in this application.
[0078] The vectorization process includes: acquiring the graphic to be processed; dividing the graphic into multiple vertices to obtain the vector starting point and the remaining vertices; sequentially traversing the remaining vertices to obtain each initial vector pointing from the vector starting point to each of the remaining vertices; determining the reference vector from each initial vector and obtaining the reference length of the reference vector; dividing all initial vectors by the reference length to obtain the scaling vector of each initial vector; and scaling the vectors in an ordered set to obtain the reference polygon template.
[0079] Specifically, to obtain the polygon to be decomposed as the graphic to be processed, firstly, the vector origin and the remaining vertices are divided from the multiple vertices of the polygon to be decomposed. Then, initial vectors pointing from the vector origin to each of the remaining vertices are obtained. The first initial vector can be selected as the reference vector, and the reference length of the reference vector is obtained. Next, all initial vectors are divided by the reference length to scale the initial vectors, resulting in scaled vectors. The ordered set of scaled vectors yields the reference polygon template of the polygon to be decomposed. Since the direction of the vectors is not affected by scaling, this reference polygon template can match polygons of the same shape but different sizes. In addition, by performing operations such as rotation and mirroring on the reference polygon template, polygons with different shapes and overall angles can be matched. It can be understood that the operations used on the reference polygon template during shape matching include at least one of the following: scaling, rotation, and mirroring. That is, scaling, rotation, and mirroring can be used simultaneously to process the reference polygon template; one of these three operations can be used; or two of these three operations can be used.
[0080] Combination Figures 7 to 15 For example:
[0081] like Figure 7 As shown, in the template library, the first row is the candidate polygon templates, and the second row is the set of trapezoids decomposed from each candidate polygon template. That is, by querying the candidate polygon templates, the preset decomposition method can be determined.
[0082] Get Figure 8 The polygon shown is a complete polygon.
[0083] Starting from a vertex of the polygon to be decomposed, shape matching is performed to check whether it can match a candidate polygon template in the template library, resulting in... Figure 9 The matching situation shown is the first local matching region in the polygon to be decomposed, where there is a local shape matching.
[0084] Perform the following steps on the polygon to be decomposed: Figure 10The polygon decomposition process shown involves performing a first decomposition process on the first local matching region according to the matched local matching template and the corresponding preset decomposition method, to obtain the first local decomposition result, which is the trapezoidal set corresponding to the first local matching region; and then cutting the first local matching region out of the polygon to be decomposed to obtain the first remaining graphic.
[0085] Continue with shape matching and polygon update iterations on the first remaining shape to obtain, as shown below. Figure 11 The matching situation shown is that there is a second local matching region in the first remaining graphic where the shape is matched locally.
[0086] Perform the following steps on the first remaining figure: Figure 12 The polygon decomposition process shown involves performing a first decomposition process on the second local matching region according to the matched local matching template and the corresponding preset decomposition method, to obtain the second local decomposition result, which is the trapezoidal set corresponding to the second local matching region; and then separating the second local matching region from the first remaining graphic to obtain the second remaining graphic.
[0087] If the second remaining graphic cannot be matched with a target template of the same shape, a preset polygon decomposition algorithm is used to perform a second decomposition process on the second remaining graphic, resulting in the following: Figure 13 The result of the third local decomposition is shown.
[0088] The results of the first, second, and third local decompositions are combined and output as follows: Figure 14 The resulting set of trapezoids completes the decomposition of the polygons to be decomposed, thus improving the efficiency of polygon decomposition.
[0089] Finally, the unmatched second residual graphic is vectorized to obtain the corresponding baseline polygon target. This baseline polygon target and the corresponding third local decomposition result are added to the template library to obtain, as shown below. Figure 15 The updated template library is shown. By further learning polygons that cannot be matched with existing templates, new polygon templates are obtained. These new polygon templates and their corresponding decomposition methods are added to the template library, enriching it and further improving the universal applicability of the proposed solution.
[0090] Secondly, one embodiment of this application also provides an electronic device, which includes: a memory, a processor, and a computer program stored in the memory and executable on the processor.
[0091] The processor and memory can be connected via a bus or other means.
[0092] Memory, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs and non-transitory computer-executable programs. Furthermore, memory may include high-speed random access memory, and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some embodiments, memory may optionally include memory remotely located relative to the processor, and these remote memories can be connected to the processor via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0093] The non-transient software program and instructions required to implement the polygon decomposition method of the above embodiments are stored in memory. When executed by a processor, the polygon decomposition method of the above embodiments is executed, for example, the method described above is executed. Figure 3 Method steps S310 to S340 in the text Figure 4 Method steps S410 to S460 in the text Figure 5 Method steps S510 to S530 and Figure 6 Method step S610.
[0094] Since the electronic device of this embodiment can implement the polygon decomposition method as in any of the preceding embodiments, the electronic device of this embodiment has the same technical principle and the same technical effect as the polygon decomposition method in any of the preceding embodiments. To avoid repetition and redundancy, it will not be described again here.
[0095] The device or system embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.
[0096] Thirdly, one embodiment of this application also provides a computer-readable storage medium storing computer-executable instructions that are executed by a processor or controller, for example, by a processor in the above-described device embodiment, causing the processor to perform the polygon decomposition method in the above-described embodiment, for example, to perform the above-described... Figure 3 Method steps S310 to S340 in the text Figure 4 Method steps S410 to S460 in the text Figure 5 Method steps S510 to S530 and Figure 6 Method step S610.
[0097] It will be understood by those skilled in the art that all or some of the steps and systems in the methods disclosed above can be implemented as software, firmware, hardware, and suitable combinations thereof. Some or all of the physical components can be implemented as software executed by a processor, such as a central processing unit, digital signal processor, or microprocessor, or as hardware, or as an integrated circuit, such as an application-specific integrated circuit. Such software can be distributed on a computer-readable medium, which can include computer storage media (or non-transitory media) and communication media (or transient media). As is known to those skilled in the art, the term computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage, magnetic cartridges, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and is accessible to a computer. Furthermore, as is known to those skilled in the art, communication media typically contain computer-readable instructions, data structures, program modules, or other data in modulated data signals such as carrier waves or other transmission mechanisms, and may include any information delivery medium.
[0098] The above provides a detailed description of the preferred embodiments of this application. However, this application is not limited to the above-described embodiments. Those skilled in the art can make various equivalent modifications or substitutions without departing from the spirit of this application. All such equivalent modifications or substitutions are included within the scope defined by this application.
Claims
1. A method of polygon decomposition, characterized by, The method comprises the following steps: obtaining a to-be-decomposed polygon of an integrated circuit layout; obtaining a plurality of candidate polygon templates from a template library; performing shape matching processing and polygon update iteration processing on the to-be-decomposed polygon and the candidate polygon templates to obtain a shape matching result; performing polygon decomposition processing on the to-be-decomposed polygon according to the shape matching result to obtain a trapezoid set for manufacturing a mask after decomposition; wherein the shape matching processing and polygon update iteration processing on the to-be-decomposed polygon and the candidate polygon templates to obtain a shape matching result comprises: performing vertex division processing on a plurality of vertices of the to-be-decomposed polygon to obtain a starting point and an ordered vertex set comprising the remaining vertices; obtaining a first to-be-matched polygon according to the starting point and a vertex obtained from the ordered vertex set; performing one-time shape matching processing on the first to-be-matched polygon and the candidate polygon templates to obtain a one-time matching condition; performing polygon update iteration processing on the first to-be-matched polygon according to the one-time matching condition to obtain a second to-be-matched polygon; performing next-time shape matching processing on the second to-be-matched polygon and the candidate polygon templates to obtain a next-time matching condition; and in the case that the processing of the to-be-decomposed polygon is completed, the matching conditions are summarized to obtain the shape matching result of the to-be-decomposed polygon; the polygon decomposition processing on the to-be-decomposed polygon according to the shape matching result to obtain a trapezoid set for manufacturing a mask after decomposition comprises: in the case that the shape matching result is a local shape matching, determining a local matching template matched with the local shape of the to-be-decomposed polygon from the candidate polygon templates; dividing the to-be-decomposed polygon into a local matching area and a non-matching area according to the local matching template; querying a corresponding preset decomposition mode in the template library according to the local matching template; performing first decomposition processing on the local matching area according to the preset decomposition mode to obtain a first decomposition result, the first decomposition result being a trapezoid set corresponding to the local matching area; performing second decomposition processing on the non-matching area by a preset polygon decomposition algorithm to obtain a second decomposition result, the second decomposition result being a trapezoid set corresponding to the non-matching area; and performing synthesis processing on the first decomposition result and the second decomposition result to obtain the trapezoid set.
2. The polygon decomposition method of claim 1, wherein, after obtaining the second decomposition result, the method further comprises: performing vectorization processing on the non-matching area to construct a reference polygon template of the non-matching area; saving the reference polygon template of the non-matching area to the template library; saving the second decomposition result corresponding to the reference polygon template to the template library to update the template library.
3. The polygon decomposition method of claim 1, wherein, the polygon decomposition processing on the to-be-decomposed polygon according to the shape matching result to obtain a trapezoid set for manufacturing a mask after decomposition comprises: In a case that the shape matching result is overall shape matching, an overall matching template matching an overall shape of the to-be-decomposed polygon is determined from the candidate polygon templates; A corresponding preset decomposition mode is queried from the template library according to the overall matching template; The to-be-decomposed polygon is subjected to first decomposition processing according to the preset decomposition mode, and the trapezoid set is obtained.
4. The polygon decomposition method of claim 1, wherein, The polygon decomposition processing of the to-be-decomposed polygon according to the shape matching result to obtain the trapezoid set for manufacturing a mask includes: In a case that the shape matching result is overall shape matching, an overall matching template matching an overall shape of the to-be-decomposed polygon is determined from the candidate polygon templates; 5. The method of claim 4, wherein, A corresponding preset decomposition mode is queried from the template library according to the overall matching template; The to-be-decomposed polygon is subjected to first decomposition processing according to the preset decomposition mode, and the trapezoid set is obtained. The polygon decomposition processing of the to-be-decomposed polygon according to the shape matching result to obtain the trapezoid set for manufacturing a mask includes: In a case that the shape matching result is overall shape matching, an overall matching template matching an overall shape of the to-be-decomposed polygon is determined from the candidate polygon templates; 6. The method of polygon resolution of any one of claims 2 or 5, wherein, The trapezoid set is obtained, and further includes: The to-be-decomposed polygon is subjected to vectorization processing to construct a reference polygon template of the to-be-decomposed polygon; The reference polygon template of the to-be-decomposed polygon is saved to the template library; The trapezoid set corresponding to the reference polygon template is saved to the template library to update the template library. The vectorization processing includes: Obtaining a to-be-processed graph; Dividing a plurality of vertices of the to-be-processed graph to obtain a vector starting point and remaining vertices; 7. An electronic device, comprising: Iterating the remaining vertices in sequence to obtain initial vectors respectively pointed to each of the remaining vertices from the vector starting point; Determining a reference vector from the initial vectors and obtaining a reference length of the reference vector; 8. A computer-readable storage medium, characterized in that, Dividing all the initial vectors by the reference length respectively to obtain scaling vectors of the initial vectors; Collecting the scaling vectors in sequence to obtain the reference polygon template. It includes: A memory, a processor, and a computer program stored on the memory and executable on the processor, wherein the processor executes the computer program to implement the polygon decomposition method of any one of claims 1 to 6. Computer executable instructions are stored, and the computer executable instructions are executed by a processor to implement the polygon decomposition method of any one of claims 1 to 6.
Citation Information
Patent Citations
Polygon segmentation method, device and equipment for building plot and storage medium
CN115063508A
Apparatus and method for segmenting edges for optical proximity correction
US20060248496A1