A method for processing GDSII layout data of polygons with adjacent sides perpendicular to each other

By compressing the coordinates of polygons whose adjacent sides are perpendicular to each other in GDSII layout data, the storage and transmission problems caused by the large amount of layout data are solved, and the data volume is reduced and the storage space is saved.

CN114138726BActive Publication Date: 2025-09-09SHENZHEN STATE MICRO TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111341480.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-12
Publication Date
2025-09-09
Estimated Expiration
2041-11-12

AI Technical Summary

Technical Problem

In the prior art, the amount of GDSII layout data after OPC is huge, which occupies a lot of space and affects the data transmission and storage in the photolithography mask manufacturing process.

Method used

A GDSII layout data processing method for polygons with perpendicular sides is proposed. By establishing a rectangular coordinate system, traversing the polygon inflection points, saving the coordinates of the odd-numbered inflection points, deleting redundant inflection points, and compressing the polygon coordinate data, a new method is proposed.

Benefits of technology

The GDSII layout data is compressed, and at least half of the special polygon coordinate data is compressed, which reduces the data volume, saves storage space and improves data transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114138726B_ABST
    Figure CN114138726B_ABST
Patent Text Reader

Abstract

The present invention proposes a method for processing GDSII layout data containing polygons whose adjacent edges are mutually perpendicular. The method includes compression and decompression methods for integrated circuit layout data. The compression method comprises: establishing a rectangular coordinate system and placing a special polygon in the integrated circuit layout in the rectangular coordinate system; starting traversal from any inflection point on the special polygon as the initial point and obtaining the coordinates of the traversed nodes; saving the coordinates of the inflection points from the nodes and sequentially labeling the inflection points; stopping traversal when the initial point is reached again, and outputting the directions of the two initial edges and the coordinates of the inflection points that meet the output conditions. Compared with existing technologies, the present invention can compress layout data for special polygons with a higher compression ratio and strong targeting.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of integrated circuit layout, and in particular to a method for processing GDSII layout data of polygons with adjacent sides perpendicular to each other. Background Art

[0002] Optical Proximity Correction (OPC) uses a certain calculation method to make different degrees of correction to the shape and size of the pattern on the photolithography mask. For example, on the photolithography mask, the topology of the pattern in a certain light-transmitting area is changed or corresponding subtle auxiliary patterns are added, so that the actual pattern projected on the photoresist is as consistent as possible with the designed pattern.

[0003] Optical proximity correction (OPC) plays a crucial role in the semiconductor device manufacturing process. The current mainstream layout data storage formats are GDSII and OASIS. By performing optical proximity correction on layout data, the pattern projected onto the photoresist can be kept as close to the original pattern on the photomask as possible, thereby improving the yield of integrated circuit designs. However, OPC performs corrections on a per-layer basis, losing the inter-layer reference relationships. Consequently, a significant amount of redundant layout data is stored, which occupies more internal storage space.

[0004] Studies have shown that arrive After OPC, the layout data of the manufacturing process becomes extremely large, reaching several GB or even hundreds of GB. However, an overly large layout data volume has an extremely adverse impact on the photolithography mask manufacturing process. Specifically, excessively large layout data requires a lot of time during data transmission, and the relevant departments of the photolithography mask manufacturing plant need to spend a lot of time to operate and process it, and it requires a large amount of internal storage space to store it. Since polygons are one of the seven core pixel headers in the GDSII format layout file, it is particularly important to use a certain method to compress the layout data of polygons whose adjacent edges may be perpendicular to each other to improve its compression ratio.

[0005] Therefore, how to design a method for processing GDSII layout data of polygons with adjacent edges perpendicular to each other, and how to compress the layout data of polygons with adjacent edges perpendicular to each other is a technical problem that needs to be solved urgently in the industry. Summary of the Invention

[0006] In view of the problem in the prior art that layout data is large and occupies a lot of space, the present invention proposes a method for processing GDSII layout data of polygons with adjacent sides perpendicular to each other.

[0007] The technical solution of the present invention is to propose a method for processing GDSII layout data for polygons with adjacent edges perpendicular to each other, including a compression method and a decompression method for integrated circuit layout data. The compression method includes:

