Disclosure of Invention
The embodiment of the application provides a field domain identification and grid subdivision processing method and device for an integrated circuit layout, which can avoid omission or repeated edge processing of polygons meeting conditions when an edge exchange method is executed in the field domain identification and grid subdivision processing process, so as to ensure the accuracy, integrity and high efficiency of the edge exchange method and further ensure the accuracy and high efficiency of the field domain identification and grid subdivision processing method.
In a first aspect, an embodiment of the present application provides a method for integrated circuit layout field identification and grid subdivision processing, where the method includes:
acquiring a plurality of polygons of a multilayer integrated circuit layout, wherein the polygons comprise a plurality of vertexes;
vertically projecting a plurality of polygons of each layer to the same layer, and forming a Delaunay triangular mesh with polygon vertexes as mesh nodes according to a Delaunay triangulation algorithm, wherein each side of each polygon comprises preset polygon information of the polygon and layer information of the layer where the polygon is located;
merging the polygon information and layer information of the projected and overlapped polygon edges;
aligning the Delaunay triangular mesh to each side of the polygons according to a side exchange method, simultaneously calculating intersection points of the polygon sides and adding the intersection points as vertexes of the polygons and nodes of the Delaunay triangular mesh to form a first triangular mesh, wherein the side exchange method sorts the sides of the polygons meeting conditions to form a set, takes out the sides of the polygons according to the sort, and finishes the exchange if the set is an empty set after the exchange is carried out on the sides of the polygons;
based on the first triangular mesh, layer information of each polygon edge is superposed to all triangles in each polygon based on Boolean operation;
identifying and collecting the triangular edges and the polygonal edges contained in each parallel flat plate field by a parallel flat plate field identification method according to the layer information of the triangular edges and the polygonal edges;
and according to the calculation precision requirement and the common edges of different parallel flat plate fields, carrying out self-adaptive mesh subdivision processing on the triangles in each parallel flat plate field.
As a possible implementation, the aligning the Delaunay triangular mesh to each of the edges of the polygons according to an edge swapping method, and simultaneously calculating intersections of the edges of the polygons and adding the intersections as vertices of the polygons and nodes of the Delaunay triangular mesh to form a first triangular mesh, where the edge swapping method sorts the edges of the polygons that meet a condition to form a set, takes out the edges of the polygons according to the sort, and after performing the swapping, if the set is an empty set, the swapping is ended, including:
collecting all the edges of the polygon which are not the common edge of the two triangles, and sorting the edges according to the edge lengths to form a setLost;
From the collection
LostTaking out the side with the longest side length
And from the collection
LostRemoving;
from the edge
One vertex of
AStarting from, searching for including said vertex
AAnd the vertex
E、
DIs located at the edge
Triangle delta of both sides
AEDExchanging said triangle delta
AEDTriangle delta with its neighbor
DEFGet a triangle delta
AEFAnd delta
AFDWherein the neighbor triangle is a triangle having a common side with the triangle;
repeating the swapping of the triangle's common edge with its neighbor triangles until the edge
Is a common edge of two neighboring triangles;
if the edge is searched
If the intersected edge is the edge of another polygon, a vertex and a mesh node are added at the intersection point of the two edges, the mesh node is inserted into the Delaunay triangular mesh, the mesh node divides the two adjacent triangles into four triangles, and the vertex divides the two intersected edges into four edges which share the vertex;
determining the setLostIf it is not, then re-selecting said setLostTake the longest edge and remove it from the setLostAnd if so, ending the exchange to form a first triangular mesh.
As a possible embodiment, the merging the polygon information and the layer information of the plurality of polygon edges that coincide after the projection includes:
sorting all polygon vertexes, searching vertexes of the polygon with the distance between the vertexes smaller than a preset threshold value for each vertex which is not defined as a coincident vertex according to a sorting result, and defining the vertexes and the searched vertexes as a group of coincident vertexes;
for each group of coincident vertexes, taking the gravity center of each group of coincident vertexes as a newly combined vertex, and replacing all vertexes in the group of coincident vertexes with the newly combined vertexes, wherein the associated sides of the newly combined vertexes are combined with the associated sides of all vertexes in the group of coincident vertexes, and the associated sides of the vertexes of the polygon are polygon sides of which one end point is the vertex of the polygon;
based on the associated edges of the vertices of the polygon, for each polygon vertex, two by two comparing all the associated edges, if two edgese,fIncluding two identical end points, the two edges being coincident edges, and deleting any one edgeeUsing said edgefInstead of originally including the edgeeAnd the corresponding side of the polygon of (2), and combining the sideseDeleting from the list of associated edges for the vertex;
the rest of the edgefLayer information of as primary sidee,fOf the layer information or, the remaining said edgesfIs set as the primary sidee,fMerging the polygon information of (1);
and repeating the pairwise comparison of the associated edges until all the coincident edges are processed.
As a possible implementation, the superimposing, based on the first triangular mesh, layer information of each polygon edge to all triangles in each polygon based on a boolean operation includes:
setting the layer information of all triangles to be null;
for each polygon projected to the same layerPObtaining layer information of the layer where the layer is locatediSet of settingsFrontFor the empty set, take the polygonPAny edgeeLeft triangle oftIf said left triangle istLayer information of (2) is not superimposed on the polygonPLayer information of the layeriLet the left triangletJoining the collectionFrontThe left triangletLayer information of (2) superimposing said polygonPLayer information of the layeriWherein the polygonPAny edgeeIs a left triangle including the sideeAnd the triangle sideeDirection and polygon ofPEdgeeTriangles with the same direction;
from the collectionFrontTake out a triangletAnd from the collectionFrontIf the triangle is removedtDoes not overlay the polygon with layer information of any one or more of the three neighboring trianglesPLayer information of the layeriAnd the common side is not polygonPAny side of the triangle, then the triangle is formedtThe one or more neighbor triangles of (a) join the setFrontAnd adding a new one to said collectionFrontThe layer information of the triangle is superimposed on the polygonPLayer information of the layeriWherein the common edge refers to the triangletAdjacent triangles and said triangletA common edge of (a);
determining the setFrontIf it is not, then re-selecting said setFrontFetching a triangle from said setFrontIs removed and continuedPerforming the superposition based on the Boolean operation until the setFrontIf the operation is empty, continuing the next operation;
judging whether all the polygons are processed or not, if so, finishing the superposition; if not, returning to continue processing the rest polygons.
As a possible implementation, the identifying and collecting, by a parallel flat panel field identification method, the triangle and the polygon edge included in each parallel flat panel field according to the layer information of the triangle and the polygon edge includes:
setting all the parallel flat-plate fields: (i,j) Set of polygonspoly(i,j) And triangle settri(i,j) Empty, the parallel flat plate field (i,j) For the metal layer of the multi-layer integrated circuit layoutiLayer and the firstjA parallel plate field formed by the layer and its internal medium, wherein the layer and its internal medium form a parallel plate fieldiAndjis the layer of the metal layer;
selecting an unprocessed triangletOr polygonal sideseStarting from the lowest level, according to said triangletOr polygonal sideseLayer information of (2) identifies the secondiFirst appearance of layer metal layer upwardjA layer of a metal layer,j>ithe triangle is formedtJoin into the collectiontri(i,j) In or around the polygon edgeeIs added to thepoly(i,j) To collect the triangle and polygon sides contained by each of the parallel plate fields;
judging the metal layeriIf the highest layer is not, continuing the next operation, and if not, performing the next operationjIs assigned to theiReturning to continue according to the triangletOr polygonal sideseLayer information of, determining the secondiFirst occurrence on a layerjA layer metal layer;
and judging whether all the triangle and polygon edges are identified, if so, finishing the identification, otherwise, returning to continuously select an unprocessed triangle or polygon edge, and identifying and collecting.
As a possible implementation, the performing adaptive mesh subdivision on the triangles in each parallel flat field according to the computation accuracy requirement and the common edge of different parallel flat fields includes:
obtaining the vertexes of a plurality of polygons of each parallel flat plate field, and forming a second triangular mesh according to a Delaunay triangulation algorithm;
aligning the second triangular mesh to the sides of a plurality of polygons of each parallel flat plate field according to the identified parallel flat plate fields, and deleting triangles outside each parallel flat plate field to form a third triangular mesh;
sequentially for each of the parallel flat field in the third triangular mesh(s) ((i,j) Carrying out mesh subdivision processing according to the priority sequence of first priority control on the quality of the mesh and second priority control on the size of the mesh;
meshing the common area of two adjacent parallel flat plate fields, wherein if the parallel flat plate fields (a)i,j) Polygonal sideeThe layer information of (a) includes both the parallel flat plate field(s) ((i,j) And a parallel plate field (l,m) Whereini,j,l,mIf two numbers are equal, the polygon edgeeThe corresponding region is a parallel flat plate field (i,j) And a parallel plate field (l,m) Defining the common area as an inter-plate coupling area, saidi,j,l,mIs the layer of the metal layer;
judging whether the quality and size of the grids of all the parallel flat plate fields meet preset values, if so, finishing the grid subdivision, and if not, returning to continue to each parallel flat plate field (i,j) And carrying out grid subdivision processing.
As a possible implementation, the controlling the size of the mesh is to determine the size of the largest mesh subdivided by the mesh according to the highest frequency to be calculated, and the calculation formula of the size of the largest mesh is as follows:
wherein the content of the first and second substances,
l maxis the size of the largest mesh size,
is the wavelength of the electromagnetic wave corresponding to the highest frequency,
Fto calculate the control coefficients for the accuracy requirements.
In a second aspect, an embodiment of the present application provides an integrated circuit layout field identification and grid subdivision processing apparatus, including:
the acquisition module is used for acquiring a plurality of polygons of a multilayer integrated circuit layout, wherein the polygons comprise a plurality of vertexes;
the device comprises a first processing module, a second processing module and a third processing module, wherein the first processing module is used for vertically projecting a plurality of polygons of each layer to the same layer and forming a Delaunay triangular mesh taking polygon vertexes as mesh nodes according to a Delaunay triangulation algorithm, and each side of each polygon comprises preset polygon information of the polygon and layer information of the layer;
the second processing module is used for combining the polygon information and the layer information of the projected and superposed polygon edges;
a third processing module, configured to align the Delaunay triangular mesh to each of the plurality of polygons according to a side switching method, calculate intersection points of the plurality of polygon sides, and add the intersection points as vertices of the polygons and nodes of the Delaunay triangular mesh to form a first triangular mesh, where the side switching method sorts the sides of the polygons that meet a condition to form a set, extracts the sides of the polygons according to the sort, and ends the switching if the set is an empty set after the switching is performed on the sides of the polygons;
a fourth processing module, configured to superimpose, based on the first triangular mesh, layer information of each polygon edge onto all triangles in each polygon based on boolean operations;
the fifth processing module is used for identifying and collecting the triangular and polygonal edges contained in each parallel flat plate field by a parallel flat plate field identification method according to the layer information of the triangular and polygonal edges;
and the sixth processing module is used for performing adaptive mesh subdivision processing on the triangles in each parallel flat plate field according to the calculation precision requirement and the common edges of different parallel flat plate fields.
As a possible implementation, the second processing module includes:
the sorting and searching unit is used for sorting all polygon vertexes, searching the vertexes of the polygon with the distance between the vertexes smaller than a preset threshold value for each vertex which is not defined as a coincident vertex according to a sorting result, and defining the vertex and the searched vertexes as a group of coincident vertexes;
the coincident vertex processing unit is used for taking the gravity center of each group of coincident vertexes as a newly combined vertex, replacing all vertexes in the group of coincident vertexes with the newly combined vertex, and combining the associated sides of the newly combined vertexes with the associated sides of all vertexes in the group of coincident vertexes, wherein the associated side of the vertex of the polygon is a polygon side of which one endpoint is the vertex of the polygon;
a comparing and deleting unit for comparing every two of the associated sides of each polygon vertex based on the associated sides of the polygon vertex, if two sidese,fIncluding two identical end points, the two edges being coincident edges, and deleting any one edgeeUsing said edgefInstead of originally including the edgeeAnd the corresponding side of the polygon of (2), and combining the sideseDeleting from the list of associated edges for the vertex;
a setting unit for setting the remaining sidesfLayer information of as primary sidee,fOf the layer information or, the remaining said edgesfIs set as the primary sidee,fMerging the polygon information of (1);
and the repeating unit is used for repeating the pairwise comparison of the associated edges until all the coincident edges are processed.
As a possible implementation, the fifth processing module includes:
a first processing unit for setting all the parallel flat-plate fields (i,j) Set of polygonspoly(i,j) And triangle settri(i,j) Empty, the parallel flat plate field (i,j) For the metal layer of the multi-layer integrated circuit layoutiLayer and the firstjA parallel plate field formed by the layer and its internal medium, wherein the layer and its internal medium form a parallel plate fieldiAndjis the layer of the metal layer;
a second processing unit for selecting an unprocessed triangletOr polygonal sideseStarting from the lowest level, according to said triangletOr polygonal sideseLayer information of (2) identifies the secondiFirst appearance of layer metal layer upwardjA layer of a metal layer,j>ithe triangle is formedtJoin into the collectiontri(i,j) In or around the polygon edgeeIs added to thepoly(i,j) To collect the triangle and polygon sides contained by each of the parallel plate fields;
a third processing unit for judging the metal layeriIf the highest layer is not, continuing the next operation, and if not, performing the next operationjIs assigned to theiReturning to continue according to the triangletOr polygonal sideseLayer information of, determining the secondiFirst occurrence on a layerjA layer metal layer;
and the fourth processing unit is used for judging whether all the triangle and polygon edges are identified completely, if so, finishing the identification, and if not, returning to continuously select an unprocessed triangle or polygon edge for identification and collection.
The embodiment of the application has the following beneficial effects:
according to the method, a plurality of polygons with a plurality of vertexes in a multilayer integrated circuit layout are vertically projected to the same layer, a Delaunay triangular mesh with the polygon vertexes as mesh nodes is formed according to a Delaunay triangulation algorithm, and each side of each polygon comprises preset polygon information of the polygon and layer information of the layer where the polygon is located; merging the polygon information and layer information of the projected and overlapped polygon edges; aligning the Delaunay triangular mesh to each side of the polygons according to a side exchange method, simultaneously calculating intersection points of the polygon sides and adding the intersection points as vertexes of the polygons and nodes of the Delaunay triangular mesh to form a first triangular mesh, wherein the side exchange method sorts the sides of the polygons meeting conditions to form a set, takes out the sides of the polygons according to the sort, and finishes the exchange if the set is an empty set after the exchange is carried out on the sides of the polygons; superposing the layer information of each polygon edge to all triangles in each polygon based on Boolean operation; identifying and collecting the triangular edges and the polygonal edges contained in each parallel flat plate field by a parallel flat plate field identification method according to the layer information of the triangular edges and the polygonal edges; according to the calculation precision requirement and the common edges of different parallel flat plate fields, the self-adaptive mesh subdivision processing is carried out on the triangles in each parallel flat plate field, the omission or repeated exchange of the polygon edges meeting the conditions can be avoided when the edge exchange method is executed in the field identification and mesh subdivision processing process, the accuracy, the integrity and the high efficiency of the edge exchange method are ensured, and the accuracy and the high efficiency of the field identification and mesh subdivision processing method are further ensured.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention clearer, the technical solutions of the present invention will be described in detail through embodiments with reference to the accompanying drawings in the examples of the present invention. In the description of the present application, "a plurality" means two or more unless otherwise specified. In the description of the present application, "first", "second", "third", "fourth", "fifth", and the like are used only for distinguishing one from another, and do not indicate the degree of importance, the order, and the like thereof.
Referring to fig. 1 to fig. 4, an embodiment of the present application provides a method for integrated circuit layout field identification and grid subdivision processing, where as shown in the figure, the method mainly includes:
step S1, acquiring a plurality of polygons of a multilayer integrated circuit layout, wherein the polygons comprise a plurality of vertexes;
step S2, vertically projecting a plurality of polygons of each layer to the same layer, and forming a Delaunay triangular mesh with polygon vertexes as mesh nodes according to a Delaunay triangulation algorithm, wherein each side of the polygon comprises preset polygon information of the polygon and layer information of the layer;
step S3, merging the polygon information and layer information of the projected multiple overlapped polygon edges;
step S4, aligning the Delaunay triangular mesh to each side of the polygons according to a side exchange method, calculating intersection points of the polygon sides, and adding new intersection points as vertices of the polygons and nodes of the Delaunay triangular mesh to form a first triangular mesh, wherein the side exchange method sorts the sides of the polygons that meet the conditions to form a set, extracts the sides of the polygons according to the sort, and ends the exchange if the set is an empty set after the exchange;
step S5, based on the first triangular mesh, superimposing the layer information of each polygon edge to all triangles in each polygon based on Boolean operation;
step S6, identifying and collecting the triangle and polygon sides contained in each parallel flat plate field by a parallel flat plate field identification method according to the layer information of the triangle and the polygon sides;
and step S7, according to the calculation precision requirement and the common edge of different parallel flat plate fields, carrying out self-adaptive mesh subdivision processing on the triangles in each parallel flat plate field.
By adopting the method, omission or repeated exchange of the polygon sides meeting the conditions can be avoided when the side exchange method is executed in the field domain identification and grid subdivision processing process, so that the accuracy, the integrity and the high efficiency of the side exchange method are ensured, and the accuracy and the high efficiency of the field domain identification and grid subdivision processing method are further ensured.
Wherein the polygon is defined asNStrip (NNot less than 3) line segments are sequentially connected end to form a closed graph, and the end points of the line segments form polygon vertexes. If the vertexes of the polygons are arranged anticlockwise, defining the polygons as positive, and corresponding to the conductive areas of the integrated circuit layout in the polygons; if the polygon vertexes are arranged clockwise, defining the polygon as negative, and corresponding to the integrated circuit layout insulation area in the polygon; the directions of all triangles in the Delaunay triangular mesh formed according to the Delaunay triangulation algorithm are positive. Electromagnetic wave on super gauge calculated by numerical calculation methodWhen the integrated circuit is propagated, a conductive region, a dielectric layer and a parallel flat plate field formed by the conductive region and the dielectric layer of the integrated circuit layout need to be considered; the multilayer integrated circuit may also include a multilayer very large scale integrated circuit.
Further, the polygon information of the polygon where each edge of the polygon is located can distinguish which polygons the coincident edges belong to; the layer information indicates that the layer contains or does not contain each layer of all integrated circuit layouts, and if the triangle does not belong to any layer of integrated circuit layout, the layer information of the triangle is set to be null or zero.
Wherein, the field of the parallel flat plate is called PPFD for short.
Referring to fig. 2, fig. 2 is a schematic diagram illustrating alignment of the Delaunay triangular meshes to edges of a plurality of polygons of a three-layer integrated circuit layout in an embodiment of the integrated circuit layout field identification and mesh subdivision processing method provided in the present application. As shown in the figure.
As a possible implementation, the aligning the Delaunay triangular mesh to each of the edges of the polygons according to an edge swapping method, and simultaneously calculating intersections of the edges of the polygons and adding the intersections as vertices of the polygons and nodes of the Delaunay triangular mesh to form a first triangular mesh, where the edge swapping method sorts the edges of the polygons that meet a condition to form a set, takes out the edges of the polygons according to the sort, and after performing the swapping, if the set is an empty set, the swapping is ended, and the method mainly includes:
step 4.1, collecting all the sides of the polygon which are not the common side of the two triangles, and sorting according to the side lengths to form a setLost;
Step 4.2, from the set
LostTaking out the side with the longest side length
And from the collection
LostRemoving;
step 4.3, as shown in FIG. 2 (a), from the edge
One vertex of
AStarting from, searching for including said vertex
AAnd the vertex
E、
DIs located at the edge
Triangle delta of both sides
AEDExchanging said triangle delta
AEDTriangle delta with its neighbor
DEFGet a triangle delta
AEFAnd delta
AFDWherein the neighbor triangle is a triangle having a common side with the triangle;
step 4.4, repeating the exchange of the common edge of the triangle with its neighbor triangles, as shown in fig. 2 (b), (c), until the edge
Is a common edge of two neighboring triangles;
step 4.5, if the edge is searched
The intersecting edge is the edge of another polygon, as shown in FIG. 2 (c)
And the edge
Intersect while the edge
Is a polygon
AECFAThe edge of (2) adds a vertex and a mesh node at the intersection point of the two edges
GAnd connecting the mesh node
GInserted into the Delaunay triangle mesh, which divides the two neighboring triangles into four triangles: delta
EBG, Δ
EGA, Δ
FAGAnd Δ
FGBThe vertex divides two intersecting edges into four edges that are common to the vertex, as shown in FIG. 2 (d), and a new edge of the polygon to be aligned is generated
Connecting the edge
Is also added to the collection
LostPerforming the following steps;
step 4.6, judge the setLostIf it is not, then re-selecting said setLostTake the longest edge and remove it from the setLostIf so, the exchange is ended to form a first triangular mesh, as shown in fig. 2 (f).
As a possible implementation, the merging the polygon information and the layer information of the plurality of polygon edges that coincide after the projection mainly includes:
step 3.1, sequencing all polygon vertexes, searching vertexes of the polygon with the distance between the vertexes and the vertex smaller than a preset threshold value for each vertex which is not defined as a coincident vertex according to a sequencing result, and defining the vertexes and the searched vertexes as a group of coincident vertexes;
step 3.2, for each group of coincident vertexes, taking the gravity center of each group of coincident vertexes as a newly combined vertex, replacing all vertexes in the group of coincident vertexes with the newly combined vertex, combining the associated sides of the newly combined vertexes with the associated sides of all vertexes in the group of coincident vertexes, wherein the associated side of the vertex of the polygon is a polygon side of which one end point is the vertex of the polygon;
step 3.3, based on the associated edges of the vertices of the polygon, for each polygon vertex, comparing every two associated edges, if two edges are presente,fIncluding two identical end points, the two edges being coincident edges, and deleting any one edgeeUsing said edgefInstead of originally including the edgeeAnd the corresponding side of the polygon of (2), and the sideeDeleting from the list of associated edges for the vertex;
step 3.4, the remaining edgesfLayer information of as primary sidee,fOf layer information ofThe edge offIs set as the primary sidee,fMerging the polygon information of (1); the OR is OR;
and 3.5, repeating the pairwise comparison of the associated edges until all the overlapped edges are processed.
As a possible implementation, the superimposing, based on the first triangular mesh, layer information of each polygon edge to all triangles in each polygon based on a boolean operation mainly includes:
step 5.1, setting layer information of all triangles to be null;
step 5.2, for each polygon projected to the same layerPObtaining layer information of the layer where the layer is locatediSet of settingsFrontFor the empty set, take the polygonPAny edgeeLeft triangle oftIf said left triangle istLayer information of (2) is not superimposed on the polygonPLayer information of the layeriLet the left triangletJoining the collectionFrontThe left triangletLayer information of (2) superimposing said polygonPLayer information of the layeriWherein the polygonPAny edgeeIs a left triangle including the sideeAnd the triangle sideeDirection and polygon ofPEdgeeTriangles with the same direction;
step 5.3, from the setFrontTake out a triangletAnd from the collectionFrontIf the triangle is removedtDoes not overlay the polygon with layer information of any one or more of the three neighboring trianglesPLayer information of the layeriAnd the common side is not polygonPAny side of the triangle, then the triangle is formedtThe one or more neighbor triangles of (a) join the setFrontAnd adding a new one to said collectionFrontThe layer information of the triangle is superimposed on the polygonPLayer information of the layeriWherein the common edge refers to the triangletAdjacent triangles and said triangletA common edge of (a);
step 5.4, judging the setFrontIf it is not, then re-selecting said setFrontFetching a triangle from said setFrontAnd continuing the superposition based on the Boolean operation until the setFrontIf the operation is empty, continuing the next operation;
step 5.5, judging whether all the polygons are processed, if so, finishing the superposition; if not, returning to continue processing the rest polygons.
It is noted that, regarding recording the layer information, a layer of the integrated circuit layout of the multi-layer structure may be represented by using binary, where the number of bits of the binary represents the number of layers of the layout included in the integrated circuit, each bit of the binary corresponds to each layer of the integrated circuit layout, a bit of the binary of 0 represents that the layer is not included, and a bit of the binary of 1 represents that the layer is included. Since the layer information of each edge of the polygon comes from the metal layer where the polygon is located, define
iThe layer of the metal layer is
This means that when this number is represented in binary, a 1 appears at the first of this binary
iA bit. According to the layer information of the layer where the polygon is located, when the triangle of each metal layer is identified, the layer information is superposed to the identified triangle; when all layers are identified, the layer information of each triangle records the area of which metal layer the triangle falls on. For the three-layer metal layout polygon shown in fig. 2, calculating the layer information of each triangle is shown in fig. 3, as can be seen from fig. 3, 0 in fig. 3 indicates that the triangle does not exist in any metal layer, and 5 in fig. 3 indicates that the triangle exists in the 1 st and 3 rd layers, because 5= (101)
2And 7 in fig. 3 indicates that the triangle exists on the 1 st, 2 nd, and 3 rd layers because 7= (111)
2。
As a possible implementation, the identifying and collecting, according to the layer information of the triangle and the polygon edge, the triangle and the polygon edge included in each parallel flat field by a parallel flat field identification method mainly includes:
step 6.1Setting all the parallel flat-plate fields: (i,j) Set of polygonspoly(i,j) And triangle settri(i,j) Empty, the parallel flat plate field (i,j) For the metal layer of the multi-layer integrated circuit layoutiLayer and the firstjA parallel plate field formed by the layer and its internal medium, wherein the layer and its internal medium form a parallel plate fieldiAndjis the layer of the metal layer;
step 6.2, select an unprocessed triangletOr polygonal sideseStarting from the lowest level, according to said triangletOr polygonal sideseLayer information of (2) identifies the secondiFirst appearance of layer metal layer upwardjA layer of a metal layer,j>ithe triangle is formedtJoin into the collectiontri(i,j) In or around the polygon edgeeIs added to thepoly(i,j) To collect the triangle and polygon sides contained by each of the parallel plate fields;
step 6.3, judging the metal layeriIf the highest layer is not, continuing the next operation, and if not, performing the next operationjIs assigned to theiReturning to continue according to the triangletOr polygonal sideseLayer information of, determining the secondiFirst occurrence on a layerjA layer metal layer;
and 6.4, judging whether all the triangle and polygon edges are identified, if so, finishing the identification, and if not, returning to continuously select an unprocessed triangle or polygon edge for identification and collection.
By adopting the method, the triangle with the triangular layer information of 5 in the graph 3 and the edge thereof form the area of the parallel flat field (1, 3), and the triangle with the triangular layer information of 7 in the graph 3 and the edge thereof form the area of the parallel flat field (1, 2) and the area of the parallel flat field (2, 3) can be identified at one time.
As a possible implementation, the performing adaptive mesh subdivision processing on the triangle in each parallel flat-panel field according to the computation accuracy requirement and the common edge of different parallel flat-panel fields mainly includes:
step 7.1, obtaining vertexes of a plurality of polygons of each parallel flat plate field, and forming a second triangular mesh according to a Delaunay triangulation algorithm;
step 7.2, aligning the second triangular mesh to the sides of a plurality of polygons of each parallel flat plate field according to the identified parallel flat plate field, and deleting triangles outside each parallel flat plate field to form a third triangular mesh;
step 7.3, sequentially aligning the parallel flat plate field in each third triangular meshi,j) Carrying out mesh subdivision processing according to the priority sequence of first priority control on the quality of the mesh and second priority control on the size of the mesh; the mesh subdivision processing comprises the step of further refining the triangulated and aligned third triangular mesh, so that the triangular mesh has better quality, smaller size and more accurate simulation calculation;
step 7.4, mesh generation is carried out on the common area of two adjacent parallel flat plate fields, wherein if the parallel flat plate fields (a)i,j) Polygonal sideeThe layer information of (a) includes both the parallel flat plate field(s) ((i,j) And a parallel plate field (l,m) Whereini,j,l,mIf two numbers are equal, the polygon edgeeThe corresponding region is a parallel flat plate field (i,j) And a parallel plate field (l,m) Defining the common area as an inter-plate coupling area, saidi,j,l,mIs the layer of the metal layer; it should be noted that, since the inter-plate coupling region is shared by two adjacent fields, the meshes of the two adjacent fields in the inter-plate coupling region must be consistent, that is, the meshes of any one of the two adjacent fields are subdivided on the polygon edgeeAdding mesh nodes and polygon vertexes, wherein the corresponding mesh nodes and polygon vertexes must be added to the mesh of another field;
step 7.5, judging whether the grid quality and the grid size of all the parallel flat plate fields are fullIf the value is enough to the preset value, finishing the grid subdivision, if not, returning to continue (1) each parallel flat plate fieldi,j) And carrying out grid subdivision processing.
As a possible implementation, the quality of the mesh is the quality of the mesh shape, and the calculation formula of the quality of the triangular mesh is:
wherein, theRRepresents a circumscribed circle radius of the triangle; the above-mentionedl 1,l 2,l 3Representing the side lengths of three sides of the triangle;
the larger the Q value of the triangle, the worse its quality, i.e. the smaller the angle of the triangle.
As a possible implementation, the controlling the size of the mesh is to determine the size of the largest mesh subdivided by the mesh according to the highest frequency to be calculated, and the calculation formula of the size of the largest mesh is as follows:
wherein the content of the first and second substances,
l maxis the size of the largest mesh size,
is the wavelength of the electromagnetic wave corresponding to the highest frequency,
Fto calculate the control coefficients for the accuracy requirements, it is usual to take
。
Finally, the mesh subdivision result of the parallel flat plate field formed by the three-layer metal layout polygons and the internal medium thereof shown in fig. 2 is shown in fig. 4. It can be seen that due to the edges
、
、
And
inter-plate coupling regions for two different parallel plate fields, and therefore continuous edge conditions, are satisfied at these edges, and the grid nodes of the different parallel plate fields at these boundaries are common, and therefore the grids at these edges are aligned.
Referring to fig. 5, an embodiment of the present application provides an integrated circuit layout field identification and grid subdivision processing apparatus, as shown in the figure, the apparatus mainly includes:
an obtaining module M1, configured to obtain multiple polygons, where the multilayer integrated circuit layout includes multiple vertices;
the first processing module M2 is configured to vertically project a plurality of polygons of each layer onto the same layer, and form, according to a Delaunay triangulation algorithm, a Delaunay triangular mesh in which vertices of the polygons are mesh nodes, where each edge of the polygon includes preset polygon information of the polygon where the polygon is located and layer information of the layer where the polygon is located;
a second processing module M3, configured to merge the polygon information and layer information of the plurality of polygon edges that are overlapped after projection;
a third processing module M4, configured to align the Delaunay triangular mesh to each of the plurality of polygons according to a side swapping method, calculate intersection points of the plurality of polygon sides, and add the intersection points as vertices of the polygon and nodes of the Delaunay triangular mesh to form a first triangular mesh, where the side swapping method sorts the sides of the polygons that meet the condition to form a set, takes out the sides of the polygons according to the sort, and ends the swapping if the set is an empty set after the swapping is performed on the sides of the polygons;
a fourth processing module M5, configured to, based on the first triangular mesh, superimpose layer information of each polygon edge onto all triangles in each polygon based on a boolean operation;
a fifth processing module M6, configured to identify and collect, according to the layer information of the triangle and the polygon edge, the triangle and the polygon edge included in each parallel flat panel field by a parallel flat panel field identification method;
and the sixth processing module M7 is configured to perform adaptive mesh subdivision on the triangles in each parallel flat-panel field according to the calculation accuracy requirement and the common edge of different parallel flat-panel fields.
By adopting the device, all the parallel flat plate fields can be rapidly and accurately identified at one time, and gaps can be avoided between the parallel flat plate fields which are mutually coupled, so that the analysis error of the high-frequency electromagnetic field is avoided.
As a possible implementation, the second processing module mainly includes:
the sorting and searching unit is used for sorting all polygon vertexes, searching the vertexes of the polygon with the distance between the vertexes smaller than a preset threshold value for each vertex which is not defined as a coincident vertex according to a sorting result, and defining the vertex and the searched vertexes as a group of coincident vertexes;
the coincident vertex processing unit is used for taking the gravity center of each group of coincident vertexes as a newly combined vertex, replacing all vertexes in the group of coincident vertexes with the newly combined vertex, and combining the associated sides of the newly combined vertexes with the associated sides of all vertexes in the group of coincident vertexes, wherein the associated side of the vertex of the polygon is a polygon side of which one endpoint is the vertex of the polygon;
a comparing and deleting unit for comparing every two of the associated sides of each polygon vertex based on the associated sides of the polygon vertex, if two sidese,fIncluding two identical end points, the two edges being coincident edges, and deleting any one edgeeUsing said edgefInstead of originally including the edgeeAnd the corresponding side of the polygon of (2), and combining the sideseDeleting from the list of associated edges for the vertex;
a setting unit for setting the remaining sidesfLayer information of as primary sidee,fOf the layer information or, the remaining said edgesfIs set as the primary sidee,fMerging the polygon information of (1);
and the repeating unit is used for repeating the pairwise comparison of the associated edges until all the coincident edges are processed.
As a possible implementation, the fifth processing module mainly includes:
a first processing unit for setting all the parallel flat-plate fields (i,j) Set of polygonspoly(i,j) And triangle settri(i,j) Empty, the parallel flat plate field (i,j) For the metal layer of the multi-layer integrated circuit layoutiLayer and the firstjA parallel plate field formed by the layer and its internal medium, wherein the layer and its internal medium form a parallel plate fieldiAndjis the layer of the metal layer;
a second processing unit for selecting an unprocessed triangletOr polygonal sideseStarting from the lowest level, according to said triangletOr polygonal sideseLayer information of (2) identifies the secondiFirst appearance of layer metal layer upwardjA layer of a metal layer,j>ithe triangle is formedtJoin into the collectiontri(i,j) In or around the polygon edgeeIs added to thepoly(i,j) To collect the triangle and polygon sides contained by each of the parallel plate fields;
a third processing unit for judging the metal layeriIf the highest layer is not, continuing the next operation, and if not, performing the next operationjIs assigned to theiReturning to continue according to the triangletOr polygonal sideseLayer information of, determining the secondiFirst occurrence on a layerjA layer metal layer;
and the fourth processing unit is used for judging whether all the triangle and polygon edges are identified completely, if so, finishing the identification, and if not, returning to continuously select an unprocessed triangle or polygon edge for identification and collection.
The foregoing is considered as illustrative of the preferred embodiments of the invention and the technical principles employed. It will be understood by those skilled in the art that the present application is not limited to the particular embodiments described herein, but is capable of various obvious changes, rearrangements and substitutions as will now become apparent to those skilled in the art without departing from the scope of the application. Therefore, although the present application has been described in more detail with reference to the above embodiments, the present application is not limited to the above embodiments, and may include other equivalent embodiments without departing from the spirit of the present application, and the scope of the present application is determined by the scope of the appended claims.