Maximum inscribed rectangle searching method and design rule checking method

By proposing a search method for the largest inline rectangle in integrated circuit design, the problem of excessive memory consumption in the prior art is solved, and more efficient DRC rule checking and chip design verification are achieved.

CN119886048AActive Publication Date: 2025-04-25SHENZHEN GOUWEIXIN TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202510078937.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-17
Publication Date
2025-04-25
Estimated Expiration
2045-01-17

AI Technical Summary

Technical Problem

The algorithm used in integrated circuit design for DRC rules checking consumes too much memory, resulting in slow processing speed and inaccurate results.

Method used

A method for finding the largest inline rectangle is proposed. By obtaining the orientation of each edge of the figure, the maximum extension and inline rectangle are drawn on each reference facing edge in sequence, and the rectangle with the largest area is selected as the largest inline rectangle of the figure.

Benefits of technology

By reducing the use of memory resources, the time for checking complex DRC rules is significantly reduced, the efficiency of chip design and verification is improved, and the accuracy of the algorithm is ensured.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119886048A_ABST
    Figure CN119886048A_ABST
Patent Text Reader

Abstract

The invention discloses a maximum inscribed rectangle searching method and a design rule checking method. The method for searching the maximum inscribed rectangle of the graph comprises the following steps: acquiring the orientation of each edge of the graph; obtaining all edges in the reference orientation; sequentially carrying out the following operations on each edge of the reference orientation: extending each edge of the reference orientation in the graph until the two ends of the extended edge are located at the boundary of the graph; obtaining all vertical edges covered by one side of the extended edge; a starting edge and a returning edge corresponding to the starting edge are sequentially selected to draw an inscribed rectangle, the orientation of the starting edge points to the starting point of the extended edge, and the returning edge is an edge which is opposite to the starting edge, closest to the starting edge and opposite to the starting edge in orientation; and after all the edges of the reference orientation are executed, selecting the rectangle with the maximum area from all the inscribed rectangles as the maximum inscribed rectangle of the graph. According to the method, the maximum inscribed rectangle of the graph can be found with less memory.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention relates to the technical field of integrated circuit automatic design, and in particular to a method for searching a maximum inscribed rectangle. Background Art

[0002] At present, in the integrated circuit design process, DRC rule checking is a key step to ensure that the chip design meets the manufacturing specifications. Tools such as Calibre have poor execution efficiency, low accuracy, and inconsistent results in related rules. As the complexity of integrated circuit design increases, the results generated by related rules will be used multiple times by other DRC rules, and the requirements for speed and accuracy are more stringent.

[0003] Existing algorithms usually use a full traversal method for calculation. When processing a large number of complex graphs, the time consumed increases exponentially and the required memory is also very large.

[0004] Therefore, how to provide a method for searching the maximum inscribed rectangle that occupies less memory resources is a technical problem to be solved. Summary of the invention

[0005] In order to solve the technical problem of excessive memory consumption in the prior art, the present invention proposes a maximum inscribed rectangle searching method and a design rule checking method.

[0006] The method for searching the maximum inscribed rectangle of a figure proposed by the present invention comprises:

[0007] Step 1, obtain the direction of each edge of the graph;

[0008] Step 2, taking one of the orientations as the reference orientation, and obtaining all edges with the reference orientation;

[0009] Step 3: Perform the following operations on each edge of the reference orientation in turn:

[0010] Each edge of the base orientation is extended to the maximum extent within the figure until both ends of the extended edge of the base orientation are located at the boundaries of the figure;

[0011] Get all the vertically oriented edges covered by one side of the extended base oriented edge;

[0012] Along the direction of the edge of the extended reference direction, a starting edge and its corresponding return edge are selected in sequence from the edges with a vertical direction to draw an inscribed rectangle, wherein the direction of the starting edge points to the starting point of the extended edge, and the return edge is an edge with an opposite direction that is opposite to the starting edge after extension within the graphic range and is closest to the starting edge;

