Design layout processing method and device, equipment, medium and program product
By expanding the search box and constructing vertex sets and edge sets in the design layout, the problem of non-integral and line segment intersection coordinates in the design layout process in the prior art is solved, and the quality of the design layout is improved.
Patent Information
- Application Number
- CN202411556605.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-04
- Publication Date
- 2025-02-14
- Estimated Expiration
- 2044-11-04
Smart Images

Figure CN119443031A_ABST
Abstract
Description
Technical Field
[0001] The present application belongs to the field of photolithography technology, and in particular, relates to a method, device, equipment, medium and program product for processing a design layout. Background Art
[0002] In the integrated circuit manufacturing process, the pattern on the mask is transferred to the silicon wafer through photolithography and etching. The geometric pattern on the mask used in the manufacture of integrated circuits is defined as the design layout of the integrated circuit. Usually, there are multiple holes and hulls on the design layout, where the hulls constitute the outer contour of the design layout, and the holes are the hollowed-out parts on the design layout. When processing the design layout, it is often necessary to connect the holes and hulls into a whole.
[0003] In the existing method, a coordinate axis is usually established on the design layout, and then a line segment is extended in one direction from a vertex on the contour of the cavity. The line segment intersects with the contour edge of the adjacent cavity or shell, thereby completing the connection between all the cavities and the shell.
[0004] However, in the existing methods, the intersection coordinates of the line segment and its adjacent hole or shell are prone to non-integer coordinates. At this time, due to the limitation of computer storage accuracy, the stored intersection coordinates will lose accuracy, resulting in deviation from the original position when the intersection coordinates are subsequently read, which in turn causes the outline of the design layout to be deformed. At the same time, the existing methods are prone to line segment intersection, which makes it impossible to accurately segment the intersection of the line segments of the design layout. As a result, the existing methods will result in poor quality of the final design layout. Summary of the invention
[0005] The embodiments of the present application provide a design layout processing method, device, equipment, storage medium and program product, which can improve the quality of the design layout.
[0006] In one aspect of an embodiment of the present application, a method for processing a design layout is provided, comprising:
[0007] According to the first search box of each hole in the design layout, the first cutting point of each hole is determined, the first search box is a rectangular box extending in a preset direction with the hole feature point as the starting point, the first cutting point is the intersection of a straight line extending in a preset direction with the hole feature point as the starting point and a cutting edge, and the cutting edge is the edge with the shortest distance from the hole feature point among the contour edges of the hole and the contour edges of the shell intersecting with the first search box;
[0008] For each first cutting point, when the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates, the first search box is expanded according to the endpoint coordinates of the cutting edge to obtain a second search box, and the layout coordinate system is a plane rectangular coordinate system constructed with a preset point in the design layout as the origin;
[0009] According to the second search box, determine a vertex set and an edge set corresponding to the holes, wherein the vertex set includes vertices of each hole within the second search box, and the edge set includes each contour edge where each hole intersects with the second search box;
[0010] Among the lines connecting each vertex in the vertex set and the hole feature point, select a target line with the shortest length that does not intersect with any edge in the edge set;
[0011] According to the target connection lines of each hole in the design layout, each hole in the design layout is connected and processed to obtain a processed design layout.
[0012] In one aspect of an embodiment of the present application, a design layout processing device is provided, including:
[0013] A cutting point determination module is used to determine the first cutting point of each hole according to the first search box of each hole in the design layout, the first search box is a rectangular box extending in a preset direction with the hole feature point as the starting point, the first cutting point is the intersection of a straight line extending in a preset direction with the hole feature point as the starting point and a cutting edge, and the cutting edge is the edge with the shortest distance from the hole feature point among the contour edges of the hole and the contour edges of the shell that intersect with the first search box;
[0014] A search box expansion module is used to expand the first search box according to the endpoint coordinates of the cutting edge for each first cutting point, when the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates, to obtain a second search box, and the layout coordinate system is a plane rectangular coordinate system constructed with a preset point in the design layout as the origin;
[0015] A set determination module, used to determine a vertex set and an edge set corresponding to the holes according to the second search box, wherein the vertex set includes vertices of each hole within the second search box, and the edge set includes each contour edge intersecting the hole with the second search box;
[0016] A line selection module is used to select a target line with the shortest length and not intersecting with any edge in the edge set from the lines connecting each vertex in the vertex set and the hole feature point;
[0017] The layout processing module is used to connect the holes in the design layout according to the target connection lines of the holes in the design layout to obtain a processed design layout.
[0018] In one aspect of an embodiment of the present application, an electronic device is provided, which includes: a memory and a program or instruction stored in the memory and executable on a processor, wherein when the program or instruction is executed by the processor, a method for processing a design layout as provided in any aspect of the above-mentioned embodiment of the present application is implemented.
[0019] In one aspect of an embodiment of the present application, a readable storage medium is provided, on which a program or instruction is stored. When the program or instruction is executed by a processor, a method for processing a design layout provided in any aspect of the above-mentioned embodiment of the present application is implemented.
[0020] According to one aspect of an embodiment of the present application, a computer program product is provided. When instructions in the computer program product are executed by a processor of an electronic device, the electronic device executes a method for processing a design layout as provided in any aspect of the above-mentioned embodiment of the present application.
[0021] In the processing method of the design layout provided by the embodiment of the present application, when the coordinates of the first cutting point of the hole are non-integer coordinates, the first search box is expanded to the second search box. Thus, a vertex set consisting of vertices within the scope of the second search box and an edge set consisting of each contour edge intersecting each hole and the second search box are constructed. Finally, among the lines connecting each vertex of the vertex set and the hole feature point, a target line with the shortest length and not intersecting with any edge in the edge set is selected. In this way, the target line finally determined belongs to the line connecting the vertex in the vertex set and the hole feature point. Since the vertex coordinates of each hole designed in the design layout are integers, the endpoint coordinates of the target line finally obtained must belong to integers, so the loss of precision of the intersection coordinates stored by the computer can be avoided, and then the problem of contour deformation of the design layout can be avoided. At the same time, the target line finally determined does not intersect with each contour edge in the edge set, which can reduce the problem that the intersection of the line segments of the design layout cannot be accurately segmented due to the intersection phenomenon of the target line. In this way, the target line selected by the embodiment of the present application can improve the quality of the design layout. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] In order to more clearly illustrate the technical solution of the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0023] Figure 1 It is a flowchart of a method for processing a design layout provided by an embodiment of the present application;
[0024] Figure 2 is a schematic diagram of determining a first cutting point of a cavity provided by an embodiment of the present application;
[0025] Figure 3 is a schematic diagram of a line segment crossing phenomenon provided by an embodiment of the present application;
[0026] Figure 4 This is a schematic diagram of the storage order of a shell and a cavity provided by an embodiment of the present application;
[0027] Figure 5 is a schematic diagram of a first search box intersecting with a hole provided by an embodiment of the present application;
[0028] Figure 6 It is a schematic diagram of an expansion of a first search box when a preset direction is horizontally to the right, provided by an embodiment of the present application;
[0029] Figure 7 It is a schematic diagram of reducing the second search box when the preset direction is horizontally to the right, provided by an embodiment of the present application;
[0030] Figure 8 It is a structural schematic diagram of a design layout processing device provided by an embodiment of the present application;
[0031] Fig. 9 It is a structural schematic diagram of a design layout processing device provided in one embodiment of the present application. DETAILED DESCRIPTION
[0032] The features and exemplary embodiments of various aspects of the present application will be described in detail below. In order to make the purpose, technical solutions and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings and specific embodiments. It should be understood that the specific embodiments described herein are only intended to explain the present application, rather than to limit the present application. For those skilled in the art, the present application can be implemented without the need for some of these specific details. The following description of the embodiments is only to provide a better understanding of the present application by illustrating the examples of the present application.
[0033] It should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the statement "include..." do not exclude the presence of other identical elements in the process, method, article or device including the elements.
[0034] It should be noted that the acquisition, storage, use, and processing of data in the technical solution of this application are in compliance with the relevant provisions of national laws and regulations.
[0035] It should be noted that in the embodiments of the present application, certain software, components, models and other existing solutions in the industry may be mentioned, and they should be regarded as exemplary. Their purpose is only to illustrate the feasibility of implementing the technical solution of the present application, but it does not mean that the applicant has or will necessarily use the solution.
[0036] In the existing methods, coordinate axes are usually established on the design layout, and then a line segment is extended in one direction from a vertex on the contour of the cavity. The line segment will intersect with the contour edge of the adjacent cavity or shell, thereby completing the connection between all the cavities and the shell. However, in the existing methods, it is easy for the coordinates of the intersection of the line segment and the adjacent cavity or shell to be non-integer coordinates and the line segment to cross, which will lead to poor quality of the final design layout.
[0037] The purpose of the present application is to provide a method, device, equipment, medium and program product for processing a design layout. In the method for processing a design layout provided by the embodiment of the present application, when the coordinates of the first cutting point of the hole are non-integer coordinates, the first search box is expanded to a second search box. Thus, a vertex set consisting of vertices within the second search box range and an edge set consisting of each contour edge intersecting each hole with the second search box are constructed. Finally, among the lines connecting each vertex of the vertex set and the hole feature point, a target line with the shortest length and not intersecting with any edge in the edge set is selected. In this way, the target line finally determined belongs to the line connecting the vertex in the vertex set and the hole feature point. Since the vertex coordinates of each hole designed in the design layout are integers, the endpoint coordinates of the target line finally obtained must belong to integers, so the loss of precision of the intersection coordinates stored by the computer can be avoided, and the problem of contour deformation of the design layout can be avoided. At the same time, the target line finally determined does not intersect with each contour edge in the edge set, which can reduce the problem that the intersection of the line segments of the design layout cannot be accurately segmented due to the intersection phenomenon of the target line. In this way, the target connection selected by the embodiment of the present application can improve the quality of the design layout.
[0038] The following describes specific embodiments of the design layout processing method, device, equipment, storage medium and program product provided by the embodiments of the present application. The following first introduces the design layout processing method.
[0039] Figure 1 A flow chart of a method for processing a design layout is provided. The method for processing a design layout can be applied to a server. The method for processing a design layout can include the following S101 to S105.
[0040] S101, determine the first cutting point of each hole according to the first search box of each hole in the design layout, the first search box is a rectangular box extending in a preset direction with the hole feature point as the starting point, the first cutting point is the intersection of a straight line extending in a preset direction with the hole feature point as the starting point and the cutting edge, and the cutting edge is the edge with the shortest distance from the hole feature point among the contour edges of the hole and the contour edges of the shell that intersect with the first search box.
[0041] In this embodiment, the design layout has a corresponding layout coordinate system, wherein the layout coordinate system is a preset plane rectangular coordinate system, and the origin position of the layout coordinate system is any point in the design layout.
[0042] The hole feature point is a point in the hole with significant features. For example, the hole feature point can be a point in the contour edge of the hole with the largest horizontal coordinate in the layout coordinate system.
[0043] The rectangular frame obtained by extending the hole feature point as the starting point in the preset direction according to the preset size is the first search frame, wherein the preset size includes a preset rectangle length and a preset rectangle width.
[0044] The cutting edge is the one with the shortest distance from the hole feature point among the contour edges of the hole and the contour edges of the shell that intersect with the first search box, and the intersection of the straight line extending from the hole feature point to the preset direction and the cutting edge is the first cutting point.
[0045] As an example, Figure 2 As shown, a schematic diagram of determining the first cutting point of a cavity is provided. The point with the largest horizontal coordinate in the outline edge of the cavity 220 in the layout coordinate system is taken as the cavity feature point 250. Then, starting from the cavity feature point 250, the first search box 230 is extended according to a preset size along the positive direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system.
[0046] The first search box 230 intersects only one contour edge of the housing 210, that is, the contour edge is determined to be the cutting edge 270. Then, a straight line 240 is extended along the positive direction of the horizontal axis of the coordinate axis of the layout coordinate system from the hole feature point 250 as the starting point, and the intersection of the straight line 240 and the cutting edge 270 is the first cutting point 260.
[0047] In this embodiment, each hole in the design layout is extended in the same direction to obtain a corresponding first search box, which can reduce the frequency of line segment crossing in the design layout.
[0048] like Figure 3As shown, a schematic diagram of the line segment crossing phenomenon is provided. Among them, there are three holes in the design layout, and there are two connected holes with target connection lines. Among them, the first connected hole 2201 is connected along the positive direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system, and the second connected hole 2202 is connected along the positive direction of the vertical axis of the coordinate axis parallel to the layout coordinate system. At this time, the line segment crossing phenomenon will occur. It can be seen that when the holes do not extend in the same direction to obtain the corresponding first search box, the final corresponding connection line will not be in the same direction, thereby greatly increasing the frequency of the line segment crossing phenomenon.
[0049] S102, for each first cutting point, when the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates, the first search box is expanded according to the endpoint coordinates of the cutting edge to obtain a second search box, and the layout coordinate system is a plane rectangular coordinate system constructed with a preset point in the design layout as the origin.
[0050] In this embodiment, the second search box is a rectangular box with a larger range obtained by expanding the first search box.
[0051] As an example, after determining the first cutting point corresponding to the hole, the server further checks whether the coordinates of the first cutting point corresponding to the hole in the layout coordinate system are non-integer coordinates.
[0052] If the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates (i.e., at least one of the horizontal coordinate and the vertical coordinate is a non-integer), the first search box of the hole is expanded according to the endpoint coordinates of the cutting edge to obtain a larger rectangular box as the second search box of the hole.
[0053] like Figure 2 As shown, assuming that the first cutting point 260 is a non-integer coordinate, the distance between the vertical coordinates of the two end point coordinates of the cutting edge 270 can be used as the expanded second search box width, and the first search box 230 is expanded accordingly so that the expanded second search box can cover the entire cutting edge 270.
[0054] S103, determining a vertex set and an edge set corresponding to the holes according to the second search box, wherein the vertex set includes vertices of each hole within the second search box, and the edge set includes contour edges where each hole intersects with the second search box.
[0055] In this embodiment, the vertex set includes all hole vertices within the second search box range corresponding to the hole, and the edge set includes all contour edges where each hole within the second search box range corresponding to the hole intersects with the second search box.
[0056] As an example, after the server expands the first search box to obtain the second search box, it traverses all the holes in the design layout, combines all the hole vertices within the second search box to obtain the vertex set corresponding to the hole, and combines the contour edges of each hole intersecting with the two search boxes to obtain the edge set corresponding to the hole.
[0057] S104, selecting a target line with the shortest length and not intersecting with any edge in the edge set from the lines connecting each vertex in the vertex set and the hole feature point.
[0058] In this embodiment, after obtaining the vertex set and edge set corresponding to the hole, the server connects each vertex in the vertex set with the hole feature point to obtain a plurality of connecting lines corresponding to the hole.
[0059] Then, we traverse all the links corresponding to the holes and filter out the links that intersect with the contour edges in the edge set. Then we calculate the lengths of the remaining links and select the one with the shortest length as the target link of the hole.
[0060] S105, connecting the holes in the design layout according to the target connection lines of the holes in the design layout to obtain a processed design layout.
[0061] In this embodiment, the server uses a connection tool to connect each cavity according to the target connection line of each cavity in the design layout, so that the cavity and the shell in the design layout are connected into a whole.
[0062] In the processing method of the design layout provided by the present embodiment, when the coordinates of the first cutting point of the hole are non-integer coordinates, the first search box is expanded to the second search box. Thus, a vertex set consisting of vertices within the scope of the second search box and an edge set consisting of each contour edge intersecting each hole with the second search box are constructed. Finally, among the lines connecting each vertex in the vertex set and the hole feature point, a target line with the shortest length and not intersecting with any edge in the edge set is selected. In this way, the target line finally determined belongs to the line connecting the vertex in the vertex set and the hole feature point. Since the vertex coordinates of each hole designed in the design layout are integers, the endpoint coordinates of the target line finally obtained must belong to integers, so the loss of precision of the intersection coordinates stored by the computer can be avoided, and then the problem of contour deformation of the design layout can be avoided. At the same time, the target line finally determined does not intersect with each contour edge in the edge set, which can reduce the problem that the intersection of the line segments of the design layout cannot be accurately segmented due to the intersection phenomenon of the target line. In this way, the target line selected by the embodiment of the present application can improve the quality of the design layout.
[0063] As an optional embodiment, S101 may specifically include:
[0064] For each hole, perform the following steps:
[0065] From each contour edge of the cavity, the coordinate maximum position corresponding to the preset direction is obtained as the cavity feature point;
[0066] Taking the hole feature point as the starting point, taking the first preset size as the width and the second preset size as the length, extending in the preset direction to obtain the first search box, the second preset size being the length from the hole feature point along the preset direction to the contour edge of the housing;
[0067] According to the first search box, determining the cutting edge of the cavity;
[0068] The coordinates of the first cutting point of the hole are calculated according to the coordinates of the hole feature point and the end point coordinates of the cutting edge.
[0069] In this embodiment, when the preset direction is along the positive direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system, the coordinate maximum position is the horizontal coordinate maximum position; when the preset direction is along the negative direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system, the coordinate maximum position is the horizontal coordinate minimum position; when the preset direction is along the positive direction of the vertical axis of the coordinate axis parallel to the layout coordinate system, the coordinate maximum position is the vertical coordinate maximum position; when the preset direction is along the negative direction of the vertical axis of the coordinate axis parallel to the layout coordinate system, the coordinate maximum position is the vertical coordinate minimum position.
[0070] As an example, Figure 2 As shown, the preset direction is the direction along the positive direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system. At this time, the hole feature point 250 of the hole 220 is the maximum position of the horizontal coordinate on the contour line of the hole 220. Then, the first search box 230 is constructed with the hole feature point 250 as the starting point, the first preset size D1 as the width, and the second preset size D2 as the length. Among them, the first preset size D1 is a preset width, for example, the first preset size D1 can be 1 unit length. The second preset size D2 is the length between the hole feature point 250 and the contour edge of the shell 210 along the preset direction.
[0071] Then, each contour edge intersecting with the first search box 230 is obtained, and then the contour edge closest to the hole feature point 250 is selected as the cutting edge 270. As shown in the figure, the first search box 230 intersects only one contour edge of the housing 210, that is, the contour edge is determined to be the cutting edge 270.
[0072] Finally, the linear function expression corresponding to the cutting edge 270 is calculated based on the coordinates of the two endpoints of the cutting edge 270. Since the first cutting point 260 is the intersection of a straight line 240 extending horizontally to the right starting from the hole feature point 250 and the cutting edge 270, the ordinate of the first cutting point 260 is the same as the ordinate of the hole feature point 250. That is, the ordinate of the hole feature point 250 is substituted into the linear function expression corresponding to the cutting edge 270, and the coordinates of the first cutting point 260 of the hole 220 can be obtained.
[0073] As another example, when there are multiple coordinate maximum positions corresponding to the preset direction in each contour edge of the cavity, the coordinate maximum position in the direction perpendicular to the preset direction can be further screened to determine a unique cavity feature point.
[0074] Through this embodiment, the coordinate maximum position corresponding to the preset direction is used as the hole feature point, and the length from the hole feature point to the contour edge of the shell along the preset direction is used as the second preset size to construct the first search box. In this way, the area of the first search box can be reduced as much as possible, which helps to reduce the amount of calculation when performing subsequent calculations based on the first search box, thereby improving the processing speed of the design layout.
[0075] As an optional embodiment, the preset direction is a direction along the positive direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system;
[0076] According to the first search box, determining the cutting edge of the hole may specifically include:
[0077] Traversing each contour edge of the cavity and each contour edge of the shell in the design layout, obtaining each first contour edge whose straight line slope in the layout coordinate system is less than zero among each contour edge;
[0078] According to the first search box, at least one second contour edge intersecting with the first search box is obtained from each first contour edge;
[0079] Calculate the spacing distance between the hole feature point and each second contour edge;
[0080] The second contour edge with the shortest spacing distance is determined as the cutting edge of the cavity.
[0081] In this embodiment, the first contour edge is a contour edge with a straight line slope less than zero, that is, an edge in which the ordinate of the starting point is greater than the ordinate of the ending point. The second contour edge is a contour edge with a straight line slope less than zero and intersecting the first search box.
[0082] For example, Figure 4As shown, a schematic diagram of the storage order of the shell and the cavity is provided. Among them, the storage order of each point on the contour edge in the shell 210 is clockwise, that is, the ordinate of the starting point of the left edge in the shell 210 is less than the ordinate of the end point, and the slope of the straight line is greater than zero; the ordinate of the starting point of the right edge is greater than the ordinate of the end point, and the slope of the straight line is less than zero. The storage order of each point on the contour edge in the cavity 220 is counterclockwise, that is, the ordinate of the starting point of the left edge in the cavity 220 is greater than the ordinate of the end point, and the slope of the straight line is less than zero; the ordinate of the starting point of the right edge is less than the ordinate of the end point, and the slope of the straight line is greater than zero.
[0083] As an example, Figure 5 As shown, a schematic diagram of the intersection of a first search box and a hole is provided. Among them, the first search box 230 made with the hole feature point of a hole in the design layout intersects with two holes, namely the first intersecting hole 510 and the second intersecting hole 520. There are two contour edges intersecting between the first search box 230 and the first intersecting hole 510, and there are also two contour edges intersecting between the first search box 230 and the second intersecting hole 520.
[0084] Finally, the first search box 230 only needs to determine an intersecting contour edge that is closest to the hole feature point as a cutting edge, and when the preset direction is along the positive direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system, the right side of the hole contour edge of each intersecting hole will be farther from the hole feature point than the left side. Therefore, the right side of the hole can be directly omitted in the calculation.
[0085] Specifically, the server traverses each contour edge of the hole and each contour edge of the shell in the design layout, and then selects the first contour edges whose straight line slope in the layout coordinate system is less than zero, that is, retains the left contour edge in the hole and the right contour edge in the shell.
[0086] Then, the first contour edges are further screened according to the first search box to obtain at least one second contour edge in the first contour edge that intersects with the first search box. Finally, the interval distance between the hole feature point and each second contour edge is calculated, and the second contour edge with the shortest interval distance is selected as the cutting edge of the hole.
[0087] Through this embodiment, when the preset direction is the direction along the positive direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system, each contour edge of the hole is first preliminarily screened, and only each first contour edge with a straight line slope less than zero is retained. Then, each first contour edge is screened to obtain at least one second contour edge intersecting with the first search box. In this way, it is only necessary to calculate the interval distance between the hole feature point and each second contour edge, and there is no need to calculate the interval distance between the hole feature point and each contour edge of each hole, which can reduce the amount of calculation and improve the processing speed of the design layout.
[0088] As an optional embodiment, the endpoint coordinates include first endpoint coordinates and second endpoint coordinates, and the coordinates include first axis coordinates and second axis coordinates;
[0089] The first axis coordinate is the coordinate on the coordinate axis parallel to the preset direction, and the second axis coordinate is the coordinate on the coordinate axis perpendicular to the preset direction; according to the coordinate of the hole feature point and the endpoint coordinate of the cutting edge, the coordinate of the first cutting point of the hole is calculated, which may specifically include:
[0090] Divide the difference between the first endpoint coordinate and the second endpoint coordinate on the first axis by the difference between the first endpoint coordinate and the second endpoint coordinate on the second axis to obtain the straight line slope of the cutting edge;
[0091] The difference between the second axis coordinate of the hole feature point and the first endpoint coordinate is multiplied by the slope of the straight line of the cutting edge to obtain an intermediate calculated value;
[0092] Add the first axis coordinate of the first endpoint coordinate to the intermediate calculated value to obtain the first axis coordinate of the first cutting point;
[0093] The second axis coordinate of the hole feature point is determined as the second axis coordinate of the first cutting point.
[0094] In this embodiment, as an example, the preset direction is along the positive direction of the horizontal axis parallel to the layout coordinate system, the coordinates of the first endpoint are (x1, y1), the coordinates of the second endpoint are (x2, y2), and the vertical coordinate of the first endpoint is smaller than the vertical coordinate of the second endpoint.
[0095] The horizontal coordinate of the first cutting point can be determined by the following formula 1:
[0096]
[0097] In the formula, x3 is used to represent the horizontal coordinate of the first cutting point, x1 is used to represent the horizontal coordinate in the first endpoint coordinate, x2 is used to represent the horizontal coordinate in the second endpoint coordinate, y1 is used to represent the vertical coordinate in the first endpoint coordinate, y2 is used to represent the vertical coordinate in the second endpoint coordinate, and y is used to represent the vertical coordinate of the hole feature point.
[0098] in, It is used to characterize the slope of the straight line of the cutting edge, and (y-y1) is used to characterize the vertical coordinate difference between the hole feature point and the first endpoint coordinate.
[0099] Then, since the first cutting point is the intersection of a straight line extending from the hole feature point along the positive direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system and the cutting edge, the longitudinal coordinate of the first cutting point is the same as the longitudinal coordinate of the hole feature point, that is, the longitudinal coordinate of the hole feature point is determined as the longitudinal coordinate of the first cutting point.
[0100] Through this embodiment, the first cutting point of the hole can be accurately calculated according to the first endpoint coordinates and the second endpoint coordinates of the cutting edge and the coordinates of the hole feature point. This helps to accurately determine whether the first cutting point of the hole is an integer coordinate, and then timely process the first cutting point of non-integer coordinates, which can improve the quality of the design layout.
[0101] As an optional embodiment, the endpoint coordinates include a first endpoint coordinate and a second endpoint coordinate, the second axis coordinate of the first endpoint coordinate is smaller than the second axis coordinate of the second endpoint coordinate, and the second axis coordinate is a coordinate on a coordinate axis perpendicular to the preset direction;
[0102] S102 may specifically include:
[0103] Determine the second axis coordinate distance between the first endpoint coordinate and the second endpoint coordinate as the expanded width;
[0104] The difference between the first axis coordinate of the target and the first axis coordinate of the hole feature point is determined as the expanded length, the first axis coordinate of the target is the maximum value of the first axis coordinate of the first endpoint coordinate and the second endpoint coordinate, and the first axis coordinate is the coordinate on the coordinate axis parallel to the preset direction;
[0105] The first search box is expanded according to the expanded width and the expanded length to obtain a second search box.
[0106] In this embodiment, if Figure 6 As shown, a schematic diagram of the expansion of the first search box is provided when the preset direction is along the positive direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system. Wherein, when the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates, the server obtains the first endpoint coordinate A and the second endpoint coordinate B of the cutting edge 270.
[0107] Then the distance between the ordinate of the first endpoint coordinate A and the ordinate of the second endpoint coordinate B is determined as the expanded width. The abscissa of the first endpoint coordinate A and the abscissa of the second endpoint coordinate B are compared to determine that the abscissa of the second endpoint coordinate B is greater than the abscissa of the first endpoint coordinate A. Then the distance between the abscissa of the second endpoint coordinate B and the abscissa of the hole feature point is determined as the expanded length.
[0108] Finally, the server expands the first search box 230 according to the expanded width and the expanded length to obtain the second search box 610 .
[0109] According to this embodiment, when the coordinates of the first cutting point corresponding to the first search box in the layout coordinate system are non-integer coordinates, the first search box is expanded according to the first endpoint coordinates and the second endpoint coordinates to obtain the second search box. This helps to connect the points that meet the connection conditions in the subsequent search according to the second search box, and can improve the quality of the design layout.
[0110] As an optional embodiment, when the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates, the first search box is expanded according to the endpoint coordinates of the cutting edge to obtain the second search box. The processing method of the design layout may further specifically include:
[0111] Determine whether there is a second cutting point with integer coordinates in the cutting edge, and obtain a cutting point determination result;
[0112] If it exists, the second search box is reduced according to the second cutting point to obtain a third search box;
[0113] According to the second search box, determining the vertex set and edge set corresponding to the hole may specifically include:
[0114] According to the third search box, a vertex set and an edge set corresponding to the hole are determined.
[0115] In this embodiment, the second cutting point is a point on the cutting edge other than the end point whose coordinates in the layout coordinate system are integer coordinates.
[0116] The third search box is a search box obtained by reducing the second search box.
[0117] As an example, after obtaining the second search box, the server can also obtain the horizontal coordinate range corresponding to the cutting edge based on the horizontal coordinate of the first endpoint coordinate and the horizontal coordinate of the second endpoint coordinate. Assuming that the horizontal coordinate of the first endpoint coordinate is 3 and the horizontal coordinate of the second endpoint coordinate is 7, the horizontal coordinate range corresponding to the cutting edge is 3-7.
[0118] Then, remove the horizontal coordinates of the two endpoints in the horizontal coordinate range, and there are three integers left: 4, 5, and 6. Substitute the three integers 4, 5, and 6 into the linear function expression corresponding to the cutting edge, obtain the corresponding vertical coordinate value, and determine whether the corresponding vertical coordinate value is an integer. If the corresponding vertical coordinate value is an integer, it is determined that the second cutting point exists.
[0119] This means that in addition to the endpoints, there are points with integer coordinates in the layout coordinate system on the cutting edge, that is, the range of the second search box is too large. At this time, the second search box can be appropriately reduced to obtain a third search box, ensuring that the third search box can include the second cutting point with integer coordinates.
[0120] Through this embodiment, it is determined whether there is a second cutting point with integer coordinates in the cutting edge, and if there is a second cutting point with integer coordinates, the second search box is reduced to obtain a third search box. This can avoid the problem of large calculation amount caused by too large a search box range, and thus can improve the processing speed of the design layout.
[0121] As an optional embodiment, if present, the second search box is reduced according to the second cutting point to obtain a third search box, which may specifically include:
[0122] Obtain the second axis coordinate distance between the second cutting point and the first endpoint coordinates and the second axis coordinate distance between the second cutting point and the second endpoint coordinates;
[0123] When the second axis coordinate distance between the second cutting point and the first endpoint coordinate is less than the second axis coordinate distance between the second cutting point and the second endpoint coordinate, the target edge of the second search frame is moved to the second axis coordinate position of the second cutting point to obtain a third search frame, wherein the target edge is the edge closest to the second cutting point among the edges parallel to the preset direction;
[0124] When the second axis coordinate distance between the second cutting point and the first endpoint coordinates is greater than the second axis coordinate distance between the second cutting point and the second endpoint coordinates, the target edge of the second search box is moved to the second axis coordinate position of the second cutting point to obtain a third search box.
[0125] In this embodiment, the target edge is the edge closest to the second cutting point among the edges along the positive direction of the horizontal axis parallel to the coordinate axis of the layout coordinate system.
[0126] As an example, Figure 7As shown, a schematic diagram of the reduction of the second search box is provided when the preset direction is the positive direction along the horizontal axis of the coordinate axis parallel to the layout coordinate system. Wherein, when the cutting point judgment result indicates that there is a second cutting point C with integer coordinates, the server determines the longitudinal coordinate distance between the second cutting point C and the first endpoint coordinate A and the longitudinal coordinate distance between the second cutting point C and the second endpoint coordinate B.
[0127] At this time, it can be obtained that the vertical coordinate distance between the second cutting point C and the first endpoint coordinate A is smaller, so the bottom edge of the second search box 610 is moved up to the position of the second cutting point C to obtain the third search box 710.
[0128] As another example, when the vertical coordinate distance between the second cutting point C and the second endpoint coordinate B is smaller, the top edge of the second search box 610 is moved down to the position of the second cutting point C to obtain the third search box 710.
[0129] Through this embodiment, the second search box is reduced according to the second cutting point of integer coordinates in the cutting edge to obtain the third search box, thereby avoiding the problem of large calculation amount caused by too large search box range, and further improving the processing speed of the design layout.
[0130] As an optional embodiment, S103 may specifically include:
[0131] Acquire each search cavity in the design layout that is in contact with the second search box to form a search cavity set;
[0132] Traversing each search hole in the search hole set, and obtaining the vertex and contour edge of each search hole in the search hole set;
[0133] Determine whether each vertex is within the second search box, and determine whether each contour edge intersects with the second search box;
[0134] Each vertex within the second search box is used to form a vertex set corresponding to the hole;
[0135] Each contour edge intersecting with the two search boxes forms an edge set corresponding to the hole.
[0136] In this embodiment, the search hole set includes a plurality of search holes, and the search holes are holes in the design layout that are in contact with the second search box.
[0137] The vertex set includes multiple vertices within the two search boxes, and the edge set includes multiple contour edges intersecting the two search boxes.
[0138] As an example, the server traverses each hole in the design layout, collects all search holes that are in contact with the second search box into a set to form a search hole set, and then traverses each search hole in the search hole set in turn, and extracts the vertices and contour edges of each search hole.
[0139] Then, for each vertex of the search hole, determine whether it is within the range of the second search box. Specifically, this can be achieved by comparing the coordinates of the vertex with the coordinate range of the search box. For each contour edge of the search hole, determine whether it intersects with the second search box. Specifically, intersection detection can be achieved using a line segment intersection algorithm.
[0140] Finally, all vertices within the second search box are collected into a vertex set; and all contour edges intersecting the second search box are collected into an edge set.
[0141] Through this embodiment, according to the second search box of the hole, the corresponding vertex set and edge set are constructed, which is helpful to remove the line segments of the contour edge that will pass through the hole according to the vertex set and edge set. Therefore, the problem of not being able to accurately segment the intersection of the line segments of the design layout due to the intersection phenomenon can be reduced, and the quality of the design layout can be improved.
[0142] As an optional embodiment, after each contour edge intersecting with the two search boxes forms the edge set corresponding to the hole, the design layout processing method may further specifically include:
[0143] Determine whether there is a third cutting point in each contour edge in the edge set, and obtain a contour edge determination result, where the third cutting point is the first cutting point with integer coordinates;
[0144] When the contour edge judgment result indicates that there is a third cutting point, determining whether the third cutting point is within the second search box range, and obtaining a cutting point judgment result;
[0145] When the cutting point judgment result indicates that the third cutting point is within the second search box, the line connecting the hole feature point and the third cutting point is stored in the edge set to form an extended edge set corresponding to the hole;
[0146] Among the lines connecting each vertex in the vertex set and the hole feature point, select a target line with the shortest length and does not intersect any edge in the edge set, including:
[0147] Among the lines connecting each vertex in the vertex set and the hole feature point, select a target line with the shortest length and which does not intersect with any edge in the extended edge set.
[0148] In this embodiment, the extended edge set includes all line segments in the edge set and a line connecting the third cutting point and the hole feature point within the coordinate range of the second search box.
[0149] As an example, the server first identifies each contour edge in the edge set to determine whether there is a third cutting point. If there is a third cutting point on the contour edge, all detected third cutting points are traversed. Then, for each third cutting point, it is determined whether it is within the coordinate range of the second search box.
[0150] For the third cutting point located within the coordinate range of the second search box, the connecting lines between the third cutting point and the hole feature point are obtained respectively, and the connecting lines are stored in the edge set to form an extended edge set corresponding to the hole.
[0151] Through this embodiment, after obtaining the edge set corresponding to the hole, the edge set is further expanded according to the third cutting point of each contour edge in the edge set to obtain an extended edge set. In this way, according to the extended edge set, not only the line segments of the contour edge that will pass through the hole are removed later, but also the line segments of the target lines that will pass through other holes can be removed. Thereby, the problem of not being able to accurately segment the intersection of the line segments of the design layout due to the intersection phenomenon can be reduced, and the quality of the design layout can be improved.
[0152] As an optional embodiment, S104 may specifically include:
[0153] Connect each vertex of the vertex set with the hole feature point to form multiple lines;
[0154] For each link, determine whether it intersects with the edges in the edge set, and obtain the link determination result;
[0155] According to the judgment results of each link, at least one candidate link that does not intersect with any edge in the edge set is selected from each link;
[0156] According to the lengths of the candidate links, the candidate link with the shortest length is determined as the target link.
[0157] In this embodiment, the server connects each vertex in the vertex set with the hole feature point in turn to form multiple lines, and then determines for each line whether it intersects with any edge in the edge set.
[0158] Then, the links among the links that intersect with any edge in the edge set are removed to obtain at least one candidate link that does not intersect with any edge in the edge set.
[0159] Finally, for each candidate link, its length is calculated, and the lengths of the candidate links are compared, and the candidate link with the shortest link length is determined as the target link of the hole.
[0160] Through this embodiment, based on the edge set, the line segments of the contour edge that will pass through the hole are removed. This can reduce the problem of being unable to accurately segment the intersection of the line segments of the design layout due to the intersection phenomenon, thereby improving the quality of the design layout. As an optional embodiment, before S102, the design layout processing method can also include:
[0161] For each first cutting point, when the coordinates of the first cutting point in the layout coordinate system are integer coordinates, a line connecting the first cutting point and the hole feature point is determined as a target line.
[0162] In this embodiment, when the coordinates of the first cutting point in the layout coordinate system are integer coordinates (that is, both the horizontal and vertical coordinates are integers), it is proved that the line connecting the first cutting point and the hole feature point at this time meets the processing requirements of the design layout. At this time, the line connecting the first cutting point and the hole feature point is directly used as the target line and stored.
[0163] Through this embodiment, when the coordinates of the first cutting point in the layout coordinate system are integer coordinates, the line connecting the first cutting point and the hole feature point is directly determined as the target line. There is no need to expand the search box to find other lines, which can simplify the processing flow of the design layout and improve processing efficiency.
[0164] Processing method based on design layout. Accordingly, the present application also provides a specific embodiment of a processing device for design layout.
[0165] like Figure 8 As shown, the design layout processing device 800 provided in the embodiment of the present application includes a cutting point determination module 810, a search box expansion module 820, a set determination module 830, a connection selection module 840 and a layout processing module 850.
[0166] The cutting point determination module 810 is used to determine the first cutting point of each hole according to the first search box of each hole in the design layout, the first search box is a rectangular box extending from the hole feature point as the starting point to the preset direction, the first cutting point is the intersection of the straight line extending from the hole feature point as the starting point to the preset direction and the cutting edge, and the cutting edge is the edge with the smallest distance from the hole feature point among the contour edges of the hole and the contour edges of the shell that intersect with the first search box;
[0167] A search box expansion module 820 is used to expand the first search box according to the endpoint coordinates of the cutting edge for each first cutting point, to obtain a second search box when the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates, and the layout coordinate system is a plane rectangular coordinate system constructed with a preset point in the design layout as the origin;
[0168] A set determination module 830 is used to determine a vertex set and an edge set corresponding to the holes according to the second search box, wherein the vertex set includes vertices of each hole within the second search box, and the edge set includes each contour edge intersecting the hole with the second search box;
[0169] A line selection module 840 is used to select a target line with the shortest length and not intersecting with any edge in the edge set from the lines connecting each vertex in the vertex set and the hole feature point;
[0170] The layout processing module 850 is used to connect the holes in the design layout according to the target connection lines of the holes in the design layout to obtain a processed design layout.
[0171] As an optional embodiment, the cutting point determination module 810 specifically includes the following units:
[0172] A feature point acquisition unit, used to acquire, from each contour edge of the cavity, a coordinate maximum position corresponding to a preset direction as a cavity feature point;
[0173] A search box construction unit is used to take the hole feature point as a starting point, take a first preset size as a width and take a second preset size as a length, and extend in a preset direction to obtain a first search box, wherein the second preset size is the length from the hole feature point to the contour edge of the shell along the preset direction;
[0174] A cutting edge determining unit, configured to determine a cutting edge of the cavity according to the first search frame;
[0175] The cutting point calculation unit is used to calculate the coordinates of the first cutting point of the hole according to the coordinates of the hole feature point and the endpoint coordinates of the cutting edge.
[0176] As an optional embodiment, the preset direction is a direction along the positive direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system;
[0177] The cutting edge determination unit specifically includes the following subunits:
[0178] A contour edge acquisition subunit is used to traverse each contour edge of the hole and each contour edge of the shell in the design layout, and acquire each first contour edge whose straight line slope is less than zero in the layout coordinate system among each contour edge;
[0179] A contour edge screening subunit, configured to screen, according to the first search box, from each of the first contour edges to obtain at least one second contour edge intersecting with the first search box;
[0180] A distance calculation subunit, used to calculate the interval distance between the hole feature point and each second contour edge;
[0181] The cutting edge determination subunit is used to determine the second contour edge with the shortest spacing distance as the cutting edge of the hole.
[0182] As an optional embodiment, the endpoint coordinates include first endpoint coordinates and second endpoint coordinates, and the coordinates include first axis coordinates and second axis coordinates;
[0183] The first axis coordinate is the coordinate on the coordinate axis parallel to the preset direction, and the second axis coordinate is the coordinate on the coordinate axis perpendicular to the preset direction;
[0184] The cutting point calculation unit is specifically used for:
[0185] Divide the difference between the first endpoint coordinate and the second endpoint coordinate on the first axis by the difference between the first endpoint coordinate and the second endpoint coordinate on the second axis to obtain the straight line slope of the cutting edge;
[0186] The difference between the second axis coordinate of the hole feature point and the first endpoint coordinate is multiplied by the slope of the straight line of the cutting edge to obtain an intermediate calculated value;
[0187] Add the first axis coordinate of the first endpoint coordinate to the intermediate calculated value to obtain the first axis coordinate of the first cutting point;
[0188] The second axis coordinate of the hole feature point is determined as the second axis coordinate of the first cutting point.
[0189] As an optional embodiment, the endpoint coordinates include a first endpoint coordinate and a second endpoint coordinate, the second axis coordinate of the first endpoint coordinate is smaller than the second axis coordinate of the second endpoint coordinate, and the second axis coordinate is a coordinate on a coordinate axis perpendicular to the preset direction;
[0190] The search box expansion module 820 specifically includes the following units:
[0191] A width determination unit, used to determine the second axis coordinate distance between the first endpoint coordinate and the second endpoint coordinate as the expanded width;
[0192] a length determination unit, used to determine the difference between the target first-axis coordinate and the first-axis coordinate of the hole feature point as the expanded length, the target first-axis coordinate being the maximum value of the first-axis coordinate between the first endpoint coordinate and the second endpoint coordinate, and the first-axis coordinate being the coordinate on the coordinate axis parallel to the preset direction;
[0193] The search box expansion unit is used to expand the first search box according to the expanded width and the expanded length to obtain the second search box.
[0194] As an optional embodiment, when the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates, the first search box is expanded according to the endpoint coordinates of the cutting edge to obtain the second search box. The processing device 800 of the design layout further includes the following modules:
[0195] A cutting point judgment module is used to judge whether there is a second cutting point with integer coordinates in the cutting edge, and obtain a cutting point judgment result;
[0196] A search box reduction module, for reducing the second search box according to the second cutting point to obtain a third search box, if any;
[0197] The set determination module 830 is specifically used for:
[0198] According to the third search box, a vertex set and an edge set corresponding to the hole are determined.
[0199] As an optional embodiment, the search box reduction module specifically includes the following units:
[0200] a distance determination unit, used to obtain a second axis coordinate distance between the second cutting point and the first endpoint coordinates and a second axis coordinate distance between the second cutting point and the second endpoint coordinates;
[0201] a boundary moving unit, configured to move a target edge of the second search frame to the second axis coordinate position of the second cutting point when the second axis coordinate distance between the second cutting point and the first endpoint coordinate is less than the second axis coordinate distance between the second cutting point and the second endpoint coordinate, so as to obtain a third search frame, wherein the target edge is the edge closest to the second cutting point among the edges parallel to the preset direction;
[0202] The boundary movement unit is also used to move the target edge of the second search box to the second axis coordinate position of the second cutting point to obtain a third search box when the second axis coordinate distance between the second cutting point and the first endpoint coordinates is greater than the second axis coordinate distance between the second cutting point and the second endpoint coordinates.
[0203] As an optional embodiment, the set determination module 830 specifically includes the following units:
[0204] A set construction unit, used to obtain each search hole in the design layout that is in contact with the second search box to form a search hole set;
[0205] An element acquisition unit, used for traversing each search hole in the hole set, and acquiring the vertex and contour edge of each search hole in the search hole set;
[0206] A contour edge judgment unit, used to judge whether each vertex is within the second search box, and to judge whether each contour edge intersects with the second search box;
[0207] The set construction unit is further used to form the vertex set corresponding to the hole from each vertex within the second search frame;
[0208] The set construction unit is further used to form an edge set corresponding to the hole by combining each contour edge intersecting with the two search boxes.
[0209] As an optional embodiment, after each contour edge intersecting with the two search boxes is used to form the edge set corresponding to the hole, the set determination module 830 further includes the following units:
[0210] A cutting point judgment unit, used for judging whether there is a third cutting point in each contour edge in the edge set, and obtaining a contour edge judgment result, wherein the third cutting point is the first cutting point with integer coordinates;
[0211] The cutting point judgment unit is further used to judge whether the third cutting point is within the second search box range when the contour edge judgment result indicates that there is a third cutting point, and obtain a cutting point judgment result;
[0212] The set construction unit is further configured to store the connection line between the hole feature point and the third cutting point in the edge set to form an extended edge set corresponding to the hole when the cutting point judgment result indicates that the third cutting point is within the second search box;
[0213] The connection selection module 840 is specifically used for:
[0214] Among the lines connecting each vertex in the vertex set and the hole feature point, select a target line with the shortest length and which does not intersect with any edge in the extended edge set.
[0215] As an optional embodiment, the connection selection module 840 specifically includes the following units:
[0216] A line construction unit, used to connect each vertex of the vertex set with the hole feature point to form a plurality of lines;
[0217] A line judgment unit is used to judge, for each line, whether it intersects with an edge in the edge set, and obtain a line judgment result;
[0218] A link screening unit, used for screening at least one candidate link from each link that does not intersect with any edge in the edge set according to the judgment results of each link;
[0219] The link determination unit is used to determine the candidate link with the shortest link length as the target link according to the link lengths of the candidate links.
[0220] As an optional embodiment, for each first cutting point, when the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates, the first search box is expanded according to the endpoint coordinates of the cutting edge, and before the second search box is obtained, the design layout processing device further includes:
[0221] The line selection module 840 is also used to determine the line connecting the first cutting point and the hole feature point as the target line for each first cutting point when the coordinates of the first cutting point in the layout coordinate system are integer coordinates. A processing method based on a design layout. Accordingly, the present application also provides a specific embodiment of a processing device for a design layout.
[0222] Fig. 9 A schematic diagram of the hardware structure of a processing device for a design layout provided in an embodiment of the present application is shown.
[0223] The processing device for designing a layout may include a processor 901 and a memory 902 storing computer program instructions.
[0224] Specifically, the processor 901 may include a central processing unit (CPU), or an application specific integrated circuit (ASIC), or may be configured to implement one or more integrated circuits of the embodiments of the present application.
[0225] The memory 902 may include a large capacity memory for data or instructions. By way of example and not limitation, the memory 902 may include a hard disk drive (HDD), a floppy disk drive, a flash memory, an optical disk, a magneto-optical disk, a magnetic tape, or a universal serial bus (USB) drive or a combination of two or more of these. In appropriate cases, the memory 902 may include a removable or non-removable (or fixed) medium. In appropriate cases, the memory 902 may be inside or outside the integrated gateway disaster recovery device. In a specific embodiment, the memory 902 is a non-volatile solid-state memory.
[0226] The processor 901 reads and executes the computer program instructions stored in the memory 902 to implement any one of the design layout processing methods in the above embodiments.
[0227] In one example, the design layout processing device may further include a communication interface 903 and a bus 910. Fig. 9As shown, the processor 901, the memory 902, and the communication interface 903 are connected via a bus 910 and communicate with each other.
[0228] The communication interface 903 is mainly used to implement communication between various modules, devices, layout units and / or equipment in the embodiments of the present application.
[0229] Bus 910 includes hardware, software or both, and the parts of the processing equipment of the design layout are coupled to each other. For example, but not limitation, the bus may include accelerated graphics port (AGP) or other graphics bus, enhanced industrial standard architecture (EISA) bus, front-end bus (FSB), hypertransport (HT) interconnection, industrial standard architecture (ISA) bus, infinite bandwidth interconnection, low pin count (LPC) bus, memory bus, micro channel architecture (MCA) bus, peripheral component interconnection (PCI) bus, PCI-Express (PCI-X) bus, serial advanced technology attachment (SATA) bus, video electronics standard association local (VLB) bus or other suitable bus or two or more of these combinations. In appropriate cases, bus 910 may include one or more buses. Although the present application embodiment describes and shows a specific bus, the application considers any suitable bus or interconnection.
[0230] In addition, in combination with the design layout processing method in the above embodiment, the embodiment of the present application can provide a computer storage medium for implementation. The computer storage medium stores computer program instructions; when the computer program instructions are executed by the processor, any one of the design layout processing methods in the above embodiment is implemented.
[0231] In addition, in combination with the design layout processing method in the above-mentioned embodiment, the embodiment of the present application can provide a computer program product for implementation. When the instructions in the computer program product are executed by the processor of an electronic device, the electronic device executes the design layout processing method provided in any aspect of the above-mentioned embodiment of the present application.
[0232] It should be clear that the present application is not limited to the specific configuration and processing described above and shown in the figures. For the sake of simplicity, a detailed description of the known method is omitted here. In the above embodiments, several specific steps are described and shown as examples. However, the method process of the present application is not limited to the specific steps described and shown, and those skilled in the art can make various changes, modifications and additions, or change the order between the steps after understanding the spirit of the present application.
[0233] The functional blocks shown in the above-described block diagram can be implemented as hardware, software, firmware or a combination thereof. When implemented in hardware, it can be, for example, an electronic circuit, an application specific integrated circuit (ASIC), appropriate firmware, a plug-in, a function card, etc. When implemented in software, the elements of the present application are programs or code segments that are used to perform the required tasks. The program or code segment can be stored in a machine-readable medium, or transmitted on a transmission medium or a communication link by a data signal carried in a carrier wave. "Machine-readable medium" can include any medium capable of storing or transmitting information. Examples of machine-readable media include electronic circuits, semiconductor memory devices, ROM, flash memory, erasable ROM (EROM), floppy disks, CD-ROMs, optical disks, hard disks, optical fiber media, radio frequency (RF) links, etc. The code segment can be downloaded via a computer network such as the Internet, an intranet, etc.
[0234] It should also be noted that the exemplary embodiments mentioned in this application describe some methods or systems based on a series of steps or devices. However, this application is not limited to the order of the above steps, that is, the steps can be performed in the order mentioned in the embodiment, or in a different order from the embodiment, or several steps can be performed simultaneously.
[0235] Aspects of the present disclosure are described above with reference to the flowchart and / or block diagram of the method, device (system) and computer program product according to the embodiment of the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine so that these instructions executed by the processor of the computer or other programmable data processing device enable the implementation of the function / action specified in one or more boxes of the flowchart and / or block diagram. Such a processor can be, but is not limited to, a general-purpose processor, a special-purpose processor, a special application processor, or a field programmable logic circuit. It can also be understood that each box in the block diagram and / or flowchart and the combination of boxes in the block diagram and / or flowchart can also be implemented by dedicated hardware that performs a specified function or action, or can be implemented by a combination of dedicated hardware and computer instructions.
[0236] The above is only a specific implementation of the present application. Those skilled in the art can clearly understand that for the convenience and simplicity of description, the specific working process of the system, module and layout unit described above can refer to the corresponding process in the aforementioned method embodiment, and will not be repeated here. It should be understood that the protection scope of the present application is not limited to this. Any technician familiar with the technical field can easily think of various equivalent modifications or replacements within the technical scope disclosed in this application, and these modifications or replacements should be included in the protection scope of this application.
Claims
1. A method for processing a design layout, characterized in that: include: Determine the first cutting point of each hole according to the first search box of each hole in the design layout, the first search box is a rectangular box extending in a preset direction with the hole feature point as the starting point, the first cutting point is the intersection of a straight line extending in a preset direction with the hole feature point as the starting point and a cutting edge, and the cutting edge is the edge with the shortest distance from the hole feature point among the contour edges of the hole and the contour edges of the shell intersecting with the first search box; For each of the first cutting points, when the coordinates of the first cutting points in the layout coordinate system are non-integer coordinates, the first search box is expanded according to the endpoint coordinates of the cutting edge to obtain a second search box, and the layout coordinate system is a plane rectangular coordinate system constructed with a preset point in the design layout as an origin; Determine, according to the second search box, a vertex set and an edge set corresponding to the holes, wherein the vertex set includes vertices of each hole within the second search box, and the edge set includes each of the contour edges intersecting the holes with the second search box; Among the lines connecting each vertex of the vertex set and the hole feature point, select a target line with the shortest length and not intersecting with any edge in the edge set; According to the target connection lines of the holes in the design layout, the holes in the design layout are connected to obtain a processed design layout.
2. The method according to claim 1, characterized in that Determining the first cutting point of each cavity according to the first search box of each cavity in the design layout includes: For each of the holes, the following steps are performed respectively: From each contour edge of the hole, obtaining the coordinate maximum position corresponding to the preset direction as the hole feature point; Taking the hole feature point as a starting point, taking a first preset size as a width and a second preset size as a length, extending in the preset direction to obtain the first search box, wherein the second preset size is the length from the hole feature point along the preset direction to the contour edge of the housing; Determining a cutting edge of the cavity according to the first search box; The coordinates of the first cutting point of the hole are calculated according to the coordinates of the hole feature point and the endpoint coordinates of the cutting edge.
3. The method according to claim 2, characterized in that The preset direction is a direction along the positive direction of the horizontal axis of the coordinate axis parallel to the layout coordinate system; The step of determining the cutting edge of the hole according to the first search box includes: Traversing each contour edge of the cavity and each contour edge of the shell in the design layout, and obtaining each first contour edge whose straight line slope in the layout coordinate system is less than zero among each contour edge; According to the first search box, at least one second contour edge intersecting with the first search box is obtained from each of the first contour edges; Calculating the spacing distance between the hole feature point and each of the second contour edges; The second contour edge with the shortest spacing distance is determined as a cutting edge of the cavity.
4. The method according to claim 2, characterized in that: The endpoint coordinates include a first endpoint coordinate and a second endpoint coordinate, and the coordinates include a first axis coordinate and a second axis coordinate; The first axis coordinates are coordinates on a coordinate axis parallel to the preset direction, and the second axis coordinates are coordinates on a coordinate axis perpendicular to the preset direction; The step of calculating the coordinates of the first cutting point of the hole according to the coordinates of the hole feature point and the endpoint coordinates of the cutting edge comprises: Dividing the difference between the first endpoint coordinate and the second endpoint coordinate on the first axis by the difference between the first endpoint coordinate and the second endpoint coordinate on the second axis to obtain the straight line slope of the cutting edge; Multiply the difference between the second axis coordinate of the hole feature point and the first end point coordinate by the straight line slope of the cutting edge to obtain an intermediate calculated value; Add the first axis coordinate of the first endpoint coordinate to the intermediate calculated value to obtain the first axis coordinate of the first cutting point; The second axis coordinate of the hole feature point is determined as the second axis coordinate of the first cutting point.
5. The method according to claim 1, characterized in that The endpoint coordinates include a first endpoint coordinate and a second endpoint coordinate, the second axis coordinate of the first endpoint coordinate is smaller than the second axis coordinate of the second endpoint coordinate, and the second axis coordinate is a coordinate on a coordinate axis perpendicular to the preset direction; When the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates, the first search box is expanded according to the endpoint coordinates of the cutting edge to obtain a second search box, including: Determine the second axis coordinate distance between the first endpoint coordinate and the second endpoint coordinate as the expanded width; Determine the difference between the target first-axis coordinate and the first-axis coordinate of the hole feature point as the expanded length, the target first-axis coordinate being the maximum value of the first-axis coordinate between the first endpoint coordinate and the second endpoint coordinate, and the first-axis coordinate being the coordinate on the coordinate axis parallel to the preset direction; The first search box is expanded according to the expanded width and the expanded length to obtain a second search box.
6. The method according to claim 5, characterized in that When the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates, after expanding the first search box according to the endpoint coordinates of the cutting edge to obtain the second search box, the method further includes: Determine whether there is a second cutting point with integer coordinates in the cutting edge, and obtain a cutting point determination result; If so, the second search box is reduced according to the second cutting point to obtain a third search box; The step of determining a vertex set and an edge set corresponding to the hole according to the second search box includes: According to the third search box, a vertex set and an edge set corresponding to the hole are determined.
7. The method according to claim 6, characterized in that If it exists, the second search box is reduced according to the second cutting point to obtain a third search box, including: Acquire the second axis coordinate distance between the second cutting point and the first endpoint coordinates and the second axis coordinate distance between the second cutting point and the second endpoint coordinates; When the second axis coordinate distance between the second cutting point and the first endpoint coordinate is less than the second axis coordinate distance between the second cutting point and the second endpoint coordinate, the target edge of the second search box is moved to the second axis coordinate position of the second cutting point to obtain the third search box, and the target edge is the edge closest to the second cutting point among the edges parallel to the preset direction; When the second-axis coordinate distance between the second cutting point and the first endpoint coordinates is greater than the second-axis coordinate distance between the second cutting point and the second endpoint coordinates, the target edge of the second search box is moved to the second-axis coordinate position of the second cutting point to obtain the third search box.
8. The method according to claim 1, characterized in that The step of determining a vertex set and an edge set corresponding to the hole according to the second search box includes: Acquire each search cavity in the design layout that is in contact with the second search box to form a search cavity set; Traversing each of the search holes in the search hole set, and obtaining vertices and contour edges of each of the search holes in the search hole set; Determine whether each vertex is within the second search box, and determine whether each contour edge intersects with the two search boxes; The vertices within the second search frame form the vertex set corresponding to the hole; Each contour edge intersecting with the two search boxes constitutes the edge set corresponding to the hole.
9. The method according to claim 8, characterized in that After each contour edge that will intersect with the second search box forms the edge set corresponding to the hole, the method further includes: Determine whether there is a third cutting point in each of the contour edges in the edge set, and obtain a contour edge determination result, wherein the third cutting point is the first cutting point belonging to an integer coordinate; In the case where the contour edge judgment result indicates that the third cutting point exists, judging whether the third cutting point is within the second search box range, and obtaining a cutting point judgment result; When the cutting point judgment result indicates that the third cutting point is within the second search box, the line connecting the hole feature point and the third cutting point is stored in the edge set to form an extended edge set corresponding to the hole; The step of selecting a target line with the shortest length and not intersecting any edge in the edge set from the lines connecting each vertex in the vertex set and the hole feature point comprises: Among the lines connecting each vertex of the vertex set and the hole feature point, a target line with the shortest length and not intersecting with any edge in the extended edge set is selected.
10. The method according to any one of claims 1 to 9, characterized in that: The step of selecting a target line with the shortest length and not intersecting any edge in the edge set from the lines connecting each vertex in the vertex set and the hole feature point comprises: Connecting each vertex of the vertex set to the hole feature point to form a plurality of connecting lines; For each of the connecting lines, determine whether it intersects with an edge in the edge set, and obtain a connecting line determination result; According to the judgment results of each of the links, at least one candidate link that does not intersect with any edge in the edge set is selected from each of the links; According to the link lengths of the candidate links, the candidate link with the shortest link length is determined as the target link.
11. The method according to any one of claims 1 to 9, characterized in that: For each of the first cutting points, when the coordinates of the first cutting point in the layout coordinate system are non-integer coordinates, before expanding the first search box according to the endpoint coordinates of the cutting edge to obtain the second search box, the method further includes: For each of the first cutting points, when the coordinates of the first cutting point in the layout coordinate system are integer coordinates, a line connecting the first cutting point and the hole feature point is determined as the target line.
12. An electronic device, characterized in that: The device comprises: a processor and a memory storing computer program instructions; When the processor executes the computer program instructions, the method for processing the design layout as described in any one of claims 1-11 is implemented.
13. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer program instructions, and when the computer program instructions are executed by a processor, the method for processing a design layout according to any one of claims 1 to 11 is implemented.
14. A computer program product, characterized in that When the instructions in the computer program product are executed by a processor of an electronic device, the electronic device executes the method for processing a design layout as described in any one of claims 1-11.
Citation Information
Patent Citations
Cutting method of PCB layout
CN112580294A
Integrated circuit layout graph drawing method and device, equipment and medium
CN116628787A
Design layout internal structure processing method and device and computer equipment
CN117371383A