A method for repairing non-45° bevel edges to 45° bevel edges in integrated circuit physical layout

Through the global search method of affine transformation and dynamic programming, the problem of inaccurate repair of non-45° oblique edges in the physical layout of integrated circuits is solved, and the global optimal oblique edge repair effect is achieved.

CN118313338BActive Publication Date: 2025-08-26EMPYREAN TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410418020.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-04-09
Publication Date
2025-08-26
Estimated Expiration
2044-04-09

AI Technical Summary

Technical Problem

When the prior art repairs non-45° bevels in the physical layout of integrated circuits, local search results in a large difference from the original layout after repair, and global optimal repair cannot be achieved.

Method used

A global search method based on affine transformation and dynamic programming is adopted, by determining the longest continuous oblique chain connecting vertices, affine transformation and effective range of activity are calculated, and non-45° oblique edges to 45° oblique edges are gradually adjusted to achieve global optimal repair.

Benefits of technology

It realizes rapid positioning and correcting non-45° oblique edges with the minimum coordinate adjustment amount, avoiding global differences caused by local repair, and achieving the optimal repair effect with global significance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118313338B_ABST
    Figure CN118313338B_ABST
Patent Text Reader

Abstract

The present application discloses a method for repairing non-45° bevels in an integrated circuit physical layout into 45° bevels, comprising: segmenting each closed figure to determine the longest continuous bevel chain connecting each vertex; performing affine transformation on the original coordinates of each vertex on each longest continuous bevel chain to obtain the affine transformed coordinates of each vertex; determining the effective range of movement of each vertex based on the affine transformed coordinates between different vertices; determining the candidate adjusted coordinates of each vertex based on the effective range of movement of each vertex; performing back-calculation on the candidate adjusted coordinates of all vertices in sequence along a second direction to obtain the effective adjusted coordinates of each vertex; performing inverse transformation on the effective adjusted coordinates of all vertices to obtain the repaired vertex coordinates of each vertex, so as to repair the non-45° bevels on each longest continuous bevel chain into 45° bevels.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This patent application belongs to the field of circuit design technology, and in particular relates to a method for repairing non-45° bevels to 45° bevels in an integrated circuit physical layout. Background Art

[0002] In physical layout design in the semiconductor industry, trace corners are often designed at 45° rather than right angles or sharp corners to avoid the additional parasitic inductance and capacitance introduced by routing during high-speed signal transmission. During the layout etching process, sharp corners can cause excessive corrosion of PCB traces, leading to problems such as disconnection. However, 45° routing maximizes the fluidity of the etching solution, minimizing side etching of the traces and ensuring control of line widths and line gaps. However, due to unavoidable design oversights, the physical layout may contain edges that are closer to 45° than 45°. Failure to detect and repair these non-45° edges will impact the subsequent chip manufacturing process. Existing mainstream repair methods rely on repairing a single edge and several adjacent edges. However, this method relies on local search, and slight differences in the current edge repair may result in significant differences between the subsequent repaired edges and the original layout, making it impossible to achieve a globally optimal repair. Summary of the Invention

[0003] This patent application provides a method for repairing non-45° bevels to 45° bevels in an integrated circuit physical layout, so as to overcome or alleviate the defects of the prior art.

[0004] The technical solutions provided in the embodiments of this application are as follows:

[0005] A method for repairing a non-45° bevel edge to a 45° bevel edge in an integrated circuit physical layout, comprising:

[0006] Determine a graphics layer that needs to bevel repaired as an input image layer;

[0007] For each vertex on the input image layer, determine all closed graphs connected to each vertex, and segment each closed graph to determine the longest continuous diagonal edge chain connecting each vertex;

[0008] For all vertices on each longest continuous diagonal chain, perform the following steps to determine the effective range of each vertex:

[0009] Performing affine transformation on the original coordinates of each vertex on each longest continuous hypotenuse chain to obtain the affine transformed coordinates of each vertex;

[0010] Determine the effective range of each vertex based on the affine transformation coordinates between different vertices;

[0011] For each vertex's effective range of motion, perform the following steps to fix the non-45° bevel edges on each longest continuous bevel chain to 45° bevel edges:

[0012] Determine the candidate adjustment coordinates of each vertex according to the effective activity range of each vertex;