[0013] Step 4: After all the edges in the base orientation are executed, the rectangle with the largest area is selected from all the inscribed rectangles as the largest inscribed rectangle of the figure.

[0014] Further, in step 3, when the return edge is projected toward its corresponding starting edge, if it fails to cover the starting edge, then after the inscribed rectangle corresponding to the starting edge is drawn, the excess portion within the graphic range where the starting edge is located is formed along the same direction as the starting edge to form at least one new starting edge, and its corresponding return edge is selected to draw an inscribed rectangle, and the return edge of the new starting edge is the portion of the return edge whose projection can cover the new starting edge.

[0015] Furthermore, when there are multiple edges of the reference orientation, before step 3, all edges of the reference orientation are sorted according to the unique x value or unique y value of their coordinates;

[0016] When all the base-oriented edges are sorted according to the unique x-values ​​of their coordinates, the unique x-value of the first base-oriented edge is not equal to the maximum or minimum x-value of the graph;

[0017] When all the base-oriented edges are sorted according to the unique y values ​​of their coordinates, the unique y value of the first base-oriented edge is not equal to the maximum or minimum y value of the graph.

[0018] And in step 3, when obtaining all the vertically oriented edges covered by one side of the extended edge, the side of the outer contour of the graphic closest to the edge of the first reference orientation is preferentially selected.

[0019] Further, in step 3, when the return edge is projected toward its corresponding starting edge, if it fails to cover the starting edge, then after the inscribed rectangle corresponding to the starting edge is drawn, the portion exceeding the range of the graphic where the starting edge is located is formed along the same direction as the starting edge to form at least one new starting edge, and the new starting edge has the same end point as the original starting edge. The return edge corresponding to the new starting edge is selected, and an inscribed rectangle is drawn. The return edge of the new starting edge is the portion of the return edge that can be projected to cover the new starting edge.

[0020] Furthermore, taking the direction of the edge parallel to the reference orientation as the x-direction, all the edges of the reference orientation are sorted from large to small according to the unique y-values ​​of their coordinates; the edges of the reference orientation are processed in sequence according to the sorting, and the processed edges of the reference orientation and all the perpendicular edges covered by their projections are recorded; when obtaining all the perpendicular edges covered by the edge of the reference orientation currently being processed after its extension, the recorded perpendicular edges are filtered out, and only the unrecorded perpendicular edges are processed.

[0021] Furthermore, the reference orientation is the edge facing East.

[0022] Furthermore, one side of the side in the extended reference direction is the upper side of the side.

[0023] The design rule checking method for integrated circuits of the present invention includes a method for searching the maximum inscribed rectangle of the graph of the above technical solution.

[0024] The present invention detects the anisotropic line segment algorithm within the line segment interval where the edge is located, and by sacrificing a small amount of memory size, the time in complex DRC rule checking is greatly reduced, thereby improving the efficiency of chip design and verification. In addition, all local maximum rectangles in the graphics can be accurately traversed, and the accuracy of the values ​​calculated by the algorithm is ensured while ensuring the efficiency of the algorithm. When the present invention is implemented in C++ language, it can be compatible with the development of multiple system platforms such as Windows and Linux, improving the high compatibility of system access, and can also be re-encapsulated into a function in a graphics class or a more general graphics processing algorithm. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] The present invention is described in detail below with reference to the embodiments and accompanying drawings, wherein:

[0026] Figure 1 This is an overall flow chart of an embodiment of the present invention. 。

[0027] Figure 2 1 is a diagram of an embodiment of the present invention.

[0028] Figure 3 yes Figure 2 Schematic diagram of the inscribed rectangle generated by an edge with a base orientation in .

[0029] Figure 4 It is a diagram of another embodiment of the present invention.

[0030] Figure 5 yes Figure 4 Schematic diagram of the edges of all base orientations.

[0031] Figure 6 yes Figure 5 Schematic diagram of an edge with a base orientation extended.

[0032] Figure 7 yes Figure 6 Schematic diagram of all perpendicularly oriented edges on one side of the extended base oriented edge.