[0008] Establishing a rectangular coordinate system and placing the special polygon in the integrated circuit layout in the rectangular coordinate system;

[0009] Taking any inflection point on the special polygon as the initial point to start traversal, and obtaining the coordinates of the traversed nodes;

[0010] Saving the coordinates of the inflection points from the nodes and labeling the inflection points in sequence;

[0011] When the traversal reaches the initial point again, the traversal is stopped, and the directions of the initial two edges and the coordinates of the inflection point that meets the output conditions are output.

[0012] Furthermore, the decompression method includes:

[0013] According to the directions of the two initial sides and the coordinates of the inflection points that meet the output conditions, the coordinates of all the inflection points of the special polygon are obtained;

[0014] Connect all the inflection points to restore the special polygon.

[0015] Furthermore, before selecting the initial point for traversal, it is also necessary to determine whether the polygon in the integrated circuit layout is a special polygon. If so, start traversal from the initial point. If not, directly output all the nodes and polygon marks of the polygon.

[0016] Furthermore, the special polygon is a polygon whose adjacent sides are perpendicular to each other.

[0017] Furthermore, the coordinates of the inflection points are saved from the nodes, including:

[0018] Compare the horizontal coordinate and vertical coordinate of the node being traversed with the horizontal coordinate and vertical coordinate of the reference point to obtain the first node whose two comparison results are different, the previous node of the first node is the inflection point, save the coordinates of the inflection point, and update the reference point to the inflection point; wherein, when the traversal starts, the reference point is set to the initial point.

[0019] Furthermore, in the process of compressing and traversing the coordinate data of the special polygon nodes, new inflection points are continuously acquired, and the reference point is continuously updated to the last acquired inflection point.

[0020] Furthermore, the inflection points are numbered in sequence, including: the number of each inflection point is the number of the last saved inflection point plus 1, and the number of the initial point is 1.

[0021] Furthermore, the polygon flag is used to store whether the special polygon is a special polygon and the directions of its initial two sides when the polygon is a special polygon; when the polygon is a special polygon and the directions of its initial two sides are clockwise, the output result of the polygon flag is 1; when the polygon is a special polygon and the directions of its initial two sides are counterclockwise, the output result of the polygon flag is 2; when the polygon is not a special polygon, the output result of the polygon flag is 0.

[0022] Furthermore, stopping the traversal when the traversal reaches the initial point again includes:

[0023] The coordinates of the node being traversed are compared with the coordinates of the initial point. If the horizontal coordinate and the vertical coordinate of the node are the same as the horizontal coordinate and the vertical coordinate of the initial point, the traversal is stopped.

[0024] Furthermore, the inflection points that meet the output condition are inflection points with odd numbers.

[0025] Furthermore, according to the directions of the two initial sides and the coordinates of the inflection points that meet the output conditions, the coordinates of all the inflection points of the special polygon are obtained, including:

[0026] Starting from the initial point, two possible coordinate points of an even-numbered inflection point located between two adjacent odd-numbered inflection points are inferred in sequence;

[0027] Compare the two possible coordinate points with the coordinates of the previous inflection point labeled with an even number, and obtain a coordinate point whose horizontal coordinate and vertical coordinate are different from the horizontal coordinate and vertical coordinate of the previous inflection point labeled with an even number. The coordinate point is the inflection point labeled with an even number between two adjacent inflection points labeled with an odd number; among them, the coordinates of the inflection point labeled 2 are determined according to the coordinates of the initial point, the coordinates of the inflection point labeled 3, and the directions of the two initial edges.

[0028] Furthermore, when the output result of the polygon flag is 0, the decompression method further includes: sequentially connecting all the saved nodes to restore the original polygon.

[0029] Compared with the prior art, the present invention has at least the following beneficial effects:

[0030] A method for processing integrated circuit layout data in GDSII format is proposed. The method can process layout data of polygons whose adjacent sides are perpendicular to each other and compress the coordinate data of at least half of the special polygons in the layout, facilitating the transmission of large layout data and saving internal storage space occupied by the data. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0032] Figure 1 This is a schematic diagram of the special polygon with two initial edges running clockwise and counterclockwise;