[0013] Backtracking the candidate adjusted coordinates of all vertices in the second direction to obtain the valid adjusted coordinates of each vertex;

[0014] The effective adjusted coordinates of all vertices are inversely transformed to obtain the repaired vertex coordinates of each vertex, so as to repair the non-45° bevel edges on each longest continuous bevel edge chain to 45° bevel edges.

[0015] In the above-mentioned solution provided by the present invention, a global search repair based on affine transformation and dynamic programming is implemented, which achieves the longest number of non-45° bevel repairs with the least coordinate adjustment. It can help designers quickly locate and correct unexpected non-45° bevels introduced in the publication drawing, avoiding the problem that slight differences in the current edge repair may lead to large differences from the original layout after subsequent edge repairs, and achieving the optimal repair in a global sense. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1A This is a flow chart of a method for repairing a non-45° bevel to a 45° bevel in an integrated circuit physical layout according to an embodiment of the present application.

[0017] Figure 1B A schematic diagram of determining the effective activity range of each vertex in an embodiment of the present application.

[0018] Figure 1C This is a schematic diagram of repairing the non-45° bevels on each longest continuous bevel chain to 45° bevels according to an embodiment of the present application.

[0019] Figure 2 This is an exemplary schematic diagram of the longest continuous oblique edge chain according to an embodiment of the present application.

[0020] Figure 3 This is a schematic diagram of the affine transformation according to an embodiment of the present application.

[0021] Figure 4 (a)-(b) are schematic diagrams for determining the effective activity range.

[0022] Figure 5 (a)-(e) are schematic diagrams of determining candidate adjustment coordinates to determine valid adjustment coordinates.

[0023] Figure 6 This is a schematic diagram of the backtracking path of an embodiment of the present application.

[0024] Figure 7 Schematic diagram of the transformation from effective adjustment coordinates to repaired vertex coordinates. DETAILED DESCRIPTION

[0025] The following will be combined with the drawings in the embodiments of this patent application to clearly describe the technical solutions in the embodiments of this patent application. Obviously, the embodiments described are part of the embodiments of this patent application, not all of the embodiments. Based on the embodiments in this patent application, all other embodiments obtained by ordinary technicians in this field are within the scope of protection of this patent application.

[0026] The terms "first," "second," and the like in the specification and claims of this patent application are used to distinguish similar objects, and are not used to describe a specific order or precedence. It should be understood that the terms used in this manner are interchangeable where appropriate, so that the embodiments of this patent application can be implemented in an order other than that illustrated or described herein, and that the objects distinguished by "first," "second," and the like are generally of the same type, and do not limit the number of objects. For example, the first object can be one or more. In addition, the term "and / or" in the specification and claims indicates at least one of the connected objects, and the character " / " generally indicates that the objects connected are in an "or" relationship.

[0027] Figure 1A This is a flow chart of a method for repairing a non-45° bevel to a 45° bevel in an integrated circuit physical layout according to an embodiment of the present application. Figure 1B A schematic diagram of determining the effective activity range of each vertex in an embodiment of the present application. Figure 1C This is a schematic diagram of repairing the non-45° bevel on each longest continuous bevel chain to a 45° bevel in the embodiment of the present application. Figures 1A-1C As shown, a method for repairing a non-45° bevel edge to a 45° bevel edge in an integrated circuit physical layout includes:

[0028] Determine a graphics layer that needs to bevel repaired as an input image layer;

[0029] For each vertex on the input image layer, determine all closed graphs connected to each vertex, and segment each closed graph to determine the longest continuous diagonal edge chain connecting each vertex;

[0030] For all vertices on each longest continuous diagonal chain, execute Figure 1B The steps shown are to determine the effective range of motion for each vertex:

[0031] Performing affine transformation on the original coordinates of each vertex on each longest continuous hypotenuse chain to obtain the affine transformed coordinates of each vertex;

[0032] Determine the effective range of each vertex based on the affine transformation coordinates between different vertices;

[0033] For each vertex's effective range of motion, execute Figure 1C The steps shown below are to repair the non-45° bevels on each longest continuous bevel chain to 45° bevels:

[0034] Determine the candidate adjustment coordinates of each vertex according to the effective activity range of each vertex;

[0035] Backtracking the candidate adjusted coordinates of all vertices in the second direction to obtain the valid adjusted coordinates of each vertex;