[0033] Figure 8 yes Figure 7 Schematic diagram of the inscribed rectangle formed by two of the starting edges and their return edges.

[0034] Fig. 9 is based on Figure 8 Schematic diagram of the newly generated starting edges of the two starting edges shown.

[0035] Fig.10is based on Fig. 9 The inscribed rectangle formed by the newly generated starting edge and its return edge.

[0036] Fig.11 yes Figure 7 Schematic diagram of the inscribed rectangle formed by the last starting edge and its return edge.

[0037] Fig.12 yes Figure 5 The inscribed rectangle generated by the start and return edges corresponding to the other base-oriented edge.

[0038] Fig.13 is based on Fig.12 The inscribed rectangle formed by the two newly generated starting edges and their return edges.

[0039] Fig.14 yes Figure 5 The inscribed rectangle formed by the last starting edge of the other base-oriented edge and its return edge.

[0040] Fig.15 yes Figure 4 A diagram of all the inscribed rectangles of the figure shown. DETAILED DESCRIPTION

[0041] In order to make the technical problems, technical solutions and beneficial effects to be solved by the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.

[0042] Thus, a feature indicated in this specification will be used to illustrate one of the features of an embodiment of the present invention, rather than implying that each embodiment of the present invention must have the described feature. In addition, it should be noted that this specification describes many features. Although some features can be combined together to illustrate possible system designs, these features can also be used in other combinations that are not explicitly described. Thus, unless otherwise stated, the described combinations are not intended to be limiting.

[0043] like Figure 1 As shown, the method for searching the maximum inscribed rectangle of a figure of the present invention mainly includes two iterative algorithms. In a basic embodiment, the method for searching the maximum inscribed rectangle includes the following steps.

[0044] Step 1, obtain the direction of each edge of the figure; the direction of the edge means that the edge has a starting point and an end point when it is drawn. Usually, the end point of the first edge of two adjacent edges is the starting point of the second edge, and among the multiple edges in the figure that are connected end to end to form a closed boundary, the direction of the closed boundary finally formed is either clockwise or counterclockwise.

[0045] Step 2: Take one of the directions as the base direction and obtain all edges with the base direction. If the edge with the South direction is taken as the base direction, all edges with the South direction must be obtained first.

[0046] Step 3, perform the following operations on each edge of the reference orientation in turn. This is the first level iteration of the present invention. Each edge of the reference orientation needs to enter this iteration once:

[0047] Each edge of the reference orientation is extended to the maximum extent within the graph until both ends of the extended edge are located at the boundary of the graph; if the starting point of the edge of the reference orientation currently being processed is already located at the boundary of the graph, the end point of the edge of the reference orientation is extended until it touches the boundary of the graph. If the starting point and end point of the edge are already located at the boundary of the graph, the length of the extended edge is the same as the original edge.

[0048] After extending the edge, all the vertical edges covered on one side of the extended reference orientation edge are obtained. It should be noted that the present invention only obtains all the vertical edges covered on one side, because the present invention processes all the reference orientation edges, and thus only obtains all the vertical edges covered on one side to draw the inscribed rectangle, which is more resource-efficient. Of course, those skilled in the art can also obtain all the vertical edges on both sides of the reference orientation edge, and after processing one side, process the other side. Although this is also feasible, it will cause unnecessary waste of resources.

[0049] Taking the EAST-facing edge as an example, get the SOUTH-facing edge whose x value is less than or equal to the starting point (left endpoint) of this edge and is closest to the starting point (left endpoint), then get the NORTH-facing edge whose x value is greater than or equal to the end point (right endpoint) of this edge and is closest to the end point (right endpoint), and then extend this edge toward the corresponding SOUTH-facing edge and the corresponding NORTH-facing edge.

[0050] Taking the SOUTH-facing edge as an example, obtain the EAST-facing edge whose y value is less than or equal to the end point (lower endpoint) of this edge and is closest to the end point (lower endpoint), and then obtain the WEST-facing edge whose y value is greater than or equal to the starting point (upper endpoint) of this edge and is closest to the starting point (upper endpoint).

