A method for processing integrated circuit layout data in GDSII format and a computer storage medium
By traversing the vertex coordinates of the rectangular layout in a Cartesian coordinate system and deleting redundant points, the problem of large data volume in GDSII format layouts is solved, achieving data compression and saving storage space.
Patent Information
- Application Number
- CN202111339985.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-11-12
- Publication Date
- 2025-10-24
- Estimated Expiration
- 2041-11-12
AI Technical Summary
In the existing technology, the integrated circuit layout data in GDSII format is huge in size after optical proximity correction, which occupies a lot of space and affects data transmission efficiency and storage requirements.
By establishing a Cartesian coordinate system, traversing the vertex coordinates of the rectangular area, deleting redundant point coordinates, and saving only the vertex coordinates to represent the shape and position of the rectangular area, data compression is achieved.
It effectively compresses the map data, reduces storage space requirements and data transmission time, and improves data processing efficiency.
Smart Images

Figure CN114137794B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the field of integrated circuit layout, in particular to a GDSII format integrated circuit layout data processing method and computer storage medium. BACKGROUND
[0002] Optical proximity correction (OPC) is to make different degrees of correction to the shape and size of the pattern on the photomask by a certain calculation method, such as changing the topological structure of a certain light transmission area pattern or adding a corresponding fine auxiliary pattern on the photomask, so that the actual pattern projected on the photoresist and the design pattern can be as consistent as possible.
[0003] In the process of semiconductor manufacturing process, optical proximity correction plays a crucial role. The existing mainstream layout data storage file format is GDSII and OASIS. By performing optical proximity correction on the layout data, the pattern projected on the photoresist can be as distortionless as possible compared with the original pattern on the photomask, thereby improving the yield of integrated circuit design. However, OPC is based on the correction of each layer of the layout, and the mutual reference relationship between the layers is lost, so a lot of redundant layout data is stored and occupies more internal storage space.
[0004] Studies have shown that, to After the layout data of the manufacturing process is subjected to OPC, the data volume becomes extremely large, up to several GB or even hundreds of GB. However, the excessively large layout data has a very adverse effect on the process of manufacturing photomask. Specifically, the excessively large layout data requires a lot of time in the data transmission process, and the relevant departments of the photomask manufacturing plant need to spend a lot of time to operate and process it, and a lot of internal storage space is needed to store it. Since the rectangular GDSII format layout is one of the seven core pixel heads, it is particularly important to compress the layout data that may exist in the multi-point collinear situation by a certain method to improve the compression ratio.
[0005] Therefore, how to design a GDSII format integrated circuit layout data processing method and computer storage medium to compress the layout with multi-point collinear situation is a technical problem to be solved in the industry. SUMMARY
[0006] In view of the problem of excessive layout data and large space occupation in the prior art, the present application proposes a GDSII format integrated circuit layout data processing method and computer storage medium.
[0007] The technical scheme of the present application is to provide a processing method for integrated circuit layout data in GDSII format, comprising:
[0008] establishing a rectangular coordinate system and placing a rectangular layout with multiple collinear points in the rectangular coordinate system;
[0009] taking an arbitrary point on the rectangular layout as an initial point to start traversal and obtaining the coordinates of the traversed points;
[0010] recording the vertex coordinates of the rectangular layout and deleting the redundant point coordinates located on the edges of the rectangular layout;
[0011] stopping the traversal and outputting the recorded vertex coordinates when the traversal is restarted from the initial point or the vertex recorded in the first traversal.
[0012] Further, the recording of the vertex coordinates of the rectangular layout comprises:
[0013] obtaining the starting point coordinates of the current traversal;
[0014] when a point with different horizontal and vertical coordinates from the starting point of the current traversal is reached, recording the coordinates of the previous point of the point as the vertex coordinates.
[0015] Further, each time the vertex coordinates are recorded, it is considered that one traversal is completed, and the starting point of the next traversal needs to be determined. After the first traversal, the starting point of each traversal is the vertex coordinate point recorded in the previous traversal, and the starting point of the first traversal is the initial point.
[0016] Further, the deletion of the redundant point coordinates located on the edges of the rectangular layout comprises:
[0017] when a vertex coordinate is recorded, obtaining the starting point of the current traversal;
[0018] regarding all the points between the starting point of the current traversal and the vertex coordinates as redundant points, and deleting the redundant point coordinates from the rectangular layout.
[0019] Further, when the traversal is restarted from the initial point or the vertex recorded in the first traversal, the stopping of the traversal comprises:
[0020] after the first traversal, detecting whether the starting point coordinates of each traversal are the same as the coordinates of the initial point;
[0021] if yes, stopping the traversal, and if no, continuing the traversal.
[0022] Further, when the traversal is restarted from the initial point or the vertex recorded in the first traversal, the stopping of the traversal further comprises:
[0023] After the first traversal, whether the starting point coordinate of each traversal is the recorded vertex coordinate is detected;
[0024] If yes, the repeated recorded vertex coordinate is deleted and the traversal is stopped, if not, the traversal is continued.
[0025] The application further provides a computer storage medium, which adopts the processing method of the GDSII format integrated circuit layout data.
[0026] Compared with the prior art, the application has at least the following beneficial effects:
[0027] The application provides a processing method of GDSII format integrated circuit layout data, which can compress the rectangular layout data with multiple collinear points and other layout data with multiple collinear points, facilitates data transmission of large layout data, and saves internal storage space occupied by data. BRIEF DESCRIPTION OF DRAWINGS
[0028] In order to more clearly illustrate the technical solutions in the embodiments of the application, the following will briefly introduce the drawings needed to be used in the embodiments or prior art description. Obviously, the drawings in the following description are only some embodiments of the application, and other drawings can be obtained by those skilled in the art without creative labor under the premise of the drawings.
[0029] Figure 1 The rectangular layout with multiple collinear points is processed in the application;
[0030] Figure 2 The rectangular layout with multiple collinear points is processed in the application; Figure 1 The rectangular layout after compression storage processing;
[0031] Figure 3 The flow chart of the processing method of the GDSII format rectangular layout data with multiple collinear points in the application. DETAILED DESCRIPTION
[0032] In order to make the technical problems, technical solutions and beneficial effects of the application more clearly understood, the application will be further described in detail below in combination with the drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the application, and are not used to limit the application.
[0033] Thus, one of ordinary skill in the art will appreciate that any of the features that can be described in this specification in relation to one embodiment of the application can also be applied to other embodiments of the application, unless clearly recited otherwise.
[0034] The principles and advantages of the present application will be described in detail below in relation to the attached drawings and examples.
[0035] In the prior art, after the layout data is subjected to OPC, the data becomes extremely large, however, the layout with too large data quantity has an adverse effect on the manufacturing process of the photomask. Specifically, the excessively large layout data needs to consume a large amount of time in the data transmission process, and the relevant departments of the photomask manufacturing factory need to spend a large amount of time to operate and process it. The idea of the present application is to propose a processing method of the integrated circuit layout data in GDSII format, so that it can compress the layout data with the multi-point collinear condition, thereby reducing the size of the data quantity, and further reducing the data transmission time.
[0036] The method of the present application is mainly for the layout data in GDSII format with the multi-point collinear condition, and specifically, the method of the present application is explained by taking a rectangular layout as an example, which comprises:
[0037] Establishing a rectangular coordinate system, and placing the rectangular layout with the multi-point collinear condition in the integrated circuit layout in the rectangular coordinate system;
[0038] Taking an arbitrary point on the rectangular layout as an initial point to start traversing, and obtaining the coordinates of the traversed points;
[0039] Recording the vertex coordinates of the rectangular layout, and deleting the redundant point coordinates located on the edge of the rectangular layout;
[0040] Stopping traversing and outputting the recorded vertex coordinates when the initial point or the vertex recorded in the first traversal is taken as the starting point.
[0041] The method proposed by the present application is to delete the redundant points located on the edge of the rectangular layout, and to take the vertex coordinates of the rectangular layout as the output result to represent the processed layout. Through the processing method of the present application, the rectangular layout can be represented by the least number of vertexes, and the specific shape of the layout can be determined by the vertex coordinates, and the output result is simple and occupies small storage space.
[0042] Further, the vertex coordinate is determined in the present application, the starting point coordinate is determined when the next iteration, and the iteration is performed until the point with different horizontal and vertical coordinates from the starting point of the next iteration is reached, and the last point of the point is the vertex coordinate, and the vertex coordinate of the iteration is recorded. Specifically, since the method proposed in the present application is mainly described by taking the rectangular layout with multiple points collinear as an example, for the points on the same side of the rectangular layout, there is a coordinate that is the same. For example, for the side of the rectangular layout perpendicular to the X axis, the horizontal coordinates of all points on the side are the same, and for the side of the rectangular layout perpendicular to the Y axis, the vertical coordinates of all points on the side are the same. Therefore, when the iteration obtains a point with different horizontal and vertical coordinates from the starting point of the next iteration, the point is necessarily not on the same side as the starting point of the next iteration, and the vertex of the rectangular layout is at the intersection of two sides. Therefore, since the horizontal or vertical coordinate of the last point of the point is the same as the starting point of the next iteration, i.e. the last point of the point is still on the same side as the starting point of the next iteration, and the coordinates of the point are different from the horizontal and vertical coordinates of the starting point of the next iteration, the last point of the point is not on the same side as the starting point of the next iteration. Therefore, the last point of the point is the intersection of the two sides of the rectangular layout, i.e. the vertex of the rectangular layout.
[0043] As can be seen from the determination method of the vertex coordinate, the vertex coordinate needs to be determined by the coordinate point in the present application. Therefore, in the execution steps of the present application, a rectangular coordinate system needs to be established, and the rectangular layout with multiple points collinear in the integrated circuit layout in GDSII format is placed in the rectangular coordinate system to obtain the coordinate point, so as to facilitate the determination of the vertex coordinate.
[0044] In the present application, each time the vertex coordinate is recorded, it is marked as completing one iteration, and the next iteration is continued. Then the starting point of the next iteration is the vertex recorded in the last iteration. In this way, all vertex coordinates can be obtained from the initial point by successive iteration, and the problem of misjudgment is avoided. The starting point of the first iteration is the selected initial point.
[0045] Further, the core problem of the present application is to compress and thus reduce the occupied storage space. For a rectangular layout, when the vertex coordinates are determined, the specific shape and position of the rectangular layout and the start and end points of each edge can be directly obtained according to the vertex coordinates. Therefore, in the present application, the data of the rectangular layout can be saved only by saving the vertex coordinates, so as to perform GDSII layout data compression processing. In this case, for the points located on the edges of the rectangular layout, the points can be deleted as redundant points, so as to save the storage data space. Specifically, the coordinates of the redundant points located on the edges of the rectangular layout are deleted, including: when recording the vertex coordinates, the start point coordinates of the current iteration and the recorded vertex coordinates are obtained, and all the points between the start point coordinates and the recorded vertex coordinates are defined as redundant points, and the coordinates of the redundant points are deleted.
[0046] Specifically, please refer to Figure 1 and Figure 2 The specific processing flow of the present application will be described below. First, the rectangular layout with multiple collinear points is placed in the rectangular coordinate system after the rectangular coordinate system is established. The coordinates of each point on the rectangular layout are obtained. The rectangular layout includes points (100, 100), (100, 200), (100, 300), (100, 400), (200, 400), (300, 400), and (300, 100). The point (100, 100) is taken as the initial point to start the iteration. In this embodiment, the clockwise direction is taken as the starting direction of the iteration. During the first iteration, the points (100, 200), (100, 300), (100, 400), and (200, 400) are sequentially iterated. When the point (200, 400) is reached, which is different from the initial point in both horizontal and vertical coordinates, the iteration is stopped, and the last iterated point (100, 400) is recorded as the vertex coordinate. After the first vertex coordinate is obtained, the redundant points (100, 200) and (100, 300) between the point (100, 400) and the start point (100, 100) of the current iteration are deleted.
[0047] Then, the second iteration is performed. The start point of the second iteration is the last recorded vertex coordinate (100, 400). The method of the first iteration is the same, which needs to be iterated to the point (300, 100) which is different from the start point (100, 400) of the current iteration in both horizontal and vertical coordinates, and then the last point of the point (300, 100) is obtained as the vertex coordinate (300, 400). After the vertex coordinate (300, 400) is obtained, the redundant point coordinates (200, 400) between the vertex coordinate (300, 400) and the start point (100, 400) are deleted, and the second iteration is completed.
[0048] Then, the third traversal is performed from the recorded vertex coordinates (300, 400) as the starting point, and the traversal method is the same as the first and second traversals. The traversal is stopped when the vertex (100, 100) is reached, which has different horizontal and vertical coordinates from the starting point (300, 400), and the last point (300, 100) is recorded as the recorded vertex coordinates of the third traversal.
[0049] Since the point (100, 100) is reached in the third traversal, it is the initial point of the algorithm, but the initial point is also a vertex of the rectangular layout, which still needs to be saved, so the traversal needs to continue. For the case where the initial point is a vertex of the rectangular layout, the "stop the traversal when the initial point or the recorded vertex of the first traversal is reached as the starting point" includes: "after the first traversal, detect whether the starting point coordinates of each traversal are the same as the coordinates of the initial point; if yes, stop the traversal; if no, continue the traversal".
[0050] Therefore, after the third traversal, the starting point of the fourth traversal is the recorded vertex coordinates (300, 100) of the third traversal, which is not the same as the coordinates of the initial point (100, 100), and the traversal needs to continue. It should be noted that since the starting point of the first traversal is the initial point, detecting whether the starting point coordinates are the same as the coordinates of the initial point is not applicable to the first traversal. Since the vertex coordinates of the rectangular layout are not only one, even if the starting point of the first traversal is not judged with the coordinates of the initial point, it will not affect the final output result.
[0051] The starting point of the fourth traversal is (300, 100), which continues to traverse clockwise. When the point (100, 400) is reached, which has different horizontal and vertical coordinates from the starting point coordinates (300, 100), the traversal is stopped, and the last point coordinates (100, 100) are recorded as the recorded vertex coordinates of the fourth traversal and saved. Then, the fifth traversal is performed, and the starting point of the fifth traversal is the recorded vertex coordinates (100, 100) of the fourth traversal. Since the coordinates of the starting point are the same as the coordinates of the initial point, the traversal is not performed, the algorithm is ended, and the recorded four vertex coordinates (100, 100), (100, 400), (300, 400), and (300, 100) are output.
[0052] Since the selection of the initial point is random during the traversal, the initial point may also be on the edge of the rectangular layout. In this case, the "stop the traversal when the initial point or the recorded vertex of the first traversal is reached as the starting point" includes:
[0053] After the first traversal, detect whether the starting point coordinates of each traversal are the recorded vertex coordinates;
[0054] If yes, the vertex coordinates of the duplicate record are deleted and the traversal is stopped, and if no, the traversal is continued.
[0055] The following refers to Figure 1 and Figure 2 The algorithm in this case is analyzed. In this case, the coordinates of the initial point are (100, 200), the first traversal starts from the initial point, stops at the point (200, 400) whose horizontal and vertical coordinates are different from those of the initial point (100, 200), and records the vertex coordinates (100, 400) obtained in the first traversal. After deleting the redundant point (100, 300) between the initial point (100, 200) and the recorded vertex (100, 400), the second traversal is performed, the starting point of the second traversal is (100, 400), the recorded vertex coordinates are (300, 400), and the vertex coordinates are not the recorded vertex coordinates, so the traversal can be continued. The starting point of the third traversal is (300, 400), the recorded vertex coordinates are (300, 100), and the vertex coordinates are not the recorded vertex coordinates, so the traversal can be continued. The starting point of the fourth traversal is (300, 100), the recorded vertex coordinates are (100, 100), and the vertex coordinates are not the recorded vertex coordinates, so the traversal can be continued. The starting point of the fifth traversal is (100, 100), the recorded vertex coordinates are (100, 400), and the vertex coordinates are the same as those recorded in the first traversal, so the traversal is stopped, and the duplicate coordinates are deleted, and only the vertex coordinates (100, 400) are saved. After the traversal is stopped, the final recorded vertex coordinates include (100, 100), (100, 400), (300, 400), and (300, 100), which are exactly the four vertex coordinates of the rectangular layout.
[0056] It should be noted that the algorithm termination condition "stop the traversal when the initial point or the vertex recorded in the first traversal is reached" includes two methods, wherein "stop the traversal when the initial point is reached" is mainly used when the initial point is the final recorded vertex, and "stop the traversal when the vertex recorded in the first traversal is reached" is used when the initial point is on the edge of the rectangular layout, i.e., the initial point itself is a redundant point. The algorithm termination condition allows the initial point to be randomly selected, saving the time for screening the initial point.
[0057] In the GDSII format layout file, the four necessary vertex coordinates can be used to accurately locate the position and shape of the rectangular layout, reducing the storage space.
[0058] The processing method of integrated circuit layout data in GDSII format proposed in the present invention is not only applicable to the above-mentioned layout form. It can also detect all vertex coordinates of a layout with any adjacent edges perpendicular to each other. If there are extra redundant points on the edges of a layout with any adjacent edges perpendicular to each other, the method proposed in the present invention can also accurately delete the redundant points, further reducing the occupied storage space.
[0059] See Figure 3 , which is a flowchart of the processing method proposed by the present invention. For a rectangular layout with multiple collinear points, it includes: after establishing a rectangular coordinate system, starting from the starting point of the current traversal in a clockwise or counterclockwise traversal until traversing to a coordinate point Q whose horizontal and vertical coordinates are different from those of the starting point of the current traversal, deleting all redundant coordinate points between the starting point of the current traversal and the coordinate point before the coordinate point Q, and then setting the new starting point as the coordinate point before the coordinate point Q, repeating the above process until traversing again to the initial point or the vertex recorded in the first traversal as the starting point, stopping the traversal, terminating the algorithm and outputting the recorded vertex coordinates. Among them, the coordinate point Q is the point in this method whose horizontal and vertical coordinates are different from those of the starting point of the current traversal, and its previous point is the vertex recorded in this method.
[0060] The present invention also provides a computer storage medium, which adopts the above-mentioned integrated circuit layout data processing method.
[0061] Compared with the prior art, the processing method proposed in the present invention can perform data compression processing on layout data with multiple points in collinearity in the GDSII data format, thereby reducing the storage space occupied by the layout data and shortening the operation time.
[0062] The above embodiments are only used to illustrate the specific implementation of the present invention. It should be noted that, for those skilled in the art, several modifications and variations can be made without departing from the concept of the present invention, and these modifications and variations should all fall within the scope of protection of the present invention.
Claims
1. A method of processing integrated circuit layout data in GDSII format, characterized by, The method comprises the following steps: establishing a rectangular coordinate system and placing a rectangular layout with multiple points in line in the rectangular coordinate system; taking an arbitrary point on the rectangular layout as an initial point to start traversal and obtaining coordinates of the traversed points; recording the vertex coordinates of the rectangular layout and deleting redundant point coordinates on the edges of the rectangular layout; stopping traversal and outputting the recorded vertex coordinates when the traversal is restarted from the initial point or a vertex recorded in the first traversal; recording the vertex coordinates of the rectangular layout, comprising: obtaining the starting point coordinates of the current traversal; when a point different from the starting point of the current traversal in both horizontal and vertical coordinates is reached, recording the coordinates of the previous point as vertex coordinates; each time a vertex coordinate is recorded, it is considered that one traversal is completed, and the starting point of the next traversal needs to be determined, wherein the starting point of each traversal after the first traversal is the vertex coordinate recorded in the previous traversal, and the starting point of the first traversal is the initial point; deleting redundant point coordinates on the edges of the rectangular layout, comprising: when a vertex coordinate is recorded, obtaining the starting point of the current traversal; all points between the starting point of the current traversal and the vertex coordinate are considered as redundant points, and the redundant point coordinates are deleted from the rectangular layout.
2. The treatment method according to claim 1, characterized in that, stopping traversal when the traversal is restarted from the initial point or a vertex recorded in the first traversal, comprising: after the first traversal, detecting whether the starting point coordinates of each traversal are the same as the coordinates of the initial point; if yes, stopping the traversal, and if no, continuing the traversal.
3. The treatment method according to claim 2, characterized in that, stopping traversal when the traversal is restarted from the initial point or a vertex recorded in the first traversal, further comprising: after the first traversal, detecting whether the starting point coordinates of each traversal are the vertex coordinates that have been recorded; if yes, deleting the repeatedly recorded vertex coordinates and stopping the traversal, and if no, continuing the traversal.
4. A computer storage medium, characterized in that, The computer storage medium adopts the processing method according to any one of claims 1 to 3.
Citation Information
Patent Citations
Method for compressing size of layout data
CN104375377A
Mask plate processing method and device in computational lithography
CN109656106A