[0036] The effective adjusted coordinates of all vertices are inversely transformed to obtain the repaired vertex coordinates of each vertex, so as to repair the non-45° bevel edges on each longest continuous bevel edge chain to 45° bevel edges.

[0037] Optionally, segmenting each closed graph to determine the longest continuous diagonal edge chain connecting each vertex includes:

[0038] Along a first direction, traverse each edge in the closed graph that can start from a specified vertex as a starting point and form a connection with other vertices; if the edge is a hypotenuse and its subtended angle is less than or equal to the tolerance, then add the edge to the constructed longest continuous hypotenuse chain, and so on, until traversing to a vertex in the closed graph with an subtended angle greater than the tolerance as the end point, and the first direction is opposite to the second direction.

[0039] In this embodiment, the first direction is, for example, a clockwise direction, and the second direction is, for example, a counterclockwise direction.

[0040] For example, in a specific application scenario, each edge of a graph is traversed counterclockwise. If the edge is a hypotenuse and the angle is less than or equal to the tolerance, the edge is added to the current longest hypotenuse chain. If an edge does not meet the conditions, the construction of the current longest hypotenuse chain is terminated and the construction of the next longest hypotenuse chain begins. This process is repeated until all edges of the graph are traversed. If the end point of the last longest hypotenuse chain is the same vertex as the starting point of the first longest hypotenuse chain, the two longest hypotenuse chains are merged end to end.

[0041] Optionally, segmenting each closed graph to determine the longest continuous diagonal edge chain connecting each vertex further includes:

[0042] Determine the distance that each edge changes along the Y direction and use it as the longitudinal change distance;

[0043] Determine the distance that each edge changes along the x-direction and use it as the horizontal change distance;

[0044] Calculating the absolute value of the difference between the longitudinal change distance and the lateral change distance corresponding to each edge;

[0045] The absolute value is taken as the subtended angle of each side.

[0046] The above-mentioned angle refers to the absolute value of the difference between the distance unit of the corresponding side in the y direction and the distance unit of the corresponding side in the x direction. For example, for a 45° hypotenuse, the angle is 0; for a non-45° hypotenuse, the angle is greater than 0.

[0047] Optionally, segmenting each closed figure to determine the longest continuous diagonal edge chain connecting each vertex further includes: determining the corresponding opposite angles on all sides of the closed figure, and using the longest opposite angle as the tolerance.

[0048] Optionally, segmenting each closed graph to determine the longest continuous diagonal edge chain connecting each vertex further includes:

[0049] Splitting the closed figure into an outer boundary point chain and / or an inner boundary point chain, and selecting a starting vertex from each of the outer boundary point chain and the inner boundary point chain;

[0050] Traversing each edge in the closed graph that can start from the starting point and connect to other vertices, including:

[0051] Traversing each edge on the outer boundary point chain that starts from the corresponding starting point and forms a connection between other vertices to add it to the longest continuous oblique edge chain constructed for the outer boundary point chain;

[0052] and / or,

[0053] Each edge on the inner boundary point chain that starts from the corresponding starting point and forms a connection with other vertices is traversed to add it to the longest continuous oblique edge chain constructed for the inner boundary point chain.

[0054] Optionally, performing affine transformation on the original coordinates of each vertex on each longest continuous hypotenuse chain to obtain the affine transformed coordinates of each vertex includes:

[0055] The original coordinates of each vertex on each longest continuous hypotenuse chain are rotated 45 degrees and stretched to obtain the affine transformation coordinates of each vertex.

[0056] Optionally, the original coordinates of each vertex on each longest continuous hypotenuse chain are rotated 45 degrees and stretched based on the following formula (1) to obtain the affine transformation coordinates of each vertex:

[0057] in is the affine transformation coordinate of the vertex, are the original coordinates of the vertex.

[0058] Optionally, determining the effective range of each vertex according to the affine transformation coordinates between different vertices includes:

[0059] According to the affine transformation coordinates between different vertices, the activity range of each vertex and the adjacent activity range are determined;

[0060] The effective activity range of each vertex is determined according to the own activity range and the adjacent activity range.

[0061] Optionally, determining the active range of each vertex according to the affine transformation coordinates between different vertices includes:

[0062] A first square range with a side length of a set value is generated respectively with the affine transformation coordinates between different vertices as the center.