[0033] Figure 2 A schematic diagram of a special polygonal figure in the layout of the present invention;

[0034] Figure 3 This is the effect diagram of a special polygon after being processed by the compression method of the present invention;

[0035] Figure 4 This is the overall flow chart for compression and decompression of special polygon coordinate data;

[0036] Figure 5 This is a flow chart for compressing special polygon coordinate data;

[0037] Figure 6 This is the decompression flowchart for special polygon coordinate data. DETAILED DESCRIPTION

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

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

[0040] The principle and structure of the present invention are described in detail below with reference to the accompanying drawings and embodiments.

[0041] In the prior art, layout data becomes extremely large after OPC. However, layouts with excessively large data volumes have a negative impact on the photolithography mask manufacturing process. Specifically, excessively large layout data consumes a significant amount of time during data transmission, requiring the relevant departments of the photolithography mask manufacturing plant to spend a significant amount of time operating and processing it. The present invention proposes a method for processing integrated circuit layout data in GDSII format. This method processes special polygons in the layout data, obtains their inflection point coordinates, and filters the inflection points to be saved based on output conditions, thereby compressing at least half of the special polygon coordinate data, thereby reducing the data volume and, in turn, the data transmission time.

[0042] Specifically, the processing method proposed in the present invention includes a compression method and a decompression method, wherein, see Figure 5 , compression methods include:

[0043] Establishing a rectangular coordinate system and placing the special polygon in the integrated circuit layout in the rectangular coordinate system;

[0044] Taking any inflection point on the special polygon as the initial point to start traversal, and obtaining the coordinates of the traversed nodes;

[0045] Saving the coordinates of the inflection points from the nodes and labeling the inflection points in sequence;

[0046] When the traversal reaches the initial point again, the traversal is stopped, and the directions of the initial two edges and the coordinates of the inflection point that meets the output conditions are output.

[0047] Among them, a special polygon is a polygon whose adjacent sides are perpendicular to each other, and the intersection of the adjacent sides of a special polygon is called an inflection point. The compression method proposed in the present invention mainly compresses the coordinate data of special polygons in the layout. Therefore, before selecting the initial point for traversal, it is also necessary to determine whether the polygon in the integrated circuit layout is a special polygon. If so, the traversal starts from the initial point. If not, all the nodes of the polygon are directly output. It should be pointed out that when placing the special polygon in a rectangular coordinate system, in order to facilitate data processing and coordinate judgment, the sides of the special polygon in the present invention are all parallel to the X-axis or Y-axis of the rectangular coordinate system in which it is located.

[0048] Furthermore, the coordinates of the inflection point are saved from the node, including: comparing the horizontal coordinate and the vertical coordinate of the node being traversed with the horizontal coordinate and the vertical coordinate of the reference point, obtaining the first node whose two comparison results are different, the previous node of the first node is the inflection point, saving the coordinates of the inflection point, and updating the reference point to the inflection point, wherein, when the traversal starts, the reference point is set to the initial point, and during the traversal process, the reference point is continuously updated to the last obtained inflection point.

[0049] See below Figure 2 The method of determining the inflection point is explained. The traversal starts from a randomly selected initial point. Here, (100, 100) is used as the initial point for traversal in a clockwise direction. The traversal starts from (100, 100). The reference point is set to the initial point (100, 100). It passes through the nodes (100, 100), (100, 300), and (200, 300) in turn. It can be seen that the first node whose horizontal and vertical coordinates are different from the reference point (100, 100) is (200, 300). The previous node (100, 300) is the inflection point. After saving the coordinates of the inflection point (100, 300), the reference point is updated to the last obtained inflection point (100, 300).

[0050] Furthermore, during the compression process, to reduce the storage space occupied, after recording the inflection point coordinates once, it is necessary to delete the redundant inflection points in the middle to achieve the compression purpose. Since the present invention is targeted at polygons whose adjacent sides are perpendicular to each other, the present invention can redraw the original special polygon based on only some of the inflection points, while the remaining inflection points can be deleted as redundant inflection points to achieve the compression purpose. Specifically, the present invention only saves the inflection points labeled with odd numbers, and deletes the other nodes of the special polygon as redundant nodes, so that at least half of the special polygon coordinate data is compressed.

