A data processing method, a data structure generation method, and a query method
By using a data processing method based on layer information and generating a tree structure, the problem of low query efficiency for basic primitive connection relationships in layout data files is solved, enabling fast querying and efficient storage, thereby improving the efficiency of semiconductor design and manufacturing.
Patent Information
- Application Number
- CN202210864527.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-12-31
- Filing Date
- 2022-07-21
- Publication Date
- 2026-02-10
- Estimated Expiration
- 2042-07-21
AI Technical Summary
Existing map data file formats are inefficient at extracting basic primitive information and checking connectivity, failing to meet current query speed requirements. This results in excessive computer storage space consumption, impacting the efficiency of semiconductor design and manufacturing.
By using a data processing method based on layer information, multiple nodes are set up to form a tree structure, which stores layer information and generates node bounding boxes and layer bounding boxes. This information is then used to quickly query the connection relationships between basic primitives.
It simplifies the checking of basic primitive connections, saves computer storage space, improves query efficiency, and can quickly extract relevant basic primitive information, thereby improving the efficiency of VLSI design.
Smart Images

Figure CN115481592B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of semiconductor design and manufacturing technology, and particularly relates to a data processing method based on layer information, a method for generating corresponding data structures, and a corresponding query method. Background Technology
[0002] In VLSI design, there are currently two main layout data file formats: GDSII and OASIS. Although the two formats differ somewhat in their storage methods, both contain basic cells and primitives, such as the basic primitives Boundary and Path in GDSII. Primitives have different types depending on how they are created, such as SREF and AREF in GDSII, and Repetitions in OASIS. Specifically, AREF in GDSII creates new primitives by referencing other basic primitives or primitives and arraying a large number of repeating structures according to rules; similarly, SREF in GDSII creates new primitives by referencing other basic primitives or primitives and creating a large number of repeating structures.
[0003] EDA (Electronic Design Automation) tools in the integrated circuit field offer greater flexibility and versatility in handling array types within designs. This is primarily due to the highly reusable nature of components in integrated circuits. This characteristic determines the high compressibility of layout data files, but it also means that fully expanding the layout data file would generate a large amount of redundant information, occupying significant computer storage space and hindering the efficient retrieval and extraction of relevant basic element information.
[0004] In the field of semiconductor design and manufacturing, it is necessary to check the connection relationships between basic primitives. As mentioned above, the data structure of the existing conventional layout data file format cannot meet the current query speed requirements for extracting basic primitive information and checking the connection relationships between basic primitives, and the efficiency is difficult to improve further.
[0005] Therefore, there is a great need to study a data processing method, a corresponding data structure generation method, and a query method that can be applied to extract the connection relationships between any basic primitives, and that is faster and more efficient, so as to further promote the in-depth development and widespread application of semiconductor design and manufacturing technology. Summary of the Invention
[0006] This invention addresses all or part of the problems of the prior art. On one hand, it provides a data processing method based on layer information, which facilitates the querying of connection relationships between basic graphic elements in the resulting layout file. On the other hand, it provides a method for generating a corresponding data structure. This invention also provides a query method capable of quickly extracting connection relationships between any basic graphic elements.
[0007] This invention provides a data processing method based on layer information, which sets up multiple nodes for storing layer information; the nodes are hierarchical; the multiple nodes form a tree structure; each node contains information: node name, information about several layers and their layer bounding boxes, the number of basic primitives, and the number of the starting basic primitive; wherein, the node name is used to identify the node; the layer bounding box refers to the smallest rectangle that encloses all the basic primitives of the layer in the node; the number of basic primitives refers to the number of basic primitives in the node; the basic primitives are identified by their numbers, and the numbers of the basic primitives in the node are consecutive; the smallest basic primitive number in the node is used as the number of the starting basic primitive. The smallest rectangle is the rectangle with the smallest area that can enclose all the basic primitives of a certain layer in the node, and the outline of the rectangle is orthogonal to the coordinate axes.
[0008] The node also includes information about its node bounding box; the node bounding box refers to the smallest rectangle that encloses all the basic primitives in the node. The smallest rectangle is the one with the smallest area that can enclose all the basic primitives in the node. The inclusion of node bounding box information allows for faster and more efficient extraction of connections between arbitrary basic primitives using a layer-based data structure. This is achieved by first querying the relationship between the node bounding box and the basic primitives, followed by further queries.
[0009] The information of the layer bounding box includes the size and coordinate information of the layer bounding box; the information of the node bounding box includes the size and coordinate information of the node bounding box.
[0010] The basic primitives refer to polygonal structures in the layer.
[0011] Another aspect of the present invention provides a method for generating a data structure based on layer information, comprising: step S1. obtaining a layout file (e.g., a GDSII layout file) and traversing it to obtain layer information; the layer information includes primitive information and basic primitive information; step S2. numbering the basic primitives, including consecutively numbering the basic primitives that make up the same primitive (ensuring that the basic primitive numbers in the primitive are consecutive); step S3. generating a corresponding node for each primitive, the node being used to store the layer information in the corresponding primitive; step S4. setting the hierarchy of the node based on the primitive information, taking the basic primitives referenced or arrayed by the primitive and the nodes generated corresponding to the primitive as child nodes of the nodes generated corresponding to the primitive; completing the hierarchy setting of all nodes generated in step S3, forming a tree structure based on the hierarchy, and generating a file of a data structure based on layer information; wherein, the primitive refers to a graphic composed of several basic primitives, and the primitive information... The document includes methods for creating the primitives, including: referencing basic primitives or elements (such as SREF in GDSII), and / or arraying basic primitives or elements (such as AREF in GDSII); the basic primitives refer to polygonal structures in layers (such as a filled polygon Boundary or a line path with a certain width in GDSII); the basic primitive information includes the layer information, position information, and size information of the basic primitive; the node includes information such as the node name, information about several layers and their layer bounding boxes, the number of basic primitives, and the number of the starting basic primitive; wherein, the node name is used to identify the node; the layer bounding box refers to the smallest rectangle that encloses all the basic primitives of the layer in the node; the number of basic primitives refers to the number of basic primitives in the node; the number of the starting basic primitive refers to the number of the smallest basic primitive in the node. The smallest rectangle is the rectangle with the smallest area that can enclose all the basic primitives of a certain layer in the node.
[0012] The node also includes information about its bounding box; the bounding box refers to the smallest rectangle that encloses all the basic primitives in the node. The smallest rectangle is the one with the smallest area that can enclose all the basic primitives in the node. The generated node includes bounding box information, which allows for the determination of the relative relationship between the node bounding box and the basic primitives before further querying using data structures, thus improving query efficiency.
[0013] The information of the layer bounding box includes the size and coordinate information of the layer bounding box; the information of the node bounding box includes the size and coordinate information of the node bounding box.
[0014] This invention also provides a query method for checking the connection relationships between basic graphic elements in a layout file; the steps include: Step 1. Obtaining an initial layout file and determining the target basic graphic element; Step 2. Using the layer information-based data structure generation method of this invention, generating a file based on layer information data structure according to the initial layout file, denoted as the first data structure file; performing node traversal query based on the first data structure file to obtain a set of check results, denoted as the first set; the first set contains all basic graphic elements in the initial layout file that have a connection relationship with the target basic graphic element, excluding cut layers; Step 3. Creating a new first layout file (such as a GDSII layout file) based on the first set; obtaining the cut-out map of the initial layout file. A new layer is created as a second layout file; the second layout file is used to truncate the first layout file (for example, through simple geometric operations), that is, the overlapping areas of corresponding layers in the first layout file are deleted using the cut layer in the second layout file, and the updated first layout file is recorded as the third layout file; Step four. Using the layer information-based data structure generation method of the present invention, a data structure file based on layer information is generated according to the third layout file, and recorded as the second data structure file; for the second data structure file, node traversal query is performed to obtain a set of inspection results, recorded as the second set; the second set contains all basic primitives (including the target basic primitive) that have a connection relationship with the target basic primitive.
[0015] In step three, the layer depth of the first map file is set to 1.
[0016] The query method provided by this invention can also achieve the function of selecting a cut layer, so as to obtain all basic graphic elements that have a connection relationship with the target basic graphic element after considering only the cut layer. Before step three, a cut layer is selected; in step three, the cut layer of the initial layout file refers to the selected cut layer. The function of selecting a cut layer is implemented in the following way: in step three, only the cut layer selected in the initial layout file is obtained and a second layout file is created, and the first layout file is truncated using the second layout file (simple geometric operation), that is, the overlapping area of the corresponding layer in the first layout file is deleted using the cut layer in the second layout file, and the first layout file after the truncation operation is used as the third layout file. The cut layer is selected according to the actual application situation, and the basic graphic elements obtained by query are all basic graphic elements that have a connection relationship with the target basic graphic element after considering the actual selected cut layer, which better meets the needs of actual application. The obtained results can be directly used in actual work, the query is more targeted, and it is conducive to improving the efficiency of the overall process of actual work.
[0017] Following step four, step five is performed: All basic graphic elements obtained in step four are retrieved, and a marker layer is added to the initial layout file to highlight them. Marking the basic graphic elements in the initial layout file helps guide layout design and analysis.
[0018] In step two and / or step four, during the process of traversing nodes and querying to obtain the check result set, basic graphic elements are identified by their numbers. Numbering and identifying basic graphic elements is more intuitive and facilitates data analysis of these elements.
[0019] In step two and / or step four, the node traversal query includes: First, adding the target basic graphic element to the inspection result set; recording the target basic graphic element as the current basic graphic element, and marking the traversal status of the target basic graphic element as traversed; recording the layer to which the target basic graphic element belongs as the current layer; Second, obtaining layers that have a direct connection relationship with the current layer, and recording them together with the current layer as layers to be queried; Third, traversing the nodes in the file of the data structure based on layer information, including: checking whether there is the layer to be queried in the node and whether its layer bounding box overlaps with the current basic graphic element; if not, continuing to traverse the remaining nodes; if yes, checking... If there is an overlap between the basic graphic element and the current basic graphic element in the layer to be checked, then the basic graphic element is added to the inspection result set and its traversal status is marked as untraversed. Fourth, for the current basic graphic element, after traversing the nodes in the file based on the layer information data structure, it is confirmed whether there is a basic graphic element in the current inspection result set whose traversal status is untraversed. If so, the untraversed basic graphic element is taken as the new current basic graphic element, its traversal status is changed to traversed, and the layer to which the new current basic graphic element belongs is recorded as the new current layer, proceeding to the second step. If not, the node traversal query ends, and the inspection result set is obtained.
[0020] In the third step, a depth-first traversal is used to search the nodes. Using a depth-first traversal ensures a more comprehensive search without omissions, while also requiring less memory.
[0021] In the third step, if the node contains the layer to be searched and its layer bounding box overlaps with the current basic primitive, and if not, then during the node traversal for the current basic primitive, that node and its descendant nodes will not be traversed. Not traversing nodes that do not contain the layer to be searched or whose layer bounding box does not overlap with the current basic primitive does not affect the accuracy of the query results and can effectively improve query efficiency.
[0022] In the third step, the basic graphic elements placed in the inspection result set are marked as inspected. During subsequent traversal queries, these inspected basic graphic elements are skipped directly without needing to be inspected again. Marking the inspection status of basic graphic elements placed in the inspection result set as inspected avoids duplicate checks, further optimizing inspection efficiency and shortening inspection time.
[0023] The node contains node bounding box information; the node bounding box refers to the smallest rectangle that encloses all basic primitives in the node. In the third step, when traversing the nodes in the file based on the layer information data structure, it is first checked whether the node bounding box of the node overlaps with the current basic primitive. If it does, it is then checked whether the node contains the layer to be queried and whether the layer bounding box of the layer to be queried overlaps with the current basic primitive. If it does not, then in the node traversal for the current basic primitive, the node and its descendant nodes are no longer traversed. By first checking whether the node bounding box of the node overlaps with the current basic primitive, and by using the relative relationship between the node bounding box and the current basic primitive to perform different subsequent node traversals, the traversal efficiency is improved and the overall query time is shortened.
[0024] The query method provided by this invention can also implement the function of selecting connection layers to obtain all basic graphics elements belonging to the connection layer that are connected to the target basic graphic element. The function of selecting connection layers is implemented in the following way: the query method further includes: before the second step, selecting connection layers; in the second step, layers directly connected to the current layer refer to layers that are directly connected to the current layer and belong to the selected connection layer. Before performing node traversal query, connection layers are selected; in the second step, layers that are directly connected to the current layer and belong to the selected connection layer are obtained, and these layers, along with the current layer, are recorded as the layers to be queried. The ability to select connection layers and perform queries based on the selected layers makes the query more flexible and better meets various specific needs in practical applications.
[0025] Compared with the prior art, the main beneficial effects of the present invention are:
[0026] 1. The data processing method based on layer information of the present invention can simplify the operation of checking the connection relationship of basic graphic elements compared with layout files such as GDSII, so as to assist layout designers in quickly checking the connection relationship between layout elements, saving computer storage space and facilitating efficient searching and extraction of relevant basic graphic element information.
[0027] 2. The data structure generation method of the present invention can generate the data structure of the data processing method based on layer information of the present invention, and has corresponding advantages.
[0028] 3. The query method of the present invention is used to check the connection relationship between basic graphic elements in a layout file. The data structure file obtained by the data structure generation method of the present invention obtains the check result set, which has corresponding advantages. It can efficiently find and extract relevant basic graphic element information, has a fast check speed and reliable check results, and is conducive to further improving the design level of ultra-large scale integrated circuits. Attached Figure Description
[0029] Figure 1 This is a schematic diagram of the data structure based on layer information according to Embodiment 1 of the present invention.
[0030] Figure 2 This is a schematic diagram of the basic primitives of the root node in Embodiment 1 of the present invention.
[0031] Figure 3 This is a schematic diagram of the layer bounding boxes of all layers of the root node in Embodiment 1 of the present invention.
[0032] Figure 4 This is a schematic diagram of the layer bounding boxes of all layers of Node 0, Node 1 and Leaf 2 in Embodiment 1 of the present invention.
[0033] Figure 5 This is a schematic diagram of the layer bounding boxes of all layers, including Leaf 0.0, Node 0.1, Node 1.0, and Leaf 1.1, in Embodiment 1 of the present invention.
[0034] Figure 6 This is a schematic diagram of the layer bounding boxes of all layers in Leaf 0.1.0, Leaf 0.1.1, Leaf 0.1.2, Leaf 1.0.0, Leaf 1.0.1, and Leaf 1.0.2 in Embodiment 1 of the present invention.
[0035] Figure 7 This is a schematic diagram of the data structure generation method process in Embodiment 2 of the present invention.
[0036] Figure 8(a) is a schematic diagram of the layout file of Embodiment 3 of the present invention.
[0037] Figure 8(b) is a schematic diagram of the data structure of Embodiment 3 of the present invention.
[0038] Figure 8(c) is a schematic diagram of the primitives in the layout file of Embodiment 3 of the present invention.
[0039] Figures 9(a) to 9(g) These are schematic diagrams of the basic graphic elements of each layer in Embodiment 3 of the present invention.
[0040] Figure 9(h) is a schematic diagram of the M1 layer structure in Embodiment 3 of the present invention.
[0041] Figure 9(i) is a schematic diagram of the M1 layer and the layer boundary box in Embodiment 3 of the present invention.
[0042] Figure 10 This is a schematic diagram of the basic graphic elements and their numbering in Embodiment 3 of the present invention.
[0043] Figure 11 This is a schematic diagram of the query method in Embodiment 4 of the present invention.
[0044] Figure 12 This is a schematic diagram of the traversal process in Embodiment 5 of the present invention. Detailed Implementation
[0045] The technical solutions in specific embodiments of the present invention will be clearly and completely described below. Obviously, the described embodiments are only a part of the embodiments of the present invention, and not all of them. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0046] Example 1
[0047] In Embodiment 1 of this invention, the data processing method based on layer information sets up multiple nodes to store layer information, and its data structure is as follows: Figure 1 As shown, the example nodes are: Root Node, Node0, Leaf 0.0, Node0.1, Leaf 0.1.0, Leaf 0.1.1, Leaf 0.1.2, Node 1, Node 1.0, Leaf 1.1, Leaf 1.0.0, Leaf 1.0.1, Leaf 1.0.2, and Leaf 2. The nodes are hierarchical; multiple nodes form a tree structure. In this embodiment, multiple nodes are divided into one root node and 13 child nodes according to different levels, forming a tree structure.
[0048] A node contains the following information: node name, information about several layers and their layer bounding boxes, number of basic primitives, number of the starting basic primitive, and node bounding box information. Some embodiments do not include node bounding box information, and this is not a limitation. Specifically, the node name identifies the node; the layer bounding box is the smallest rectangle encompassing all basic primitives of a layer within the node, and its information includes the dimensions and coordinates of the layer bounding box; the number of basic primitives refers to the total number of basic primitives in the node; the basic primitive number uniquely identifies each basic primitive, and the basic primitive numbers within the node are consecutive; the starting basic primitive number is the smallest basic primitive number in the node; the node bounding box is the smallest rectangle encompassing all basic primitives in the node; and the node bounding box information includes its dimensions and coordinates.
[0049] like Figure 2 The diagram shows the 26 basic primitives of the root node, as follows: Figure 3 The image shows the layer bounding boxes of all layers (Layer A, Layer B, Layer C, Layer D, Layer E) of the root node. Figure 4 The diagram shows the layer bounding boxes for all layers of Node 0, Node 1, and Leaf 2. The starting basic primitive number for Node 0 is 0, for Node 1 it is 17, and for Leaf 2 it is 25 (not shown in the diagram). Figure 5 The image shows the layer bounding boxes for all layers in Leaf0.0, Node 0.1, Node1.0, and Leaf 1.1. Figure 6 The diagram shows the layer bounding boxes for all layers in Leaf 0.1.0, Leaf 0.1.1, Leaf 0.1.2, Leaf 1.0.0, Leaf 1.0.1, and Leaf 1.0.2. In this embodiment, the outlines of both the layer bounding boxes and node bounding boxes are orthogonal to the coordinate axes. Therefore, the coordinate information of the layer bounding boxes and node bounding boxes is represented by the four boundary lines of the layer bounding box and the four boundary lines of the node bounding box, respectively. For example, if the coordinates of the four vertices of a node bounding box are (0,0), (2,0), (2,1), and (0,1), then only the four values of the left boundary llx = 0, the right boundary urx = 2, the lower boundary lly = 0, and the upper boundary ury = 1 are stored to represent the coordinate information of that node bounding box.
[0050] Example 2
[0051] Based on the layer-based data structure provided in Embodiment 1, this embodiment provides an example of the data structure generation method. For example... Figure 7 As shown, the specific steps include the following:
[0052] Step S1: Obtain the layout file and traverse it to obtain layer information; layer information includes primitive information and basic primitive information. In this embodiment, a primitive refers to a graphic composed of several basic primitives. Primitive information includes the creation method of the primitive, including: referencing basic primitives or primitives (such as SREF in GDSII), or referencing and arraying basic primitives or primitives (such as AREF in GDSII). Basic primitives refer to polygonal structure graphics in the layer (such as Boundary in GDSII, Path with a certain width). Basic primitive information includes the layer information, position information, and size information of the basic primitive.
[0053] Step S2: Number the basic graphic elements. All basic graphic elements are given a unique identifier number, and the numbers of the basic graphic elements in the graphic elements are guaranteed to be consecutive.
[0054] Step S3: Generate a corresponding node for each graphic element. The node is used to store the layer information in the corresponding graphic element. The node contains the following information: node name, information about several layers and their layer bounding boxes, number of basic graphic elements, number of the starting basic graphic element, and information about the node bounding box.
[0055] Step S4: Set the hierarchy of the nodes generated in Step S3 according to the primitive information: Take the nodes generated corresponding to other basic primitives or other primitives in the array referenced by a primitive, or the nodes generated corresponding to other basic primitives or other primitives referenced by the primitive, as the child nodes of the nodes generated corresponding to the primitive; after completing the hierarchy setting of all nodes generated in Step S3, a tree structure is formed, and a file based on the data structure of the layer information is generated.
[0056] In this embodiment, the node name is used to identify the node; the layer bounding box refers to the smallest rectangle that encloses all the basic primitives of a layer in a node, and the information of the layer bounding box includes the size and coordinate information of the layer bounding box; the number of basic primitives refers to the number of basic primitives in the node. The starting basic primitive number refers to the smallest basic primitive number in a node. The node bounding box refers to the smallest rectangle that encloses all the basic primitives in a node. The information of the node bounding box includes the size and coordinate information of the node bounding box.
[0057] Example 3
[0058] This embodiment can enable those skilled in the art to have a more comprehensive understanding of Embodiment 2, but does not limit the invention in any way.
[0059] In this embodiment, the layout file shown in Figure 8(a) is obtained. The example is a GDSII layout file, which contains seven layers: M1, M2, M3, V1, V2, MC1, and MC2. In Figure 8(a), layer M1 is represented by M1_drawing(L101D0); layer M2 by M2_drawing(L103D0); layer M3 by M3_drawing(L105D0); layer V1 by V1_drawing(L102D0); layer V2 by V2_drawing(L104D0); layer MC1 by MC1_drawing(L90D0); and layer MC2 by MC2_drawing(L91D0). V1 connects M1 and M2, V2 connects M2 and M3, MC1 truncates M1, and MC2 truncates M2. The method for generating a data structure based on layer information shown in Example 2 can be used to generate a file with a data structure based on layer information as shown in Figure 8(b) based on the layout file in Figure 8(a). The top-level primitive is named CELL_001, and the second layer has four primitives named CELL_001Upper, CELL_001cut, CELL_001drop_out, and CELL_001linker3. CELL_001Upper is composed of three third-layer primitives: CELL_001base, CELL_001linker1, and CELL_001linker2, which can be understood in conjunction with Figure 8(c).
[0060] In this embodiment, the specific steps for obtaining the traversal information of each node are as follows:
[0061] Step 1: Starting from the root primitive node to be checked (i.e., CELL_001), iterate through each primitive's child nodes to collect information on the starting position of basic primitives and the number of basic primitives under the current primitive node. Examples are shown below:
[0062] CELL_001 has 4 child cell nodes and a total of 38 basic primitives. As shown in Figure 9(a), CELL_001Upper starts with primitive number 0 in CELL_001 and includes 26 basic primitives (arrayed once); as shown in Figure 9(b), CELL_001cut starts with primitive number 26 in CELL_001 and includes 2 basic primitives (arrayed three times); as shown in Figure 9(c), CELL_001drop_out starts with primitive number 28 in CELL_001 and includes 4 basic primitives (arrayed once); as shown in Figure 9(d), CELL_001linker3 starts with primitive number 32 in CELL_001 and includes 2 basic primitives (arrayed once).
[0063] CELL_001Upper has 3 sub-units and a total of 26 basic primitives. As shown in Figure 9(e), the starting basic primitive number of CELL_001base in CELL_001Upper is 0, containing 10 basic primitives (arrayed twice); as shown in Figure 9(f), the starting basic primitive number of CELL_001linker1 in CELL_001Upper is 20, containing 3 basic primitives (arrayed once); as shown in Figure 9(g), the starting basic primitive number of CELL_001linker2 in CELL_001Upper is 23, containing 3 basic primitives (arrayed once).
[0064] There are 10 sub-cells in CELL_001base. Since each sub-cell is a basic primitive, there are a total of 10 basic primitives under CELL_001base. The starting basic primitive number of each primitive cell is its cell number.
[0065] CELL_001linker1 contains 3 sub-units. Since each sub-unit is a basic primitive, there are a total of 3 basic primitives under CELL_001linker1. The starting basic primitive number of each primitive is its unit number.
[0066] CELL_001linker2 contains 3 sub-units. Since each sub-unit is a basic primitive, there are a total of 3 basic primitives under CELL_001linker2. The starting basic primitive number of each primitive is its unit number.
[0067] There are two sub-units in CELL_001cut. Since each sub-unit is a basic primitive, there are a total of two basic primitives under CELL_001cut. The starting basic primitive number of each primitive is its unit number.
[0068] There are 4 sub-cells in CELL_001drop_out. Since each sub-cell is a basic primitive, there are a total of 4 basic primitives under CELL_001drop_out. The starting basic primitive number of each primitive is its cell number.
[0069] CELL_001liker3 contains two sub-units. Since each sub-unit is a basic primitive, there are a total of two basic primitives under CELL_001liker3. The starting basic primitive number of each primitive is its unit number.
[0070] The final node information is shown in Table 1 below (number of Basic Cells under the current Cell node):
[0071] Table 1. Node Information
[0072]
[0073] Step 2: Return to the root primitive node to be checked (i.e., CELL_001), and iterate again to access the statistical information of each sub-primitive node. CELL_001 has 4 first-level sub-primitive nodes, involving a total of 7 layers. For example, CELL_001Upper is a 1-row × 1-column array type, with 3 first-level sub-cells, involving 3 layers: As shown in Figure 9(h), the M1 layer structure is taken as its largest outer frame as the layer bounding box of layer M1, as shown in Figure 9(i); similarly, the layer bounding boxes of V1 and M2 are obtained. The layer bounding box information of the above 3 layers is saved in CELL_001base, as shown in Table 2 below.
[0074] Table 2. Layer Boundary Information
[0075]
[0076] CELL001linker1 is a 1-row × 1-column array type. It has 3 first-level sub-primitives (all basic primitives) involving 2 layers: V1 and M2. The layer bounding box information of these 2 layers is collected and saved in CELL_001linker1, as shown in Table 3 below.
[0077] Table 3. Layer Boundary Information
[0078]
[0079] CELL001linker2 is a 1-row × 1-column array type. It has 3 first-level sub-primitives (all basic primitives) involving 2 layers: V1 and M2. The layer bounding box information of these 2 layers is collected and saved in CELL_001linker2, as shown in Table 4 below.
[0080] Table 4. Layer Boundary Information
[0081]
[0082]
[0083] The layer bounding box information of all three sub-primitives in CELL_001Upper is integrated. The array type will calculate the relative coordinates of its layer bounding box under the current primitive based on its array row and column number, rotation angle, and offset coordinates, and save it to CELL_001Upper. For details, please refer to Table 5 below.
[0084] Table 5. Layer Boundary Information
[0085]
[0086] CELL_001cut is a 1x3 array type with two first-level sub-primitives (all basic primitives), involving two layers: MC1 and MC2. The layer bounding box information of these two layers is collected and saved in CELL_001cut, as detailed in Table 6 below.
[0087] Table 6. Layer Boundary Information
[0088]
[0089] CELL_001drop_out is a 1-row × 1-column array type. It has 4 first-level sub-primitives (all of which are basic primitives), involving 3 layers: M2, V2, and M3. The layer bounding box information of these 3 layers is collected and saved in CELL_001drop_out. Please refer to Table 7 below for details.
[0090] Table 7. Layer Boundary Information
[0091]
[0092] CELL_001linker3 is a 1-row × 1-column array type. It has two first-level sub-primitives (all basic primitives), involving two layers: V1 and M2. The layer bounding box information of these two layers is collected and saved in CELL_001linker3, as shown in Table 8 below.
[0093] Table 8. Layer Boundary Information
[0094]
[0095] Integrate the layer bounding box information of all 4 sub-primitives of CELL_001. The array type will calculate the relative coordinates of its layer bounding box under the current cell based on its array row and column number, rotation angle, and offset coordinates. Please refer to Table 9 below for details.
[0096] Table 9. Layer Boundary Information
[0097]
[0098]
[0099] like Figure 10 As shown, after numbering all basic graphic elements, each basic graphic element in the example is numbered from 1 to 37. Each graphic element is then used to generate corresponding nodes, and the node hierarchy is set according to the graphic element type information to form a tree structure, thus completing the generation of a file with a data structure based on layer information.
[0100] Example 4
[0101] Based on the methods for generating layer-based data structures from layout files exemplified in Embodiments 2 and 3 above, this embodiment provides a method for querying the connection relationships between basic graphic elements in a layout file, such as... Figure 11 As shown, the steps include:
[0102] Step 1: Obtain the layout file shown in Figure 8(a) as the initial layout file. The user selects the basic primitive of the lower left M3 layer (blank graphic) as the target basic primitive through the interface.
[0103] Step 2: Using the methods for generating layer-based data structures from layout files as illustrated in Examples 2 and 3, generate a file with a layer-based data structure as shown in Figure 8(b) from the initial layout file, which serves as the first data structure file. Perform node traversal queries on the first data structure file to obtain the inspection result set: {31,29,30,28,26,27,15,18,19,17,16,25,23,24,6,7,9,8,5,22,20,21,3,1,2,0,4}, denoted as the first set. The example inspection result set includes all basic primitives that do not consider connections to the target basic primitives after layer cutting.
[0104] Step 3: Create a new GDSII layout file with a depth of 1 based on the first set, and designate it as the first layout file; obtain the cut layer of the initial layout file and create a new second layout file, and use the second layout file to perform a truncation operation (simple geometric operation) on the first layout file, that is, use the cut layer in the second layout file to delete the overlapping areas of the corresponding layers in the first layout file, and designate the first layout file after the truncation operation as the third layout file. In this example, the first layout file has a depth of 1, but in other implementations, layout files with a layer depth of not 1 can also be created, which is not limited here.
[0105] Step 4: Using the data structure generation method based on layer information as illustrated in Examples 2 and 3, generate a data structure file based on layer information according to the third version file, denoted as the second data structure file; Table 10 below shows the correspondence between the renumbered basic graphic elements in the second data structure (i.e., the third version file) and the basic graphic elements in the inspection result set obtained in Step 2 (i.e., the first version file).
[0106] Table 10. Correspondence between the numbers of basic graphic elements before and after the truncation operation
[0107]
[0108]
[0109] In the third version of the drawing file, the 24th basic graphic element is the lower half of the 2nd basic graphic element in the first version of the drawing file after being truncated by the cut layer, and the 25th basic graphic element in the third version of the drawing file is the upper half of the 2nd basic graphic element in the first version of the drawing file after being truncated by the cut layer.
[0110] For the second data structure file, perform node traversal queries to obtain the final check result set. The example check result set is: {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24}, where the basic primitive number 0 is the target basic primitive.
[0111] In this embodiment, step five is also performed: all basic graphic elements in the final inspection result set obtained in step four are obtained and highlighted in the initial layout file. In some implementations, step five is not performed; this is not a limitation. In this embodiment, basic graphic elements are identified by their numbers.
[0112] Example 5
[0113] This embodiment enables professionals in this field to gain a more comprehensive understanding of the "node traversal query" in Embodiment 4, but does not limit the invention in any way.
[0114] Example of a node traversal query, such as Figure 12 As shown, it includes:
[0115] The first step is to add the target basic primitive to the inspection result set; mark the target basic primitive as the current basic primitive and mark the traversal status of the target basic primitive as traversed; and mark the layer to which the target basic primitive belongs as the current layer.
[0116] The second step is to obtain the layers that are directly connected to the current layer and record them together with the current layer as the layers to be searched.
[0117] The third step involves traversing the nodes of the data structure, including: checking if a node contains a layer to be checked and if its layer bounding box overlaps with the current basic primitive; if a node does not contain a layer to be checked, or if a layer to be checked exists but its layer bounding box does not overlap with the current basic primitive, then continue traversing the remaining nodes; if a node contains a layer to be checked and its layer bounding box overlaps with the current basic primitive, then check if a basic primitive in the layer to be checked overlaps with the current basic primitive. If so, then add the basic primitive to the check result set and mark the traversal status of the basic primitive as untraversed. This embodiment demonstrates a depth-first traversal of nodes in a data structure based on layer information. In this embodiment, when checking if a node contains a layer to be checked and if the layer bounding box of the layer to be checked overlaps with the current basic primitive: if a node does not contain a layer to be checked or its layer bounding box does not overlap with the current basic primitive, then in the node traversal for the current basic primitive, the node and its descendant nodes will not be traversed again. In some implementations, depth-first traversal is not used, or there is no further determination of whether a node contains a layer to be checked or whether its layer bounding box overlaps with the current basic primitive when checking whether the node contains a layer to be checked or whether its layer bounding box does not overlap with the current basic primitive, and corresponding processing is not performed. Specific practices are not limited here. In this embodiment, in the third step, if a node contains a layer to be checked and its layer bounding box overlaps with the current basic primitive, then it checks whether there are basic primitives in the layer to be checked that overlap with the current basic primitive. If so, the basic primitive is added to the check result set, and its traversal status and check status are marked as untraversed and checked, respectively. In the subsequent node traversal query process, basic primitives marked as checked are directly skipped without needing to be checked again. In some implementations, nodes also include node bounding box information; therefore, in these implementations, in the third step, when traversing nodes in the data structure based on layer information, first check whether the node bounding box overlaps with the current basic primitive; if there is an overlap, then check whether there is a layer to be queried in the node and whether its layer bounding box overlaps with the current basic primitive; if there is no overlap, then in the node traversal for the current basic primitive, the node and its descendant nodes will no longer be traversed.
[0118] The fourth step involves completing the node traversal in the file based on the layer information data structure. For the current basic graphic element, it is checked whether there is a basic graphic element in the current inspection result set that has not been traversed. If it exists, the untraversed basic graphic element is taken as the new current basic graphic element, and its traversal status is changed to traversed. The layer to which the new current basic graphic element belongs is recorded as the new current layer, and the process continues to the second step. If it does not exist, the node traversal query is completed to obtain the inspection result set.
[0119] In some embodiments, a function to select a connection layer is also provided to obtain all basic primitives belonging to the connection layer that are connected to the target basic primitive. The connection layer is selected before performing node traversal queries; in the second step, layers that are directly connected to the current layer and belong to the selected connection layer are obtained, and these layers, along with the current layer, are recorded as layers to be queried.
[0120] In some embodiments, a function to select a cut layer is also provided to obtain all basic primitives that have a connection relationship with the target basic primitive after considering only the cut layer. In the example query method, a cut layer is selected before step three; in step three, the cut layer of the initial layout file refers to the selected cut layer. The function to select a cut layer is implemented in the following way: in step three, only the cut layer selected in the initial layout file is obtained and a second layout file is created, and the first layout file is truncated using the second layout file (simple geometric operation), that is, the overlapping area of the corresponding layer in the first layout file is deleted using the cut layer in the second layout file, and the first layout file after the truncation operation is used as the third layout file.
[0121] The commonly used English terms or letters used in this invention for clarity of description are merely illustrative and not limiting or specific, and should not be construed as limiting the scope of protection of this invention based on their possible Chinese translations or specific letters. It should also be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations.
Claims
1. A data processing method based on layer information, characterized in that: Multiple nodes are set up to store layer information; the nodes are hierarchical; the multiple nodes form a tree structure. The node contains the following information: node name, information about several layers and their layer bounding boxes, number of basic primitives, and number of the starting basic primitive; Wherein, the node name is used to identify the node; the layer bounding box refers to the smallest rectangle that surrounds all the basic graphic elements of the layer in the node; the number of basic graphic elements refers to the number of basic graphic elements in the node; the basic graphic elements are identified by basic graphic element numbers, and the basic graphic element numbers in the node are consecutive; the smallest basic graphic element number in the node is used as the number of the starting basic graphic element.
2. The data processing method based on layer information according to claim 1, characterized in that: The node also contains information about the node bounding box; the node bounding box is the smallest rectangle that surrounds all the basic primitives in the node.
3. The data processing method based on layer information according to claim 2, characterized in that: The information of the layer bounding box includes the size and coordinate information of the layer bounding box; the information of the node bounding box includes the size and coordinate information of the node bounding box.
4. The data processing method based on layer information according to any one of claims 1-3, characterized in that: The basic primitives refer to polygonal structures in the layer.
5. A method for generating data structures, characterized in that: include: Step S1. Obtain the layout file and iterate through it to get the layer information; The layer information includes primitive information and basic primitive information; Step S2. Number the basic graphic elements, including consecutively numbering the basic graphic elements that make up the same graphic element; Step S3. Generate a corresponding node for each graphic element, wherein the node is used to store the layer information in the corresponding graphic element; Step S4. Based on the primitive information, set the hierarchy of the node, and take the basic primitives referenced or arrayed by the primitives and the nodes generated corresponding to the primitives as child nodes of the nodes generated corresponding to the primitives; Complete the hierarchical settings of all nodes generated in step S3, form a tree structure based on the hierarchy, and generate a file with a data structure based on the layer information; Wherein, the graphic element refers to a graphic composed of several basic graphic elements; the graphic element information includes the creation method of the graphic element, the creation method includes: referencing basic graphic elements or graphic elements, and / or arraying basic graphic elements or graphic elements; The basic graphic element refers to a polygonal structure graphic in a layer; the basic graphic element information includes the layer information, position information, and size information of the basic graphic element; the node includes information such as: node name, information about several layers and their layer bounding boxes, number of basic graphic elements, and number of the starting basic graphic element; wherein, the node name is used to identify the node; the layer bounding box refers to the smallest rectangle that surrounds all the basic graphic elements of the layer in the node; the number of basic graphic elements refers to the number of basic graphic elements in the node; the number of the starting basic graphic element refers to the number of the smallest basic graphic element in the node.
6. The method for generating a data structure according to claim 5, characterized in that: The node also contains information about the node bounding box; the node bounding box is the smallest rectangle that surrounds all the basic primitives in the node.
7. The method for generating a data structure according to claim 6, characterized in that: The information of the layer bounding box includes the size and coordinate information of the layer bounding box; the information of the node bounding box includes the size and coordinate information of the node bounding box.
8. The query method, characterized in that: Used to check the connection relationships between basic graphic elements in a layout file; steps include: Step 1. Obtain the initial layout file and determine the target basic primitives; Step 2. Using the generation method described in any one of claims 5 to 7, generate a data structure file based on layer information from the initial layout file, denoted as the first data structure file; based on the first data structure file, perform node traversal query to obtain a set of inspection results, denoted as the first set; the first set contains all basic primitives in the initial layout file that have a connection relationship with the target basic primitive, without considering the cut-off layers; Step 3. Create a new first layout file based on the first set; obtain the cut layer of the initial layout file and create a new second layout file; use the second layout file to perform a truncation operation on the first layout file, that is, use the cut layer in the second layout file to delete the overlapping area of the corresponding layer in the first layout file, and record the updated first layout file as the third layout file; Step 4. Using the generation method described in any one of claims 5 to 7, generate a data structure file based on layer information according to the third version of the drawing file, denoted as the second data structure file; perform node traversal query on the second data structure file to obtain a set of inspection results, denoted as the second set; the second set contains all basic primitives that have a connection relationship with the target basic primitive.
9. The query method according to claim 8, characterized in that: In step three, the layer depth of the first map file is set to 1.
10. The query method according to claim 8, characterized in that: Before step three, select the cut-off layer; in step three, the cut-off layer of the initial layout file refers to the selected cut-off layer.
11. The query method according to claim 8, characterized in that: After step four, step five is performed: obtain all the basic graphic elements obtained in step four, and add an identifier layer to the initial layout file to highlight them.
12. The query method according to claim 8, characterized in that: In step two and / or step four, during the process of performing node traversal query to obtain the check result set, the basic graphic elements are identified by their numbers.
13. The query method according to any one of claims 8-12, characterized in that: In step two and / or step four, the node traversal query includes: The first step is to add the target basic graphic element to the inspection result set; to mark the target basic graphic element as the current basic graphic element and to mark the traversal status of the target basic graphic element as traversed; and to mark the layer to which the target basic graphic element belongs as the current layer. The second step is to obtain the layers that have a direct connection with the current layer and record them together with the current layer as the layers to be searched. The third step is to traverse the nodes in the file of the data structure based on layer information, including: checking whether there is a layer to be checked in the node and whether its layer bounding box overlaps with the current basic graphic element; if not, continue to traverse the remaining nodes; if yes, check whether there is a basic graphic element in the layer to be checked that overlaps with the current basic graphic element; if yes, put the basic graphic element into the check result set and mark the traversal status of the basic graphic element as not traversed. Fourth step: For the current basic primitive, after completing the traversal of the nodes in the file based on the layer information data structure, confirm whether there are any basic primitives in the current check result set whose traversal status is not traversed: If it exists, take the untraversed basic primitive as the new current basic primitive, change the traversal status of the basic primitive to traversed, and record the layer to which the new current basic primitive belongs as the new current layer, proceed to the second step of processing; If it does not exist, the node traversal query ends, and the check result set is obtained.
14. The query method according to claim 13, characterized in that: In the third step, the nodes are traversed using a depth-first approach.
15. The query method according to claim 13, characterized in that: In the third step, if the node contains the layer to be checked and its layer bounding box overlaps with the current basic primitive, then if not, the node and its descendant nodes will no longer be traversed during the node traversal for the current basic primitive.
16. The query method according to claim 13, characterized in that: In the third step, the basic primitives that are placed into the inspection result set are marked as inspected, and in the subsequent traversal query process, the basic primitives marked as inspected are directly skipped without needing to be inspected again.
17. The query method according to claim 13, characterized in that: The node contains node bounding box information; the node bounding box refers to the smallest rectangle that surrounds all basic primitives in the node; in the third step, when traversing the nodes in the file of the data structure based on layer information, first check whether the node bounding box of the node overlaps with the current basic primitive; if it does, then check whether the node has the layer to be checked and whether its layer bounding box overlaps with the current basic primitive. If it does not exist, then during the node traversal for the current basic primitive, the node and its descendant nodes will no longer be traversed.
18. The query method according to claim 13, characterized in that: Before step two, select the connecting layer; in the second step, the layer that has a direct connection relationship with the current layer refers to the layer that has a direct connection relationship with the current layer and belongs to the selected connecting layer.
Citation Information
Patent Citations
Visualization analysis method for image layer relation in layout design rule file
CN105426556A