[0063] Optionally, determining the adjacent activity range of each vertex according to the affine transformation coordinates between different vertices includes:

[0064] According to the affine transformation coordinates between different vertices, the point connection direction between adjacent vertices is determined;

[0065] According to the point connection direction between each vertex and its adjacent vertices, the adjacent activity range of each vertex is determined.

[0066] Optionally, determining the adjacent activity range of each vertex based on the point connection direction between each vertex and its adjacent vertices includes:

[0067] If the connection direction between the vertex and its adjacent vertices includes vertical and horizontal directions, then generate a first ray through each vertex adjacent to the vertex and determine the first intersection point between the two first rays;

[0068] With the first intersection point as the center, generate a second square range with a side length of a set value;

[0069] The adjacent activity range of the vertex is determined according to the second square range.

[0070] Optionally, determining the adjacent activity range of each vertex based on the point connection direction between each vertex and its adjacent vertices includes:

[0071] If the point connection direction between a vertex and its adjacent vertices is vertical or horizontal, a second ray orthogonal to the point connection direction is generated through the vertex;

[0072] Generate a third ray through each vertex adjacent to the vertex;

[0073] determining a second intersection point of each third ray with the second ray;

[0074] Taking each second intersection point as the center, generate a second square range with a side length of a set value;

[0075] The adjacent activity range of the vertex is determined according to the second square range.

[0076] Optionally, determining the adjacent activity range of the vertex according to the second square range includes:

[0077] Performing a union process on the two second square ranges to obtain the adjacent activity range of the vertex.

[0078] Optionally, the set value is equal to a set tolerance. The tolerance refers to the longest subtended angle of the bevel to be repaired in each closed figure. By defining the tolerance, the solution of the embodiment of the present application mainly repairs bevels with subtended angles less than or equal to the tolerance.

[0079] Optionally, it is characterized in that determining the effective activity range of each vertex based on the own activity range and the adjacent activity range includes:

[0080] Determine the intersection range of the own activity range and the adjacent activity range, and correspond the intersection range to the effective activity range of the vertex.

[0081] In this embodiment, after the above processing, the obtained effective activity range is a rectangular area, and the length and width of the rectangular area are orthogonal (or perpendicular) along the X direction and the Y direction respectively.

[0082] Optionally, determining the candidate adjustment coordinates of each vertex according to the effective movable range of each vertex includes:

[0083] Determine the potential adjustment coordinates of each vertex from the boundary of the effective activity range of each vertex along the point connection direction corresponding to each vertex;

[0084] If the number of the potential adjustment coordinates is one, the potential adjustment coordinate is used as a candidate adjustment coordinate, and the distance between the potential adjustment coordinate and the affine transformation coordinate corresponding to each vertex is calculated;

[0085] If there are multiple potential adjustment coordinates, the distance between each potential adjustment coordinate and the affine transformation coordinate is calculated, and the potential adjustment coordinate corresponding to the minimum distance is selected as the candidate adjustment coordinate.

[0086] Optionally, based on the following integer constraint relationship, along the point connection direction corresponding to each vertex, the potential adjustment coordinates of each vertex are determined from the boundary of the effective activity range of each vertex:

[0087] |Q x -P x |+|Q y -P y | is an even number, where (P x , P y ) represents the affine transformation coordinates of each vertex, (Q x , Q y ) represents the potential adjusted coordinates of each vertex.

[0088] In the above, the potential adjustment coordinates of each vertex are determined, and the cost function of the potential adjustment coordinates of each vertex is recorded to form a recording function. The size of the cost function is used to determine the distance between the different potential adjustment coordinates of the vertex and its affine transformation coordinates. The recording function is used to characterize the relative position of the potential adjustment coordinates of each vertex relative to the lower left corner of the effective activity range, so that the lower left corner of the effective activity range can be selected as the reference point. After selecting the candidate adjustment coordinates from the potential adjustment coordinates, a calibration pair can be defined as the relative coordinates of the candidate adjustment coordinates corresponding to each vertex relative to a reference point.

[0089] Alternatively, in other embodiments, when determining the potential adjustment coordinates of each vertex, the grid points in the layout are used as units, and each grid point is traversed from the boundary of the effective activity range of each vertex along the point connection direction corresponding to each vertex, and the potential adjustment coordinates of each vertex are calculated. Compared with the above-mentioned integer constraint-based method, this method determines a larger number of potential adjustment coordinates, which contain larger noise points and increase the amount of calculation. However, when the candidate coordinates are subsequently screened out by the cost function, these noise points will still be filtered out.