[0051] See Figure 1 , the first inflection point is labeled 1, the second inflection point is labeled 2, and the third inflection point is labeled 3. When the coordinates of the inflection point labeled 1, the coordinates of the inflection point labeled 3, and the directions of the initial two edges are known, the coordinates of the inflection point labeled 2 can be inferred. After obtaining the coordinates of the inflection point labeled 2, the coordinates of the inflection point labeled 4 can be inferred based on the coordinates of the inflection point labeled 3 and the coordinates of the inflection point labeled 5; after obtaining the coordinates of the inflection point labeled 4, the coordinates of the inflection point labeled 6 can be inferred based on the coordinates of the inflection point labeled 5 and the coordinates of the inflection point labeled 7; in this way, the coordinates of all inflection points labeled even can be inferred. Therefore, under the compression method of the present invention, only the inflection points labeled odd can be saved to achieve the purpose of compression. When there are non-inflection point nodes on the edges of special polygons, they can also be deleted as redundant nodes to further improve its compression ratio.

[0052] The inflection point number obtained last during the traversal process is the number of the last saved inflection point plus 1, and the initial point number is 1, and all inflection points are numbered in this way.

[0053] Furthermore, information about whether a polygon is a special polygon and the directions of its initial two sides are stored in the same polygon flag variable. When a polygon is a special polygon and its initial two sides are oriented clockwise, the polygon flag output is 1. When a polygon is a special polygon and its initial two sides are oriented counterclockwise, the polygon flag output is 2. If a polygon is not a special polygon, compression is not performed on it, and the polygon flag output is 0.

[0054] Furthermore, stopping the traversal when the initial point is reached again includes comparing the coordinates of the node being traversed with the coordinates of the initial point, and stopping the traversal if the horizontal coordinate and vertical coordinate of the node being traversed are the same as the horizontal coordinate and vertical coordinate of the initial point. It should be noted that since the traversal method in the present invention is a clockwise or counterclockwise unidirectional traversal, for a closed polygon, when the traversal returns to the initial point, it can be determined that all nodes of the polygon have been traversed, and thus further traversal is not required.

[0055] See Figure 2 and Figure 3 The compression process of the present invention is described below. First, after establishing a rectangular coordinate system, the special polygon in the layout is placed in the rectangular coordinate system. Then, any inflection point is selected as the initial point to start traversal. In this embodiment, the initial point is (100, 100), which is labeled as 1, and the reference point is initialized to (100, 100). The traversal direction is clockwise, and the traversal passes through points (100, 100), (100, 300), and (200, 300) in sequence. The first node whose horizontal and vertical coordinates are different from the reference point (100, 100) is (200, 300). The previous node (100, 300) is the intersection of the two adjacent edges, which is also the inflection point that needs to be recorded. It is labeled as 2, and the reference point is updated to the last obtained inflection point (100, 300).

[0056] Then continue to traverse the node (200, 400). (200, 400) is a node with different horizontal and vertical coordinates from the reference point (100, 300). The last traversed node (200, 300) is the intersection of two adjacent edges, which is also the inflection point that needs to be recorded. Label it 3, and then update the coordinates of the reference point to (200, 300).

[0057] Continue to traverse the node (300, 400) and get the inflection point (200, 400), label it as 4, and update the reference point to (200, 400); continue to traverse the node (300, 300) and get the inflection point (300, 400), label it as 5, and update the reference point to (300, 400); continue to traverse the node (400, 300) and get the inflection point (300, 300), label it as 5, and update the reference point to (300, 400); continue to traverse the node (400, 300) and get the inflection point (300, 300), label it as The number is 6, and the reference point is updated to (300, 300); continue to traverse the node (400, 100), and get the inflection point (400, 300), label it as 7, and update the reference point to (400, 300); continue to traverse the node (300, 100), and get the inflection point (400, 100), label it as 8, and update the reference point to (400, 100); continue to traverse the node (300, 200), and Get the inflection point (300, 100), label it as 9, and update the reference point to (300, 100); continue to traverse the node (200, 200), and get the inflection point (300, 200), label it as 10, and update the reference point to (300, 200); continue to traverse the node (200, 100), and get the inflection point (200, 200), label it as 11, and update the reference point to (200, 200); continue to traverse the node (100, 100), and get the inflection point (200, 100), label it as 12, and update the reference point to (200, 100); the traversal process is similar to the process of traversing the node (200, 400), so it will not be repeated here. When traversing to (100, 100), its horizontal and vertical coordinates are exactly the same as those of the initial point. It is necessary to stop the traversal and then output the inflection point that meets the output conditions.

