Jacking Method, Device, Storage Medium and Simulation Method for Layout Patterns
By determining and selecting the optimal insertion point in the layout diagram for jack processing, the problem of geometric feature distortion caused by inaccurate inner hole insertion is solved, the accuracy and efficiency of convex decomposition are improved, and the accuracy of subsequent simulation is ensured.
Patent Information
- Application Number
- CN202411441627.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-16
- Publication Date
- 2025-07-01
- Estimated Expiration
- 2044-10-16
AI Technical Summary
Before convex decomposition of the layout pattern, it is difficult for the prior art to accurately insert the inner hole of the polygon into the outer contour, resulting in the calculated equivalent line width and equivalent spacing distortion with the geometric features of the original polygon, affecting the accuracy of subsequent CMP model software simulation.
A jack method for layout graphics is provided. By determining the insertable directed segments of the polygonal inner hole, selecting the optimal insertion point, and jacking the target inner hole until all inner holes are inserted into the outer contour, ensuring that the scribe distance generated by the jack is the shortest and retaining the geometric characteristics of the polygon.
The accuracy of convex decomposition of Manhattan polygons is improved, the number of convex polygons is reduced, the accuracy of subsequent calculation of line width is improved, and the accuracy of CMP model software simulation is ensured.
Smart Images

Figure CN118966139B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of image processing technology, and particularly to a method and device for inserting holes in layout graphics, a storage medium, and a simulation method. Background Art
[0002] CMP (Chemical Mechanical Polishing) is a key step in realizing the planarization of the silicon wafer surface in the current integrated circuit manufacturing process. At process nodes of 65 nm and below, some designs that are not friendly to the process in the chip design stage may still form defects such as dish-shaped depressions, dielectric corrosion, and metal thickness fluctuations during the CMP stage even if they do not violate the design rules, thereby causing fluctuations in the resistance and capacitance of the interconnect lines, and even short circuits and open circuits in the metal interconnections, and causing problems such as insufficient process windows in subsequent process steps.
[0003] The industry has introduced CMP model software to improve the manufacturability of chip designs. When simulating the CMP model software, in order to improve efficiency, the layout graphics of the integrated circuit are meshed and the geometric parameters of each grid are calculated. The geometric parameters mainly include graphic density, equivalent line width, equivalent pitch, and perimeter, etc. Since the layout graphics are mainly composed of a large number of Manhattan polygons, when calculating the equivalent line width and equivalent pitch of the layout, it is first necessary to cut the complex Manhattan polygons into multiple simple rectangles, and then calculate the equivalent line width and equivalent pitch according to the geometric characteristics of the cut rectangles.
[0004] Before performing convex decomposition on the polygon (i.e., cutting the Manhattan polygon), the inner holes of the polygon need to be inserted into the outer contour. This type of hole insertion before convex decomposition requires the scribed lines generated by the hole insertion to be the shortest. An unreasonable hole insertion method will result in problems such as the calculated equivalent line width and equivalent pitch being distorted from the geometric characteristics of the original polygon and being unable to accurately express the line width characteristics of the original polygon, thus affecting the accuracy of subsequent CMP model software simulation.
[0005] Therefore, how to reasonably insert the inner holes of the polygon into the outer contour of the polygon for application scenarios such as convex decomposition, improve the accuracy of convex decomposition of the Manhattan polygon, and improve the convex decomposition efficiency is a problem that needs to be solved. Summary of the Invention
[0006] Based on this, in view of the above technical problems, it is necessary to provide a method and device for inserting holes in layout graphics, a computer device, and a storage medium that can reasonably insert the inner holes of the polygon into the outer contour of the polygon, improve the accuracy of convex decomposition of the Manhattan polygon, and improve the convex decomposition efficiency.
[0007] In a first aspect, this application provides a method for inserting holes in layout graphics, and the method includes:
[0008] Obtain a layout, and determine an outer contour and multiple inner holes to be processed by inserting holes in the layout; the outer contour is a polygon, and the inner holes are polygons inside the outer contour;
[0009] Select a target inner hole for subsequent hole insertion processing among the inner holes, and perform hole insertion processing on the target inner hole until the hole insertion processing of all inner holes is completed;
[0010] The hole insertion processing includes: determining all insertable directed line segments of the target inner hole; the starting point of the insertable directed line segment is a vertex of the target inner hole, and the ending point is an intersection point with the outer contour or an intersection point with a second inner hole; the second inner hole is one of the remaining inner holes other than the target inner hole among the inner holes;
[0011] Determine an optimal insertion point of the target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole;
[0012] Based on the optimal insertion point, perform hole insertion processing on the target inner hole, and update the target inner hole to the outer contour or merge it into the second inner hole.
[0013] In one embodiment, determining an optimal insertion point of the target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole includes:
[0014] Among all the insertable directed line segments intersecting with the outer contour, determine the ending point of the insertable directed line segment with the shortest length as the first candidate intersection point;
[0015] Among all the insertable directed line segments intersecting with the second inner hole, determine the ending point of the insertable directed line segment with the shortest length as the second candidate intersection point;
[0016] Determine the insertable directed line segment with the shortest length from the insertable directed line segments corresponding to the first candidate intersection point and the insertable directed line segments corresponding to the second candidate intersection point, and use the ending point of the insertable directed line segment with the shortest length as the optimal insertion point.
[0017] In one embodiment, determining all insertable directed line segments of the target inner hole includes:
[0018] Based on the preset vertex and its adjacent vertices in the target inner hole, respectively generate the insertable directions of the preset vertices in the target inner hole;
[0019] Based on the preset vertex, make a ray along the insertable direction, and obtain the first intersection point of the ray with the outer contour or with the second inner hole, that is, obtain an insertable directed line segment with the preset vertex as the starting point and the first intersection point as the ending point;
[0020] Among them, the preset vertex includes a non-concave vertex.
[0021] In one embodiment, generating the insertable directions of the preset vertices in the target inner hole respectively based on the preset vertices and their adjacent vertices in the target inner hole includes:
[0022] The inner hole is a polygon including a plurality of vertices arranged in a first rotation direction; numbering the vertices in the inner hole based on the arrangement order of the vertices; the first rotation direction is counterclockwise or clockwise;
[0023] Connect an adjacent vertex numbered before the preset vertex to the preset vertex to generate a first insertable direction of the preset vertex;
[0024] Rotate the first insertable direction by a preset angle in a second rotation direction to generate a second insertable direction of the preset vertex; the second rotation direction is opposite to the rotation direction of the first rotation direction;
[0025] The first insertable direction and the second insertable direction are the insertable directions of the preset vertex.
[0026] In one embodiment, the method for inserting holes in a layout pattern further includes:
[0027] If the end point of the insertable directed line segment is the intersection point with the first side of the outer contour, determine whether the angle between the insertable directed line segment and the first side along the first rotation direction is less than a first angle threshold;
[0028] If not, the end point of the insertable directed line segment cannot be used as the optimal insertion point.
[0029] In one embodiment, the method for inserting holes in a layout pattern further includes:
[0030] If the end point of the insertable directed line segment is the intersection point with the second side of the second inner hole, determine whether the angle between the insertable directed line segment and the second side along the first rotation direction is greater than a second angle threshold;
[0031] If not, the end point of the insertable directed line segment cannot be used as the optimal insertion point.
[0032] In one embodiment, performing hole insertion processing on the target inner hole based on the optimal insertion point, and updating the target inner hole to the outer contour or merging it into the second inner hole includes:
[0033] If the optimal insertion point is the intersection point of the insertable line segment and the outer contour, based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, merge the vertices of the target inner hole into the vertices of the outer contour and adjust the arrangement order of the vertices of the outer contour, so as to update the target inner hole to the outer contour and complete the insertion process of the target inner hole;
[0034] If the optimal insertion point is the intersection point of the insertable line segment and the second inner hole, based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, merge the vertices of the target inner hole into the vertices of the second inner hole and adjust the arrangement order of the vertices of the second inner hole, so as to merge the target inner hole into the second inner hole and complete the insertion process of the target inner hole, and the updated second inner hole is used as the inner hole to be processed by the insertion;
[0035] Wherein, the outer contour is a polygon including a plurality of vertices arranged in a first rotation direction; number the vertices in the outer contour based on the arrangement order of the vertices.
[0036] In one embodiment, based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, merge the vertices of the target inner hole into the vertices of the outer contour and adjust the arrangement order of the vertices of the outer contour, so as to update the target inner hole to the outer contour and complete the insertion process of the target inner hole, including:
[0037] Create an empty result polygon;
[0038] Put the vertices in the outer contour with numbers before the optimal insertion point into the vertices of the result polygon in order;
[0039] Put the optimal insertion point into the vertices of the result polygon;
[0040] Put the vertices in the target inner hole before the starting point and the starting point into the vertices of the result polygon in reverse order;
[0041] Put the vertices in the target inner hole after the starting point and the starting point into the vertices of the result polygon in reverse order;
[0042] Put the vertices in the outer contour with numbers after the optimal insertion point into the vertices of the result polygon in order;
[0043] Put the optimal insertion point into the vertices of the result polygon;
[0044] The result polygon is the combined result of the target inner hole and the outer contour, and the result polygon is updated as the outer contour.
[0045] In one embodiment, based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, the vertices of the target inner hole are merged into the vertices of the second inner hole and the arrangement order of the vertices of the second inner hole is adjusted, so as to merge the target inner hole into the second inner hole, complete the insertion hole process for the target inner hole, and the updated second inner hole is used as the inner hole to be processed for inserting holes, including:
[0046] Create an empty result polygon;
[0047] Put the vertices in the second inner hole with numbers before the optimal insertion point into the vertices of the result polygon in order;
[0048] Put the optimal insertion point into the vertices of the result polygon;
[0049] Put the vertices in the target inner hole with numbers before the starting point and the starting point into the vertices of the result polygon in order;
[0050] Put the vertices in the target inner hole with numbers after the starting point and the starting point into the vertices of the result polygon in order;
[0051] Put the optimal insertion point into the vertices of the result polygon;
[0052] Put the vertices in the second inner hole with numbers after the optimal insertion point into the vertices of the result polygon in order;
[0053] The result polygon is the combined result of the target inner hole and the second inner hole, and the result polygon is updated as the second inner hole.
[0054] In a second aspect, the present application also provides an insertion hole device for a layout pattern, and the device includes:
[0055] A task acquisition module, configured to acquire a layout, and determine an outer contour and a plurality of inner holes to be processed for inserting holes in the layout; the outer contour is a polygon, and the inner holes are polygons inside the outer contour;
[0056] A selection module, configured to select a target inner hole for subsequent insertion hole processing in the inner holes until the insertion hole processing of all inner holes is completed;
[0057] An insertable directed line segment determination module is configured to determine all insertable directed line segments of the target inner hole; a starting point of the insertable directed line segment is a vertex of the target inner hole, and an end point is an intersection point with the outer contour or an intersection point with a second inner hole; the second inner hole is one of the remaining inner holes except the target inner hole in the inner holes.
[0058] An optimal insertion point determination module is configured to determine an optimal insertion point of the target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole.
[0059] A target inner hole merging module is configured to perform an insertion hole process on the target inner hole based on the optimal insertion point, and update the target inner hole to the outer contour or merge it into the second inner hole.
[0060] In a third aspect, the present application further provides a computer device, which includes a memory and a processor. The memory stores a computer program, and when the processor executes the computer program, the steps of a method for inserting holes in a layout pattern described in the first aspect are implemented.
[0061] In a fourth aspect, the present application further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of a method for inserting holes in a layout pattern described in the first aspect are implemented.
[0062] In a fifth aspect, the present application further provides a chemical mechanical polishing simulation method, and the method includes:
[0063] Obtain a layout and perform grid division on the layout;
[0064] Extract characteristic parameters of the grid, including hole insertion processing, polygon cutting, and characteristic parameter extraction; the hole insertion processing is implemented by using a method for inserting holes in a layout pattern described in the first aspect;
[0065] Perform chemical mechanical polishing process simulation on the layout based on the characteristic parameters of each grid in the layout.
[0066] The above-mentioned jacking method, device, computer equipment and storage medium for layout graphics, obtain the layout, and determine an outer contour and multiple inner holes to be jacked in the layout; the outer contour is a polygon, and the inner holes are polygons inside the outer contour; select a target inner hole for subsequent jacking processing from the inner holes, and perform jacking processing on the target inner hole until all inner holes are jacked; the jacking processing includes: determining all insertable directed line segments of the target inner hole; the starting point of the insertable directed line segment is the vertex of the target inner hole, and the end point is the intersection with the outer contour or the intersection with the second inner hole; the second inner hole is one of the remaining inner holes except the target inner hole in the inner holes; determine an optimal insertion point of the target inner hole from the intersections with the outer contour and / or the intersections with the second inner hole; based on the optimal insertion point, perform jacking processing on the target inner hole, and update the target inner hole to the outer contour or merge it into the second inner hole. It solves the problem that before the convex decomposition of the polygon corresponding to the layout graphics, when inserting the polygon inner holes in the layout graphics to merge the polygon inner holes and the outer contour of the layout graphics, the randomly jacking the polygon inner holes results in the calculated equivalent line width and equivalent spacing unable to accurately express the line width characteristics of the original polygon, affecting the accuracy of subsequent CMP model software simulation. The above method determines the candidate inner hole intersections between the insertable directed line segments and the remaining inner holes, and the candidate outer contour intersections between the insertable directed line segments and the outer contour according to the insertable directed line segments of the target inner hole randomly selected from the polygon inner holes, and selects the optimal insertion point from the candidate outer contour intersections and the candidate inner hole intersections according to the preset insertion point selection rule, so as to complete the insertion processing of the target inner hole based on the optimal insertion point until all inner holes are inserted into the outer contour. The outer contour after jacking can be used as the concave polygon for subsequent convex decomposition, thus improving the accuracy of convex decomposition of Manhattan polygons and the convex decomposition efficiency. Description of the Drawings
[0067] Figure 1 It is an application environment diagram of the jacking method for layout graphics in an embodiment;
[0068] Figure 2 It is a flowchart of the jacking method for layout graphics in an embodiment;
[0069] Figure 3 It is a schematic diagram of the graphics to be jacked obtained in an embodiment;
[0070] Figure 4 It is an example diagram of the insertable direction of the inner hole in an embodiment;
[0071] Figure 5 It is an example diagram of the target inner hole merged into the second inner hole in an embodiment;
[0072] Figure 6Schematic diagram of the process for determining the optimal insertion point in another embodiment;
[0073] Figure 7 Schematic diagram of the process for merging the target inner hole into the outer contour in another embodiment;
[0074] Figure 8 Example diagram of inserting the target inner hole into the outer contour in one embodiment;
[0075] Figure 9 Example diagram after inserting the target inner hole into the outer contour in one embodiment;
[0076] Figure 10 Example diagram after the jacking is completed in one embodiment;
[0077] Figure 11 Structural block diagram of the jacking device for the layout pattern in one embodiment;
[0078] Figure 12 Internal structure diagram of a computer device in one embodiment. Detailed implementation manners
[0079] In order to make the objectives, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0080] The jacking method for the layout pattern provided by the embodiments of the present application can be applied to, for example Figure 1In the application environment shown, the terminal 102 communicates with the server 104 through a network. The data storage system can store data that the server 104 needs to process. The data storage system can be integrated on the server 104, or placed on the cloud or other network servers. The server 104 obtains a layout and determines an outer contour and multiple inner holes to be processed by jacking in the layout; the outer contour is a polygon, and the inner hole is a polygon inside the outer contour; a target inner hole for subsequent jacking is selected from the inner holes, and the target inner hole is processed by jacking until the jacking of all the inner holes is completed; the jacking processing includes: determining all insertable directed line segments of the target inner hole; the starting point of the insertable directed line segment is the vertex of the target inner hole, and the end point is the intersection with the outer contour or the intersection with the second inner hole; the second inner hole is one of the remaining inner holes in the inner holes except the target inner hole; determine the optimal insertion point of a target inner hole from the intersection with the outer contour and / or the intersection with the second inner hole; based on the optimal insertion point, the target inner hole is processed by jacking, and the target inner hole is updated to the outer contour or merged into the second inner hole, and the jacking result of the layout graphic is sent to the terminal 102 through the communication network. The terminal 102 may be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, IoT devices, and portable wearable devices. The IoT devices may be smart speakers, smart TVs, smart air conditioners, smart car-mounted devices, etc. The portable wearable devices may be smart watches, smart bracelets, head-mounted devices, etc. The server 104 may be implemented as an independent server or a server cluster consisting of multiple servers.
[0081] EDA (Electronic Design Automation) tools in the field of integrated circuits often need to use third-party graphic clipping libraries to perform boolean operations (Boolean operations) such as not / or on layout graphics when performing boolean operations between layers or DRC (design rule check). At present, most graphic clipping libraries are composed of inner holes + outer contours, so it is necessary to quickly insert holes (add holes) on the clipping results for subsequent operations, such as some parameter extraction, DRC checks, etc. The so-called insertion operation means that in layout design, the inner hole of the polygon is inserted into the outer contour to form a closed outer contour line.
[0082] In one embodiment, Figure 2 As shown, a method for inserting a layout graphic is provided. This embodiment takes the method applied to a terminal as an example for explanation. It can be understood that the method can also be applied to a server, and can also be applied to a system including a terminal and a server, and is implemented through the interaction between the terminal and the server. The above-mentioned method for inserting a layout graphic includes the following steps:
[0083] S210. Obtain the layout, and determine an outer contour and multiple inner holes in the layout to be processed by inserting holes.
[0084] The outer contour (hull) is a polygon, and the inner holes (holes) are polygons inside the outer contour. As Figure 3 shown, holes[0], holes[1], and holes[2] are inner holes, hole[i] represents the i-th hole, hole num represents the hole number, and vertag represents the subscript of the two-dimensional point set, that is, which point it represents in the inner and outer holes.
[0085] Specifically, obtaining an outer contour and multiple inner holes in the layout to be processed by inserting holes means obtaining the parameter information in Table 1 below:
[0086] Table 1
[0087]
[0088] S220. Select a target inner hole for subsequent hole insertion processing among the inner holes, and perform hole insertion processing on the target inner hole until all inner holes have been processed by hole insertion. The following specifically describes the process of hole insertion processing, which specifically includes:
[0089] S220-1. Determine all insertable directed line segments of the target inner hole; the starting point of the insertable directed line segment is a vertex of the target inner hole, and the ending point is an intersection point with the outer contour or an intersection point with a second inner hole; the second inner hole is one of the remaining inner holes other than the target inner hole among the inner holes.
[0090] It should be noted that in this embodiment, the target inner hole is a randomly selected inner hole. In other embodiments, hole insertion processing can also be performed in a preset order according to the specific application scenario requirements.
[0091] Exemplarily, as Figure 4 shown, randomly select an inner hole holes[0] from the inner holes as the target inner hole. The inner hole holes[0] is composed of four two-dimensional points arranged counterclockwise. Traverse all non-concave vertices of the target inner hole. For the point holes[0][j] (j, that is, vertag, represents the subscript of the two-dimensional point set, indicating which point it is in the inner hole), connect the previous vertex of this point to this vertex to form a first insertable direction (when the preset vertex is the vertex numbered 1, that is, holes[0][1], then connect the vertex with the last number to the preset vertex), and rotate this directed line segment 90 degrees clockwise to form a second insertable direction. The obtained first insertable direction and second insertable direction are the insertable directions of this preset vertex. After finding all the insertable directed line segments of the preset vertices in the target inner hole, the search for all the insertable directed line segments of the target inner hole is completed.
[0092] It should be noted that in this embodiment, the specific implementation of determining all insertable directed line segments of the target inner hole is as follows: The inner hole is a polygon including multiple vertices arranged in a first rotation direction. To determine all insertable directed line segments of the target inner hole, a first insertable directed line segment is obtained by connecting a neighboring vertex numbered before the preset vertex with the preset vertex. Then, the preset vertex is rotated by a preset angle in a second rotation direction using the insertable direction to generate a second insertable direction of the preset vertex. The obtained first insertable direction and second insertable direction are the insertable directions of the preset vertex. Herein, the second rotation direction is opposite to the first rotation direction. This is designed based on the inner hole polygon structure and application requirements of this embodiment. In other embodiments, the following method can also be used to determine all insertable directed line segments of the target inner hole: Based on the preset vertex and its neighboring vertices in the target inner hole, the insertable directions of the preset vertex in the target inner hole are respectively generated; based on the preset vertex, a ray is made along the insertable direction to obtain the first intersection point of the ray with the outer contour or with the second inner hole, that is, an insertable directed line segment with the preset vertex as the starting point and the first intersection point as the ending point is obtained; the preset vertex of the target inner hole is a non-concave vertex of the target inner hole. The present application does not make specific limitations.
[0093] S220-2. Determine an optimal insertion point of a target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole.
[0094] Among them, the optimal insertion point of the target inner hole refers to the target point for inserting the target inner hole into the outer contour or into the inner hole to be merged.
[0095] For an insertion direction of a vertex of the inner hole, first calculate whether each side of the outer contour has an intersection point with this insertion direction. If there is an intersection point, calculate the distance from the vertex to the intersection point. When the distance is the shortest, this intersection point is the optimal insertion point with the outer contour. Since there may be overlapping edges on the outer contour, to avoid inserting into the wrong edge, the counterclockwise included angle between this insertion direction and the outer hole edge should be less than 180 degrees; that is, by setting a first included angle threshold, the intersection points with the outer contour that cannot be used as the optimal insertion point are screened out.
[0096] Then calculate whether each side of all other inner holes has an intersection point with this insertion direction. If there is an intersection point, calculate the distance from the vertex to the intersection point. When the distance is the shortest, this intersection point is the optimal insertion point with the other inner holes. Since there may be overlapping edges in the inner holes, to avoid inserting into the wrong edge, the counterclockwise included angle between this insertion direction and the other inner hole edges should be greater than 180 degrees; that is, by setting a second included angle threshold, the intersection points with the inner holes that cannot be used as the optimal insertion point are screened out.
[0097] Finally, among the optimal insertion points with respect to the outer contour and the optimal insertion points with respect to other inner holes, the one with the shortest distance is taken as the optimal insertion point. S220-3. Based on the optimal insertion point, perform the jacking process on the target inner hole, and update the target inner hole to the outer contour or merge it into the second inner hole.
[0098] Specifically, an image processing algorithm can be used. Based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, merge the vertices of the target inner hole into the vertices of the second inner hole and adjust the vertex arrangement order of the second inner hole, so as to merge the target inner hole into the second inner hole, complete the jacking process of the target inner hole, and use the updated second inner hole as the inner hole to be jacked. Then return to execute S220-1 until the jacking process of all inner holes is completed. Exemplarily, Figure 5 An example diagram of merging the target inner hole into the second inner hole.
[0099] If the optimal insertion point belongs to the intersection of the insertable directed line segment and the outer contour, then based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, merge the vertices of the target inner hole into the vertices of the outer contour and adjust the vertex arrangement order of the outer contour, so as to update the target inner hole to the outer contour and complete the jacking process of the target inner hole. Determine whether there are still inner holes to be jacked. If so, return to execute S220; if not, complete the jacking process of all inner holes.
[0100] The above-mentioned jacking method, device, computer device and storage medium for layout graphics, obtain a layout, and determine an outer contour and multiple inner holes to be jacked in the layout; the outer contour is a polygon, and the inner holes are polygons inside the outer contour; select a target inner hole for subsequent jacking processing from the inner holes, and perform jacking processing on the target inner hole until the jacking processing of all inner holes is completed; the jacking processing includes: determining all insertable directed line segments of the target inner hole; the starting point of the insertable directed line segment is the vertex of the target inner hole, and the end point is the intersection with the outer contour or the intersection with a second inner hole; the second inner hole is one of the remaining inner holes other than the target inner hole among the inner holes; determine an optimal insertion point of a target inner hole from the intersections with the outer contour and / or the intersections with the second inner hole; based on the optimal insertion point, perform jacking processing on the target inner hole, and update the target inner hole to the outer contour or merge it into the second inner hole. It solves the problem that before the convex decomposition of the polygon corresponding to the layout graphics, when inserting and processing the polygon inner holes in the layout graphics to merge the polygon inner holes and the outer contour of the layout graphics, randomly jacking the polygon inner holes results in the calculated equivalent line width and equivalent pitch being unable to accurately express the line width characteristics of the original polygon, affecting the accuracy of subsequent CMP model software simulation. The above method determines the candidate inner hole intersections between the insertable directed line segments and the remaining inner holes, and the candidate outer contour intersections between the insertable directed line segments and the outer contour according to the insertable directed line segments of the target inner hole randomly selected from the polygon inner holes. According to the preset insertion point selection rule, select the optimal insertion point from the candidate outer contour intersections and candidate inner hole intersections to complete the insertion processing of the target inner hole based on the optimal insertion point until all inner holes are inserted into the outer contour. After the jacking is completed, a closed outer contour line is obtained for subsequent convex decomposition and other processing. Because the jacking method of this application screens the insertable directions and selects the optimal insertion direction for jacking, it ensures that the scribing distance generated by jacking is the shortest, and this can maximize the retention of the geometric characteristics of the polygon with holes, reduce the number of convex polygons generated by subsequent convex decomposition of concave polygons, and thus improve the accuracy of calculating the line width of subsequent convex polygons.
[0101] In one embodiment, as Figure 6 shown, determining an optimal insertion point of a target inner hole from the intersections with the outer contour and / or the intersections with the second inner hole includes:
[0102] S610. Among all the insertable directed line segments intersecting with the outer contour, determine the end point of the insertable directed line segment with the shortest length as the first candidate intersection point.
[0103] Specifically, compare the lengths of all the insertable directed line segments intersecting with the outer contour, and determine the end point of the insertable directed line segment with the shortest length as the first candidate intersection point.
[0104] S620. Among all the insertable directed line segments intersecting with the second inner hole, determine the end point of the insertable directed line segment with the shortest length as the second candidate intersection point.
[0105] Specifically, compare the lengths of all the insertable directed line segments intersecting with the second inner hole, and determine the end point of the insertable directed line segment with the shortest length as the second candidate intersection point.
[0106] S630. Determine the insertable directed line segment with the shortest length from the insertable directed line segments corresponding to the first candidate intersection point and the insertable directed line segments corresponding to the second candidate intersection point, and use the end point of the insertable directed line segment with the shortest length as the optimal insertion point.
[0107] In the above solution, the first candidate intersection point and the second candidate intersection point are determined according to the lengths of all the insertable directed line segments intersecting with the second inner hole and the lengths of all the insertable directed line segments intersecting with the second inner hole, and the optimal insertion point of the target inner hole is determined according to the first candidate intersection point and the second candidate intersection point, which can improve the determination efficiency and reliability of the optimal insertion point.
[0108] In one embodiment, determining all the insertable directed line segments of the target inner hole includes:
[0109] Based on the preset vertices and their adjacent vertices in the target inner hole, respectively generate the insertable directions of the preset vertices in the target inner hole; make rays along the insertable directions based on the preset vertices, and obtain the first intersection point of the rays and the outer contour or the second inner hole, that is, obtain the insertable directed line segment with the preset vertex as the starting point and the first intersection point as the end point; where the preset vertices include non-concave vertices.
[0110] In the above solution, a method for determining the insertable directed line segment is provided, which improves the accuracy of the insertable directed line segment.
[0111] In one embodiment, based on the preset vertices and their adjacent vertices in the target inner hole, respectively generating the insertable directions of the preset vertices in the target inner hole includes:
[0112] The inner hole is a polygon including multiple vertices arranged in a first rotation direction; number the vertices in the inner hole according to the arrangement order of the vertices; the first rotation direction is counterclockwise or clockwise; connect an adjacent vertex before the preset vertex with the preset vertex to generate the first insertable direction of the preset vertex; rotate the first insertable direction by a preset angle in a second rotation direction to generate the second insertable direction of the preset vertex; the second rotation direction is opposite to the selected direction of the first rotation direction; the first insertable direction and the second insertable direction are the insertable directed line segments of the preset vertex.
[0113] Among them, the preset angle can be 90 degrees.
[0114] The above solution can improve the integrity and accuracy of insertable directed line segments.
[0115] Exemplarily, based on the above embodiment, if the end point of the insertable directed line segment is the intersection point with the first side of the outer contour, determine whether the angle between the insertable directed line segment and the first side along the first rotation direction is less than the first angle threshold; if not, the end point of the insertable directed line segment cannot be used as the optimal insertion point.
[0116] Among them, the first angle threshold can be set according to actual needs, for example, it can be 180 degrees.
[0117] The above solution provides a solution for screening insertable directed line segments, which can further improve the reliability of insertable directed line segments.
[0118] Exemplarily, based on the above embodiment, if the end point of the insertable directed line segment is the intersection point with the second side of the second inner hole, determine whether the angle between the insertable directed line segment and the second side along the first rotation direction is greater than the second angle threshold; if not, the end point of the insertable directed line segment cannot be used as the optimal insertion point.
[0119] Among them, the second angle threshold can be set according to actual needs, for example, it can be 180 degrees.
[0120] The above solution provides a screening solution for the optimal insertion point, which improves the accuracy of the optimal insertion point.
[0121] In one embodiment, based on the optimal insertion point, perform hole insertion processing on the target inner hole, and update the target inner hole to the outer contour or merge it into the second inner hole, including:
[0122] If the optimal insertion point is the intersection point of the insertable line segment and the outer contour, based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, merge the vertices of the target inner hole into the vertices of the outer contour and adjust the vertex arrangement order of the outer contour to realize updating the target inner hole to the original outer contour and complete the hole insertion processing of the target inner hole; if the optimal insertion point is the intersection point of the insertable line segment and the second inner hole, based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, merge the vertices of the target inner hole into the vertices of the second inner hole and adjust the vertex arrangement order of the second inner hole to realize merging the target inner hole into the second inner hole, complete the hole insertion processing of the target inner hole, and the updated second inner hole is used as the inner hole to be processed by hole insertion.
[0123] Among them, the outer contour is a polygon including multiple vertices arranged in the first rotation direction; number the vertices in the outer contour based on the arrangement order of the vertices.
[0124] The above solution can avoid the situation where the target inner hole is inserted into the wrong polygon inner hole due to overlapping edges between polygon inner holes, and at the same time can avoid the situation where the target inner hole is inserted into the wrong polygon outer contour due to overlapping edges between the outer contours of the graphics, improving the accuracy of the jacking process for the target inner hole.
[0125] In one embodiment, as Figure 7 shown, based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, the vertices of the target inner hole are merged into the vertices of the outer contour and the arrangement order of the vertices of the outer contour is adjusted to update the target inner hole to the outer contour and complete the jacking process for the target inner hole, including:
[0126] S710. Create an empty result polygon.
[0127] Specifically, create an empty result polygon resHull and obtain the numbers corresponding to the vertices of the outer contour.
[0128] S720. Put the vertices in the outer contour with numbers before the optimal insertion point into the vertices of the result polygon in order.
[0129] Specifically, sort the numbers of the vertices of the outer contour to determine the outer contour point sequence. Based on the outer contour point sequence, determine the vertices in the outer contour with numbers before the optimal insertion point, and according to the outer contour point sequence, put the vertices in the outer contour with numbers before the optimal insertion point into the vertices of the result polygon resHull in order.
[0130] S730. Put the optimal insertion point into the vertices of the result polygon.
[0131] S740. Put the vertices and the starting point in the target inner hole with numbers before the starting point into the vertices of the result polygon in reverse order.
[0132] Specifically, put the vertices and the starting point in the target inner hole with numbers before the starting point into the vertices of the result polygon in reverse order, and store the obtained vertices of the result polygon into resHull.
[0133] S750. Put the vertices and the starting point in the target inner hole with numbers after the starting point into the vertices of the result polygon in reverse order.
[0134] Specifically, put the vertices and the starting point in the target inner hole with numbers after the starting point into the vertices of the result polygon in reverse order, and store the obtained vertices of the result polygon into resHull.
[0135] S760. Put the optimal insertion point into the vertices of the result polygon.
[0136] S770. Place the vertices in the outer contour whose numbers are after the optimal insertion point into the vertices of the resulting polygon in sequence.
[0137] The resulting polygon is the combined result of the target inner hole and the outer contour, and update the resulting polygon as the outer contour.
[0138] In the above solution, first place the vertices in the outer contour whose numbers are before the optimal insertion point into the resulting polygon, then place the vertices in the target inner hole whose numbers are before the starting point into the resulting polygon in reverse order, place the vertices in the target inner hole whose numbers are after the starting point into the resulting polygon in reverse order, and finally place the vertices in the outer contour whose numbers are after the optimal insertion point into the resulting polygon, which can improve the accuracy and reliability of the resulting polygon. Exemplarily, the example diagram of inserting the target inner hole holes[i] into the outer contour is as Figure 8 shown. The example diagram after inserting the target inner hole into the outer contour is as Figure 9 shown.
[0139] In one embodiment, based on the optimal insertion point and the starting point where the optimal insertion point can insert a directed line segment, merge the vertices of the target inner hole with the vertices of the second inner hole and adjust the arrangement order of the vertices of the second inner hole to implement merging the target inner hole into the second inner hole, complete the jacking processing of the target inner hole, and update the second inner hole as the inner hole to be jacked, including:
[0140] Create an empty resulting polygon; place the vertices in the second inner hole whose numbers are before the optimal insertion point into the vertices of the resulting polygon in sequence; place the optimal insertion point into the vertices of the resulting polygon; place the vertices of the target inner hole whose numbers are before the starting point and the starting point into the vertices of the resulting polygon in sequence; place the vertices of the target inner hole whose numbers are after the starting point and the starting point into the vertices of the resulting polygon in sequence; place the optimal insertion point into the vertices of the resulting polygon; place the vertices in the second inner hole whose numbers are after the optimal insertion point into the vertices of the resulting polygon in sequence; the resulting polygon is the combined result of the target inner hole and the second inner hole, and update the resulting polygon as the second inner hole.
[0141] In the above solution, first place the vertices in the second inner hole whose numbers are before the optimal insertion point into the resulting polygon, then place the vertices of the target inner hole whose numbers are before the starting point into the resulting polygon in sequence, then place the vertices of the target inner hole whose numbers are after the starting point into the resulting polygon in sequence, and finally place the vertices in the second inner hole whose numbers are after the optimal insertion point into the resulting polygon in sequence, which can improve the merging efficiency and reliability of the inner holes of the polygon.
[0142] In this embodiment, during the process of CMP layout feature extraction, before performing convex decomposition on the polygon (i.e., performing Manhattan polygon cutting), through the above-mentioned jacking method of the present application, it is realized that, for example, Figure 3 an outer contour hull to be jacked and three inner holes holes[0], holes[1], and holes[2] as shown are subjected to jacking processing, thereby forming a closed outer contour line. Specifically, reference can be made to Figure 10 , which can ensure that the calculated equivalent line width and other geometric features of the original polygon are not distorted, accurately expressing problems such as the line width feature of the original polygon, thereby ensuring the accuracy of subsequent CMP model simulation. It should be understood that although the steps in the flowcharts involved in the above-mentioned embodiments are sequentially shown according to the arrows, these steps do not necessarily need to be executed in the order indicated by the arrows. Unless there is a clear description in this article, the execution of these steps has no strict order limit, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments may include multiple steps or multiple stages. These steps or stages do not necessarily need to be executed at the same time, but can be executed at different times. The execution order of these steps or stages does not necessarily need to be sequential, but can be executed alternately or alternately with at least a part of other steps or steps in other steps.
[0143] Based on the same inventive concept, an embodiment of the present application also provides a layout pattern jacking device for implementing the above-mentioned layout pattern jacking method. The solution provided by this device to solve problems is similar to the solution described in the above method. Therefore, the specific limitations in one or more embodiments of the layout pattern jacking device provided below can refer to the limitations on the layout pattern jacking method in the above text, and will not be repeated here.
[0144] In one embodiment, as Figure 11 shown, a layout pattern jacking device is provided, including: a task acquisition module 101, a selection module 102, a determinable insertable directed line segment module 103, an optimal insertion point determination module 104, and a target inner hole merging module 105, where:
[0145] The task acquisition module 101 is configured to acquire a layout and determine an outer contour and multiple inner holes to be jacked in the layout; the outer contour is a polygon, and the inner holes are polygons inside the outer contour;
[0146] The selection module 102 is configured to select a target inner hole for subsequent jacking processing from the inner holes, and perform subsequent jacking processing on the target inner hole until the jacking processing of all inner holes is completed;
[0147] The insertable directed line segment determination module 103 is configured to determine all insertable directed line segments of the target inner hole; the starting point of the insertable directed line segment is a vertex of the target inner hole, and the ending point is an intersection point with the outer contour or an intersection point with a second inner hole; the second inner hole is one of the remaining inner holes other than the target inner hole among the inner holes.
[0148] The optimal insertion point determination module 104 is configured to determine an optimal insertion point of the target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole.
[0149] The target inner hole merging module 105 is configured to perform an insertion hole process on the target inner hole based on the optimal insertion point, and update the target inner hole to the outer contour or merge it into the second inner hole.
[0150] Exemplarily, the optimal insertion point determination module 104 is specifically configured to:
[0151] Among all the insertable directed line segments intersecting with the outer contour, determine the ending point of the insertable directed line segment with the shortest length as the first candidate intersection point;
[0152] Among all the insertable directed line segments intersecting with the second inner hole, determine the ending point of the insertable directed line segment with the shortest length as the second candidate intersection point;
[0153] Determine the insertable directed line segment with the shortest length from the insertable directed line segment corresponding to the first candidate intersection point and the insertable directed line segment corresponding to the second candidate intersection point, and use the ending point of the insertable directed line segment with the shortest length as the optimal insertion point.
[0154] Further, the insertable directed line segment determination module 103 is specifically configured to:
[0155] Based on the preset vertex and its adjacent vertices in the target inner hole, respectively generate the insertable directions of the preset vertices in the target inner hole;
[0156] Based on the preset vertex, make a ray along the insertable direction, and obtain the first intersection point of the ray with the outer contour or the second inner hole, that is, obtain an insertable directed line segment with the preset vertex as the starting point and the first intersection point as the ending point;
[0157] Among them, the preset vertex includes non-concave vertices.
[0158] Further, the insertable directed line segment determination module 103 is also specifically configured to:
[0159] The inner hole is a polygon including multiple vertices arranged in a first rotation direction; number the vertices in the inner hole based on the arrangement order of the vertices; the first rotation direction is counterclockwise or clockwise.
[0160] Connect an adjacent vertex before the preset vertex to the preset vertex to generate a first insertable direction of the preset vertex;
[0161] Rotate the first insertable direction by a preset angle in a second rotation direction to generate a second insertable direction of the preset vertex; the second rotation direction is opposite to the rotation direction of the first rotation direction;
[0162] The first insertable direction and the second insertable direction are the insertable directions of the preset vertex.
[0163] Exemplarily, if the end point of the insertable directed line segment is the intersection point with the first side of the outer contour, determine whether the angle between the insertable directed line segment and the first side along the first rotation direction is less than a first angle threshold;
[0164] If not, the end point of the insertable directed line segment cannot be used as the optimal insertion point.
[0165] Exemplarily, if the end point of the insertable directed line segment is the intersection point with the second side of the second inner hole, determine whether the angle between the insertable directed line segment and the second side along the first rotation direction is greater than a second angle threshold;
[0166] If not, the end point of the insertable directed line segment cannot be used as the optimal insertion point.
[0167] Exemplarily, the target inner hole merging module 105 is specifically configured to:
[0168] If the optimal insertion point is the intersection point of the insertable line segment and the outer contour, based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, merge the vertices of the target inner hole to the vertices of the outer contour and adjust the vertex arrangement order of the outer contour, so as to update the target inner hole to the outer contour and complete the jacking process of the target inner hole;
[0169] If the optimal insertion point is the intersection point of the insertable line segment and the second inner hole, based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, merge the vertices of the target inner hole to the vertices of the second inner hole and adjust the vertex arrangement order of the second inner hole, so as to merge the target inner hole to the second inner hole and complete the jacking process of the target inner hole, and the updated second inner hole is used as the inner hole to be jacked;
[0170] Wherein, the outer contour is a polygon including multiple vertices arranged in a first rotation direction; number the vertices in the outer contour based on the arrangement order of the vertices.
[0171] Furthermore, the target inner hole merging module 105 is further specifically configured to:
[0172] Create an empty result polygon;
[0173] Put the vertices in the outer contour before the optimal insertion point into the vertices of the result polygon in order;
[0174] Put the optimal insertion point into the vertices of the result polygon;
[0175] Put the vertices in the target inner hole before the starting point and the starting point into the vertices of the result polygon in reverse order;
[0176] Put the vertices in the target inner hole after the starting point and the starting point into the vertices of the result polygon in reverse order;
[0177] Put the vertices in the outer contour after the optimal insertion point into the vertices of the result polygon in order;
[0178] Put the optimal insertion point into the vertices of the result polygon;
[0179] The result polygon is the merged result of the target inner hole and the outer contour, and update the result polygon as the outer contour.
[0180] Furthermore, the target inner hole merging module 105 is further specifically configured to:
[0181] Create an empty result polygon;
[0182] Put the vertices in the second inner hole before the optimal insertion point into the vertices of the result polygon in order;
[0183] Put the optimal insertion point into the vertices of the result polygon;
[0184] Put the vertices in the target inner hole before the starting point and the starting point into the vertices of the result polygon in order;
[0185] Put the vertices in the target inner hole after the starting point and the starting point into the vertices of the result polygon in order;
[0186] Put the optimal insertion point into the vertices of the result polygon;
[0187] Put the vertices in the second inner hole after the optimal insertion point into the vertices of the result polygon in order;
[0188] The result polygon is the combined result of the target inner hole and the second inner hole, and the result polygon is updated as the second inner hole.
[0189] Each module in the jacking device of the above layout pattern can be implemented in whole or in part by software, hardware, and their combination. Each of the above modules can be embedded in the processor in the computer device in hardware form or be independent of it, or be stored in the memory in the computer device in software form, so that the processor can call and execute the operations corresponding to each of the above modules.
[0190] In one embodiment, a computer device is provided. The computer device can be a terminal, and its internal structural diagram can be as Figure 12 shown. The computer device includes a processor, a memory, an input / output interface, a communication interface, a display unit, and an input device. Among them, the processor, the memory, and the input / output interface are connected through a system bus, and the communication interface, the display unit, and the input device are connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and external devices. The communication interface of the computer device is used to communicate with external terminals in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (Near Field Communication), or other technologies. When the computer program is executed by the processor, it implements a method for jacking a layout pattern. The display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device, or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen. The input device of the computer device can be a touch layer covered on the display screen, or a button, a trackball, or a touchpad set on the computer device housing, or an external keyboard, touchpad, or mouse, etc.
[0191] Those skilled in the art can understand that Figure 12 the structure shown in
[0192] is only a block diagram of some structures related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine some components, or have different component arrangements.
[0193] Step 1: Obtain a layout, and determine an outer contour and multiple inner holes to be processed by inserting holes in the layout; the outer contour is a polygon, and the inner holes are polygons inside the outer contour;
[0194] Step 2: Select a target inner hole for subsequent hole insertion processing among the inner holes, and perform hole insertion processing on the target inner hole until the hole insertion processing of all inner holes is completed;
[0195] Step 3: The hole insertion processing includes: determining all insertable directed line segments of the target inner hole; the starting point of the insertable directed line segment is a vertex of the target inner hole, and the ending point is an intersection point with the outer contour or an intersection point with a second inner hole; the second inner hole is one of the remaining inner holes except the target inner hole among the inner holes;
[0196] Step 4: Determine an optimal insertion point of the target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole;
[0197] Step 5: Based on the optimal insertion point, perform hole insertion processing on the target inner hole, and update the target inner hole to the outer contour or merge it into the second inner hole.
[0198] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented:
[0199] Step 1: Obtain a layout, and determine an outer contour and multiple inner holes to be processed by inserting holes in the layout; the outer contour is a polygon, and the inner holes are polygons inside the outer contour;
[0200] Step 2: Select a target inner hole for subsequent hole insertion processing among the inner holes, and perform hole insertion processing on the target inner hole until the hole insertion processing of all inner holes is completed;
[0201] Step 3: The hole insertion processing includes: determining all insertable directed line segments of the target inner hole; the starting point of the insertable directed line segment is a vertex of the target inner hole, and the ending point is an intersection point with the outer contour or an intersection point with a second inner hole; the second inner hole is one of the remaining inner holes except the target inner hole among the inner holes;
[0202] Step 4: Determine an optimal insertion point of the target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole;
[0203] Step 5: Based on the optimal insertion point, perform hole insertion processing on the target inner hole, and update the target inner hole to the outer contour or merge it into the second inner hole.
[0204] In one embodiment, a computer program product is provided, including a computer program which, when executed by a processor, implements the following steps:
[0205] Step 1: Obtain a layout, and determine an outer contour and a plurality of inner holes to be processed by inserting holes in the layout; the outer contour is a polygon, and the inner holes are polygons inside the outer contour;
[0206] Step 2: Select a target inner hole for subsequent hole insertion processing among the inner holes, and perform hole insertion processing on the target inner hole until the hole insertion processing of all inner holes is completed;
[0207] Step 3: The hole insertion processing includes: determining all insertable directed line segments of the target inner hole; the starting point of the insertable directed line segment is a vertex of the target inner hole, and the ending point is an intersection point with the outer contour or an intersection point with a second inner hole; the second inner hole is one of the remaining inner holes except the target inner hole among the inner holes;
[0208] Step 4: Determine an optimal insertion point of the target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole;
[0209] Step 5: Based on the optimal insertion point, perform hole insertion processing on the target inner hole, and update the target inner hole to the outer contour or merge it into the second inner hole.
[0210] In one embodiment, a chemical mechanical polishing simulation method is provided. The above chemical mechanical polishing simulation method includes:
[0211] Obtain a layout, perform mesh division on the layout; extract characteristic parameters of the mesh, including hole insertion processing, polygon cutting, and characteristic parameter extraction; the hole insertion processing adopts the hole insertion method of the layout graphics described in any embodiment of the present application; based on the characteristic parameters of each mesh in the layout, perform chemical mechanical polishing process simulation on the layout.
[0212] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present application are all information and data authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data need to comply with the relevant laws, regulations, and standards of relevant countries and regions.
[0213] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, database, or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memories. Non-volatile memories can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memories can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The databases involved in the embodiments provided in the present application can include at least one of relational databases and non-relational databases. Non-relational databases can include distributed databases based on blockchain, etc., without limitation. The processors involved in the embodiments provided in the present application can be general-purpose processors, central processors, graphics processors, digital signal processors, programmable logic devices, data processing logics based on quantum computing, etc., without limitation.
[0214] The technical features of the above embodiments can be combined arbitrarily. For the sake of concise description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope described in this specification.
[0215] The above-described embodiments merely represent several implementation manners of the present application. The description thereof is relatively specific and detailed, but it should not be construed as a limitation on the patent scope of the present application. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the appended claims.
Claims
1. A method for inserting a jack in a layout pattern, characterized in that: include: Acquire a layout, and determine an outer contour and a plurality of inner holes to be processed in the layout; The outer contour is a polygon, and the inner hole is a polygon inside the outer contour; Selecting a target inner hole for subsequent hole insertion processing from the inner holes, and performing hole insertion processing on the target inner hole until the hole insertion processing of all the inner holes is completed; The insertion process includes: determining all directed line segments that can be inserted into the target inner hole; the starting point of the directed line segment that can be inserted is the vertex of the target inner hole, and the end point is the intersection with the outer contour or the intersection with the second inner hole; the second inner hole is one of the remaining inner holes in the inner holes except the target inner hole; Determine an optimal insertion point of the target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole; determine an optimal insertion point of the target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole, including: among all the insertable directed line segments intersecting with the outer contour, determine the end point of the shortest insertable directed line segment as the first candidate intersection point; among all the insertable directed line segments intersecting with the second inner hole, determine the end point of the shortest insertable directed line segment as the second candidate intersection point; determine the shortest insertable directed line segment from the insertable directed line segments corresponding to the first candidate intersection point and the insertable directed line segments corresponding to the second candidate intersection point, and use the end point of the shortest insertable directed line segment as the optimal insertion point; Based on the optimal insertion point, the target inner hole is subjected to plugging processing, and the target inner hole is updated to the outer contour or merged into the second inner hole; the updated second inner hole is used as the inner hole to be plugged in or the updated outer contour is used as the current outer contour, and the plugging processing is returned to be executed until the plugging processing of all inner holes is completed.
2. The method according to claim 1, characterized in that The step of determining all insertable directed line segments of the target inner hole comprises: Based on the preset vertex in the target inner hole and its adjacent vertices, respectively generating the insertable directions of the preset vertex in the target inner hole; Based on the preset vertex, a ray is drawn along the insertable direction to obtain a first intersection point of the ray with the outer contour or with the second inner hole, that is, an insertable directed line segment with the preset vertex as the starting point and the first intersection point as the end point is obtained; Wherein, the preset vertices include non-concave vertices.
3. The method according to claim 1, characterized in that Based on the preset vertex in the target inner hole and its adjacent vertices, respectively generating the insertable directions of the preset vertex in the target inner hole, including: The inner hole is a polygon including a plurality of vertices arranged in a first rotation direction; the vertices in the inner hole are numbered based on the arrangement order of the vertices; the first rotation direction is counterclockwise or clockwise; Connecting an adjacent vertex numbered before the preset vertex and the preset vertex to generate a first insertable direction of the preset vertex; The first insertable direction is rotated by a preset angle in a second rotation direction to generate a second insertable direction of the preset vertex; the second rotation direction is opposite to the rotation direction of the first rotation direction; The first insertable direction and the second insertable direction are insertable directions of the preset vertex.
4. The method according to claim 3, characterized in that Also includes: If the end point of the insertable directed line segment is an intersection point with the first side of the outer contour, determining whether an angle between the insertable directed line segment and the first side along a first rotation direction is less than a first angle threshold; If not, the end point of the insertable directed line segment cannot be used as the optimal insertion point.
5. The method according to claim 3, characterized in that: Also includes: If the end point of the insertable directed line segment is an intersection with the second side of the second inner hole, determining whether an angle between the insertable directed line segment and the second side along the first rotation direction is greater than a second angle threshold; If not, the end point of the insertable directed line segment cannot be used as the optimal insertion point.
6. The method according to claim 3, characterized in that The step of performing insertion processing on the target inner hole based on the optimal insertion point, and updating the target inner hole to the outer contour or merging the target inner hole to the second inner hole includes: If the optimal insertion point is the intersection of the insertable line segment and the outer contour, based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, the vertices of the target inner hole are merged into the vertices of the outer contour and the arrangement order of the vertices of the outer contour is adjusted to update the target inner hole to the outer contour, thereby completing the insertion processing of the target inner hole; If the optimal insertion point is the intersection of the insertable line segment and the second inner hole, based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, the vertices of the target inner hole are merged into the vertices of the second inner hole and the arrangement order of the vertices of the second inner hole is adjusted to merge the target inner hole into the second inner hole, complete the insertion processing of the target inner hole, and the updated second inner hole is used as the inner hole to be processed by the insertion processing; The outer contour is a polygon including a plurality of vertices arranged in a first rotation direction; and the vertices in the outer contour are numbered based on the arrangement order of the vertices.
7. The method according to claim 6, characterized in that Based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, the vertices of the target inner hole are merged into the vertices of the outer contour and the vertex arrangement order of the outer contour is adjusted to update the target inner hole to the outer contour, and the insertion processing of the target inner hole is completed, including: Create an empty result polygon; Put the vertices in the outer contour numbered before the optimal insertion point in order as the vertices of the result polygon; placing the optimal insertion point as a vertex of the result polygon; Put the vertices in the target inner hole numbered before the starting point and the starting point in reverse order as the vertices of the result polygon; Put the vertices in the target inner hole numbered after the starting point and the starting point in reverse order as the vertices of the result polygon; Put the vertices in the outer contour numbered after the optimal insertion point in order as the vertices of the result polygon; placing the optimal insertion point as a vertex of the result polygon; The result polygon is a merging result of the target inner hole and the outer contour, and the result polygon is updated as the outer contour.
8. The method according to claim 6, characterized in that Based on the optimal insertion point and the starting point of the insertable directed line segment to which the optimal insertion point belongs, merging the vertices of the target inner hole into the vertices of the second inner hole and adjusting the arrangement order of the vertices of the second inner hole, merging the target inner hole into the second inner hole, completing the insertion processing of the target inner hole, and using the updated second inner hole as the inner hole to be processed as the hole, including: Create an empty result polygon; Put the vertices in the second inner hole numbered before the optimal insertion point in order as the vertices of the result polygon; placing the optimal insertion point as a vertex of the result polygon; Put the vertices in the target inner hole numbered before the starting point and the starting point in order as the vertices of the result polygon; Put the vertices in the target inner hole numbered after the starting point and the starting point in order as the vertices of the result polygon; placing the optimal insertion point as a vertex of the result polygon; Put the vertices in the second inner hole numbered after the optimal insertion point in order as the vertices of the result polygon; The result polygon is a merging result of the target inner hole and the second inner hole, and the result polygon is updated as the second inner hole.
9. A jack device of a layout pattern, characterized in that: The jack device of the layout pattern comprises: A task acquisition module is used to acquire a layout, and determine an outer contour and a plurality of inner holes to be processed in the layout; the outer contour is a polygon, and the inner hole is a polygon inside the outer contour; A selection module is used to select a target inner hole for subsequent plugging process from the inner holes until the plugging process of all the inner holes is completed; An insertable directed line segment determination module is used to determine all insertable directed line segments of the target inner hole; the starting point of the insertable directed line segment is the vertex of the target inner hole, and the end point is the intersection with the outer contour or the intersection with the second inner hole; the second inner hole is one of the remaining inner holes in the inner holes except the target inner hole; An optimal insertion point determination module, used to determine an optimal insertion point of the target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole; determining an optimal insertion point of the target inner hole from the intersection points with the outer contour and / or the intersection points with the second inner hole, including: among all the insertable directed line segments intersecting with the outer contour, determining the end point of the insertable directed line segment with the shortest length as the first candidate intersection point; among all the insertable directed line segments intersecting with the second inner hole, determining the end point of the insertable directed line segment with the shortest length as the second candidate intersection point; determining the insertable directed line segment with the shortest length from the insertable directed line segments corresponding to the first candidate intersection point and the insertable directed line segments corresponding to the second candidate intersection point, and taking the end point of the insertable directed line segment with the shortest length as the optimal insertion point; A target inner hole merging module is used to perform a hole-insertion process on the target inner hole based on the optimal insertion point, and update the target inner hole to the outer contour or merge it into the second inner hole; the updated second inner hole is used as the inner hole to be processed by the hole-insertion process or the updated outer contour is used as the current outer contour, and the hole-insertion process is returned to be executed until the hole-insertion process of all inner holes is completed.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 8 are implemented.
11. A chemical mechanical polishing simulation method, characterized in that: Includes steps: Acquire a layout, and divide the layout into grids; Extracting characteristic parameters of the grid, including hole processing, polygon cutting and characteristic parameter extraction; wherein the hole processing adopts the hole method of the layout pattern according to any one of claims 1 to 8; Based on the characteristic parameters of each grid in the layout, a chemical mechanical polishing process simulation is performed on the layout.
Citation Information
Patent Citations
Design layout internal structure processing method and device and computer equipment
CN117371383A