[0090] Optionally, the candidate adjusted coordinates of all vertices are back-calculated in sequence along the second direction to obtain the valid adjusted coordinates of each vertex, including:

[0091] Determine the relative coordinates of the candidate adjustment coordinates corresponding to each vertex relative to a reference point, where the reference point is a point on the effective activity range corresponding to each vertex;

[0092] Based on the relative coordinates and distances corresponding to each vertex, a corresponding relationship between the relative coordinates and the distances is obtained as a calibration pair;

[0093] Based on the calibration pair corresponding to each vertex, the candidate adjusted coordinates of the vertex are back-calculated in sequence along the second direction to obtain the valid adjusted coordinates of each vertex.

[0094] Optionally, obtaining a correspondence between the relative coordinates and the distances corresponding to each vertex as a calibration pair includes:

[0095] Based on the relative coordinates corresponding to each vertex, a positional relationship between the candidate adjusted coordinates of each vertex and its effective range of movement is established;

[0096] Based on the distance between the candidate adjusted coordinates and the affine transformed coordinates of each vertex, the positional relationship is calibrated to obtain a corresponding relationship between the relative coordinates and the distance as a calibration pair.

[0097] Optionally, the step of performing sequential backtracking calculations on the candidate adjusted coordinates of each vertex in the second direction based on the calibration pair corresponding to each vertex to obtain the valid adjusted coordinates of each vertex includes:

[0098] Based on the calibration pair of the last vertex on the maximum continuous hypotenuse chain, selecting the candidate adjusted coordinate with the smallest distance from the candidate adjusted coordinates corresponding to the last vertex as the valid adjusted coordinate of the last vertex;

[0099] Starting from the last vertex, along the second direction, based on the valid adjusted coordinates of the last vertex, candidate adjusted coordinates of other vertices are back-calculated in sequence along the second direction to obtain valid adjusted coordinates of other vertices.

[0100] Optionally, starting from the last vertex and following the second direction, based on the valid adjusted coordinates of the last vertex, sequentially back-calculating the candidate adjusted coordinates of other vertices along the second direction to obtain the valid adjusted coordinates of other vertices includes:

[0101] Starting from the last vertex, along the second direction, based on the calibration pair of the last vertex and the valid adjusted coordinates of the last vertex, determine, from the candidate adjusted coordinates of the next vertex, the candidate adjusted coordinates that are equal to the valid adjusted coordinates of the last vertex as the valid adjusted coordinates of the next vertex;

[0102] Based on the calibration pair of the next vertex, according to the effective adjustment coordinates of the next vertex, determine the candidate adjustment coordinates of the next next vertex that are equal to the effective adjustment coordinates of the next vertex as the effective adjustment coordinates of the next next vertex; and so on, until the effective adjustment coordinates of the first vertex are determined.

[0103] Optionally, the step of performing sequential backtracking calculations on the candidate adjusted coordinates of each vertex in the second direction based on the calibration pair corresponding to each vertex to obtain the valid adjusted coordinates of each vertex includes:

[0104] Determine the i-1th valid adjustment coordinate along the second direction, and take the candidate adjustment coordinate of the i-th vertex that is equal to the valid adjustment coordinate as the valid adjustment coordinate of the i-th vertex, 2≤i≤n, where n is the total number of vertices.

[0105] Optionally, the step of performing sequential backtracking calculations on the candidate adjusted coordinates of each vertex in the second direction based on the calibration pair corresponding to each vertex to obtain the valid adjusted coordinates of each vertex includes:

[0106] Based on the calibration pair corresponding to each vertex and the point connection direction of the vertices adjacent to each vertex in the second direction, the candidate adjusted coordinates of the vertex are back-calculated in sequence along the second direction to obtain the valid adjusted coordinates of each vertex.

[0107] Optionally, performing an inverse transformation on the effective adjusted coordinates of all vertices to obtain the repaired vertex coordinates of each vertex includes:

[0108] Perform a stretching transformation and a 45-degree rotation transformation on the effective adjusted coordinates of each vertex to obtain the effective adjusted coordinates of the vertex relative to its original coordinates.

