Fast query methods, devices, media, program products, and terminals based on mask rule checking using directional grouping indexes.
By using directional grouping and bucket indexing techniques, feature extraction and directional grouping are performed on mask image data, and a bucket indexing structure is constructed. This solves the problem of low efficiency of the R-Tree method when processing tens of millions of mask line segments, and achieves efficient and low-memory mask rule checking.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HUAXINCHENG (HANGZHOU) TECH CO LTD
- Filing Date
- 2026-01-07
- Publication Date
- 2026-04-17
AI Technical Summary
Existing technologies, when processing tens of millions of mask line segments, suffer from low efficiency and high memory consumption due to the R-Tree-based spatial indexing method, and cannot effectively optimize parallel line segment queries.
A direction-based grouping indexing method is adopted to extract features and group directionally in mask image data, construct a bucketed index structure, and dynamically bucket the line segment subsets in different directions to achieve fast parallel line segment query.
It significantly improves query efficiency, reduces memory usage, and enhances the accuracy of rule checks, making it suitable for large-scale mask data in advanced manufacturing processes.
Smart Images

Figure CN121454858B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of semiconductor manufacturing technology, and in particular to a method, apparatus, medium, program product, and terminal for fast querying of mask rules based on directional grouping index. Background Technology
[0002] In integrated circuit manufacturing, optical proximity correction (OPC) is a critical step in ensuring pattern fidelity. As process nodes advance to advanced nodes such as 28nm, 14nm, and 7nm, the complexity of mask patterns increases dramatically, making mask rule checking (MRC) a bottleneck in the OPC process. MRC verifies whether the corrected mask pattern conforms to various design rules, including geometric rules such as line spacing, width, and enclosure.
[0003] Currently, the industry mainly uses the R-Tree spatial indexing method in MRC checks. The specific process of this method is as follows: construct an R-Tree spatial index structure and store all line segments in the R-Tree; when performing rule checks, obtain candidate line segments through the range query function of the R-Tree; perform geometric calculations on the candidate line segments to verify whether they violate the design rules.
[0004] However, the spatial indexing method based on R-Tree has the following drawbacks:
[0005] (1) The R-Tree method is not optimized for the query characteristics of parallel line segments: Since R-Tree is a general spatial index structure, when querying parallel line segments, it is necessary to traverse a large number of line segments in unrelated directions, resulting in low query efficiency, especially when dealing with tens of millions of line segments.
[0006] (2) R-Tree has a complex structure, high memory usage, and high construction and maintenance costs. Summary of the Invention
[0007] In view of the shortcomings of the prior art, the present invention provides a fast query method, device, medium, program product and terminal for mask rule inspection based on directional grouping index, which is used to solve the problem of low inspection efficiency of traditional methods in the prior art when processing tens of millions of mask line segments.
[0008] To achieve the above and other related objectives, a first aspect of this application provides a fast query method for mask rule checking based on directional grouping index, comprising: acquiring mask image data after optical proximity correction; extracting features from the mask image data to obtain a set of feature line segments; performing directional grouping processing on all line segments in the set of feature line segments to obtain subsets of line segments in different directions; constructing a corresponding bucketing index structure for each subset of line segments using a bucketing strategy; and performing fast parallel line segment query for mask rule checking based on the bucketing index structure constructed for each subset of line segments.
[0009] In some embodiments of the first aspect of this application, the different directional subsets of line segments include: a horizontal directional subset of line segments, a vertical directional subset of line segments, a 45-degree directional subset of line segments, and a 135-degree directional subset of line segments.
[0010] In some embodiments of the first aspect of this application, the process of constructing a corresponding bucket index structure for each line segment subset using a bucketing strategy includes: obtaining the endpoint coordinates of all line segments in the horizontal line segment subset; dynamically bucketing and storing the data based on the ordinate of the endpoint coordinates and the density distribution of all line segments in the horizontal line segment subset, thereby obtaining the bucket index structure of the horizontal line segment subset.
[0011] In some embodiments of the first aspect of this application, the process of constructing a corresponding bucket index structure for each line segment subset using a bucketing strategy includes: obtaining the endpoint coordinates of all line segments in the vertical line segment subset; dynamically bucketing and storing the data based on the abscissa of the endpoint coordinates and the density distribution of all line segments in the vertical line segment subset, thereby obtaining the bucket index structure of the vertical line segment subset.
[0012] In some embodiments of the first aspect of this application, the process of constructing a corresponding bucket index structure for each line segment subset using a bucketing strategy includes: obtaining the endpoint coordinates of all line segments in the 45-degree direction line segment subset, calculating the maximum and minimum projection values of each line segment; dynamically bucketing and storing the data based on the maximum and minimum projection values of each line segment and the density distribution of all line segments to obtain the bucket index structure of the 45-degree direction line segment subset.
[0013] In some embodiments of the first aspect of this application, the process of constructing a corresponding bucket index structure for each subset of line segments using a bucketing strategy includes: obtaining the endpoint coordinates of all line segments in the 135-degree direction subset, calculating the maximum and minimum projection values of each line segment; dynamically bucketing and storing the data based on the maximum and minimum projection values of each line segment and the density distribution of all line segments to obtain the bucket index structure of the 135-degree direction subset of line segments.
[0014] To achieve the above and other related objectives, a second aspect of this application provides a fast query device for mask rule checking based on direction grouping index, comprising: a feature extraction module for acquiring mask image data after optical proximity correction and performing feature extraction on the mask image data to obtain a feature line segment set; a direction grouping module for performing direction grouping processing on all line segments in the feature line segment set to obtain line segment subsets in different directions; a bucket index construction module for constructing a corresponding bucket index structure for each line segment subset using a bucketing strategy; and a fast query module for performing fast parallel line segment query for mask rule checking based on the bucket index structure constructed for each line segment subset.
[0015] To achieve the above and other related objectives, a third aspect of this application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the fast query method for mask rule checking based on directional grouping index.
[0016] To achieve the above and other related objectives, a fourth aspect of this application provides a computer program product comprising computer program code that, when executed on a computer, causes the computer to implement the fast query method for mask rule checking based on directional grouping index.
[0017] To achieve the above and other related objectives, a fifth aspect of this application provides an electronic terminal, including a memory, a processor, and a computer program stored in the memory; the processor executes the computer program to implement the fast query method for mask rule checking based on directional grouping index.
[0018] As described above, the fast query method, apparatus, medium, program product, and terminal for mask rule checking based on directional grouping index provided in this application have the following beneficial effects:
[0019] (1) Query efficiency is greatly improved: By using directional grouping and bucket indexing technology, global search is transformed into local search, and only line segments in parallel directions are checked, avoiding a lot of unnecessary calculations.
[0020] (2) Significantly reduced memory usage: Compared with the complex tree structure of R-Tree, the bucket index of this application adopts a simple array and list structure, which reduces memory usage and is suitable for processing large-scale mask data.
[0021] (3) Improved accuracy of rule checking: Specifically optimized for MRC rule checking scenarios, it can more accurately locate the parallel line segments that need to be checked, reducing false alarms and false negatives.
[0022] (4) Strong adaptability to advanced processes: In advanced processes such as 7nm and 5nm, the number of non-Manhattan masks increases exponentially. This application can effectively process large-scale mask data of advanced processes. Attached Figure Description
[0023] Figure 1 The diagram shown is a flowchart illustrating a fast query method for mask rule checking based on directional grouping index in one embodiment of this application.
[0024] Figure 2 The diagram shown is a schematic diagram of a bucket index structure for a horizontal line segment in one embodiment of this application.
[0025] Figure 3 The diagram shown is a schematic diagram of a bucket index structure for a vertical line segment in one embodiment of this application.
[0026] Figure 4 The diagram shown is a schematic diagram of a bucket index structure for a 135-degree directional line segment in one embodiment of this application.
[0027] Figure 5 The figure shown is a specific embodiment of a fast parallel line segment query in one of the embodiments of this application.
[0028] Figure 6 The diagram shown is a structural schematic of a mask rule checking fast query device based on directional grouping index in one embodiment of this application.
[0029] Figure 7 The diagram shown is a structural schematic of an electronic terminal according to an embodiment of this application. Detailed Implementation
[0030] The following specific examples illustrate the implementation of this application. Those skilled in the art can easily understand other advantages and effects of this application from the content disclosed in this specification. This application can also be implemented or applied through other different specific embodiments, and various details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of this application. It should be noted that, in the absence of conflict, the following embodiments and features in the embodiments can be combined with each other. Before further detailing the present invention, the nouns and terms involved in the embodiments of the present invention are explained. The nouns and terms involved in the embodiments of the present invention are subject to the following interpretations:
[0031] <1> OPC correction (Optical Proximity Correction): Optical proximity correction is a technique used to improve the quality of lithography patterns on semiconductor chips. It makes tiny corrections to the original design pattern to compensate for optical near-field effects and chemical effects during the lithography process, thereby improving the precision and reliability of chip manufacturing.
[0032] <2> Photomask: In semiconductor manufacturing, a photomask is a template used for photolithography, on which the pattern of the chip is printed. The photolithography process projects the chip pattern onto a silicon wafer.
[0033] <3> Mask rule check (MRC) is a mandatory inspection process performed on integrated circuit design patterns after optical proximity correction (OPC) processing, before they are sent to the mask manufacturing plant. It verifies whether the corrected patterns meet the requirements of the mask fabrication process. MRC rules are provided by the mask manufacturer and entered into the inspection software by OPC engineers. This check primarily sets constraints on the minimum linewidth, line spacing, and corner spacing of the patterns. It also standardizes parameters such as the size, spacing, and minimum area of sub-resolution auxiliary patterns (SRAF) to ensure the feasibility of mask fabrication.
[0034] <4> R-Tree Spatial Index: R-Tree is a tree-like data structure used for indexing spatial data. It is suitable for solving range queries on spatial data, such as finding all objects within a specific region. R-Tree can efficiently organize and store spatial data, enabling queries to quickly locate the data region of interest. The structure of an R-Tree is a balanced tree that organizes and stores spatial objects by dividing a multidimensional space into multiple rectangles (called "nodes" or "branches"). Each node represents a rectangular region, while leaf nodes contain pointers to the actual spatial data.
[0035] To facilitate understanding of the embodiments of this application, firstly, in conjunction with Figure 1 Detailed explanation. Figure 1 This document illustrates a flowchart of a fast query method for mask rule checking based on directional grouping index, as described in an embodiment of the present invention. The method in this embodiment includes:
[0036] Step S11: Obtain the mask pattern data after optical proximity correction, and perform feature extraction on the mask pattern data to obtain a feature line segment set.
[0037] In one embodiment of this application, a mask pattern refers to the digital-analog design of a chip, which is the process of mapping logic circuits onto an actual physical layout. The mask pattern includes the specific location and layout information of each logic gate, interconnect, and circuit element, and is designed into a mask layout according to the functional and performance requirements of the logic circuit, so as to facilitate subsequent physical design, verification, and manufacturing processes.
[0038] In one embodiment of this application, the format of the mask graphic data includes, but is not limited to, GDSII or OASIS formats. GDSII (Graphic Data System II) is a widely used integrated circuit layout data exchange format. GDSII stores various information about the integrated circuit layout in binary files, including geometric shapes such as polygons, rectangles, and circles, as well as detailed parameters such as the hierarchical structure, coordinate positions, and dimensions of these shapes. OASIS (Open Artwork System Interchange Standard) is a newer integrated circuit layout data format. OASIS employs more efficient compression algorithms and more flexible data structures, enabling the storage of the same information in a smaller file size while supporting more complex graphic features and higher precision requirements.
[0039] In this embodiment, the mask pattern data contains all the geometric information of the chip layout, including all line segments, polygons, etc., as well as the associated geometric attributes of all line segments, polygons, etc. (such as endpoint coordinates, length, width), which facilitates subsequent operations such as pattern edge extraction, line segment direction recognition, and grouping.
[0040] In one embodiment of this application, the process of extracting features from the mask graphic data to obtain a set of feature line segments includes: parsing the image data in the mask graphic data, performing edge extraction on the polygons therein, splitting the polygons into line segments, and integrating all the line segments in the image data and the line segments after the polygon splitting to obtain a set of feature line segments.
[0041] Step S12: Perform directional grouping processing on all line segments in the feature line segment set to obtain line segment subsets with different directions.
[0042] In one embodiment of this application, the direction angle of each line segment in the feature line segment set is calculated, and then the direction type of the line segment is determined based on the direction angle. Specifically, in the corrected layout graphic, the direction types of the line segments include four types, namely:
[0043] (1) Horizontal direction: When the directional angle of a line segment is 0° or 180°, the line segment is classified as horizontal.
[0044] (2) Vertical direction: When the direction angle of a line segment is 90° or 270°, the line segment is classified as vertical.
[0045] (3) 45-degree direction: When the direction angle of a line segment is 45° or 225°, the line segment is classified as a 45-degree direction;
[0046] (4) 135-degree direction: When the direction angle of a line segment is 135° or 315°, the line segment is classified as 135-degree direction.
[0047] All line segments in the feature line segment set are grouped according to the four directional types mentioned above to obtain line segment subsets in different directions. The line segment subsets in different directions include: horizontal line segment subset, vertical line segment subset, 45-degree line segment subset, and 135-degree line segment subset.
[0048] It should be explained that the direction angle is a key parameter describing the orientation of a line segment in a plane, reflecting the directional characteristics of the line segment. For example, in a Cartesian coordinate system, the angle between the line segment and the horizontal axis is calculated using the coordinates of the two endpoints of the line segment, thus obtaining the direction angle of the line segment.
[0049] Step S13: Use a bucketing strategy to build a corresponding bucketing index structure for each segment subset.
[0050] In this embodiment, different bucketing strategies are used for line segment subsets in different directions to construct a corresponding bucketing index structure for each line segment subset.
[0051] In one embodiment of this application, combined with Figure 2 The process of constructing the corresponding bucket index structure for the horizontal line segment subset is as follows: obtain the endpoint coordinates of all line segments in the horizontal line segment subset; dynamically bucket and store the data based on the ordinate of the endpoint coordinates and the density distribution of all line segments in the horizontal line segment subset to obtain the bucket index structure of the horizontal line segment subset.
[0052] Specifically, the horizontal line segment subset includes all horizontal line segments. In a Cartesian coordinate system, the endpoint coordinates of each horizontal line segment include the coordinates of its left and right endpoints, and the y-coordinates of the left and right endpoints of each horizontal line segment are the same. Based on the y-coordinates of the endpoint coordinates, several buckets are created, with each bucket's range representing a y-coordinate interval (e.g., Bucket 1: y∈[60, 84), Bucket 2: y∈[84, 108), Bucket 3: y∈[108, 132), Bucket 4: y∈[132, 156), Bucket 5: y∈[156, 180)). Furthermore, the size of the buckets needs to be dynamically adjusted, automatically adjusting the range intervals according to the line segment density distribution. For example, in areas with dense line segments, the bucket's y-coordinate interval is smaller, while in areas with sparse line segments, the bucket's y-coordinate interval is larger. This ensures that the number of horizontal line segments within each bucket is approximately equal, avoiding overloading of some buckets during storage or retrieval, i.e., preventing data skew.
[0053] Furthermore, within each bucket, the horizontal line segments are sorted and stored according to the x-coordinate of the left endpoint. The storage information for each horizontal line segment includes: line segment ID, x-coordinate of the left endpoint (x1 coordinate), x-coordinate of the right endpoint (x2 coordinate), and y-coordinate.
[0054] In one embodiment of this application, combined with Figure 3 The process of constructing the corresponding bucket index structure for the vertical line segment subset is as follows: obtain the endpoint coordinates of all line segments in the vertical line segment subset; dynamically bucket and store the data based on the x-coordinate of the endpoint coordinates and the density distribution of all line segments in the vertical line segment subset to obtain the bucket index structure of the vertical line segment subset.
[0055] In this embodiment, the vertical line segment subset includes all vertical line segments. In a Cartesian coordinate system, the endpoint coordinates of each vertical line segment include the coordinates of the upper and lower endpoints, and the x-coordinates of the upper and lower endpoints of each vertical line segment are the same. The segments are binned based on the x-coordinates of their endpoints, with each bin representing a range of x-coordinates (e.g., bin 1: x∈[40, 107), bin 2: x∈[107, 173), bin 3: x∈[173, 240), bin 4: x∈[240, 307), bin 5: x∈[307, 373), bin 6: x∈[373, 440)). Simultaneously, the size of the bins needs to be dynamically adjusted, automatically adjusting the range based on the line segment density distribution. For example, in areas with dense line segments, the x-coordinate range of the bins is smaller, while in areas with sparse line segments, the x-coordinate range of the bins is larger. This ensures that the number of vertical line segments in each bin is approximately equal, avoiding overloading of some bins during storage or retrieval, i.e., avoiding data skew.
[0056] Furthermore, within each bucket, the data is sorted and stored according to the ordinate (y-coordinate) of the lower endpoint of the vertical line segment. The storage information for each vertical line segment includes: line segment ID, ordinate (y1 coordinate) of the upper endpoint, ordinate (y2 coordinate) of the lower endpoint, and x-coordinate.
[0057] In one embodiment of this application, the process of constructing a corresponding bucket index structure for a subset of line segments in the 45-degree direction is as follows: obtain the endpoint coordinates of all line segments in the subset of line segments in the 45-degree direction, calculate the maximum projection value and minimum projection value of each line segment; dynamically bucket and store the data according to the maximum projection value and minimum projection value of each line segment and the density distribution of all line segments to obtain the bucket index structure of the subset of line segments in the 45-degree direction.
[0058] It should be noted that the 45-degree direction line segment subset includes all 45-degree direction line segments. In the projected coordinate system, the current 45-degree direction line segment has two endpoints, namely the upper endpoint and the lower endpoint. Two projection values are calculated based on the coordinates of these two endpoints, which are the maximum projection value and the minimum projection value, respectively. The specific calculation formula is as follows:
[0059] T = xy; (Formula 1)
[0060] Where (x, y) are the coordinates of the endpoints of the line segment in the current 45-degree direction.
[0061] The data is bucketed based on the minimum projection value of all line segments in the 45-degree direction, with each bucket representing a range of projection values. The bucket size is dynamically adjusted based on the line segment density distribution; for example, in densely populated areas, the bucket's projection value range is smaller, while in sparsely populated areas, it is larger. This ensures that the number of 45-degree line segments within each bucket is approximately equal, preventing some buckets from becoming overloaded during storage or retrieval, thus avoiding data skew.
[0062] Furthermore, within each bucket, the maximum projection values of the line segments in the 45-degree direction are sorted and stored. The storage information for each 45-degree line segment includes: line segment ID, projection range (maximum projection value and minimum projection value), and original coordinates (coordinates of the upper and lower endpoints of the line segment).
[0063] In one embodiment of this application, combined with Figure 4 The process of constructing the corresponding bucket index structure for the 135-degree direction line segment subset is as follows: obtain the endpoint coordinates of all line segments in the 135-degree direction line segment subset, calculate the maximum and minimum projection values of each line segment, dynamically bucket and store the data based on the maximum and minimum projection values of each line segment and the density distribution of all line segments, and obtain the bucket index structure of the 135-degree direction line segment subset.
[0064] It should be noted that the 135-degree direction line segment subset includes all 135-degree direction line segments. In the projected coordinate system, the current 135-degree direction line segment has two endpoints: the upper endpoint and the lower endpoint. Two projection values are calculated based on the coordinates of these two endpoints, representing the maximum and minimum projection values, respectively. The specific calculation formula is as follows:
[0065] M = x + y; (Formula 2)
[0066] Where (x, y) are the coordinates of the endpoints of the line segment in the current 135-degree direction.
[0067] The data is divided into buckets based on the minimum projection value of all line segments in the 135-degree direction. Each bucket represents a range of projection values (e.g., Bucket 1: x+y∈[110, 210], Bucket 2: x+y∈[210, 310], Bucket 3: x+y∈[310, 410], Bucket 4: x+y∈[410, 510], Bucket 5: x+y∈[510, 610]). Simultaneously, the bucket size needs to be dynamically adjusted, automatically adjusting the range based on the line segment density distribution. For example, in areas with dense line segments, the bucket's projection value range is smaller, while in areas with sparse line segments, the bucket's projection value range is larger. This ensures that the number of line segments in the 135-degree direction within each bucket is approximately equal, avoiding overloading some buckets during storage or retrieval, thus preventing data skew.
[0068] Furthermore, within each bucket, the maximum projection values of the line segments in the 135-degree direction are sorted and stored. The storage information for each 135-degree line segment includes: line segment ID, projection range (maximum projection value and minimum projection value), and original coordinates (coordinates of the upper and lower endpoints of the line segment).
[0069] Step S14: Perform fast parallel segment queries based on the bucketed index structure built for each segment subset and mask rule checking.
[0070] In this embodiment, combined with Figure 5 The specific process of fast parallel line segment query based on the bucketed index structure built for each line segment subset is as follows: Read the design rule parameters of Mask Rule Check (MRC); generate a query box based on the design rule parameters; perform a query in the bucketed index structure built for each line segment subset based on the query box: identify line segment subsets in different directions, select the corresponding bucket index, locate the corresponding bucket, and search within the bucket to obtain candidate line segments; perform geometric rule verification on the candidate line segments and correct the current line segment, outputting the final corrected mask graphic data.
[0071] It should be explained that the design rule parameters include minimum spacing, maximum width threshold, etc., used to perform geometric calculations on candidate line segments and verify whether they violate the design rules. This embodiment provides an indexing method optimized for parallel line segment queries through directional grouping and bucket indexing techniques. This not only significantly improves the efficiency of parallel line segment rule verification in MRC checks but also avoids the use of complex R-Tree structures, reducing memory consumption and making it suitable for large-scale mask data in advanced processes. In the mask rule checking process of optical proximity correction, this application quickly and accurately queries all line segments parallel to the current line segment and intersecting with the rule checking area, solving the problem of low checking efficiency in traditional methods when processing tens of millions of mask line segments.
[0072] It should be emphasized that the fast query method for mask rule checking based on directional grouping index provided in this application has the following beneficial effects:
[0073] (1) Query efficiency is greatly improved: By using directional grouping and bucket indexing technology, global search is transformed into local search, and only line segments in parallel directions are checked, avoiding a lot of unnecessary calculations.
[0074] (2) Significantly reduced memory usage: Compared with the complex tree structure of R-Tree, the bucket index of this application adopts a simple array and list structure, which reduces memory usage and is suitable for processing large-scale mask data.
[0075] (3) Improved accuracy of rule checking: Specifically optimized for MRC rule checking scenarios, it can more accurately locate the parallel line segments that need to be checked, reducing false alarms and false negatives.
[0076] (4) Strong adaptability to advanced processes: In advanced processes such as 7nm and 5nm, the number of non-Manhattan masks increases exponentially. This application can effectively process large-scale mask data of advanced processes.
[0077] In the embodiments of this application, the terms "first" and "second" are used to distinguish identical or similar items with essentially the same function and effect, without limiting their order. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and that the terms "first" and "second" do not necessarily imply that they are different.
[0078] It should be noted that, in the embodiments of this application, the words "exemplary" or "for example" indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary" or "for example" in this application should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.
[0079] In this application embodiment, "at least one" refers to one or more, and "more than one" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.
[0080] Figure 6 A schematic block diagram of the mask rule checking fast query device based on directional grouping index provided in this application embodiment is shown below. Figure 6 As shown, the device 600 includes:
[0081] Feature extraction module 601 is used to acquire mask image data after optical proximity correction, and to extract features from the mask image data to obtain a set of feature line segments;
[0082] The direction grouping module 602 is used to perform direction grouping processing on all line segments in the feature line segment set to obtain a subset of line segments in different directions;
[0083] Bucketed index building module 603 is used to build a corresponding bucketed index structure for each segment subset using a bucketing strategy.
[0084] The fast query module 604 is used for fast parallel segment queries that perform mask rule checks based on the bucketed index structure built for each segment subset.
[0085] It should be understood that the specific process of each module performing the above-mentioned steps has been described in detail in the above method embodiments, and will not be repeated here for the sake of brevity.
[0086] It should also be understood that the module division in the embodiments of this application is illustrative and only represents a logical functional division; in actual implementation, there may be other division methods. Furthermore, the functional modules in the various embodiments of this application can be integrated into a single processor, exist as separate physical entities, or be integrated into a single module. The integrated modules described above can be implemented in hardware or as software functional modules.
[0087] Figure 7 This is a schematic block diagram of the electronic terminal provided in an embodiment of this application. Figure 7 As shown, the electronic terminal includes at least one processor 701, a memory 702, at least one network interface 703, and a user interface 705. The various components in the device are coupled together via a bus system 704. It is understood that the bus system 704 is used to implement communication between these components. In addition to a data bus, the bus system 704 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 7 The general will label all buses as bus systems.
[0088] The user interface 705 may include a monitor, keyboard, mouse, trackball, clicker, button, touchpad, or touch screen.
[0089] It is understood that memory 702 can be volatile memory or non-volatile memory, or both. Non-volatile memory can be read-only memory (ROM) or programmable read-only memory (PROM), which serves as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM) and synchronous static random access memory (SSRAM). The memories described in the embodiments of this invention are intended to include, but are not limited to, these and any other suitable categories of memory.
[0090] In this embodiment of the invention, the memory 702 is used to store various types of data to support the operation of the electronic terminal 700. Examples of this data include: any executable program for operation on the electronic terminal 700, such as the operating system 7021 and application programs 7022; the operating system 7021 contains various system programs, such as the framework layer, core library layer, driver layer, etc., for implementing various basic services and handling hardware-based tasks. The application program 7022 may contain various applications, such as a media player, browser, etc., for implementing various application services. The fast query method for mask rule checking based on directional grouping index provided in this embodiment of the invention can be included in the application program 7022.
[0091] The methods disclosed in the above embodiments of the present invention can be applied to processor 701, or implemented by processor 701. Processor 701 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware in processor 701 or by instructions in software form. The processor 701 may be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. Processor 701 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of the present invention. General-purpose processor 701 may be a microprocessor or any conventional processor, etc. The steps of the accessory optimization method provided in the embodiments of the present invention can be directly reflected as being executed by a hardware decoding processor, or being executed by a combination of hardware and software modules in the decoding processor. The software module may be located in a storage medium, which is located in memory. The processor reads the information in the memory and combines it with its hardware to complete the steps of the aforementioned method.
[0092] In an exemplary embodiment, the electronic terminal 700 may be used to execute the aforementioned method by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), or complex programmable logic devices (CPLDs).
[0093] According to the method provided in the embodiments of this application, this application also provides a computer program product, which includes: computer program code, which, when run on a computer, causes the computer to execute the mask rule checking fast query method based on directional grouping index of any of the embodiments shown.
[0094] According to the method provided in the embodiments of this application, this application also provides a computer-readable storage medium storing program code, which, when run on a computer, causes the computer to execute the mask rule checking fast query method based on directional grouping index of any of the embodiments shown.
[0095] As used in this specification, the terms "component," "module," "system," etc., are used to refer to computer-related entities, hardware, firmware, combinations of hardware and software, software, or software in execution. For example, a component can be, but is not limited to, a process running on a processor, a processor, an object, an executable file, an execution thread, a program, and / or a computer. As illustrated, applications running on computing devices and computing devices can both be components. One or more components may reside in a process and / or an execution thread, and components may be located on a single computer and / or distributed among two or more computers. Furthermore, these components can be executed from various computer-readable media on which various data structures are stored. Components can communicate, for example, via local and / or remote processes based on signals having one or more data packets (e.g., data from two components interacting with another component between a local system, a distributed system, and / or a network, such as the Internet interacting with other systems via signals).
[0096] Those skilled in the art will recognize that the various illustrative logical blocks and steps described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this application.
[0097] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0098] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0099] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0100] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0101] In the above embodiments, the functions of each functional unit can be implemented entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. A computer program product includes one or more computer instructions (programs). When the computer program instructions (programs) are loaded and executed on a computer, all or part of the flow or function according to the embodiments of this application is generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. Computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., high-density digital video discs, DVDs), or semiconductor media (e.g., solid-state disks, SSDs, etc.).
[0102] If a function is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0103] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
[0104] In summary, the mask rule checking fast query method, apparatus, medium, program product, and terminal based on directional grouping index provided in this application include: acquiring mask image data after optical proximity correction; extracting features from the mask image data to obtain a feature line segment set; performing directional grouping processing on all line segments in the feature line segment set to obtain line segment subsets in different directions; constructing a corresponding bucket index structure for each line segment subset using a bucketing strategy; and performing fast parallel line segment query for mask rule checking based on the bucket index structure constructed for each line segment subset. This application provides an indexing method optimized for parallel line segment queries through directional grouping and bucket indexing techniques. This not only significantly improves the efficiency of parallel line segment rule verification in MRC checks but also avoids the use of complex R-Tree structures, reducing memory consumption and making it suitable for large-scale mask data in advanced processes. Therefore, this application effectively overcomes the various shortcomings of existing technologies and has high industrial application value.
[0105] The above embodiments are merely illustrative of the principles and effects of this application and are not intended to limit this application. Any person skilled in the art can modify or alter the above embodiments without departing from the spirit and scope of this application. Therefore, all equivalent modifications or alterations made by those skilled in the art without departing from the spirit and technical concept disclosed in this application should still be covered by the claims of this application.
Claims
1. A fast query method for mask rule checking based on directional grouping index, characterized in that, include: Acquire the mask image data after optical proximity correction, and perform feature extraction on the mask image data to obtain a set of feature line segments; All line segments in the feature line segment set are grouped by direction to obtain subsets of line segments in different directions; A bucketing strategy is used to construct a corresponding bucketed index structure for each subset of line segments; Fast parallel segment queries that perform mask rule checks based on a bucketed index structure built from each segment subset; The process includes: reading the design rule parameters for mask rule checking; generating a query box based on the design rule parameters; querying the bucketed index structure built for each line segment subset based on the query box; identifying line segment subsets in different directions, selecting the corresponding bucket index, locating the corresponding bucket, and searching within the bucket to obtain candidate line segments; verifying the candidate line segments using geometric rules and correcting the current line segment, and outputting the final corrected mask graphic data.
2. The fast query method for mask rule checking based on directional grouping index according to claim 1, characterized in that, The different directional line segment subsets include: horizontal line segment subset, vertical line segment subset, 45-degree line segment subset, and 135-degree line segment subset.
3. The fast query method for mask rule checking based on directional grouping index according to claim 1, characterized in that, The process of constructing a corresponding bucketed index structure for each segment subset using a bucketing strategy includes: Get the endpoint coordinates of all line segments in the horizontal line segment subset; Dynamically bucket and store the data based on the ordinate of the endpoint coordinates and the density distribution of all line segments in the horizontal line segment subset, thus obtaining the bucket index structure of the horizontal line segment subset.
4. The fast query method for mask rule checking based on directional grouping index according to claim 1, characterized in that, The process of constructing a corresponding bucketed index structure for each segment subset using a bucketing strategy includes: Get the endpoint coordinates of all line segments in the vertical line segment subset; Dynamically bucket and store the data based on the x-coordinate of the endpoint coordinates and the density distribution of all line segments in the vertical line segment subset, thus obtaining the bucket index structure of the vertical line segment subset.
5. The fast query method for mask rule checking based on directional grouping index according to claim 1, characterized in that, The process of constructing a corresponding bucketed index structure for each segment subset using a bucketing strategy includes: Obtain the endpoint coordinates of all line segments in the 45-degree direction line segment subset, and calculate the maximum and minimum projection values of each line segment; Dynamically bucket and store the data based on the maximum and minimum projection values of each line segment and the density distribution of all line segments to obtain a bucket index structure for the 45-degree direction line segment subset.
6. The fast query method for mask rule checking based on directional grouping index according to claim 1, characterized in that, The process of constructing a corresponding bucketed index structure for each segment subset using a bucketing strategy includes: Obtain the endpoint coordinates of all line segments in the 135-degree direction line segment subset, and calculate the maximum and minimum projection values of each line segment; Dynamically bucket and store the data based on the maximum and minimum projection values of each line segment and the density distribution of all line segments to obtain a bucket index structure for the 135-degree direction line segment subset.
7. A fast query device for mask rule checking based on directional grouping index, characterized in that, include: The feature extraction module is used to acquire the mask image data after optical proximity correction, and to extract features from the mask image data to obtain a set of feature line segments; The direction grouping module is used to perform direction grouping processing on all line segments in the feature line segment set to obtain a subset of line segments in different directions; The bucketing index construction module is used to construct a corresponding bucketing index structure for each segment subset using a bucketing strategy. The fast query module is used to perform fast parallel segment queries by performing mask rule checks based on the bucketed index structure built based on each segment subset; The process includes: reading the design rule parameters for mask rule checking; generating a query box based on the design rule parameters; querying the bucketed index structure built for each line segment subset based on the query box; identifying line segment subsets in different directions, selecting the corresponding bucket index, locating the corresponding bucket, and searching within the bucket to obtain candidate line segments; verifying the candidate line segments using geometric rules and correcting the current line segment, and outputting the final corrected mask graphic data.
8. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the fast query method for mask rule checking based on directional grouping index as described in any one of claims 1 to 6.
9. A computer program product, characterized in that, The computer program product includes computer program code, which, when run on a computer, enables the computer to implement the fast query method for mask rule checking based on directional grouping index as described in any one of claims 1 to 6.
10. An electronic terminal, comprising a memory, a processor, and a computer program stored in the memory, characterized in that, The processor executes the computer program to implement the fast query method for mask rule checking based on directional grouping index as described in any one of claims 1 to 6.
Citation Information
Patent Citations
Image retrieval acceleration method, retrieval equipment, electronic equipment and storage medium
CN114218420A
Fuzzy matching method based on hierarchical graph Hash signature
CN120354822A