Methods for finding the largest inscribed rectangle and checking design rules
By employing the maximum inscribed rectangle lookup method in integrated circuit design, the problem of excessive memory consumption in DRC rule checking is solved, improving lookup efficiency and accuracy, and making it applicable to various system platforms.
Patent Information
- Application Number
- CN202510078937.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-17
- Publication Date
- 2025-12-02
- Estimated Expiration
- 2045-01-17
AI Technical Summary
In existing integrated circuit designs, the DRC rule checking algorithm consumes too much memory and has low computational efficiency when processing complex graphics, making it difficult to meet the requirements of speed and accuracy.
The maximum inscribed rectangle search method is adopted. By obtaining the orientation of the graphic edges, the reference orientation edges are extended sequentially and inscribed rectangles are drawn. Combined with the coordinate sorting of the edges and the opposite line segment algorithm, memory usage is reduced and search efficiency is improved.
It reduces memory consumption for complex DRC rule checks, improves chip design and verification efficiency, ensures algorithm accuracy and compatibility, and is applicable to multiple system platforms.
Smart Images

Figure CN119886048B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the technical field of automated integrated circuit design, and in particular to a method for finding the maximum inscribed rectangle. Background Technology
[0002] Currently, in the integrated circuit design process, DRC rule checking is a critical step to ensure that chip designs comply with manufacturing specifications. Tools such as Calibre have poor execution efficiency, low accuracy, and inconsistent results on relevant rules. As the complexity of integrated circuit designs increases, the results generated by relevant rules will be used multiple times by other DRC rules, making the requirements for speed and accuracy even more stringent.
[0003] Existing algorithms typically use a full traversal approach for computation, which results in exponentially increased time consumption and a very large memory requirement when processing a large number of complex graphics.
[0004] Therefore, how to provide a method for finding the maximum inscribed rectangle with minimal memory usage is a technical problem that needs to be solved. Summary of the Invention
[0005] To address the problem of excessive memory consumption in existing technologies, this invention proposes a method for finding the maximum inscribed rectangle and a method for checking design rules.
[0006] The method for finding the maximum inscribed rectangle of a graphic proposed in this invention includes:
[0007] Step 1: Obtain the orientation of each edge of the graphic;
[0008] Step 2: Using one of the orientations as the reference orientation, obtain all edges with that reference orientation;
[0009] Step 3, perform the following operations on each reference-oriented edge in sequence:
[0010] Extend each reference-oriented edge to its maximum extent within the graphic until both ends of the extended reference-oriented edge are located at the boundary of the graphic.
[0011] Get all perpendicular edges covered by one side of the extended reference-oriented edge;
[0012] Along the direction of the extended reference orientation, select the starting edge and its corresponding return edge from the perpendicular orientation edges to draw the inscribed rectangle. The orientation of the starting edge points to the starting point of the extended edge, and the return edge is the edge with the opposite orientation that is opposite to the starting edge of the extended edge within the graphic range and is closest to the starting edge.
[0013] Step 4: After all the reference-oriented edges have been processed, select the rectangle with the largest area from all the inscribed rectangles as the largest inscribed rectangle of the graphic.
[0014] Furthermore, in step 3, when the return edge is projected toward its corresponding starting edge, if it fails to cover the starting edge, after the inscribed rectangle corresponding to the starting edge is drawn, the part exceeding 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. The corresponding return edge is selected, and the inscribed rectangle is drawn. The return edge of the new starting edge is the part that the projection can cover the return edge of the new starting edge.
[0015] Furthermore, when there are multiple reference-oriented edges, before step 3, all reference-oriented edges are sorted according to their unique x-values or unique y-values.
[0016] When all reference-oriented edges are sorted according to their unique x-values, the unique x-value of the first reference-oriented edge is not equal to the maximum or minimum x-value of the graph;
[0017] When all reference-oriented edges are sorted according to the unique y-value of their coordinates, the unique y-value of the first reference-oriented edge is not equal to the maximum or minimum y-value of the graph.
[0018] Furthermore, in step 3, when obtaining all vertically oriented edges covered by one side of the extended edge, the outer contour of the graphic closest to the edge of the first reference orientation is preferentially selected.
[0019] Furthermore, in step 3, when the return edge is projected toward its corresponding starting edge, if it fails to cover the starting edge, after the inscribed rectangle corresponding to the starting edge is drawn, the portion exceeding the graphic range where the starting edge is located is formed along the same direction as the starting edge to create at least one new starting edge, and the new starting edge has the same endpoint as the original starting edge. The return edge corresponding to the new starting edge is selected, and the inscribed rectangle is drawn. The return edge of the new starting edge is the portion that the projection can cover the return edge of the new starting edge.
[0020] Furthermore, taking the direction parallel to the reference orientation as the x-direction, all reference orientation edges are sorted from largest to smallest according to their unique y-values. The reference orientation edges are processed in order of sorting, and the processed reference orientation edges and all orientation perpendicular edges covered by their projections are recorded. When the currently processed reference orientation edge obtains all orientation perpendicular edges covered by its extension, the recorded orientation perpendicular edges are filtered out, and only the unrecorded orientation perpendicular edges are processed.
[0021] Furthermore, the reference orientation is the side facing East.
[0022] Furthermore, the side of the extended reference orientation is the upper side of the edge.
[0023] The integrated circuit design rule checking method of the present invention includes a method for finding the maximum inscribed rectangle of the graphic of the above-mentioned technical solution.
[0024] This invention utilizes an algorithm to detect opposing line segments within the line segment interval containing edges. By sacrificing a small amount of memory, it significantly reduces the time spent on complex DRC rule checks, thereby improving the efficiency of chip design and verification. Furthermore, it can accurately traverse all local maximum rectangles within a graphic, ensuring both algorithm efficiency and accuracy of the calculated values. When implemented in C++, this invention is compatible with multiple system platforms such as Windows and Linux, enhancing system integration compatibility. It can also be further encapsulated into functions within graphics classes or more general graphics processing algorithms. Attached Figure Description
[0025] The present invention will now be described in detail with reference to the embodiments and accompanying drawings, wherein:
[0026] Figure 1 This is an overall flowchart of an embodiment of the present invention. 。
[0027] Figure 2 This is a graphic representation of an embodiment of the present invention.
[0028] Figure 3 yes Figure 2 A schematic diagram of the inscribed rectangle generated by a reference-oriented edge.
[0029] Figure 4 This is a graphic representation of another embodiment of the present invention.
[0030] Figure 5 yes Figure 4 A schematic diagram of all the reference-oriented edges.
[0031] Figure 6 yes Figure 5 A schematic diagram of the extended edge of a reference orientation.
[0032] Figure 7 yes Figure 6 A schematic diagram of all vertically oriented edges on one side of the extended reference-oriented edge.
[0033] Figure 8 yes Figure 7 A schematic diagram of the inscribed rectangle formed by two starting edges and their returning edges.
[0034] Figure 9 Based on Figure 8 The diagram shows the newly generated starting edges from the two initial edges shown.
[0035] Figure 10Based on Figure 9 The newly generated starting edge and its return edge form the inscribed rectangle.
[0036] Figure 11 yes Figure 7 A schematic diagram of the inscribed rectangle formed by the last starting edge and its returning edge.
[0037] Figure 12 yes Figure 5 The inscribed rectangle is generated by the starting edge and the returning edge corresponding to the other reference edge.
[0038] Figure 13 Based on Figure 12 The two newly generated starting edges and their return edges form the inscribed rectangle.
[0039] Figure 14 yes Figure 5 The inscribed rectangle is formed by the last starting edge of the other reference-oriented edge and its returning edge.
[0040] Figure 15 yes Figure 4 A schematic diagram of all the inscribed rectangles of the figure shown. Detailed Implementation
[0041] To make the technical problems to be solved, the technical solutions, and the beneficial effects of the present invention clearer, the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention.
[0042] Therefore, a feature pointed out in this specification is used to describe one feature of one embodiment of the invention, and does not imply that every embodiment of the invention must have the described feature. Furthermore, it should be noted that this specification describes many features. Although certain features may be combined to illustrate possible system designs, these features may also be used in other combinations not explicitly stated. Therefore, unless otherwise stated, the described combinations are not intended to be limiting.
[0043] like Figure 1 As shown, the method for finding the maximum inscribed rectangle of a graphic according to the present invention mainly includes two iterative algorithms. In a basic embodiment, the method for finding the maximum inscribed rectangle includes the following steps.
[0044] Step 1: Obtain the orientation of each edge of the figure. The orientation of an edge refers to the starting point and ending point of the edge when it is drawn. Usually, the ending point of the first edge in two adjacent edges is the starting point of the second edge. In addition, among multiple edges that are connected end to end to form a closed boundary in the figure, the direction of the final closed boundary is either clockwise or counterclockwise.
[0045] Step 2: Using one of the orientations as the reference orientation, obtain all edges with that orientation. For example, if the edge with the orientation South is used as the reference orientation, then all edges with the orientation South need to be obtained first.
[0046] Step 3: Perform the following operations sequentially on each reference-oriented edge. This is the first iteration of the invention, and each reference-oriented edge needs to enter this iteration once:
[0047] Extend each reference-oriented edge to its maximum extent within the graphic until both ends of the extended edge are located at the graphic boundary. If the starting point of the currently processed reference-oriented edge is already at the graphic boundary, extend the ending point of that reference-oriented edge until it touches the graphic boundary. If the starting and ending points of the edge are already at the graphic boundary, the extended edge has the same length as the original edge.
[0048] After extending the edge, obtain all perpendicular edges covered by one side of the extended reference-oriented edge. It's important to note that this invention only obtains all perpendicular edges covered by one side. Since this invention processes all reference-oriented edges, obtaining only those on one side to draw the inscribed rectangle is more resource-efficient. Of course, those skilled in the art could also obtain all perpendicular edges on both sides of the reference-oriented edge, process one side, and then process the other. While this is feasible, it would result in unnecessary resource waste.
[0049] Taking the edge facing EAST as an example, obtain the edge facing SOUTH with an x value less than or equal to the starting point (left endpoint) of this edge and the closest edge facing NORTH. Then obtain the edge facing NORTH with an x value greater than or equal to the ending point (right endpoint) of this edge and the closest edge facing NORTH. Then extend this edge towards the corresponding edge facing SOUTH and the corresponding edge facing NORTH.
[0050] Taking the SOUTH-oriented edge as an example, obtain the EAST-oriented 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). Then obtain the WEST-oriented edge whose y-value is greater than or equal to the start point (upper endpoint) of this edge and is closest to the start point (upper endpoint).
[0051] The inscribed rectangle is drawn by sequentially selecting a starting edge and its corresponding return edge from the edges perpendicular to the extended reference orientation. The starting edge points to the starting point of the extended reference orientation edge, and the return edge is the nearest unobstructed edge with the opposite orientation to the extended starting edge within the graphic range. "Relative" in this invention does not mean that the original starting edge and return edge are directly opposite each other. For example, even if a starting edge and its corresponding return edge are projected in one direction and have no overlapping area, since there may be empty graphic space above the starting edge, the starting edge needs to be extended upwards when drawing the inscribed rectangle. In this case, the starting edge and return edge have a projected overlapping area, and then the polygon is drawn based on the starting edge and return edge at this point. "Occlusion" in this invention usually refers to occlusion by holes within the graphic. For example, if a return edge of an edge with the EAST orientation as the reference orientation is occluded by a hole, then the starting edge and return edge need to be drawn as inscribed rectangles above and below the hole, respectively.
[0052] This is the second iteration of the present invention. When there is only one starting edge and one returning edge on one side of the extended reference orientation edge, the iteration ends after one execution. When there are multiple starting edges on one side of the extended reference orientation edge, a starting edge is selected each time to draw an inscribed rectangle until all starting edges are drawn. Then the second iteration ends and jumps to the next reference orientation edge of the first iteration.
[0053] Figure 2 An example of a graphic is given, the outer contour of which is a rectangle with a rectangular hole in the middle, such as... Figure 3 As shown, assuming the edges of the shape are oriented counter-clockwise from the outer contour and clockwise from the hole contour, then the top edge of the hole is oriented EAST, and the bottom edge of the outer contour is also oriented EAST. When the top edge of the hole enters the iteration, it is first extended to form... Figure 3 The diagram at the bottom right shows the outline. Then, along all the vertically oriented edges above the extended reference edge, these form the left and right edges of the outer contour. The left edge points towards the starting point of the extended reference edge. Note that this direction refers to the direction from the starting point (top endpoint) of the left edge, not that the ending point (bottom endpoint) of the left edge overlaps with the starting point of the extended edge. Correspondingly, the return edge is the right edge of the outer contour. Therefore, you can draw a rectangle starting from the starting point of the left edge, passing through the extended edge, reaching the return edge, and then returning to the starting point of the starting edge, forming... Figure 3 The upper right inscribed rectangle.
[0054] Step 4: After all the reference-oriented edges have been processed, select the rectangle with the largest area from all the inscribed rectangles as the largest inscribed rectangle of the graphic.
[0055] This basic embodiment typically deals with relatively neat shapes and requires that the projection of the return edge onto the starting edge covers the starting edge, even if the return edge is the same length as the starting edge. Through the above technical solution of this invention, a full traversal is unnecessary; only the inscribed rectangle generated by the reference-oriented edge needs to be processed to accurately find the maximum inscribed rectangle. This allows for finding the maximum inscribed rectangle with fewer resources, resulting in relatively high efficiency.
[0056] Since the processing of the inscribed rectangles between the reference-oriented edges is independent of each other, after processing the inscribed rectangle of a reference-oriented edge, the data structures used in the calculation process for that edge can be deleted, which can further reduce resource consumption.
[0057] Because the image may not be as shown Figure 2 To accommodate more graphic types, this invention provides 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, after the inscribed rectangle corresponding to the starting edge is drawn, the portion exceeding the graphic range where the starting edge is located is formed along the same direction as the starting edge to create at least one new starting edge. The corresponding return 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 return edge of the new starting edge.
[0058] For the original starting edge, when the return edge is chosen to be the nearest return edge with the opposite orientation, that is, when the return edge is projected in the direction of the starting edge, the projection direction is perpendicular to the return edge and the starting edge. It may partially cover the starting edge, completely cover the starting edge, or not cover the starting edge at all. However, regardless of the coverage situation, the original starting edge will form a corresponding inscribed rectangle with the return edge.
[0059] However, the return edge selected for the new starting edge generated based on the original starting edge is not the closest return edge that faces the opposite direction, because the return edge has already generated an inscribed rectangle with the original return edge. To improve efficiency, the present invention adopts a different strategy in selecting the return edge of the new starting edge. In this case, 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 edge of the corresponding inscribed rectangle. Assuming that the return edge is longer than the new starting edge, only the part that is directly opposite to the new starting edge is selected and then the starting point of the new starting edge is returned to form the inscribed rectangle.
[0060] Since the actual graphics are quite complex, in order to improve efficiency, in a preferred embodiment, when there are multiple edges with reference orientation, before step 3, all edges with reference orientation are sorted according to their unique x-values or unique y-values. Since the constructed coordinate axes are usually based on 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. This makes all edges either have a unique x-value (in which case the y-values of the start and end points of the edge are different) or a unique y-value (in which case the x-values of the start and end points of the edge are different).
[0061] When all reference-oriented edges are sorted according to their unique x-values, the unique x-value of the first reference-oriented edge is not equal to the maximum or minimum x-value of the graph;
[0062] When all reference-oriented edges are sorted according to their unique y-values, the unique y-value of the first reference-oriented edge is not equal to the maximum or minimum y-value of the graph; that is, the first reference-oriented edge is not located at the maximum boundary of the graph.
[0063] Furthermore, in step 3, when obtaining all 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] Taking the edge facing east as the reference orientation as an example, since one of the edges facing east with the smallest y-value must be located at the maximum boundary of the graph, all reference orientation edges should be arranged in descending order of y-value during sorting. When selecting one side, prioritize all vertical edges on the north side of that side. This avoids generating some new starting edges, thus preventing the repeated generation of some inscribed rectangles and greatly improving 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, after the inscribed rectangle corresponding to the starting edge is drawn, the part exceeding 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 endpoint as the original starting edge. The return edge corresponding to the new starting edge is selected, and the inscribed rectangle is drawn. The return edge of the new starting edge is the part that the projection can cover the return edge of the new starting edge.
[0066] This embodiment provides a more specific method to improve efficiency. Since the original starting edge may be short, 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 parts that may have been processed by other starting edges, no new starting edges will be generated for processing.
[0067] Choosing the EAST orientation as the base orientation aligns with drawing rules and is therefore applicable to most types of graphics. Of course, other orientations can also be chosen as the base orientation, as long as the underlying logic remains 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 largest to smallest according to the unique y-value of their coordinates; the edges of the reference orientation are processed in order of sorting. 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 edges with the reference orientation that have been processed and all perpendicular edges covered by their projections. When obtaining all perpendicular edges covered by the extended edge of the currently processed reference orientation, filter out the recorded perpendicular edges and only process the unrecorded perpendicular edges. This can save some drawing of repeated inscribed rectangles and improve the efficiency of finding the maximum inscribed rectangle.
[0070] In one specific embodiment, one side of the extended edge is the upper side of the edge. This is only one specific choice of an embodiment of the present invention; in other embodiments, the lower side of the edge or both sides of the edge can also be selected.
[0071] Figure 4 A more complex figure is given, which has an irregular outline around its perimeter and a rectangular hole in the center.
[0072] Figure 5 All edges of the EAST orientation in the graph were identified and used as the reference orientation edges.
[0073] These edges can be sorted into a queue according to their y-coordinates from largest to smallest, or they can be sorted out of 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 and processed. Taking the first edge processed as an example, we will explain the drawing of the inscribed rectangle. At this time, the edges facing EAST are not arranged in descending order of y-coordinates.
[0074] First, extend that side, such as Figure 6 As shown, then find all the vertical orientations on the upper side of the extended edge, such as... Figure 7 As shown, this means obtaining the x-values of all coordinates within the range of the extended edges, including the SOUTH and NORTH orientations.
[0075] Then, starting from the first starting edge (the leftmost edge facing south), draw the inscribed rectangle. Since a second starting edge is found while searching for the return edge along the reference direction, two inscribed rectangles can be generated simultaneously, as shown below. Figure 8 As shown.
[0076] Since the projection of the return edge onto the two starting edges on the left cannot cover the original two starting edges, two new starting edges will be generated based on these original starting edges. For example... Figure 9 As shown, two new starting edges are generated to the left of the return edge.
[0077] The new starting edge continues drawing the inscribed rectangle. Since the original return edge no longer corresponds to the new starting edge, it's necessary to find the latest return edge. The closest return edge found is the rightmost return edge, thus allowing the generation of two inscribed rectangles, as shown below. Figure 10 As shown. At this point, the two leftmost starting edges have been completely processed.
[0078] Next, process the next starting edge and generate the corresponding inscribed rectangle, such as... Figure 11 As shown.
[0079] like Figure 12 As shown, when the bottommost reference edge is extended, since its starting and ending points are located at the very edge of the graphic, the extended edge has the same length as its original length. At this point, the search for the starting edge still begins from left to right. An inscribed rectangle is drawn from the first starting edge at its origin. However, it can be observed that when the corresponding return edge is projected towards this starting edge, the entire starting edge extends beyond the projection range. Therefore, two new starting edges with the same orientation as the starting edge are generated within the graphic's range, and the search for the corresponding inscribed rectangle begins from these two new starting edges, as shown below. Figure 13 As shown.
[0080] Next, process the starting edge to obtain... Figure 14 the inscribed rectangle.
[0081] Each time a new inscribed rectangle is generated, it can be compared with the currently existing inscribed rectangle record. If the area is larger, the currently existing record is replaced; if the area is smaller, the next steps are continued.
[0082] If these edges are initially sorted into a queue according to their y-coordinates from largest to smallest, then the first edge to be processed would be the top edge of the hole. Figure 10The starting edge of the inscribed rectangle, indicated by the dashed line at the top, is not generated. This saves time in generating the starting edge and drawing the inscribed rectangle, improving the efficiency of graphics processing.
[0083] After all the reference orientation edges have been processed, you will get Figure 15 Of all the inscribed rectangles shown, the one with the largest area is selected as the largest inscribed rectangle of the figure, that is, the dark gray rectangle at the bottom center 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 within the protection scope of the present invention.
Claims
1. A method for finding the maximum inscribed rectangle of a graphic, characterized in that, include: Step 1: Obtain the orientation of each edge of the graphic; Step 2: Using one of the orientations as the reference orientation, obtain the edges for all reference orientations; Step 3, perform the following operations on each reference-oriented edge in sequence: Extend each reference-oriented edge within the graphic until both ends of the extended reference-oriented edge are located at the boundary of the graphic. Obtain all perpendicularly oriented edges covered by one side of the extended reference orientation edge; along the extended reference orientation edge, select the starting edge and its corresponding return edge from the perpendicularly oriented edges in sequence from its starting point to its ending point to draw an inscribed rectangle. The orientation of the starting edge points to the starting point of the extended reference orientation edge, and the return edge is the unobstructed edge with the opposite orientation that is opposite to the extended starting edge within the graphic range and is closest to the starting edge. Step 4: After all the reference-oriented edges have been processed, select the rectangle with the largest area from all the inscribed rectangles as the largest inscribed rectangle of the graphic.
2. The method for finding the maximum inscribed rectangle of a graphic as described 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, after the inscribed rectangle corresponding to the starting edge is drawn, the part exceeding 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. The corresponding return edge is selected, and the inscribed rectangle is drawn. The return edge of the new starting edge is the part that the projection can cover the return edge of the new starting edge.
3. The method for finding the maximum inscribed rectangle of a graphic as described in claim 1, characterized in that, When there are multiple reference-oriented edges, before step 3, all reference-oriented edges are sorted according to their unique x-value or unique y-value. When all reference-oriented edges are sorted according to their unique x-values, the unique x-value of the first reference-oriented edge is not equal to the maximum or minimum x-value of the graph; When all reference-oriented edges are sorted according to the unique y-value of their coordinates, the unique y-value of the first reference-oriented edge is not equal to the maximum or minimum y-value of the graph. Furthermore, in step 3, when obtaining all perpendicular edges covered by one side of the extended reference orientation edge, the side of the graphic outer contour closest to the first reference orientation edge is preferentially selected.
4. The method for finding the maximum inscribed rectangle of a graphic as described 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, after the inscribed rectangle corresponding to the starting edge is drawn, the part exceeding 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 endpoint as the original starting edge. The return edge corresponding to the new starting edge is selected, and the inscribed rectangle is drawn. The return edge of the new starting edge is the part that the projection can cover the return edge of the new starting edge.
5. The method for finding the maximum inscribed rectangle of a graphic as described in claim 3, characterized in that, Using the direction parallel to the reference orientation as the x-direction, sort all reference orientation edges from largest to smallest according to their unique y-values. Process the reference orientation edges in order of sorting, and record the processed reference orientation edges and all orientation perpendicular edges covered by their projections. When obtaining all orientation perpendicular edges covered by the extended reference orientation edge, filter out the recorded orientation perpendicular edges and only process the unrecorded orientation perpendicular edges.
6. The method for finding the maximum inscribed rectangle of a graphic as described in any one of claims 1 to 5, characterized in that, The reference orientation is the side facing East.
7. The method for finding the maximum inscribed rectangle of a graphic as described in claim 6, characterized in that, The side of the extended reference orientation is the North orientation side of the edge.
8. A method for checking design rules of integrated circuits, characterized in that, This includes the method for finding the maximum inscribed rectangle of a graphic as described in any one of claims 1 to 7.
Citation Information
Patent Citations
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