[0109] Optionally, the method further includes: reducing the effective activity range corresponding to each vertex, so as to determine the candidate adjustment coordinates of each vertex according to the reduced effective activity range of each vertex.

[0110] The following uses a specific application scenario as an example to illustrate the above embodiment of the present application. In layout design, since positioning is performed in a single grid unit, the tolerance for repairing the bevel in the following application scenario is 4 grid units.

[0111] like Figure 2 As shown, there are two closed figures. For closed figure A, since each of its edges is a hypotenuse and the angle subtended is less than 4, the outer boundary of the closed figure forms a longest continuous hypotenuse chain. For closed figure B, there is only one hypotenuse, and the angle subtended by the hypotenuse is greater than 4, so the figure cannot form the longest continuous hypotenuse chain and does not need to be repaired.

[0112] like Figure 3 As shown, as described above, the affine transformation coordinates of each vertex are calculated according to the formula x'=xy, y'=x+y.

[0113] like Figure 4 As shown in (a)-(d), first generate the range of each vertex's own activity, that is, take the affine transformation coordinates of each vertex as the center, make a square with a side length of 4, and the distance from any point in the square to the center is no more than This ensures that the distance does not exceed 4 after the subsequent inverse transformation. Figure 4 (a) is marked with a solid line. Then Figure 4 (b) Generate the proximity range of the affine transformed coordinates of each vertex. For the affine transformed coordinate position A of the lower left corner vertex, the connection with the affine transformed coordinate positions E and B of the adjacent vertices is vertical and horizontal, respectively. Therefore, draw lines parallel to the y-axis and x-axis through E and B, intersecting at point A'. Construct a square with a side length of 4 with this point as the center. This is the proximity range of A. For point B, the connection with its adjacent points A and C is horizontal and horizontal, respectively. Therefore, draw a line Bl through B perpendicular to the connection direction. Draw lines horizontally through points A and C, intersecting Bl at points B'1 and B'2, respectively. Construct squares with a side length of 4 with these two points as the center. The union of these two squares is the proximity range of B. Follow the same steps to obtain the proximity ranges of points C, D, and E.

[0114] Obtain the intersection of the own activity range and the adjacent activity range corresponding to the affine transformation coordinates of each vertex, that is, obtain the effective activity range of each vertex, such as Figure 4 The shaded area in (b) is shown.

[0115] Then find the effective activity range formed by connecting all two or more adjacent points with the same direction. Figure 4 In (c), a reduction operation is performed. For example, if the connection direction between points B and C is horizontal, the effective ranges of A, B, and C are further "reduced". The principle of "reduction" is to ensure that any point in the effective ranges of A, B, and C can be moved horizontally to all other effective ranges. Specifically, for example, in the y direction, the minimum value of the upper boundary of all effective ranges is taken as Yup, and the maximum value of the lower boundary of all effective ranges is taken as Ydown. Finally, the y values ​​of the effective ranges of A, B, and C are limited to the range [Ydown, Yup]. Figure 4 (d) shows the effective range of motion after the “cut” operation.

[0116] like Figure 5 (a)-5(E), as shown, all vertices are traversed, and the cost function and record function corresponding to the potential adjusted coordinates of each vertex are determined in turn. Figure 5(a) is the calculation process at point A. Since the connection direction with point B is horizontal, the candidate adjustment point of A only needs to select the points closest to point A on line 0 and line 1 that meet the integer constraint. For the potential adjustment coordinate on line 0, the distance from point A is 2, its cost function is C(1,0) = 4, and the relative position relative to the lower left corner of the effective activity range is R(1,0) = [1,0]. Similarly, for the candidate adjustment point on line 1, the cost function is C(1,1) = 2, and the record function is R(1,1) = [2,1].