[0051] Along the direction of the edge of the extended reference orientation, select the starting edge and its corresponding return edge from the edge facing vertically in turn to draw an inscribed rectangle, the direction of the starting edge points to the starting point of the edge of the extended reference orientation, and the return edge is the edge of the opposite direction that is opposite to the starting edge after the extension within the graphic range and closest to the starting edge. The relative of the present invention does not mean that the original starting edge and the return edge are directly opposite to each other. For example, even if a starting edge and its corresponding return edge are projected in one direction, there is no overlapping area. Since there may be free graphic space above the starting edge, when drawing the inscribed rectangle, the starting edge needs to be extended upward. At this time, there is a projection overlapping area between the starting edge and the return edge, and then a polygon is drawn based on the starting edge and the return edge at this time. The occlusion of the present invention generally refers to being blocked by a hole in the graphic. Assuming that a return edge of the edge facing the reference orientation is blocked by a hole, the starting edge and the return edge need to draw an inscribed rectangle above and below the hole, respectively.

[0052] This is the second level iteration of the present invention. When there is only one starting edge and one return edge on one side of the extended reference direction edge, the iteration is completed after one execution. When there are multiple starting edges on one side of the extended reference direction edge, a starting edge is selected each time to draw an inscribed rectangle until all the starting edges are drawn. Then the second level iteration ends and jumps to the next reference direction edge of the first level iteration.

[0053] Figure 2 An embodiment of a figure is given, the outer contour of the figure is a rectangle with a rectangular hole in the middle, such as Figure 3 As shown, assuming that the direction of the edge of the figure is counterclockwise when the outer contour is formed, and the outline of the hole is clockwise, then the upper side of the hole is the edge facing EAST, and the lower side of the outer contour is also the edge facing EAST. When the upper side of the hole enters the iteration, it is first extended to form Figure 3 The image on the lower right side shows that all the vertical edges on the upper side of the extended base orientation edge are the left and right sides of the outer contour, where the left side points to the starting point of the extended base orientation edge. It should be noted that the direction here refers to the direction from the starting point (upper endpoint) of the left side, not the position of the end point (lower endpoint) of the left side overlapping the starting point of the extended edge. Correspondingly, the return edge is the right side of the outer contour, so you can start drawing a rectangle along the starting point of the left side, pass the extended edge, reach the return edge, and then return to the starting point of the starting edge, forming a rectangle. Figure 3 The upper right inscribed rectangle.

[0054] Step 4: After all the edges in the base orientation are executed, the rectangle with the largest area is selected from all the inscribed rectangles as the largest inscribed rectangle of the figure.

[0055] This basic embodiment usually deals with relatively neat graphics, which need to meet one condition, that is, when the return edge is projected toward the starting edge, it can cover the starting edge, even if it is the same length as the starting edge. Through the above technical solution of the present invention, there is no need to perform a full traversal, and only the inscribed rectangle generated by the edge of the reference direction needs to be processed to accurately find the maximum inscribed rectangle, which can successfully find the maximum inscribed rectangle with fewer resources and relatively high efficiency.

[0056] Since the processing of the inscribed rectangles between the edges of the reference orientation is independent of each other, after the processing of the inscribed rectangle of an edge of the reference orientation is completed, the data structure used in the calculation process of the edge can be deleted, which can further reduce resource loss.

[0057] Since graphics may not be Figure 2 It is so neat. In order to cope with more graphic types, the present invention provides a further embodiment. In the step 3, when the return edge is projected toward its corresponding starting edge, if it fails to cover the starting edge, then after the inscribed rectangle corresponding to the starting edge is drawn, the excess part within the graphic range where the starting edge is located is formed along the same direction as the starting edge to form at least one new starting edge, and its corresponding return edge is selected to draw an inscribed rectangle. The return edge of the new starting edge is the part of the return edge that can cover the new starting edge by projection.