[0058] Its output condition is the inflection points with odd numbers, including the inflection point with number 1 (100, 100), the inflection point with number 3 (200, 300), the inflection point with number 5 (300, 400), the inflection point with number 7 (400, 300), the inflection point with number 9 (300, 100), and the inflection point with number 11 (200, 200). Compared with the special polygon storage rules in the original GDSII layout, it saves at least half of the inflection point coordinate data (originally it was necessary to store the coordinate data of 13 nodes, but after processing, only the coordinate data of 6 inflection points need to be saved), which greatly saves storage space. If there are redundant nodes that are not inflection points on the edges of the special polygons in the layout, the compression method proposed by the present invention is still applicable. After the special polygons are compressed and stored, the output result is still the direction of the initial two edges and the coordinate data of the inflection points with odd numbers, and the redundant nodes that are not inflection points are also compressed, and the compression ratio will be further improved. It should be pointed out that Figure 5In the code, it is determined whether the current inflection point number is 3 to determine the direction of the initial two sides, which is stored in the polygon flag. A flag of 1 indicates that the polygon is a special polygon and the direction of its initial two sides is clockwise; a flag of 2 indicates that the polygon is a special polygon and the direction of its initial two sides is counterclockwise. Figure 2 and Figure 3 In the example, the polygon is a special polygon whose initial two edges run clockwise, so the polygon flag is 1.

[0059] See Figure 6 , the decompression method proposed by the present invention includes:

[0060] According to the directions of the initial two edges and the coordinates of the inflection points that meet the output conditions, the coordinates of all the inflection points of the special polygon are obtained;

[0061] Connect all the inflection points to restore the original special polygon.

[0062] The method of obtaining the coordinates of all inflection points of the special polygon according to the directions of the two initial edges and the coordinates of the inflection points that meet the output conditions includes: starting from the initial point, inferring two possible coordinate points of the inflection point with an even number between the two adjacent inflection points with an odd number in sequence;

[0063] Compare the two possible coordinate points with the coordinates of the previous inflection point labeled with an even number, and obtain a coordinate point whose horizontal coordinate and vertical coordinate are different from the horizontal coordinate and vertical coordinate of the previous inflection point labeled with an even number. The coordinate point is the inflection point labeled with an even number between the two adjacent inflection points labeled with an odd number; among them, the coordinates of the inflection point labeled 2 are determined according to the coordinates of the initial point, the coordinates of the inflection point labeled 3, and the directions of the initial two sides.

[0064] See Figure 2 and Figure 3 , the decompression process of the present invention is described below. First, when redrawing a layout containing a special polygonal graphic, it is detected that Figure 3 The compressed data of the special polygon shown in the figure. After traversing the compressed data, the coordinates of the inflection point numbered 1 are (100, 100), and the coordinates of the inflection point numbered 3 are (200, 300). Since the polygon flag is 1, we know that the initial direction of the two edges is clockwise, and we can then determine that the coordinates of the inflection point numbered 2 are (100, 300).

[0065] When determining the inflection point labeled 4 based on the inflection point labeled 3 (200, 300) and the inflection point labeled 5 (300, 400), two possible coordinate points will be obtained, namely (200, 400) and (300, 300). Here, the two possible coordinate points need to be compared with the coordinates of the inflection point labeled 2 (the coordinates of the previous inflection point with an even number), and the coordinate point whose horizontal coordinate and vertical coordinate are different from those of the inflection point labeled 2 is the coordinate of the inflection point labeled 4. Here, (200, 400) is a coordinate point whose horizontal coordinate and vertical coordinate are different from those of the inflection point labeled 2, so (200, 400) is selected as the coordinate of the inflection point labeled 4.

