Layout matching method, device, computer device and readable storage medium
By using a combination of verification templates and filter templates in layout matching, the problem of large calculation volume and low efficiency of layout matching is solved, and efficient layout graphic matching is achieved, and computing performance and quality are improved.
Patent Information
- Application Number
- CN202510105033.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-23
- Publication Date
- 2025-07-01
- Estimated Expiration
- 2045-01-23
AI Technical Summary
The existing layout matching technology has large calculations and low matching efficiency, making it difficult to deal with complex integrated circuit designs.
By obtaining the matching template, establishing verification templates and filtering templates, using the filter template for preliminary screening, and verifying the verification templates for final confirmation, reducing the number of polygons and potential matching windows that need to be paid attention to during the matching process, and reducing the computational complexity.
It improves the efficiency and quality of layout graphics matching, reduces the storage space requirements when reading layouts, and improves computing performance.
Smart Images

Figure CN119540244B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of integrated circuit layout technology, and particularly to a layout matching method, device, computer device, and readable storage medium. Background Art
[0002] During the chip manufacturing process, defects significantly affect the chip yield, which are mainly divided into systematic and non-systematic defects. Systematic defects often originate from processes such as lithography, etching, and chemical mechanical polishing, and are closely related to the layout design. Layout Pattern Matching algorithms play a crucial role in the integrated circuit (IC) design and manufacturing process. These algorithms are used to identify specific patterns or shapes on the layout during semiconductor manufacturing for further analysis, optimization, and verification. The layout refers to the physical structure arrangement diagrams of various different layers on a semiconductor device, which are crucial for ensuring the normal operation of the device according to the design requirements. With the development of semiconductor technology, the feature size of integrated circuits has been continuously reduced to the nanometer level. This has led to a significant increase in design complexity and also an increase in potential problems during the manufacturing process. In order to identify and avoid hot spot patterns that may cause defects at the design stage, a pattern matching tool can accurately locate patterns of specific structures in the vast layout data, which helps to improve the overall chip production yield.
[0003] Current layout pattern matching technologies mainly rely on the principle of string matching. This method encodes the geometric shape of the layout as a string or text for matching. During this process, geometric shapes within the layout (such as lines, rectangles, curves, etc.) are encoded into a string sequence, including extracting features such as the boundaries, sizes, and relative positions of the shapes. Next, key feature points are extracted from the layout, such as connection points and intersection points, and these points are converted into string markers for identification. Once these conversions are completed, string comparison algorithms, such as the KMP algorithm and the Boyer-Moore algorithm, are applied to identify the matching relationships between strings. Such algorithms can effectively search for specific short sequence patterns in long sequences.
[0004] However, with the increasing complexity of integrated circuit design, the number of geometric shapes and features in the layout has increased significantly. The process of converting these shapes and features into strings and performing matching becomes very complex and computationally intensive, resulting in high resource consumption and increased processing time. In addition, for very large datasets and complex layout designs, string-based pattern matching algorithms have scalability problems, and as the data volume increases, the performance of the algorithms will decline significantly.
[0005] In response to the problems of large computational workload and low matching efficiency in layout matching in related technologies, no effective solution has been proposed yet. Summary of the Invention
[0006] In this embodiment, a layout matching method, apparatus, computer device, and readable storage medium are provided to solve the problems of large computational complexity and low matching efficiency in the related art for layout matching.
[0007] In a first aspect, in this embodiment, a layout matching method is provided. The method includes:
[0008] Obtain a matching template and a layout.
[0009] Based on the matching template, establish a verification template and at least one filtering template; the filtering template includes the graphic information of some graphics in the matching template; the verification template includes the graphic information of all graphics in the matching template;
[0010] Based on the filtering template, filter the graphics in the layout, and screen out the first graphics that match the filtering template;
[0011] Based on the verification template, verify the first graphics, and screen out the graphics that match the verification template as the final matching result.
[0012] In some of these embodiments, establishing at least one filtering template based on the matching template includes:
[0013] Determine at least one reference polygon in the matching template as the first reference graphic;
[0014] Based on the graphic information of the first reference graphic, establish a first filtering template;
[0015] Wherein, the reference polygon is a polygon in the matching template that does not contact the bounding box of the matching template; the graphic information of the first reference graphic includes the bounding box information of the first reference graphic.
[0016] In some of these embodiments, establishing at least one filtering template based on the matching template further includes:
[0017] Determine at least one polygon in the matching template that does not contact the bounding box as an internal polygon;
[0018] Based on the graphic information of the internal polygon, establish a second filtering template.
[0019] In some of these embodiments, based on the filtering template, filtering the graphics in the layout, and screening out the first graphics that match the filtering template includes:
[0020] The filtering template includes a first filtering template and a second filtering template;
[0021] Based on the first filtering template and the second filtering template, the graphics in the layout are filtered sequentially, and after secondary screening, a first graphic that matches both the first filtering template and the second filtering template is obtained.
[0022] In some embodiments, based on the first filtering template and the second filtering template, filtering the graphics in the layout sequentially, and after secondary screening, obtaining a first graphic that matches both the first filtering template and the second filtering template, includes:
[0023] Read each polygon in the layout as a target polygon one by one;
[0024] Match the target polygon with the first reference graphic in the first filtering template: If the match is successful, retain the target polygon, and based on the graphic information of the first reference graphic, establish at least one screening box containing the target polygon in the layout based on the position of the target polygon; the size of the screening box is the same as the bounding box of the matching template;
[0025] Match the polygons within the screening box with the internal polygons in the second filtering template: If the match is successful, determine the graphic within the screening box as the first graphic.
[0026] In some embodiments, establishing at least one filtering template based on the matching template, includes:
[0027] Determine multiple reference edges in the matching template as the second reference graphic;
[0028] Establish a third filtering template based on the graphic information of the second reference graphic;
[0029] Wherein, the reference edge is an edge in the matching template that does not contact the bounding box of the matching template; the graphic information of the second reference graphic includes the dimension information and position information of the reference edge.
[0030] In some embodiments, based on the filtering template, filtering the graphics in the layout, and screening to obtain a first graphic that matches the filtering template, includes:
[0031] Read the edges in the layout as target edges;
[0032] Match the target edge with the second reference graphic in the filtering template: If the match is successful, retain the target edge, and based on the graphic information of the second reference graphic, establish at least one screening box containing the target edge in the layout based on the position of the target edge; the size of the screening box is the same as the bounding box of the matching template; determine the graphic within the screening box as the first graphic.
[0033] In some of these embodiments, the graphic information includes the bounding box information of a polygon; the bounding box information includes the size information and position information of the bounding box;
[0034] Among them, the graphic information of the first reference graphic further includes the relative position information of the bounding box of the first reference graphic and the matching template; the relative position information includes the coordinate information of the center of the bounding box of the first reference graphic with a preset vertex in the matching template as the origin;
[0035] The graphic information of the second reference graphic further includes the relative position information of the second reference graphic and the matching template; the relative position information includes the coordinate information of the positioning point of the second reference graphic with a preset vertex in the matching template as the origin.
[0036] In some of these embodiments, the matching template includes a fuzzy matching graphic;
[0037] Based on the matching template, a verification template including the fuzzy matching graphic and / or at least one filtering template including the fuzzy matching graphic is established;
[0038] Among them, the fuzzy matching graphic refers to a graphic that meets the matching requirements within a preset graphic range.
[0039] In some of these embodiments, obtaining the layout includes: obtaining the bounding box information of the polygons in the layout.
[0040] In a second aspect, a layout matching device is provided in this embodiment. The device includes:
[0041] A graphic acquisition module, configured to acquire a matching template and a layout;
[0042] A template establishment template, configured to establish a verification template and at least one filtering template based on the matching template; the filtering template includes the graphic information of some graphics in the matching template; the verification template includes the graphic information of all graphics in the matching template;
[0043] A filtering module, configured to filter the graphics in the layout based on the filtering template, and screen out the first graphics that match the filtering template;
[0044] A verification module, configured to verify the first graphics based on the verification template, and screen out the graphics that match the verification template as the final matching result.
[0045] In a third aspect, the present application also provides a computer device. The computer device includes a memory and a processor. The memory stores a computer program, and when the processor executes the computer program, the layout matching method described in the first aspect is implemented.
[0046] In a fourth aspect, the present application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program thereon, and when the computer program is executed by a processor, the layout matching method described in the first aspect is implemented.
[0047] Compared with the related art, in the layout matching method, device, computer device, and readable storage medium provided in this embodiment, by obtaining a matching template and a layout; establishing a verification template and at least one filtering template based on the matching template; the filtering template includes the graphic information of some graphics in the matching template; the verification template includes the graphic information of all graphics in the matching template; based on the at least one filtering template, filtering the graphics in the layout to screen out the first graphics that match the filtering template; based on the verification template, verifying the first graphics to screen out the graphics that match the verification template as the final matching result. Through multiple screenings, the problems of large computational amount and low matching efficiency in layout matching are solved. In the layout reading stage, only the bounding box information of polygon graphics can be read, which can reduce the storage space required for reading the layout and improve the computational performance, thereby improving the efficiency and quality of layout graphic matching.
[0048] Details of one or more embodiments of the present application are set forth in the following drawings and description to make other features, objects, and advantages of the present application more concise and understandable. BRIEF DESCRIPTION OF THE DRAWINGS
[0049] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments and descriptions thereof of the present application are used to explain the present application and do not constitute an improper limitation of the present application. In the drawings:
[0050] Figure 1 It is a hardware structure block diagram of a terminal for the layout matching method in an embodiment;
[0051] Figure 2 It is a flowchart of the layout matching method in an embodiment;
[0052] Figure 3 It is a flowchart of the layout matching method in a preferred embodiment;
[0053] Figure 4 It is a schematic diagram of a matching template in a preferred embodiment;
[0054] Figure 5Schematic diagram for determining a first reference figure in a filtering template in a preferred embodiment;
[0055] Figure 6 Structural block diagram of a layout matching device in an embodiment.
[0056] Reference numerals: 102, processor; 104, memory; 106, transmission device; 108, input / output device; 301, reference polygon A; 302, reference polygon B; 61, graphic acquisition module; 62, template creation template; 63, filtering module; 64, verification module. Detailed implementation manners
[0057] For a clearer understanding of the purpose, technical solution and advantages of the present application, the present application will be described and illustrated below with reference to the accompanying drawings and embodiments.
[0058] Unless otherwise defined, the technical terms or scientific terms involved in the present application shall have the general meanings understood by those with ordinary skills in the technical field to which the present application belongs. In the present application, words such as "a", "one", "a kind of", "the", "these" and the like do not indicate a limitation in quantity, and they can be singular or plural. The terms "including", "comprising", "having" and any variants thereof involved in the present application are intended to cover non-exclusive inclusion; for example, a process, method, system, product or device including a series of steps or modules (units) is not limited to the listed steps or modules (units), but may include unlisted steps or modules (units), or may include other steps or modules (units) inherent in these processes, methods, products or devices. The terms "connected", "coupled" and the like involved in the present application do not limit to physical or mechanical connections, but may include electrical connections, whether direct or indirect. The "multiple" involved in the present application means two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, "A and / or B" may represent: A exists alone, A and B exist simultaneously, and B exists alone. Usually, the character " / " indicates that the objects associated before and after are in an "or" relationship. The terms "first", "second", "third" and the like involved in the present application only distinguish similar objects and do not represent a specific order for the objects.
[0059] The method embodiment provided in this embodiment can be executed on a terminal, a computer or a similar computing device. For example, running on a terminal Figure 1 is the hardware structural block diagram of the terminal of the layout matching method in this embodiment. As Figure 1 shown, the terminal may include one or more ( Figure 1A processor 102 (only one is shown) and a memory 104 for storing data. The processor 102 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA. The above terminal may further include a transmission device 106 for communication functions and an input / output device 108. Those of ordinary skill in the art can understand that Figure 1 The structure shown is only schematic and does not limit the structure of the above terminal. For example, the terminal may further include more or fewer components than Figure 1 shown, or have a different configuration from Figure 1 that shown.
[0060] The memory 104 can be used to store computer programs. For example, software programs and modules of application software, such as the computer program corresponding to the layout matching method in this embodiment. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, that is, implements the above method. The memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memories. In some instances, the memory 104 may further include a memory remotely provided with respect to the processor 102, and these remote memories can be connected to the terminal through a network. Examples of the above network include, but are not limited to, the Internet, an enterprise intranet, a local area network, a mobile communication network, and combinations thereof.
[0061] The transmission device 106 is used to receive or send data via a network. The above network includes a wireless network provided by the communication provider of the terminal. In one instance, the transmission device 106 includes a network adapter (abbreviated as NIC), which can be connected to other network devices through a base station and thus can communicate with the Internet. In one instance, the transmission device 106 may be a radio frequency (RF) module, which is used to communicate with the Internet wirelessly.
[0062] In this embodiment, a layout matching method is provided. Figure 2 is a flowchart of the layout matching method of this embodiment, as Figure 2 shown, and the process includes the following steps:
[0063] Step S210, obtain a matching template and a layout.
[0064] Specifically, a layout is a physical structure layout diagram of various different levels on a semiconductor device, and the patterns in the layout can be matched and recognized. The matching template includes patterns for matching and recognition, which can be specific patterns corresponding to specific structures or hot spot patterns, and can be determined according to the specific application scenario requirements. The present application does not specifically limit the patterns in the matching template. Among them, obtaining the matching template includes reading the bounding box of the matching template and the information of each pattern in the template, mainly some dimension and position information.
[0065] Step S220, establish a verification template and at least one filtering template based on the matching template; the filtering template includes the pattern information of some patterns in the matching template; the verification template includes the pattern information of all patterns in the matching template.
[0066] Specifically, the filtering template is used to perform a preliminary match on the layout. Since there are many patterns (polygonal patterns) in the matching template, in order to improve the matching efficiency, it is considered to first narrow the matching range or the number of matching objects, so the filtering template is established. The verification template is used to further confirm the accuracy of the preliminary match. Save the established filtering template and verification template. When performing the same matching task again, directly use the pre-stored filtering template and verification template without repeating the establishment of the filtering template and verification template.
[0067] Step S230, based on the filtering template, filter the patterns in the layout to screen out the first pattern that matches the filtering template.
[0068] Specifically, based on at least one filtering template, filter the patterns in the layout one or more times. In the case of multiple filtering templates, as the number of filtering times increases, gradually increase the number of pattern matches. Among them, the first filtering is only based on the first filtering template for matching, and on the basis of the previous filtering, perform matching based on the second filtering template, or even the third filtering template, to screen out the first pattern that matches multiple filtering templates.
[0069] Step S240, based on the verification template, verify the first pattern to screen out the pattern that matches the verification template as the final matching result.
[0070] Specifically, use the verification template to match all the first patterns, and the first patterns that pass the match are the final matching results.
[0071] The layout matching method of this embodiment reduces the number of polygons and potential matching windows that need to be concerned during the matching process through the combined use of the filtering template and the verification template, and reduces the complexity of matching using the matching template.
[0072] It should be noted that in this embodiment, steps S210, S220, and S230 do not have an absolute sequence. The execution order can be determined as needed based on specific application scenario requirements. For example, step S210 of obtaining the matching template and the layout can be executed first, then step S220 of verifying the template and establishing the filtering template, and then step S230 of filtering and screening the graphics in the layout based on the filtering template; for example, step S210 of obtaining the matching template can also be executed first, then step S220 of verifying the template and establishing the filtering template, and then during the process of executing step S210 of obtaining the layout, step S230 of filtering and screening the graphics in the read layout based on the filtering template can be performed simultaneously.
[0073] In this embodiment, based on step S210, obtaining the layout includes: obtaining the bounding box information of the polygons in the layout.
[0074] Specifically, during the process of reading the layout to be matched, all the polygons in the layout are read one by one in sequence and the bounding box information of the polygons is recorded; by only reading the bounding box information of the polygons during the layout reading stage, the storage space required for reading the layout is reduced. In this embodiment, the minimum and maximum horizontal and vertical coordinates of the midpoint of the polygon are selected as the bounding box information. In other embodiments, according to different application scenario requirements, the coordinate information of other points in the polygon can also be used as the bounding box information for recording, and the present application does not make specific limitations. Even in some specific application scenarios, other position information of the polygon can be used to replace the bounding box information for reading, so as to simplify the reading of the polygon information in the layout and reduce the storage space required for reading the layout.
[0075] In this embodiment, based on step S220, establishing at least one filtering template based on the matching template specifically includes:
[0076] Step S221, determining at least one reference polygon in the matching template as the first reference graphic; the reference polygon is a polygon in the matching template that does not contact the bounding box of the matching template.
[0077] Step S222, establishing the first filtering template based on the graphic information of the first reference graphic, where the graphic information of the first reference graphic includes the bounding box information of the first reference graphic.
[0078] Specifically, record the position of the bounding box of the first reference graphic relative to the template boundary, including the horizontal and vertical coordinate information of the center of the bounding box of the first reference graphic with the lower left corner of the template boundary as the origin, so as to serve as the first filtering template.
[0079] If there are multiple reference polygons in the matching template, in one implementation, select one reference polygon as the first reference figure, and the first reference figure can be selected according to the layout to be matched subsequently. For example, a reference polygon that appears less frequently in the layout can be selected as the first reference figure to reduce the computational workload. In other implementations, two reference polygons can also be used as the first reference figure, and the number of reference figures in the filtering template can be set according to the actual situation.
[0080] In this embodiment, based on step S220, at least one filtering template is established based on the matching template, and specifically further includes:
[0081] Step S223, determine at least one polygon in the matching template that does not contact the bounding box as the internal polygon.
[0082] Step S224, establish a second filtering template based on the graphic information of the internal polygon.
[0083] Specifically, record the positions of the bounding boxes of multiple internal polygons in the matching template relative to the boundary of the matching template, including the horizontal and vertical coordinate information of the center of the bounding box of the internal polygon with the lower left corner of the template boundary as the origin, as the second filtering template. In a specific application scenario, all reference polygons in the matching template can be used as the internal polygons in the second filtering template, or other reference polygons in the matching template except the first reference figure can be used as the internal polygons in the second filtering template, and the present application does not make specific limitations.
[0084] In this embodiment, based on step S230, based on the filtering template, filter the graphics in the layout, and screen out the first graphics that match the filtering template, including:
[0085] Based on the filtering template, after filtering the graphics in the layout once and twice respectively, obtain the first graphics that match both the first filtering template and the second filtering template; among them, the first filtering is used for screening based on the first filtering template; the second filtering is used for screening based on the second filtering template.
[0086] In this embodiment, based on the first filtering template, filter the graphics in the layout once and twice respectively, and obtain the first graphics that match the filtering template, including:
[0087] Step S231, read each polygon in the layout as the target polygon one by one, specifically: read the minimum and maximum horizontal and vertical coordinates of the points in the target polygon as the bounding box information.
[0088] Step S232, match the target polygon with the first reference figure in the first filtering template:
[0089] Step S232-1, if the matching is successful, retain the target polygon, and based on the graphic information of the reference figure, establish at least one screening box containing the target polygon in the layout; the size of the screening box is the same as the bounding box of the matching template.
[0090] Specifically: when the size of the bounding box of the read target polygon is the same as that of the first reference figure bounding box, establish a screening box according to the recorded coordinate information of the first reference figure and the template boundary size. When it is necessary to match the mirror image and rotation of the template simultaneously, judge the possible transformation situations according to the bounding box direction, establish multiple screening boxes and record the transformation situations.
[0091] Step S232-2, if the matching fails, screen out the target polygon. Go back to step S231 to read a new polygon in the layout as the target polygon for processing until all polygons in the layout have been read and matched.
[0092] Step S233, match the polygons within the screening box with the internal polygons in the second filtering template:
[0093] Step S233-1, if the matching is successful, judge the figure within the screening box as the first figure.
[0094] Specifically, obtain the bounding box information of the polygon within the screening box through the coordinates of the screening box in the layout, and judge whether the types and quantities of the internal polygon bounding boxes in the screening box are the same as those of the internal polygon bounding boxes in the second filtering template. If the matching is successful, retain the screening box, that is, judge the figure within the screening box as the first figure.
[0095] Step S233-2, if the matching fails, screen out the screening box.
[0096] In actual applications, there may be an extreme situation where there is no reference polygon in the matching template, and it is impossible to determine the first reference figure to establish the first filtering template and determine the internal polygon to establish the second filtering template. Other figures in the matching template can also be used to establish the filtering template. Specifically, in some other embodiments, step S220, establish at least one filtering template based on the matching template, specifically including:
[0097] Step S321, determine multiple reference edges in the matching template as the second reference figure.
[0098] Among them, the reference edge is the edge in the matching template that does not contact the bounding box of the matching template, so as to ensure that the second reference figure is a complete polygon that is not truncated by the template bounding box; avoid using incomplete polygons for filtering, which will increase the computational complexity. The graphic information of the second reference figure includes the size information and position information of the reference edge.
[0099] Step S322: Establish a third filtering template based on the graphic information of the second reference graphic.
[0100] Correspondingly, in some other embodiments, in step S230, based on the filtering template, the graphics in the layout are filtered, and the first graphics matching the filtering template are screened out. Specifically, it includes:
[0101] Step S331: Read the edges in the layout as target edges.
[0102] Step S332: Match the target edges with the second reference graphic in the filtering template.
[0103] Step S332-1: If the match is successful, retain the target edges, and based on the graphic information of the second reference graphic, establish at least one screening box containing the target edges in the layout; the size of the screening box is the same as the bounding box of the matching template; determine the graphics within the screening box as the first graphics.
[0104] Step S332-1: If the match fails, screen out the target edges.
[0105] In this embodiment, in step S240, based on the verification template, the first graphics are verified, and the graphics matching the verification template are screened out as the final matching result, including:
[0106] By performing exclusive OR on the graphics of the verification template and the graphics within the screening box, if the exclusive OR result is the same, it means the match is successful, and the graphics within the screening box are output as the final matching result or are highlighted for other prompts. If rotation and mirroring situations need to be considered, the graphics of the verification template can be transformed according to the transformation of the screening box and then the exclusive OR operation is performed.
[0107] In this embodiment, after two filtrations through the first filtering template and the second filtering template, the final verification is performed. For specific reference, please refer to Figure 3 the flowchart schematic diagram; or in the case of extreme matching models, after filtering through the third filtering template, the final verification is performed. Multiple screenings improve the efficiency of layout graphic matching. As the complexity of integrated circuit design increases, the geometric shapes and the number of features in the layout increase significantly. In the scenario of very large datasets and complex layout designs, the performance advantages of the layout matching method in this embodiment will be more obvious.
[0108] It should be noted that in this embodiment, based on the order of magnitude of the dataset and the complexity of the layout in the application scenario, a layout matching process of three or two screenings is adopted. However, in other application scenarios, according to specific requirements, more filtering templates can be designed to implement more screening processes, and this application does not make specific limitations.
[0109] In some of these embodiments, the graphic information includes the bounding box information of a polygon; the bounding box information includes the size information and position information of the bounding box.
[0110] Among them, the graphic information of the first reference graphic further includes the relative position information of the bounding box of the first reference graphic and the matching template; the relative position information includes the coordinate information of the center of the bounding box of the first reference graphic with a preset vertex in the matching template as the origin.
[0111] The graphic information of the second reference graphic further includes the relative position information of the reference graphic and the matching template; the relative position information includes the coordinate information of the positioning point of the reference graphic with a preset vertex in the matching template as the origin.
[0112] In some of these embodiments, the matching template includes a fuzzy matching graphic; a verification template including the fuzzy matching graphic and / or at least one filtering template including the fuzzy matching graphic is established based on the matching template; wherein, the fuzzy matching graphic refers to a graphic that meets the matching requirements within a preset graphic range.
[0113] Specifically, the fuzzy matching implements the same calculation process as in the normal case in filtering and verification. When matching graphics, perform exclusive OR on the graphics to be matched, and if the exclusive OR result is within the tolerance range, it is considered a match.
[0114] The following describes and illustrates this embodiment through preferred embodiments.
[0115] S1. Matching template reading: Obtain a preset matching template, and read the graphic information and template boundary information in the matching template. The graphic information includes the bounding box information of a polygon; the bounding box information includes the size information and position information of the bounding box. The matching template is as Figure 4 shown. In this embodiment, the bounding box of the matching template is a rectangle, but in other embodiments, a matching template with a bounding box of other regular or irregular shapes can also be used, and the present application does not make specific limitations on the shape of the bounding box.
[0116] S2. Filtering template establishment: Record the graphic information of the reference polygon in the matching template. The reference polygon is a polygon whose bounding box does not intersect with the template boundary, such as Figure 5 the reference polygon A301 and the reference polygon B302 in. Select one of them as the first reference graphic. For example, specify the reference polygon B302 as the first reference graphic to complete the establishment of the first filtering template.
[0117] Take the polygons in the matching template that do not contact the bounding box as internal polygons, that is, take the reference polygon A301 and the reference polygon B302 as internal polygons to complete the establishment of the second filtering template.
[0118] S3. Verification template establishment: Record the graphic information of all polygons in the matching template. All polygons include those whose bounding boxes do not intersect with the template boundary and those whose bounding boxes intersect with the template boundary.
[0119] S4. Layout reading and primary filtering: Obtain the layout, sequentially read all polygons in the layout and record the polygon bounding box information. If the current bounding box in the layout is the same as the first reference graphic bounding box, establish a screening box according to the position information of the current bounding box. The size of the screening box is the same as the template boundary size.
[0120] S5. Secondary filtering: Check whether all the screening boxes established in step S4 meet the requirements of the second filtering template. The requirements include containing the correct number of internal polygon bounding boxes (the bounding boxes of reference polygon A301 and reference polygon B302), and having no other internal polygons. Retain the screening boxes that meet the requirements.
[0121] S6. Screening box reading: Read the polygon information within the screening boxes obtained in step S5 in the layout.
[0122] S7. Final verification: Use the verification template established in step S3 to match the internal graphics of all the screening boxes read in step S6. The screening boxes with successful matches are the final matching results.
[0123] Through this preferred embodiment, the problems of large computational amount and low matching efficiency in layout matching are solved, the storage space required for reading the layout can be reduced, the computational performance can be improved, and thus the efficiency and quality of layout graphic matching can be enhanced.
[0124] It should be noted that the steps shown in the above process or the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. And although the logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in a different order than here.
[0125] In this embodiment, a layout matching device is also provided. This device is used to implement the above embodiment and preferred implementation manners, and those that have been described will not be elaborated again. The following terms such as "module", "unit", "sub-unit", etc. can be a combination of software and / or hardware that can achieve a predetermined function. Although the device described in the following embodiments is preferably implemented in software, implementation in hardware, or a combination of software and hardware is also possible and contemplated.
[0126] Figure 6 is the structural block diagram of the layout matching device in this embodiment. As Figure 6 shown, this device includes: a graphic acquisition module 61, a template establishment template 62, a filtering module 63, and a verification module 64.
[0127] A graphic acquisition module 61, configured to acquire a matching template and a layout.
[0128] A template establishment module 62, configured to establish a verification template and at least one filtering template based on the matching template; the filtering template includes graphic information of some graphics in the matching template; the verification template includes graphic information of all graphics in the matching template.
[0129] A filtering module 63, configured to filter graphics in the layout based on the filtering template, and screen out first graphics that match the filtering template.
[0130] A verification module 64, configured to verify the first graphics based on the verification template, and screen out graphics that match the verification template as the final matching result.
[0131] In some embodiments, the graphic acquisition module 61 is configured to acquire bounding box information of polygons in the layout.
[0132] In some embodiments, the template establishment module 62 is further configured to determine at least one reference polygon in the matching template as a first reference graphic; establish a first filtering template based on the graphic information of the first reference graphic; wherein, the reference polygon is a polygon in the matching template that does not contact the bounding box of the matching template; the graphic information of the first reference graphic includes the bounding box information of the first reference graphic.
[0133] In some embodiments, the template establishment module 62 is further configured to determine at least one polygon in the matching template that does not contact the bounding box as an internal polygon; establish a second filtering template based on the graphic information of the internal polygon.
[0134] In some embodiments, the filtering module 63 is further configured that the filtering template includes the first filtering template and the second filtering template; filter the graphics in the layout in sequence based on the first filtering template and the second filtering template, and obtain first graphics that match both the first filtering template and the second filtering template after secondary screening.
[0135] In some embodiments, the filtering module 63 is further configured to read each polygon in the layout as a target polygon one by one; match the target polygon with the first reference graphic in the first filtering template: if the match is successful, retain the target polygon, and based on the graphic information of the first reference graphic, establish at least one screening box containing the target polygon in the layout according to the position of the target polygon; the size of the screening box is the same as the bounding box of the matching template; match the polygons within the screening box with the internal polygons in the second filtering template: if the match is successful, determine the graphics within the screening box as the first graphics.
[0136] In some of these embodiments, the template creates template 62, which is also used to determine multiple reference edges in the matching template as the second reference figure; a third filtering template is created based on the graphic information of the second reference figure; wherein, the reference edge is an edge in the matching template that does not contact the bounding box of the matching template; the graphic information of the second reference figure includes the dimension information and position information of the reference edge.
[0137] In some of these embodiments, the filtering module 63 is also used to read the edges in the layout as target edges; match the target edges with the second reference figures in the filtering template: if the match is successful, the target edges are retained, and at least one screening box containing the target edges is created in the layout based on the position of the target edges according to the graphic information of the second reference figure; the size of the screening box is the same as the bounding box of the matching template; the figures within the screening box are determined as the first figures.
[0138] In some of these embodiments, the graphic information includes the bounding box information of the polygon; the bounding box information includes the dimension information and position information of the bounding box; wherein, the graphic information of the first reference figure further includes the relative position information of the bounding box of the first reference figure and the matching template; the relative position information includes the coordinate information of the center of the bounding box of the first reference figure with a preset vertex in the matching template as the origin; the graphic information of the second reference figure further includes the relative position information of the second reference figure and the matching template; the relative position information includes the coordinate information of the positioning point of the second reference figure with a preset vertex in the matching template as the origin.
[0139] In some of these embodiments, the matching template includes fuzzy matching figures; a verification template including fuzzy matching figures and / or at least one filtering template including fuzzy matching figures is created based on the matching template; wherein, the fuzzy matching figure is a figure that meets the matching requirements within a preset graphic range.
[0140] It should be noted that the above-mentioned various modules can be functional modules or program modules, which can be implemented either by software or by hardware. For the modules implemented by hardware, the above-mentioned various modules can be located in the same processor; or the above-mentioned various modules can also be located in different processors in any combined form.
[0141] In this embodiment, a computer device is further provided, including a memory and a processor. A computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.
[0142] Optionally, the above computer device may further include a transmission device and input / output devices, wherein, the transmission device is connected to the above processor, and the input / output devices are connected to the above processor.
[0143] It should be noted that the specific examples in this embodiment can refer to the examples described in the above embodiments and optional implementation manners, and will not be elaborated herein.
[0144] In addition, in combination with the layout matching method provided in the above embodiments, a storage medium can also be provided in this embodiment to implement it. A computer program is stored on the storage medium; when the computer program is executed by a processor, any one of the layout matching methods in the above embodiments is implemented.
[0145] It should be understood that the specific embodiments described here are only used to explain this application, rather than to limit it. According to the embodiments provided in this application, all other embodiments obtained by those of ordinary skill in the art without creative efforts fall within the protection scope of this application.
[0146] Obviously, the drawings are only some examples or embodiments of this application. For those of ordinary skill in the art, this application can also be applied to other similar situations based on these drawings without creative efforts. Additionally, it can be understood that although the work done during this development process may be complex and time-consuming, for those of ordinary skill in the art, certain design, manufacturing, or production changes based on the technical content disclosed in this application are only conventional technical means and should not be regarded as insufficient disclosure of this application.
[0147] The term "embodiment" in this application means that the specific features, structures, or characteristics described in combination with the embodiment can be included in at least one embodiment of this application. The phrase appears in various positions in the specification and does not necessarily mean the same embodiment, nor does it mean being independent or alternative to other embodiments and mutually exclusive. Those of ordinary skill in the art can clearly or implicitly understand that the embodiments described in this application can be combined with other embodiments without conflict.
[0148] The above-described embodiments only represent several implementation manners of this application. Their descriptions are relatively specific and detailed, but should not be construed as limiting the scope of patent protection. It should be noted that for those of ordinary skill in the art, without departing from the concept of this application, several modifications and improvements can still be made, and these all belong to the protection scope of this application. Therefore, the protection scope of this application should be subject to the appended claims.
Claims
1. A layout matching method, characterized in that: The method comprises: Get matching templates and layouts; A verification template and at least one filtering template are established based on the matching template; the filtering template includes graphic information of a portion of the graphics in the matching template; the verification template includes graphic information of all the graphics in the matching template; Based on the filtering template, the graphics in the layout are filtered to obtain a first graphic matching the filtering template; Based on the verification template, the first graphic is verified, and a graphic matching the verification template is screened and obtained as a final matching result; Wherein, the at least one filtering template includes a first filtering template and a second filtering template, or the at least one filtering template includes a third filtering template; The first filtering template is established based on the graphic information of the first reference graphic; the first reference graphic includes at least one polygon in the matching template that does not touch the bounding box of the matching template; The second filtering template is established based on graphic information of an internal polygon; the internal polygon includes at least one polygon in the matching template that does not touch the bounding box of the matching template, and the internal polygon is different from the first reference graphic; The third filtering template is established based on the graphic information of the second reference graphic; the second reference graphic includes a plurality of edges in the matching template that are not in contact with the boundary box of the matching template.
2. The layout matching method according to claim 1, characterized in that: Establishing at least one filtering template based on the matching template includes: Determining at least one reference polygon in the matching template as a first reference graphic; The reference polygon is a polygon in the matching template that does not touch the bounding box of the matching template; and the graphic information of the first reference graphic includes the bounding box information of the first reference graphic.
3. The layout matching method according to claim 1, characterized in that: Based on the filtering template, filtering the graphics in the layout to obtain a first graphic matching the filtering template includes: The filtering template includes a first filtering template and a second filtering template; Based on the first filter template and the second filter template, the graphics in the layout are filtered in sequence, and after secondary screening, a first graphic matching both the first filter template and the second filter template is obtained.
4. The layout matching method according to claim 3, characterized in that: Based on the first filtering template and the second filtering template, the graphics in the layout are filtered in sequence, and after secondary screening, a first graphic matching both the first filtering template and the second filtering template is obtained, including: Reading polygons in the layout one by one as target polygons; Matching the target polygon with the first reference graphic in the first filtering template: if the match is successful, retaining the target polygon, and establishing at least one filter box containing the target polygon based on the position of the target polygon in the layout according to the graphic information of the first reference graphic; the size of the filter box is the same as the bounding box of the matching template; The polygon in the filter box is matched with the internal polygon in the second filter template: if the match is successful, the figure in the filter box is determined to be the first figure.
5. The layout matching method according to claim 2, characterized in that: Establishing at least one filtering template based on the matching template includes: Determining a plurality of reference edges in the matching template as second reference graphics; The reference edge is an edge in the matching template that is not in contact with the boundary box of the matching template; and the graphic information of the second reference graphic includes size information and position information of the reference edge.
6. The layout matching method according to claim 5, characterized in that: Based on the filtering template, filtering the graphics in the layout to obtain a first graphic matching the filtering template includes: Reading an edge in the layout as a target edge; The target edge is matched with the second reference graphic in the filtering template: if the match is successful, the target edge is retained, and according to the graphic information of the second reference graphic, at least one filter box containing the target edge is established in the layout based on the position of the target edge; the size of the filter box is the same as the bounding box of the matching template; and the graphic in the filter box is judged to be the first graphic.
7. The layout matching method according to claim 5, characterized in that: The graphic information includes bounding box information of the polygon; the bounding box information includes size information and position information of the bounding box; The graphic information of the first reference graphic also includes relative position information between the bounding box of the first reference graphic and the matching template; the relative position information includes coordinate information of the center of the bounding box of the first reference graphic with a preset vertex in the matching template as the origin; The graphic information of the second reference graphic also includes relative position information between the second reference graphic and the matching template; the relative position information includes coordinate information of a positioning point of the second reference graphic with a preset vertex in the matching template as the origin.
8. The layout matching method according to claim 1, characterized in that: The matching template includes a fuzzy matching graph; Establishing a verification template including a fuzzy matching pattern and / or at least one filtering template including a fuzzy matching pattern based on the matching template; The fuzzy matching graph refers to a graph that meets the matching requirements within a preset graph range.
9. The layout matching method according to claim 1, characterized in that: Acquiring the layout includes: acquiring bounding box information of polygons in the layout.
10. A layout matching device, characterized in that: The device comprises: Graphics acquisition module, used to obtain matching templates and layouts; A template establishment template, used to establish a verification template and at least one filtering template based on the matching template; the filtering template includes the graphic information of part of the graphics in the matching template; the verification template includes the graphic information of all the graphics in the matching template; Wherein, the at least one filtering template includes a first filtering template and a second filtering template, or the at least one filtering template includes a third filtering template; The first filtering template is established based on the graphic information of the first reference graphic; the first reference graphic includes at least one polygon in the matching template that does not touch the bounding box of the matching template; The second filtering template is established based on graphic information of an internal polygon; the internal polygon includes at least one polygon in the matching template that does not touch the bounding box of the matching template, and the internal polygon is different from the first reference graphic; The third filtering template is established based on the graphic information of the second reference graphic; the second reference graphic includes a plurality of edges in the matching template that are not in contact with the bounding box of the matching template; A filtering module, used to filter the graphics in the layout based on the filtering template, and select a first graphic matching the filtering template; The verification module is used to verify the first graphic based on the verification template, and screen out the graphic matching the verification template as the final matching result.
11. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 9 are implemented.
12. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 9 are implemented.
Citation Information
Patent Citations
Graph matching method and system for super-large-scale layout
CN118135261A