[0058] For the original starting edge, when the return edge is the return edge closest to it and facing in the opposite direction, that is, when the return edge is projected in the direction toward the starting edge, the projection direction is perpendicular to the return edge and the starting edge. It may partially cover the starting edge, or it may completely cover the starting edge, or it may not cover the starting edge at all. However, no matter which coverage situation, the original starting edge will form a corresponding inscribed rectangle with the return edge.

[0059] However, for the new starting edge generated based on the original starting edge, the return edge selected is not the return edge that is closest and facing in the opposite direction, because the return edge has already generated an inscribed rectangle with the original return edge. In order to improve efficiency, the present invention has a different strategy in selecting the return edge of the new starting edge. At this time, the selected return edge is the part of the return edge whose projection can cover the new starting edge. Assuming that the return edge is exactly the same length as the new starting edge and is exactly opposite to it, they together form the side of the corresponding inscribed rectangle. Assuming that the return edge is longer than the new starting edge, only the part opposite to the new starting edge is selected and then returns to the starting point of the new starting edge to form an inscribed rectangle.

[0060] Since the actual graphics are relatively complex, in order to improve efficiency, in a preferred embodiment, when there are multiple edges with reference orientations, before step 3, all edges with reference orientations are sorted according to the unique x value or unique y value of their coordinates; since the constructed coordinate axis usually takes a vertex of the graphics as the origin, all edges of the graphics are either parallel to the x-axis or parallel to the y-axis, which makes all edges either have a unique x value (in this case, the y value of the starting point and the end point of the edge are different) or have a unique y value (in this case, the x value of the starting point and the end point of the edge are different).

[0061] When all the base-oriented edges are sorted according to the unique x-values ​​of their coordinates, the unique x-value of the first base-oriented edge is not equal to the maximum or minimum x-value of the graph;

[0062] When all the base-oriented edges are sorted by the unique y values ​​of their coordinates, the unique y value of the first base-oriented edge is not equal to the maximum or minimum y value of the shape; that is, the first base-oriented edge is not located at the maximum boundary of the shape.

[0063] And in step 3, when obtaining all the vertically oriented edges covered by one side of the extended edge, the side of the outer contour of the graphic closest to the edge of the first reference orientation is preferentially selected.

[0064] Take the example of selecting the EAST-oriented edge as the reference-oriented edge. Since there must be an EAST-oriented edge with the smallest y value located at the maximum boundary of the graph, when sorting, all the reference-oriented edges should be arranged in descending order of y value. When selecting one side, all vertical edges on the NORTH side of the edge are preferred. This can omit the generation of some new starting edges, thereby avoiding the repeated generation of some inscribed rectangles, which can greatly improve efficiency.

[0065] In a further embodiment, in step 3, when the return edge is projected toward its corresponding starting edge, if it fails to cover the starting edge, then after the inscribed rectangle corresponding to the starting edge is drawn, the excess part within the graphic range where the starting edge is located is formed along the same direction as the starting edge to form at least one new starting edge, and the new starting edge has the same end point as the original starting edge. The return edge corresponding to the new starting edge is selected, and an inscribed rectangle is drawn. The return edge of the new starting edge is the part of the return edge that can be projected to cover the new starting edge.

[0066] This embodiment provides a more specific method to improve efficiency. Therefore, the original starting edge may be shorter, and the generated inscribed rectangle is not the largest inscribed rectangle. Therefore, the new starting edge corrects this problem of the original starting edge, so that the larger inscribed rectangle corresponding to the starting edge can be found more accurately. However, for other starting edges that may have been processed, new starting edges will not be generated for processing.

[0067] Choosing the EAST direction as the base direction is more in line with the drawing rules, so it can be applied to graphics in most occasions. Of course, you can also choose other directions as the base direction, as long as the logic is always consistent.

[0068] In a more specific embodiment, the direction of the edge parallel to the reference orientation is taken as the x-direction, and all the edges of the reference orientation are sorted from large to small according to the unique y value of their coordinates; the edges of the reference orientation are processed in sequence according to the sorting, and when the EAST orientation in the figure is taken as the reference orientation, all the edges of the reference orientation in the figure are sorted and processed from top to bottom.