[0066] It should be pointed out that since the present invention compresses and decompresses the coordinate data of special polygon nodes, the horizontal and vertical coordinates of two adjacent inflection points with even numbers must be different. Therefore, after obtaining two possible coordinate points, the accurate coordinates can be determined by comparing them with the previous coordinate with an even number.

[0067] Similarly, for the coordinates of the inflection point labeled 6, we can obtain two possible coordinates (300, 300) and (400, 400) based on the coordinates (300, 400) of 5 and the coordinates (400, 300) of 7. Then, compared with the coordinates (200, 400) of the inflection point labeled 4, we can get the coordinates of 6 as (300, 300).

[0068] For the coordinates of the inflection point labeled 8, it can obtain two possible coordinates (400, 300) and (300, 100) based on the coordinates (400, 300) of the inflection point labeled 7 and the coordinates (400, 100) of the inflection point labeled 9. Then, compared with the coordinates (300, 300) of the inflection point labeled 6, the coordinates of the inflection point labeled 8 are obtained as (400, 100).

[0069] For the coordinates of the inflection point numbered 10, it can obtain two possible coordinates (300, 100) and (200, 100) based on the coordinates (300, 100) of numbered 9 and the coordinates (200, 200) of numbered 11, and then compare them with the coordinates (400, 100) of the inflection point numbered 8, and get the coordinates of numbered 10 as (300, 200);

[0070] For the inflection point numbered 12, since the traversal has returned to the starting point at this point, the traversal stops and the next inflection point becomes the starting point. Therefore, based on the coordinates of the inflection point numbered 11 (200, 200) and the coordinates of the inflection point numbered 1 (100, 100), the coordinates of the inflection point numbered 12 are determined to be (200, 100). After obtaining the coordinates of all the inflection points, connect all the inflection points in the order of their numbers: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, and you will get the original special polygon.

[0071] It should be pointed out that for special polygons, the total number of inflection points must be an even number. For the last inflection point with an even number, its coordinates are determined based on the coordinates of the previous inflection point with an odd number and the initial point (the inflection point with a number 1), such as Figure 2 As shown, for the last inflection point with an even number, it needs to be determined based on the previous inflection point with an odd number (the inflection point with a number of 11), the initial point (the inflection point with a number of 1), and the previous inflection point with an even number (the inflection point with a number of 10).

[0072] See Figure 6 , which is a decompression flow chart of the coordinate data of the special polygon of the present invention. Before entering the decompression process, it is also necessary to determine whether this polygon is a special polygon. If not, no compression is performed. The polygon coordinate data is not processed during compression, and all its node coordinate data are directly saved. Therefore, during decompression, the original polygon graphics can be drawn by connecting all the stored nodes in sequence; if so, the coordinates of the inflection point labeled 1, the coordinates of the inflection point labeled 3, and the directions of the initial two edges are used to obtain the coordinates of the inflection point labeled 2; the coordinates of the inflection point labeled 4 are obtained according to the coordinates of the inflection point labeled 2, the coordinates of the inflection point labeled 3, and the coordinates of the inflection point labeled 5; the coordinates of the inflection point labeled 6 are obtained according to the coordinates of the inflection point labeled 4, the coordinates of the inflection point labeled 5, and the coordinates of the inflection point labeled 7... and the coordinates of all inflection points with even numbers are obtained in sequence, and then all the inflection points are connected in sequence to complete the decompression.

[0073] See Figure 4 , which is an overall flow chart for compressing and decompressing the coordinate data of special polygons, including: when saving the layout, judging whether the layout contains special polygons, if so, processing the coordinate data of the special polygons according to the compression method of the present invention; when redrawing the layout, judging whether the polygons in the layout being drawn are special polygons, if so, processing the coordinate data of the special polygons according to the decompression method of the present invention, and then obtaining the original special polygon graphics in the layout.