[0117] Figure 5 (b) is the calculation process at point B. Since the connection direction of point C is horizontal, the candidate adjustment points of B only need to be selected from line 0 and line 1 respectively. Since the connection direction of point B is consistent with that of point C, it is only necessary to select the points closest to point B that meet the integer constraint conditions from line 0 and line 1 respectively. For the candidate adjustment points on line 0, the distance from vertex B is Its cost function is C(2,1)=C(1,0)+2=6, and the recording function is R(2,0)=[1,0]. For the candidate adjustment point on line 1, the distance from B is 2, and its cost function is C(2,1)=C(1,1)+4=6, and the recording function is R(2,1)=[2,1]. Figure 5 (c) The calculation process at point C. Since the points in D are connected in a vertical direction, the potential adjustment coordinates for C only need to be selected from lines 0, 1, 2, and 3. Since the points in C and D are connected in different directions, finding the potential adjustment coordinates on each line requires traversing all points on the line that meet the integer constraint and selecting the candidate adjustment coordinate with the minimum cost function. For line 0 of point C, only the points with relative positions [0,1] satisfy the integer constraint, and [0,1] is on line 1 of point B, so the cost function is C(3,0)=C(2,1)+4=10; for line 1, only the points with relative positions [1,0] satisfy the integer constraint, and [1,0] is on line 0 of point B, so the cost function is C(3,1)=C(2,0)+2=8; for line 2, only the points with relative positions [2,1] satisfy the integer constraint, and [2,1] is on line 1 of point B, so the cost function is C(3,2)=C(2,1)+0=6; for line 3, only the points with relative positions [3,0] satisfy the integer constraint, and [3,0] is on line 0 of point B, so the cost function is C(3,3)=C(2,0)+2=8.

[0118] Figure 5(d) shows the calculation process at vertex D. Since the points in E are connected horizontally, candidate adjustment points for D only need to be selected from lines 0 and 1. Since the points in E and D connect in different directions, finding the potential adjustment coordinates on each line requires traversing all points on that line that satisfy the integer constraint. The point with the smallest cost function is selected as the candidate adjustment coordinate. For line 0, the points at relative positions [0,0] and [2,0] both satisfy the integer constraint. The cost functions of these two points are C(3,0)+2=12 and C(3,2)+2=8, respectively. The minimum value is 8, so the point at relative position [2,0] is selected as the candidate adjustment point for line 0. For line 1, the points at relative positions [1,1] and [3,1] both satisfy the integer constraint. The cost functions of these two points are C(3,1)+4=12 and C(3,3)+8=16, respectively. The minimum value is 12, so the point at relative position [1,1] is selected as the candidate adjustment point for line 1.

[0119] Figure 5 (e) shows the calculation process at E. Since the points in A are connected in a vertical direction, candidate adjustment points for D only need to be selected from lines 0, 1, 2, and 3. Since the points in A and E are connected in different directions, finding candidate adjustment points on each line requires traversing all points on that line that satisfy the integer constraint, and selecting the point with the minimum cost function as the candidate adjustment coordinate. For line 0, only the points at the relative position [0,0] satisfy the integer constraint, and its cost function is C(5,0)=C(4,0)+8=16; for line 1, only the points at the relative position [1,1] satisfy the integer constraint, and its cost function is C(5,1)=C(4,1)+2=14; for line 2, only the points at the relative position [2,2] satisfy the integer constraint, and its cost function is C(5,2)=C(4,0)+4=12; for line 3, only the points at the relative position [3,1] satisfy the integer constraint, and its cost function is C(5,2)=C(4,1)+2=14.

[0120] Then, the candidate adjustment coordinates of all vertices are back-calculated in the second direction to obtain the effective adjustment coordinates of each vertex. Figure 6 As shown, E is the last point in the hypotenuse chain, and the cost function minimum value of all candidate adjustment points of E is C(5,2), so E' is selected as the effective adjustment coordinate of E; since the point connection direction of point D is horizontal, the point with the same y value as E' is selected as D' (as the effective adjustment coordinate) in the candidate adjustment points of point D; since the point connection line direction of point C is vertical, the point with the same x value as D' is selected as C' (as the effective adjustment coordinate) in the candidate adjustment of point C; similarly, B' and A' (as the effective adjustment coordinates) can be obtained. On this basis, according to Figure 7As shown, an inverse transformation is performed to transform from the effective adjusted coordinates to the repaired vertex coordinates.

[0121] The embodiments of the present patent application are described above in conjunction with the accompanying drawings, but the present patent application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of this patent application, ordinary technicians in this field can also make many forms without departing from the purpose of this patent application and the scope of protection of the claims, all of which fall within the scope of protection of this patent application.

Claims