[0069] Record the processed base orientation edges and all vertical orientation edges covered by their projections; when obtaining all vertical orientation edges covered by the currently processed base orientation edge after its extension, filter out the recorded vertical orientation edges and only process the unrecorded vertical orientation edges. This can save some repeated inscribed rectangle drawing and improve the efficiency of finding the maximum inscribed rectangle.

[0070] In a specific embodiment, one side of the extended edge is the upper side of the edge. This is just a specific choice of an embodiment of the present invention. In other embodiments, the lower side of the edge or both sides of the edge may also be selected.

[0071] Figure 4 A more complex figure is given, which has an irregular outline all around and a rectangular hole in the middle.

[0072] Figure 5 All the EAST-oriented edges of the graph are found and used as the reference-oriented edges.

[0073] These edges can be sorted from large to small according to the y value of the coordinate to form a queue, or they can be queued in any order. When the queue is empty, the search for the inscribed rectangle ends. If the queue is not empty, the edges in the queue are taken out one by one for processing. Taking the first processed edge as an example, the drawing of the inscribed rectangle is explained. At this time, the edges facing EAST are not arranged in descending order according to the y value.

[0074] First extend the edge, such as Figure 6 As shown, then find all the vertical directions on the extended side, such as Figure 7 As shown, the edges in the SOUTH direction and the NORTH direction whose x values ​​of all coordinates are within the range of the extended edges are obtained.

[0075] Then, we start to draw the inscribed rectangle from the first starting edge (the leftmost SOUTH-facing edge). Since we also find the second starting edge in the process of searching for the return edge along the reference-facing edge, we can generate two inscribed rectangles at the same time. Figure 8 shown.

[0076] Since the return edge cannot cover the two starting edges on the left when projecting toward them, two new starting edges will be generated based on these two starting edges. Fig. 9 As shown, two new start edges are generated on the left side of the return edge.

[0077] The new starting edge continues to draw the inscribed rectangle. At this time, since the original return edge has no corresponding part with the new starting edge, it is necessary to find the latest return edge. At this time, the nearest return edge that can be found is the rightmost return edge, so two inscribed rectangles can be generated respectively, such as Fig.10 At this point, the two leftmost starting edges have been processed.

[0078] Then process the next starting edge and generate the corresponding inscribed rectangle, such as Fig.11 shown.

[0079] like Fig.12 As shown in the figure, when the edge of the bottom reference direction is extended, since its starting point and end point are located at the edge of the figure, the extended edge is consistent with its own length. At this time, the starting edge is still searched from left to right, and an inscribed rectangle is drawn for the first starting edge located at its starting point. However, it can be found that when the corresponding return edge is projected toward the starting edge, the entire starting edge is beyond the projection range. Therefore, two new starting edges are generated within the figure range in the same direction as the starting edge, and the corresponding inscribed rectangle is searched from the new two starting edges, as shown in the figure. Fig.13 shown.

[0080] Then process the next starting edge and get Fig.14 the inscribed rectangle.

[0081] Each time a newly generated inscribed rectangle is obtained, it can be compared with the currently stored record of the inscribed rectangle. If the area is larger, the currently stored record is replaced. If the area is smaller, the subsequent steps are continued.

[0082] If we first sort the edges according to the y value of the coordinates from large to small to form a queue, then the first edge to be processed is the upper side of the hole. Fig.10The starting edge of the inscribed rectangle represented by the dotted line at the top will not be generated. This saves time in generating the starting edge and drawing the inscribed rectangle, and improves the processing efficiency of the graphics.

[0083] Finally, after all the edges of the base orientation are processed, we will get Fig.15 Among all the inscribed rectangles shown, select the inscribed rectangle with the largest area as the largest inscribed rectangle of the figure, that is, the dark gray rectangle in the middle at the bottom is the largest inscribed rectangle.

[0084] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present invention should be included in the protection scope of the present invention.

Claims

