Label-based gds layout network extraction method and computer device
Patent Information
- Application Number
- CN202611012625.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-08
- Publication Date
- 2026-09-18
- Estimated Expiration
- 2046-07-08
AI Technical Summary
[0004]本发明的第一目的是提供一种基于标签的GDS版图网络提取方法,解决标准单元库缺失时版图网络无法完整提取的技术难题,提高版图分析和设计验证的效率
[0004]The primary objective of this invention is to provide a tag-based GDS layout network extraction method, which solves the technical problem that the layout network cannot be completely extracted when the standard cell library is missing, thereby improving the efficiency of layout analysis and design verification.
Smart Images

Figure CN122549351B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of integrated circuit design technology, specifically to a tag-based GDS layout network extraction method and computer device. Background Technology
[0002] In the integrated circuit design flow, after the physical layout design is completed, it is usually delivered to the manufacturing plant in GDS (Graphic Design System) format for mask fabrication. During layout analysis, design verification, and fault analysis, designers often need to extract the complete physical structure of a specific signal network from the complete GDS file, including all metal layer patterns and via layer patterns involved in that network. Currently, mainstream commercial EDA (Electronic Design Automation) tools, such as Cadence and Synopsys, provide layout network extraction functions, but their correct operation depends on a complete Process Design Kit (PDK) and standard cell library. Meanwhile, there are also some GDS parsing tools based on open-source libraries (such as gdstk) in academia and industry, which can achieve basic file reading and modification.
[0003] However, existing technologies still have significant shortcomings in practical applications. Commercial EDA tools rely on complete process design suites and standard cell libraries. In practice, designers often receive GDS files that do not contain complete standard cell definitions, or the standard cell library is incompatible with the GDS file version, rendering the netlist extraction function unusable. More critically, the patterns of the same signal net are stored in a dispersed manner in the GDS file, potentially distributed across different process layers (such as metal layers and via layers) and different cells. Via patterns are typically defined within independent sub-cells and instantiated multiple times in the top-level cell via Structure References (SREFs). Existing methods struggle to correctly handle this dispersed structure across cells and layers. Relying on designers to manually trace the nets using layout viewing software (such as KLayout) and check the pattern connections layer by layer is not only inefficient and time-consuming but also prone to omissions or errors when the net size is large and the number of patterns involved is numerous, making it almost impractical. In addition, existing GDS parsing tools based on open-source libraries such as gdstk mainly provide basic file reading and writing functions, lacking cross-layer connectivity recognition capabilities, especially lacking the ability to automatically identify the connectivity relationship between metal layers and via layers, and thus failing to meet the actual needs of efficiently and accurately extracting the complete physical structure of signal networks. Summary of the Invention
[0004] The primary objective of this invention is to provide a tag-based GDS layout network extraction method, which solves the technical problem that the layout network cannot be completely extracted when the standard cell library is missing, thereby improving the efficiency of layout analysis and design verification.
[0005] A second objective of this invention is to provide a computer device for implementing the above-described tag-based GDS map network extraction method.
[0006] To achieve the aforementioned first objective, this invention provides a tag-based GDS layout network extraction method, comprising the following steps: recursively traversing and collecting graphics in the GDS file to be processed, starting from an initial cell; wherein, for each via sub-cell reference containing a preset via keyword, the corresponding graphics are collected by independent expansion; for ordinary sub-cell references, the corresponding graphics are collected by deduplication expansion; determining the matching tag in the GDS file to be processed corresponding to the target tag name, and determining the collected graphics at the coordinate position corresponding to the matching tag as the traversal starting point graphic; comparing the traversal starting point graphic with candidate graphics according to a preset connectivity judgment rule to determine a set of connected graphics; wherein, the connectivity judgment rule includes: when the traversal starting point graphic and candidate graphics are in the same metal layer, determining whether they are connected by polygon Boolean operation; when the traversal starting point graphic and candidate graphics are located in the metal layer and via layer respectively and their layer numbers are adjacent, determining whether they are connected by bounding box overlap detection; and exporting the target GDS file based on the set of connected graphics.
[0007] As can be seen from the above scheme, this invention does not rely on a complete standard cell library. It identifies via sub-cell references through preset via keywords and expands each via sub-cell reference independently, ensuring that the graphics corresponding to the via sub-cell reference at each location are correctly collected. This overcomes the problem of multiple instances being lost due to the same sub-cell being expanded only once in traditional recursive traversal. Even with a large number of missing standard cells, it can still correctly extract the graphics corresponding to via sub-cell references. This invention supports cross-layer connectivity identification. Through bounding box overlap detection, it automatically determines the connection relationship between metal layers and via layers, achieving complete network extraction of multi-layer structures such as M1-V1-M2. This invention eliminates the need for manual tracing, automatically extracting specific signal networks, resulting in high processing efficiency and improved efficiency in layout analysis and design verification.
[0008] A further approach involves recursively collecting graphics from the GDS file to be processed, starting from the initial cell. This includes recursive unrolling operations, which include: collecting the graphics of the current cell and obtaining the absolute coordinates of the vertices of the graphics in the current cell based on the absolute offset corresponding to the current cell; traversing the sub-cell references of the current cell, obtaining the sub-cell name and placement coordinates of the sub-cell references, and calculating the absolute offset corresponding to the sub-cell references; determining whether the sub-cell reference is a through-hole sub-cell reference or a regular sub-cell reference based on the sub-cell name; for through-hole sub-cell references, the through-hole sub-cell reference is used as the new current cell for recursive unrolling operations; for regular sub-cell references with the same sub-cell name, they are used as the new current cell for recursive unrolling operations only once throughout the entire process.
[0009] Therefore, it can be seen that the method of calculating absolute coordinates based on absolute offset ensures the accuracy of connectivity judgment.
[0010] A further approach is to recursively traverse and collect the graphics in the GDS file to be processed, starting from the initial cell. This includes: creating an empty visited set; during the recursive unrolling operation, for ordinary sub-cell references, determining whether the visited set includes the sub-cell name of the ordinary sub-cell reference; if so, skipping the recursive unrolling operation for the ordinary sub-cell reference; otherwise, performing the recursive unrolling operation for the ordinary sub-cell reference and passing the sub-cell name of the ordinary sub-cell reference into the visited set.
[0011] Therefore, it can be seen that setting the accessed set enables the determination of whether a reference to a normal subunit is being expanded for the first time.
[0012] A further approach involves identifying matching tags in the GDS file to be processed that correspond to the target tag name, and determining the collected graphs containing the coordinates of the matching tags as the starting point graphs for traversal. This includes: determining the tag text and coordinates of candidate tags in the GDS file to be processed; identifying the matching tags among the candidate tags whose tag text corresponds to the target tag name; determining the target bounding box within the candidate bounding boxes corresponding to the collected graphs, with the coordinates of the matching tags located within the target bounding box; and determining the collected graphs corresponding to the target bounding box as the starting point graphs for traversal.
[0013] Therefore, it can be seen that the starting point of the traversal is determined by matching the target label name with the corresponding label.
[0014] A further approach is to determine connectivity by using bounding box overlap detection. If the horizontal overlap between the bounding box of the starting point graphic and the bounding box of the candidate graphic is within a first preset tolerance range, and the vertical overlap is within a second preset tolerance range, then the candidate graphic is considered a connected graphic.
[0015] Therefore, setting a tolerance based on the steps of concretizing cross-layer connectivity judgment into bounding box overlap detection is consistent with the actual physical connectivity situation.
[0016] This demonstrates that the output GDS file has a clear structure and conforms to the viewing habits of map layout.
[0017] A further solution also includes obtaining a configuration file; and setting at least one of the following information based on the configuration file: mapping from layer number to layer name, mapping from layer number to layer type, layer weight, preset via keyword, first preset tolerance range, and second preset tolerance range.
[0018] This demonstrates that by setting up configuration-based design, the method can be flexibly configured for different process nodes, significantly improving its versatility and practicality.
[0019] A further approach is to store the graphics through a defined data structure, which includes the following information: the original graphics object, layer number, data type, graphics type, and BFS traversal access marker.
[0020] A further approach is to use the BFS algorithm to compare the starting point graph with the candidate graphs according to connectivity rules to determine the set of connected graphs.
[0021] To achieve the second objective described above, the present invention provides a computer device including a processor and a memory, wherein: the memory stores a computer program, and when the computer program is executed by the processor, it implements the above-described tag-based GDS map network extraction method. Attached Figure Description
[0022] Figure 1 This is a flowchart of an embodiment of the tag-based GDS map network extraction method of the present invention.
[0023] Figure 2 This is a schematic diagram illustrating the independent instantiation of via sub-units in an embodiment of the tag-based GDS layout network extraction method of the present invention.
[0024] Figure 3 yes Figure 1 The detailed flowchart of step S20.
[0025] Figure 4 yes Figure 1 The detailed flowchart of step S30.
[0026] Figure 5 yes Figure 1 The detailed flowchart of step S40.
[0027] Figure 6 yes Figure 1 The detailed flowchart of step S50.
[0028] The present invention will be further described below with reference to the accompanying drawings and embodiments. Detailed Implementation
[0029] The label-based GDS layout network extraction method of the present invention first collects the graphs in the GDS file to be processed by recursively traversing, wherein the via sub-unit references are automatically identified and each instance is processed independently. Then, the starting graph of the traversal is determined by combining the matching label and the target label name. Finally, based on the breadth-first search (BFS) algorithm, the complete network connected to the starting graph of the traversal is automatically extracted and exported as an independent GDS file.
[0030] Example of a label-based GDS layout network extraction method: This embodiment uses a computer program to process the acquired GDS file to be processed and the specified target tag name, and outputs the target GDS file.
[0031] The method in this embodiment can be adapted to GDS files of different process nodes (such as 28nm, 45nm, 65nm, etc.) by selecting different configuration files for parameterized configuration. According to actual needs, the configuration file shall include at least one of the following information: mapping from layer number to process layer (e.g., 3→M1), mapping from layer number to layer type (e.g., 3→M, 4→V), layer weight (for sorting), preset via keyword (default "VIA"), first preset tolerance range (default 1e-6), and second preset tolerance range (default 1e-6).
[0032] This embodiment defines the following data structure to store the graphics collected from the GDS file to be processed. The data structure includes the following information: original graphics object, layer number, data type, graphics type, and BFS traversal access flag. See Table 1 for details.
[0033] Table 1. Data structures used for graphics storage
[0034] See Figure 1 Specifically, it includes the following steps: S10: Obtain the GDS file to be processed and the target label name.
[0035] S20: Recursively traverse and collect the graphics in the GDS file to be processed, starting from the initial cell.
[0036] S30: Determine the matching label in the GDS file to be processed that corresponds to the target label name, and determine the collected graphic where the coordinate position of the matching label is located as the starting point graphic for traversal.
[0037] S40: Compare the starting point graph with the candidate graphs according to the preset connectivity judgment rules to determine the set of connected graphs.
[0038] S50: Export the target GDS file based on the connected graph set.
[0039] In step S10 above, the target label name refers to the identifier of the specific signal network that the user wants to extract, such as the net name marked on the layout, like "N201" or "CLK". The target label name is specified by the user according to the analysis requirements.
[0040] In step S20 above, the initial unit in this embodiment is the top cell. Starting from the top cell, all sub-cell references (i.e., SREF records) are traversed in a depth-first manner. For each sub-cell reference, its name is used to determine whether it contains a preset via keyword. If it does, it is treated as a via sub-cell reference; otherwise, it is treated as a normal sub-cell reference. During the recursive traversal, the coordinate offset is accumulated and recorded. The local coordinates are mapped to the global coordinates through the recursive accumulation of coordinate offsets, thereby determining the absolute coordinates of the graphic corresponding to each sub-cell reference in the absolute coordinate system. The absolute coordinate system takes the zero point of the top cell as its origin. All graphics need to be transformed into the absolute coordinate system to ensure the correctness of subsequent connectivity checks and export of the target GDS file.
[0041] For ordinary sub-unit references, a deduplication expansion strategy is adopted. That is, ordinary sub-unit references with the same name are only expanded once for their internal graph definition. However, during subsequent connectivity judgment, the graph will be translated to the corresponding position according to the placement coordinates of each reference instance to ensure that the connectivity of all instances is correctly considered.
[0042] For via sub-cell references, an independent instantiation strategy is adopted: the via sub-cell reference is expanded and added to the candidate graph list, and this expansion does not affect subsequent references to other via sub-cells with the same sub-reference name. Specifically, each time a via sub-cell reference is expanded, a new empty visited set is created and passed to the recursive call, so that each expanded via sub-cell reference is expanded independently. For example, the case of independent instantiation of each via sub-cell is as follows: Figure 2 As shown.
[0043] Specifically, the recursive unrolling operation starts from the top-level unit. The recursive unrolling operation includes: collecting the graph of the current unit; obtaining the absolute coordinates of the vertices of the graph of the current unit based on the absolute offset corresponding to the current unit; traversing the sub-unit references of the current unit, obtaining the sub-unit name and placement coordinates of the sub-unit references, and calculating the absolute offset corresponding to the sub-unit references; determining whether the sub-unit reference is a through-hole sub-unit reference or a regular sub-unit reference based on the sub-unit name; for through-hole sub-unit references, the through-hole sub-unit reference is used as the new current unit for recursive unrolling; for regular sub-unit references with the same sub-unit name, checking whether the visited set includes the sub-unit name of the regular sub-unit reference; if yes, skipping the recursive unrolling operation for the regular sub-unit reference; if not, performing the recursive unrolling operation for the regular sub-unit reference and passing the sub-unit name of the regular sub-unit reference into the visited set. That is, for a regular sub-unit, it is used as the new current unit for recursive unrolling only once throughout the entire process. See also... Figure 3 Step S20 above includes the following steps: S201: Create an empty visited collection.
[0044] S202: Collect the graphics of the current cell, and obtain the absolute coordinates of the vertices of the graphics of the current cell based on the absolute offset corresponding to the current cell.
[0045] S203: Determine if there are any unprocessed sub-cell references in the current cell.
[0046] If it is determined that there are no unprocessed sub-unit references in the current unit, then proceed to step S210; if it is determined that there are still unprocessed sub-unit references in the current unit, then continue to step S204.
[0047] S204: Determine the subcell name and placement coordinates referenced by the unprocessed subcell.
[0048] S205: Calculate the absolute offset corresponding to the unprocessed sub-cell reference based on the placement coordinates and the absolute offset corresponding to the current cell.
[0049] S206: Determine whether the sub-unit name includes the preset through-hole keyword.
[0050] If it is determined that the sub-unit name referenced by the unprocessed sub-unit includes a preset via keyword, then the unprocessed sub-unit is determined to be a via sub-unit reference, and the process proceeds to step S209; if it is determined that the sub-unit name referenced by the unprocessed sub-unit does not include the preset via keyword, then the unprocessed sub-unit is determined to be a normal sub-unit reference, and the process continues to step 207. In this embodiment, the preset via keyword is "VIA".
[0051] S207: Determine if the visited set contains a sub-unit with the same name.
[0052] If it is determined that the visited set includes the name of the unprocessed sub-unit, proceed to step S211; if it is determined that the visited set does not include the name of the unprocessed sub-unit, continue to step S208.
[0053] S208: A regular subcell reference is used as the new current cell, and the name of the subcell referenced by the regular subcell is recorded in the visited set.
[0054] S209: The through-hole element is referenced as the new current element.
[0055] S210: Determine whether the current cell is the top-level cell.
[0056] If the current cell is determined to be the top-level cell, it means that the recursive traversal has started from the top-level cell and returned to the top-level cell. All the graphics referenced by the sub-cells and the graphics of the top-level cell have been collected. At this time, the process jumps to step S212. If the current cell is determined not to be the top-level cell, it means that all the graphics referenced by the sub-cells have not been completely collected. Step S211 is executed. After completing step S211, the process returns to step S203.
[0057] S211: Return to the previous unit.
[0058] S212: Returns the list of candidate graphics.
[0059] In step S202 above, for the current unit, all polygons and paths within it are collected. During the first execution of step S202, since the current unit is the top-level unit, there is no absolute offset corresponding to the current unit; in other words, the absolute offset of the current unit is 0. Therefore, the absolute coordinates of the vertices of the current unit are simply the coordinates of each vertex of the current unit's graph. During the second and subsequent executions of step S202, since the current unit has a corresponding absolute offset, the absolute offset is added to the coordinates of each vertex of the current unit's graph to obtain the absolute coordinates of the current unit's vertices. For example, during the second execution of step S202, the absolute offset of the current unit is the absolute offset of the ordinary sub-unit in step S208, or the absolute offset of the through-hole sub-unit in step S209.
[0060] In step S205 above, the absolute offset of the unprocessed sub-unit is obtained by adding the placement coordinates to the absolute offset of the current unit. For example, if the placement coordinates are (x1, y1) and the absolute offset is (△x, △y), then the absolute offset of the unprocessed sub-unit is (x1+△x, y1+△y).
[0061] In step S211 above, for example, after the through-hole sub-unit reference of the top-level unit is used as the new current unit, if it is determined that there are no unprocessed sub-unit references, the process returns to the top-level unit, thus returning to step S203, and continues to determine whether there are still unprocessed sub-unit references in the top-level unit.
[0062] In step S212 above, the returned candidate graphic list records all the graphics of the collected GDS files to be processed.
[0063] Therefore, by using the recursive cumulative offset to achieve a step-by-step mapping from local coordinates to global coordinates, all graphics in the GDS file to be processed can be collected, and the position of each graphic in the absolute coordinate system can be determined, so that subsequent steps can correctly perform connectivity judgment and export the target GDS file.
[0064] Optionally, for through-hole sub-cell references, each time a through-hole sub-cell reference is used as a new current cell for recursive expansion, a new set of access cells corresponding to the through-hole sub-cell reference is created. This new set of access cells stores the sub-cell name referenced by the through-hole sub-cell. The new set of access cells is passed to the recursive function corresponding to the recursive expansion operation for recursive calling, so that each reference to the through-hole sub-cell is expanded independently.
[0065] In step S30 above, all candidate labels (Labels, i.e., text records) in the GDS file are traversed to find matching labels that match the target label name. The coordinates corresponding to the matching labels are obtained, and then the collected graphics at those coordinates are determined. These collected graphics serve as the starting point for the traversal. Additionally, the process layer of each graphic in the candidate graphic list can be determined based on a preset layer number mapping table. For details, see [link to documentation]. Figure 4 For each unit of the GDS file, the following steps are performed: S301: Determine the tag information of the candidate tags for the GDS file to be processed.
[0066] S302: Determine the matching tags among the candidate tags whose tag text corresponds to the target tag name.
[0067] S303: Determine the target bounding box from the candidate bounding boxes corresponding to the collected graphics based on the coordinate position.
[0068] S304: Determine the collected graphics corresponding to the target bounding box as the starting point graphics for traversal.
[0069] S305: Determine the process layer corresponding to the collected graphics based on the layer number and layer number mapping table of the candidate labels.
[0070] In step S301 above, the label information of the candidate labels includes the label text, coordinate position, and layer number. For the current cell, the label information of the candidate labels in the current cell can be obtained, and each graphic in the current cell has a corresponding candidate label.
[0071] In step S302 above, the matching tag corresponding to the tag text and the target tag name in the current unit can be determined.
[0072] In step S303 above, the candidate bounding boxes corresponding to the collected graphics in the current cell can be determined. If the coordinates of a matching label in the current cell are located within the candidate bounding box corresponding to the collected graphics, then the candidate bounding box corresponding to the collected graphics is determined as the target bounding box. There can be multiple matching labels in the current cell, thus there can be multiple target bounding boxes.
[0073] In step S304 above, the collected graphics corresponding to the target bounding box of the current cell are used as the traversal starting point graphics. One target bounding box corresponds to one traversal starting point graphics.
[0074] In step S305 above, a layer number mapping table is pre-set to realize the mapping from layer number to process layer, for example, 3→M1. Based on the layer number mapping table, the process layer corresponding to each layer number can be determined according to the layer number of the tag information corresponding to each collected graphic (e.g., layer number 3 corresponds to M1), thereby determining the process layer corresponding to each collected graphic.
[0075] Therefore, for each unit of the GDS file to be processed, by processing through the above steps S301 to S305, all traversal starting point graphics corresponding to the GDS file to be processed are obtained.
[0076] In step S40 above, starting from each traversal starting point graphic, a breadth-first search algorithm is used to traverse all collected graphics to determine the connected graphics corresponding to each traversal starting point graphic. All connected graphics form a set of connected graphics. Each collected graphic in the candidate graphic list is considered a candidate graphic, and the traversal starting point graphic is considered the current graphic. For the current graphic and different candidate graphics, comparisons are made according to preset connectivity judgment rules. In this embodiment, connectivity judgment specifically includes: different connectivity judgment methods are used based on the process layer type (metal layer or via layer) and layer number of the current graphic and the candidate graphic: if the current graphic and the candidate graphic are both metal layers and have the same layer number (e.g., both are M1), then a Boolean AND operation is used to determine whether they intersect and whether the two graphics are connected; if one of the current graphic and the candidate graphic is a metal layer and the other is a via layer and their layer numbers are adjacent, then a bounding box overlap detection is used to determine whether the two graphics are connected. See also Figure 5 This includes the following steps: S401: Initialize an empty queue and add all the starting point graphics to the empty queue to form the starting point queue.
[0077] S402: Determine if the starting queue is not empty.
[0078] If the starting queue is determined to be empty, then it is determined that each traversal starting graphic has undergone connectivity checks with all candidate graphics, and the process jumps to step S407; if the starting queue is determined to be not empty, then it is determined that there are still traversal starting graphics that have not undergone connectivity checks with all candidate graphics, and the process continues to execute step S403.
[0079] S403: Take a graphic from the head of the starting queue as the current graphic.
[0080] S404: Determine whether the current graphic is connected to the selected candidate graphic.
[0081] If it is determined that the current graphic is connected to a candidate graphic selected at this time, it means that the candidate graphic belongs to the specific signal network pointed to by the target label name, and step S405 is executed; if it is determined that the current graphic is not connected to a candidate graphic selected at this time, it means that the candidate graphic does not belong to the specific signal network pointed to by the target label name and does not need to be added to the network result list, and step S406 is executed.
[0082] Specifically, when the current graphic and the candidate graphic are on the same metal layer (e.g., both are M1 layers), the graphic is converted into a polygon representation in the absolute coordinate system (if the original is a Path, then a polygon conversion is performed first). A Boolean AND operation is performed on the two polygons. If the result of the operation is not empty (i.e. there is an intersection), then the two graphics are determined to be connected.
[0083] Specifically, for the current graphic and candidate graphics, if one graphic is a metal layer and the other is a via layer (i.e., layer types "M" and "V" respectively), and the layer number difference is 1 (indicating adjacent layers), then the following judgment is performed: obtain the bounding box of the via layer graphic; obtain the bounding box of the metal layer graphic; determine whether the two bounding boxes overlap in the horizontal direction (X direction) and the vertical direction (Y direction) (including a preset tolerance, such as 1e-6); if they overlap in both directions, then the via layer and the metal layer graphic are determined to be connected. Optionally, a corresponding first preset tolerance range can be set for the horizontal direction, and a corresponding second preset tolerance range can be set for the vertical direction.
[0084] It should be noted that when the current graphic is the same as a candidate graphic, the result of the Boolean AND operation is determined to be intersecting, that is, the candidate graphic that overlaps with the current graphic is added to the network result list.
[0085] S405: Add the selected candidate graph to the network results list.
[0086] S406: Determine if all candidate graphics have been traversed.
[0087] If it is determined that all candidate graphics have been traversed, that is, the current graphic has been subjected to a Boolean AND operation with all collected graphics to determine whether they intersect, then return to step S402; if there are candidate graphics that have not been subjected to a Boolean AND operation with the current graphic, then return to step S404.
[0088] S407: Returns a list of network results.
[0089] Therefore, when the graph queue is empty, the network result list records all connected graphs that meet the requirements. All connected graphs are considered as a set of connected graphs, which includes all graphs included in the specific signal network pointed to by the target label name.
[0090] In step S50 above, the layer weight tables of all connected graphs obtained through the traversal are sorted, a new GDS library and top-level cell are created, the graph is written and exported as an independent GDS file, and the target GDS file is obtained. For details, see [link to relevant documentation]. Figure 6 This includes the following steps: S501: Sort the graphs in the network results list by layer number from smallest to largest according to the preset layer weight table.
[0091] S502: Create a new GDS library and top-level cell, and write the sorted graphics sequentially.
[0092] S503: Save as target GDS file.
[0093] In step S501 above, the layers in this embodiment are arranged in the order of process layers (M1→V1→M2→V2→M3→V3→......→Mm→Vn), and the graphics in the network result list are arranged in ascending order of layer number (e.g., M1, V1, M2, V2, M3, V3, M4, V4, M5).
[0094] This results in a separate target GDS file, which contains only all connected graphics corresponding to the target label name. Users can open this GDS file using any standard layout viewing tool (such as KLayout, Cadence Virtuoso, etc.) to directly observe the complete physical structure of the specific signal network pointed to by the target label name: all interconnected metal lines, vias, pins, etc., are displayed according to their absolute positions in the original layout, and different layers can be highlighted or colored separately.
[0095] In summary, this invention does not rely on a complete standard cell library. Through keyword recognition and independent instantiation strategies, it can still correctly extract via patterns even when a large number of standard cells are missing, filling the technical gap in existing tools for scenarios with missing libraries. It achieves complete expansion of via sub-cell references. Compared to traditional recursive traversal methods where identical sub-cells are expanded only once, leading to only one VIA pattern instance for via sub-cell references with the same sub-reference name and causing network breaks, this invention expands each via sub-cell reference independently, ensuring correct handling of multiple instances. It also achieves automatic identification of cross-layer connectivity. To address the lack of automatic identification capabilities for cross-layer connections (between metal layers and via layers) in existing open-source tools, this invention utilizes a bounding box overlap detection method to achieve complete network extraction of multi-layer structures such as M1-V1-M2. This improves processing efficiency; manually tracing networks typically takes minutes or even hours (depending on network size), while this invention processes a test chip containing approximately 1500 patterns and 86 tags in less than 5 seconds. Furthermore, this invention is versatile and configurable, supporting user-defined layer number mappings and layer type configurations, adapting to GDS files from different process nodes, and is not bound to any specific process kit.
[0096] Computer device embodiment: The computer device in this embodiment includes a processor and a memory. The memory stores a computer program, and when the processor executes the computer program, it implements the above-described embodiment of the tag-based GDS map network extraction method.
[0097] A computer device may include, but is not limited to, a processor and memory. Those skilled in the art will understand that a computer device may include more or fewer components, or a combination of certain components, or different components; for example, a computer device may also include input / output devices, network access devices, buses, etc.
[0098] For example, a processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor can be a microcontroller or any conventional processor. The processor is the control center of a computer device, connecting all parts of the computer device through various interfaces and lines.
[0099] The memory can be used to store computer programs and / or modules. The controller implements various functions of the computer device by running or executing the computer programs and / or modules stored in the memory, and by accessing data stored in the memory. For example, the memory may mainly include a program storage area and a data storage area. The program storage area may store the operating system, at least one application program required for a function (e.g., sound receiving function, sound-to-text function, etc.), etc.; the data storage area may store data created based on the use of the mobile phone (e.g., audio data, text data, etc.). In addition, the memory may include high-speed random access memory, and may also include non-volatile memory, such as hard disk, RAM, plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, at least one disk storage device, flash memory device, or other volatile solid-state storage device.
[0100] Finally, it should be emphasized that the above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. For those skilled in the art, the present invention can have various changes and modifications. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A label-based GDS (Geographic Layout Data System) network extraction method, characterized in that, Includes the following steps: The process recursively traverses and collects graphics from the GDS file to be processed, starting from the initial cell. For each via sub-cell reference containing a preset via keyword, the corresponding graphics are collected by independent expansion. For ordinary sub-cell references, the corresponding graphics are collected by deduplication expansion. Determine the matching tag corresponding to the target tag name in the GDS file to be processed, and determine the collected graphic where the coordinate position of the matching tag is located as the traversal starting point graphic; The starting point graphic and the candidate graphic are compared according to a preset connectivity judgment rule to determine the set of connected graphics; wherein, the connectivity judgment rule includes: when the starting point graphic and the candidate graphic are in the same metal layer, whether they are connected is determined by polygon Boolean operation; when the starting point graphic and the candidate graphic are located in the metal layer and the via layer respectively and their layer numbers are adjacent, whether they are connected is determined by bounding box overlap detection. Export the target GDS file based on the connected graph set; Starting from the initial unit, the system recursively traverses and collects the graphics in the GDS file to be processed, including performing a recursive unrolling operation, which includes: Collect the graphic of the current unit, and obtain the absolute coordinates of the graphic vertices of the current unit based on the absolute offset corresponding to the current unit; Traverse the sub-unit references of the current unit, obtain the sub-unit name and placement coordinates of the sub-unit reference, and calculate the absolute offset corresponding to the sub-unit reference; The sub-unit reference is determined to be either a via sub-unit reference or a regular sub-unit reference based on the sub-unit name; for the via sub-unit reference, the via sub-unit reference is used as the new current unit for the recursive expansion operation; for regular sub-unit references with the same sub-unit name, the recursive expansion operation is used as the new current unit only once throughout the entire process.
2. The label-based GDS map network extraction method as described in claim 1, characterized in that: Starting from the initial unit, recursively traverse and collect the graphics in the GDS file to be processed, including: creating an empty visited set; In the recursive unrolling operation, for the ordinary sub-unit reference, it is determined whether the visited set includes the sub-unit name of the ordinary sub-unit reference. If yes, the recursive unrolling operation for the ordinary sub-unit reference is skipped; if no, the recursive unrolling operation is performed on the ordinary sub-unit reference, and the sub-unit name of the ordinary sub-unit reference is passed to the visited set.
3. The label-based GDS map network extraction method as described in claim 1, characterized in that: Determine the matching tag corresponding to the target tag name in the GDS file to be processed, and determine the collected graph where the coordinate position corresponding to the matching tag is located as the traversal starting point graph, including: Determine the tag text and coordinate positions of the candidate tags in the GDS file to be processed; Identify the candidate tags that match the tag text with the target tag name; A target bounding box is determined from the candidate bounding boxes corresponding to the collected graphics, and the coordinate position corresponding to the matching label is located within the target bounding box; the collected graphics corresponding to the target bounding box are determined as the traversal starting point graphics.
4. The tag-based GDS map network extraction method as described in claim 1, characterized in that: When determining connectivity using bounding box overlap detection, if the bounding box of the starting point graphic and the bounding box of the candidate graphic overlap in the horizontal direction within a first preset tolerance range, and overlap in the vertical direction within a second preset tolerance range, then the candidate graphic is considered a connected graphic.
5. The tag-based GDS map network extraction method as described in claim 1, characterized in that: The target GDS file is derived based on the connected graph set and the preset layer weight table.
6. The label-based GDS map network extraction method as described in claim 1, characterized in that, Also includes: Get the configuration file; The configuration file sets at least one of the following information: layer number to layer name mapping, layer number to layer type mapping, layer weight, preset via keyword, first preset tolerance range, and second preset tolerance range.
7. The label-based GDS map network extraction method as described in claim 1, characterized in that, Also includes: The graph is stored through a defined data structure, which includes the following information: original graph object, layer number, data type, graph type, and BFS traversal access tag.
8. The label-based GDS map network extraction method as described in claim 1, characterized in that: Based on the BFS algorithm, the starting point graph of the traversal is compared with the candidate graphs according to the connectivity judgment rules to determine the set of connected graphs.
9. A computer device, comprising a processor and a memory, characterized in that: The memory stores a computer program, which, when executed by the processor, implements the tag-based GDS map network extraction method according to any one of claims 1 to 8.
Citation Information
Patent Citations
Image matching method and device based on text label tree
CN116955683A
KR20260069408A