1. A method for repairing non-45° bevel edges to 45° bevel edges in an integrated circuit physical layout, characterized in that: include: Determine a graphics layer that needs to bevel repaired as an input image layer; For each vertex on the input image layer, all closed graphs connected to each vertex are determined, and each edge in the closed graph that can start from the specified vertex and form a connection with other vertices is traversed along a first direction; if the edge is a hypotenuse and its subtended angle is less than or equal to the tolerance, the edge is added to the constructed longest continuous hypotenuse chain, and so on, until a vertex in the closed graph with a subtended angle greater than the tolerance is traversed and used as the end point; For all vertices on each longest continuous diagonal chain, perform the following steps to determine the effective range of each vertex: Performing affine transformation on the original coordinates of each vertex on each longest continuous hypotenuse chain to obtain the affine transformed coordinates of each vertex; Determine the effective range of each vertex based on the affine transformation coordinates between different vertices; For each vertex's effective range of motion, perform the following steps to fix the non-45° bevel edges on each longest continuous bevel chain to 45° bevel edges: Determine the candidate adjustment coordinates of each vertex according to the effective activity range of each vertex; Backtracking the candidate adjusted coordinates of all vertices in the second direction to obtain the valid adjusted coordinates of each vertex; Perform inverse transformation on the effective adjusted coordinates of all vertices to obtain the repaired vertex coordinates of each vertex, so as to repair the non-45° bevel on each longest continuous bevel chain to a 45° bevel. The first direction is opposite to the second direction.

2. The method according to claim 1, characterized in that The affine transformation is performed on the original coordinates of each vertex on each longest continuous hypotenuse chain to obtain the affine transformed coordinates of each vertex, including: The original coordinates of each vertex on each longest continuous hypotenuse chain are rotated 45 degrees and stretched to obtain the affine transformation coordinates of each vertex.

3. The method according to claim 2, characterized in that Based on the following formula (1), the original coordinates of each vertex on each longest continuous diagonal chain are rotated 45 degrees and stretched to obtain the affine transformation coordinates of each vertex: = ,in is the affine transformation coordinate of the vertex, are the original coordinates of the vertex.

4. The method according to claim 1, wherein Determining the effective range of each vertex based on the affine transformation coordinates between different vertices includes: According to the affine transformation coordinates between different vertices, the activity range of each vertex and the adjacent activity range are determined; The effective activity range of each vertex is determined according to the own activity range and the adjacent activity range.

5. The method according to claim 4, characterized in that The determining of the active range of each vertex according to the affine transformation coordinates between different vertices includes: A first square range with a side length of a set value is generated respectively with the affine transformation coordinates between different vertices as the center.

6. The method according to claim 4, characterized in that Determining the adjacent activity range of each vertex according to the affine transformation coordinates between different vertices includes: According to the affine transformation coordinates between different vertices, the point connection direction between adjacent vertices is determined; According to the point connection direction between each vertex and its adjacent vertices, the adjacent activity range of each vertex is determined.

7. The method according to claim 6, characterized in that Determining the proximity range of each vertex based on the point connection direction between each vertex and its adjacent vertices includes: If the point connection direction between the vertex and its adjacent vertices includes vertical and horizontal directions, then generate a first ray through each vertex adjacent to the vertex and determine the first intersection point between the two first rays; Taking the first intersection point as the center, generate a second square range with a side length of a set value; The adjacent activity range of the vertex is determined according to the second square range.

8. The method according to claim 6, characterized in that Determining the proximity range of each vertex based on the point connection direction between each vertex and its adjacent vertices includes: If the point connection direction between a vertex and its adjacent vertices is vertical or horizontal, a second ray orthogonal to the point connection direction is generated through the vertex; Generate a third ray through each vertex adjacent to the vertex; determining a second intersection point of each third ray with the second ray; Taking each second intersection point as the center, generate a second square range with a side length of a set value; The adjacent activity range of the vertex is determined according to the second square range.

9. The method according to claim 1, characterized in that The inverse transformation of the effective adjusted coordinates of all vertices to obtain the repaired vertex coordinates of each vertex includes: Perform a stretching transformation and a 45-degree rotation transformation on the effective adjusted coordinates of each vertex to obtain the effective adjusted coordinates of the vertex relative to its original coordinates.

Citation Information

Patent Citations

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

    CN102890730A

  • Graph alignment method and device and storage medium

    CN113553823A