1. A method for searching the maximum inscribed rectangle of a figure, characterized in that: include: Step 1, obtain the direction of each edge of the graph; Step 2, taking one of the orientations as the reference orientation, and obtaining the edges of all reference orientations; Step 3: Perform the following operations on each edge of the reference orientation in turn: Extend each edge of the base orientation within the figure until both ends of the extended edge of the base orientation are located at the boundary of the figure; Obtain all perpendicular edges covered by one side of the extended reference oriented edge; along the extended reference oriented edge, select a starting edge and its corresponding return edge from the perpendicular edges in sequence from the starting point to the end point to draw an inscribed rectangle, wherein the starting edge is oriented toward the starting point of the extended reference oriented edge, and the return edge is an unobstructed opposite-oriented edge that is opposite to the extended starting edge within the graphic range and is closest to the starting edge; Step 4: After all the edges in the base orientation are executed, the rectangle with the largest area is selected from all the inscribed rectangles as the largest inscribed rectangle of the figure.

2. The method for searching the maximum inscribed rectangle of a figure as claimed in claim 1, characterized in that: In step 3, when the return edge is projected toward its corresponding starting edge, if it fails to cover the starting edge, then after the inscribed rectangle corresponding to the starting edge is drawn, the excess portion within the graphic range where the starting edge is located is formed along the same direction as the starting edge to form at least one new starting edge, and its corresponding return edge is selected to draw an inscribed rectangle, and the return edge of the new starting edge is the portion of the return edge that can be projected to cover the new starting edge.

3. The method for searching the maximum inscribed rectangle of a figure as claimed in claim 1, characterized in that: When there are multiple edges of the reference orientation, before step 3, all the edges of the reference orientation are sorted according to the unique x value or unique y value of their coordinates; When all the base-oriented edges are sorted according to the unique x-values ​​of their coordinates, the unique x-value of the first base-oriented edge is not equal to the maximum or minimum x-value of the graph; When all the base-oriented edges are sorted according to the unique y values ​​of their coordinates, the unique y value of the first base-oriented edge is not equal to the maximum or minimum y value of the graph. And in step 3, when obtaining all the vertically oriented edges covered by one side of the extended reference oriented edge, the side of the graphic outer contour closest to the first reference oriented edge is preferentially selected.

4. The method for searching the maximum inscribed rectangle of a figure as claimed in claim 3, characterized in that: In step 3, when the return edge is projected toward its corresponding starting edge, if it fails to cover the starting edge, then after the inscribed rectangle corresponding to the starting edge is drawn, the excess portion within the graphic range where the starting edge is located is formed along the same direction as the starting edge to form at least one new starting edge, and the new starting edge has the same end point as the original starting edge. The return edge corresponding to the new starting edge is selected, and an inscribed rectangle is drawn. The return edge of the new starting edge is the portion of the return edge that can be projected to cover the new starting edge.

5. The method for searching the maximum inscribed rectangle of a figure as claimed in claim 3, characterized in that: Taking the direction of the edge parallel to the reference orientation as the x direction, all the edges of the reference orientation are sorted from large to small according to the unique y value of their coordinates; the edges of the reference orientation are processed in sequence according to the sorting, and the processed edges of the reference orientation and all the perpendicular edges covered by their projections are recorded; when obtaining all the perpendicular edges covered by the extension of the edge of the reference orientation currently being processed, the recorded perpendicular edges are filtered out, and only the unrecorded perpendicular edges are processed.

6. The method for searching the maximum inscribed rectangle of a figure according to any one of claims 1 to 5, characterized in that: The reference orientation is the East orientation edge.

7. The method for searching the maximum inscribed rectangle of a figure as claimed in claim 6, characterized in that: The side of the edge with the extended base orientation is the North orientation side of the edge.

8. A design rule checking method for an integrated circuit, characterized in that: A method for searching the maximum inscribed rectangle of a figure as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Validation method of rectangular containing rule in layout verification of integrated circuit

    CN102890730A

  • Method for area indexing of integrated circuit layout data

    CN104572682A

  • A method for distinguishing the long-width direction of a polygon in layout rule checking

    CN109271668A

  • Manufacture of semiconductor integrated circuit device

    JP2000019710A