[0074] Compared with the prior art, the processing method proposed in the present invention can perform compression processing on layout data of special polygons, and has strong pertinence, good reliability and high compression ratio.

[0075] 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 for processing GDSII layout data of polygons with adjacent edges perpendicular to each other, characterized in that: A method for compressing and decompressing integrated circuit layout data is provided, wherein the compression method comprises: Establishing a rectangular coordinate system and placing the special polygon in the integrated circuit layout in the rectangular coordinate system; Taking any inflection point on the special polygon as the initial point to start traversal, and obtaining the coordinates of the traversed nodes; Saving the coordinates of the inflection points from the nodes and labeling the inflection points in sequence; When the traversal reaches the initial point again, the traversal stops, and the directions of the initial two edges and the coordinates of the inflection point that meets the output conditions are output; Saving the coordinates of the inflection points from the node, including: Compare the horizontal coordinate and vertical coordinate of the node being traversed with the horizontal coordinate and vertical coordinate of the reference point to obtain the first node whose two comparison results are different, the previous node of the first node is the inflection point, save the coordinates of the inflection point, and update the reference point to the inflection point; wherein, when the traversal starts, the reference point is set to the initial point.

2. The processing method according to claim 1, characterized in that The decompression method comprises: According to the directions of the two initial sides and the coordinates of the inflection points that meet the output conditions, the coordinates of all the inflection points of the special polygon are obtained; Connect all the inflection points to restore the special polygon.

3. The processing method according to claim 1, characterized in that Before selecting the initial point for traversal, it is also necessary to determine whether the polygon in the integrated circuit layout is a special polygon. If so, start traversal from the initial point. If not, directly output all the nodes and polygon marks of the polygon.

4. The processing method according to claim 3, characterized in that The special polygon is a polygon whose adjacent sides are perpendicular to each other.

5. The processing method according to claim 1, characterized in that In the process of compressing and traversing the coordinate data of the special polygon nodes, new inflection points are continuously obtained, and the reference point is continuously updated to the last obtained inflection point.

6. The processing method according to claim 1, characterized in that The inflection points are labeled in sequence, including: the label of each inflection point is the label of the last saved inflection point plus 1, and the label of the initial point is 1.

7. The processing method according to claim 3, characterized in that The polygon flag is used to store whether the special polygon is a special polygon and the directions of its initial two sides when the polygon is a special polygon; when the polygon is a special polygon and the directions of its initial two sides are clockwise, the output result of the polygon flag is 1; when the polygon is a special polygon and the directions of its initial two sides are counterclockwise, the output result of the polygon flag is 2; when the polygon is not a special polygon, the output result of the polygon flag is 0.

8. The processing method according to claim 1, characterized in that When the traversal reaches the initial point again, the traversal is stopped, including: The coordinates of the node being traversed are compared with the coordinates of the initial point. If the horizontal coordinate and the vertical coordinate of the node are the same as the horizontal coordinate and the vertical coordinate of the initial point, the traversal is stopped.

9. The processing method according to claim 2, characterized in that: The inflection points that meet the output condition are inflection points with odd numbers.

10. The processing method according to claim 9, characterized in that: According to the directions of the two initial sides and the coordinates of the inflection points that meet the output conditions, the coordinates of all the inflection points of the special polygon are obtained, including: Starting from the initial point, the points located at the two adjacent odd-numbered inflection points are inferred. Two possible coordinate points of the inflection points with even numbers between them; Compare the two possible coordinate points with the coordinates of the previous inflection point labeled with an even number, and obtain a coordinate point whose horizontal coordinate and vertical coordinate are different from the horizontal coordinate and vertical coordinate of the previous inflection point labeled with an even number. The coordinate point is the inflection point labeled with an even number between two adjacent inflection points labeled with an odd number; among them, the coordinates of the inflection point labeled 2 are determined according to the coordinates of the initial point, the coordinates of the inflection point labeled 3, and the directions of the two initial edges.

11. The processing method according to claim 10, characterized in that: When the output result of the polygon flag is 0, the decompression method further includes: sequentially connecting all the saved nodes to restore the original polygon.

Citation Information

Patent Citations

  • Mask plate processing method and device in computational lithography

    CN109656106A