Method, device, equipment, storage medium and program product for layout checking

CN122528799BActive Publication Date: 2026-10-20QUANXIN INTELLIGENT MFG TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202611015120.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-07-08
Publication Date
2026-10-20
Estimated Expiration
2046-07-08

AI Technical Summary

Technical Problem

[0003]在对版图进行规则检查的过程中,版图检查的速度会影响检查的整体效率以及芯片的生产周期

Benefits of technology

[0010]应当理解,本内容部分中所描述的内容并非旨在限定本文中的示例的关键特征或重要特征,也不用于限制方案的范围。其它特征将通过以下的描述而变得容易理解。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122528799B_ABST
    Figure CN122528799B_ABST
Patent Text Reader

Abstract

Provided are a method, device, equipment, storage medium and program product for layout checking. The method comprises: obtaining a plurality of checking rules for checking a layout; determining at least one rule group based on the type of each of the plurality of checking rules, wherein each rule group in the at least one rule group comprises at least one checking rule in the plurality of checking rules, and the checking rules belonging to the same rule group are directed to the same layout attribute; and for each rule group in the at least one rule group, executing the checking rules included in the rule group based on the measurement result of the layout attribute directed to by the rule group, the measurement result being obtained by measuring the layout attribute directed to by the rule group.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The examples in this article generally relate to the field of integrated circuits, and in particular to methods, apparatus, electronic devices, computer-readable storage media, and computer program products for layout inspection. Background Technology

[0002] As the technology nodes of integrated circuit manufacturing processes gradually decrease and the scale of chip integration continues to increase, the density and scale of patterns in mask layouts have increased significantly, making rule checking of the layout increasingly important in the chip manufacturing process.

[0003] During the rule checking process on the layout, the speed of the layout check affects the overall efficiency of the check and the chip production cycle. A more efficient method for performing rule checks on the layout is desired. Summary of the Invention

[0004] In a first aspect, a method for layout inspection is provided. The method includes: acquiring a plurality of inspection rules for inspecting the layout; determining at least one rule group based on the types of the plurality of inspection rules, wherein each rule group in the at least one rule group includes at least one inspection rule from the plurality of inspection rules, and the inspection rules belonging to the same rule group target the same layout attribute; and for each rule group in the at least one rule group, executing the inspection rules included in the rule group based on measurement results of the layout attribute targeted by the rule group, the measurement results being obtained by measuring the layout attribute targeted by the rule group of the layout.

[0005] In a second aspect, an apparatus for layout inspection is provided. The apparatus includes: an inspection rule acquisition module configured to acquire a plurality of inspection rules for inspecting a layout; a rule group determination module configured to determine at least one rule group based on the types of the plurality of inspection rules, wherein each rule group in the at least one rule group includes at least one inspection rule from the plurality of inspection rules, and the inspection rules belonging to the same rule group target the same layout attribute; and a layout inspection module configured to, for each rule group in the at least one rule group, execute the inspection rules included in the rule group based on measurement results of the layout attribute targeted by the rule group, the measurement results being obtained by measuring the layout attribute targeted by the rule group of the layout.

[0006] In a third aspect, an electronic device is provided. The device includes at least one processor; and at least one memory coupled to the at least one processor and storing instructions for execution by the at least one processor. When executed by the at least one processor, the instructions cause the device to perform the method of the first aspect.

[0007] In a fourth aspect, a computer-readable storage medium is provided. The computer-readable storage medium stores computer-executable instructions that can be executed by a processor to implement the method of the first aspect.

[0008] In a fifth aspect, a computer program product is provided, which is tangibly stored in a computer storage medium and includes computer-executable instructions that, when executed by a device, cause the device to perform the method of the first aspect.

[0009] This approach reduces repetitive measurement operations on the same layout attributes, improves the efficiency of layout inspection, and shortens the chip production cycle.

[0010] It should be understood that the content described in this section is not intended to limit the key or important features of the examples in this article, nor is it intended to restrict the scope of the solution. Other features will become readily apparent from the following description. Attached Figure Description

[0011] The above and other features, advantages, and aspects of the various examples herein will become more apparent when taken in conjunction with the accompanying drawings and the following detailed description. In the accompanying drawings, the same or similar reference numerals denote the same or similar elements, wherein: Figure 1 A schematic diagram of the example environment is shown; Figure 2A An example architecture for layout inspection is shown according to some embodiments; Figure 2B Examples of inspection rules and their corresponding layers according to some embodiments are shown; Figure 3 A flowchart of an example process for layout inspection according to some embodiments is shown; Figure 4 A schematic structural block diagram of an example apparatus for layout inspection according to some embodiments is shown; and Figure 5 A block diagram of an electronic device capable of implementing multiple illustrative embodiments is shown. Detailed Implementation

[0012] The examples in this document will now be described in more detail with reference to the accompanying drawings. While some examples are shown in the drawings, it should be understood that solutions can be implemented in various forms and should not be construed as limited to the examples presented herein. Rather, these examples are provided to provide a more thorough and complete understanding of the solutions. It should be understood that the drawings and examples in this document are for illustrative purposes only and are not intended to limit the scope of protection of the solutions.

[0013] In the description of the examples in this document, the term "including" and similar terms should be understood as open inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "an example" or "the example" should be understood as "at least one example". The term "some examples" should be understood as "at least some examples". Other explicit and implicit definitions may also be included below. The terms "first", "second", etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0014] It should be noted that, unless explicitly stated otherwise, performing a step in response to A does not mean that the step is performed immediately after A, but may include one or more intermediate steps.

[0015] The examples in this document may involve user data, data acquisition, and / or use. All of these aspects comply with relevant laws, regulations, and rules. In the examples, all data collection, acquisition, processing, manipulation, forwarding, and use are conducted with the user's knowledge and confirmation. Accordingly, when implementing each example, the type, scope of use, and usage scenarios of any data or information that may be involved should be communicated to the user and their authorization obtained through appropriate means, in accordance with relevant laws and regulations. The specific methods of notification and / or authorization can vary depending on the actual situation and application scenario; the scope of the solution is not limited in this regard.

[0016] In this manual and the sample solutions, any processing of personal information will be conducted only under legal grounds (such as obtaining the consent of the data subject or being necessary for the performance of a contract) and will only be carried out within the scope stipulated or agreed upon. A user's refusal to process personal information beyond what is necessary for basic functions will not affect the user's use of basic functions.

[0017] As used in this document, the term "layout" refers to data used to characterize the graphic layout in an integrated circuit, typically including but not limited to mask layouts, layout graphics, etc., which may be graphics represented by layout data files such as Graphic Design System II (GDSII) files, Open ArtworkSystem Interchange Standard (OASIS) files, or other data files adapted to the production stage.

[0018] The term "inspection rule" as used in this article refers to the rules used to inspect a layout, which typically include, but are not limited to, inspection conditions defined for specific attributes of the layout, such as width inspection rules, spacing inspection rules, area inspection rules, overlap inspection rules, and corner-to-corner inspection rules.

[0019] The term "measurement" as used in this article refers to the operation of measuring the layout attributes of graphics in a layout to obtain corresponding attribute information. The attribute information obtained by measurement is also referred to as "measurement result" in this article.

[0020] As mentioned above, when performing rule checks on a layout, various types of check rules can be defined for different attributes of graphics within the layout (such as width, spacing, and area), and the number of check rules of the same type can be quite large. In some schemes, a measurement is performed on the graphics in the layout each time a check rule is executed. Even if multiple check rules target the same layout attribute, the attribute will be measured repeatedly. When the number of check rules is large, such repetitive measurement operations will lead to a lot of redundant calculations, consume more computing resources, and prolong the overall time of layout checks.

[0021] In view of this, an improved scheme for layout inspection is proposed. According to this scheme, multiple inspection rules for inspecting the layout are obtained. Based on the types of each of the multiple inspection rules, at least one rule group is determined. Each rule group in the at least one rule group includes at least one inspection rule from the multiple inspection rules, and the inspection rules belonging to the same rule group target the same layout attribute. The layout is inspected group by group according to the at least one rule group. Through this scheme, for the layout attribute targeted by the same rule group, only one measurement is needed for multiple inspection rules within that rule group to share, thereby reducing repeated measurement operations on the same layout attribute, reducing the computational overhead in the layout inspection process, and improving the operational efficiency of layout inspection.

[0022] The following describes various examples of this scheme in further detail with reference to the accompanying drawings.

[0023] Figure 1 A schematic diagram of example environment 100 is shown. (e.g.) Figure 1 As shown, example environment 100 may include electronic device 110.

[0024] In this example environment 100, electronic device 110 can acquire layout 101 and inspection rules 102 for inspecting layout 101. Layout 101 may be data characterizing the graphical layout of an integrated circuit, and inspection rules 102 may include multiple inspection rules. Electronic device 110 can run an application that supports layout inspection; this application can be any suitable type of application for layout inspection, including but not limited to Electronic Design Automation (EDA) tools, Mask Rule Check (MRC) tools, or other suitable applications. Electronic device 110 can perform an inspection on layout 101 based on inspection rules 102 and output inspection results 112.

[0025] Electronic device 110 may be a terminal device and / or a server. The terminal device may be any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, handheld computers, portable gaming terminals, VR / AR devices, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination of the foregoing, including accessories and peripherals of these devices or any combination thereof. In some embodiments, electronic device 110 may also support any type of user-facing interface (such as "wearable" circuitry).

[0026] A server can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks, and big data and artificial intelligence platforms. Servers can also include computing systems / servers, such as mainframes, edge computing nodes, and computing devices in cloud environments, etc.

[0027] It should be understood that the electronic device 110 can be implemented in different ways. In some examples, the electronic device 110 can be implemented as a terminal device, which independently performs the layout checking method. In other examples, the electronic device 110 can be implemented as a server, which independently performs the layout checking method; for example, the server can provide background services for applications in the terminal device that support layout checking. In still other examples, the layout checking method can be performed collaboratively by the terminal device and the server; for example, the terminal device performs one part of the operation while the server performs another part, and the terminal device and the server can exchange data through a communication connection established via wired or wireless means. The scope of the examples herein is not limited in this respect.

[0028] It should be understood that the structure and function of the various elements in environment 100 are described for illustrative purposes only and do not imply any limitation on the scope of the scheme. The example will continue to be described below with reference to the accompanying drawings.

[0029] Figure 2A A schematic diagram of an example architecture 200A for layout inspection according to some embodiments is shown. The example architecture 200A can be implemented, for example, in... Figure 1 The electronic device shown is located at 110. (As shown in the image) Figure 2A As shown, the example architecture 200A may involve a grouping unit 210, a sorting unit 220, and an inspection unit 230.

[0030] Electronic device 110 can acquire inspection rules 102 for inspecting the layout. As shown, inspection rules 102 may include multiple inspection rules such as inspection rule 1, inspection rule 2, ..., inspection rule N, where N is any suitable positive integer. Inspection rules 102 can be provided to grouping unit 210. Grouping unit 210 can determine at least one rule group 212 (e.g., ...) based on the types of the multiple inspection rules in inspection rules 102. Figure 2A As shown, at least one rule group 212 may include rule group 1, rule group 2, ..., rule group K, where K is any suitable positive integer. The check rules belonging to the same rule group target the same layout attributes.

[0031] In some embodiments, the name of each inspection rule may indicate the type of the corresponding inspection rule. The type of inspection rule may refer to the category of inspection rules distinguished by the layout attribute they target or the inspection operation they perform. For example, inspection rule 102 may include inspection rule A named "Width Check," inspection rule B named "Spacing Check," and inspection rule C named "Area Check," whose types may be width type, spacing type, and area type, respectively. Grouping unit 210 may determine at least one rule group 212 based on the names of the multiple inspection rules in inspection rule 102 by identifying inspection rules of the same type as belonging to the same rule group. A rule group is a collection of one or more inspection rules, and inspection rules belonging to the same rule group typically target the same layout attribute. In some examples, the type of the rule group corresponds to the type of the inspection rules included in the rule group. For example, if the inspection rules included in rule group A are all of type width, then the type of rule group A can be determined to be width type.

[0032] As an example, grouping unit 210 can first create rule group 1 based on the name of the first inspection rule, and then iterate through the subsequent inspection rules, moving inspection rules whose names indicate a type that matches the type of the first rule group into rule group 1. After completing the traversal of all inspection rules in inspection rule 102, grouping unit 210 assigns all inspection rules in inspection rule 102 that match rule group 1 to rule group 1. Grouping unit 210 can further perform similar grouping operations on the remaining inspection rules (i.e., inspection rules that do not belong to rule group 1) until all inspection rules have been grouped.

[0033] In this way, grouping unit 210 can quickly determine the type of inspection rules based on their names and group them accordingly, simplifying the grouping decision logic. Since the type can be determined based on the name, grouping unit 210 does not need to parse the inspection conditions of each inspection rule individually to determine the type, thereby reducing the computational overhead in the grouping process and shortening the time required for grouping. Of course, this is just an example. Grouping unit 210 can also group multiple inspection rules based on other information (e.g., rule inspection can include type labels, and grouping unit 210 can directly group multiple inspection rules based on type labels), or use other methods (e.g., parsing the inspection rules and grouping them based on the parsing results). This document does not limit this approach.

[0034] In some embodiments, the grouping unit 210 can sequentially traverse multiple inspection rules, and for each traversed inspection rule, if the type indicated by the name of the inspection rule is the same as the type corresponding to an already created rule group, determine that the inspection rule belongs to the already created rule group. The grouping unit 210 can also create a new rule group based on the inspection rule if the type indicated by the name of the inspection rule is different from the type corresponding to any already created rule group. For example, the grouping unit 210 can create rule group 1 based on the first traversed inspection rule. When traversing subsequent inspection rules, if the type of the inspection rule is the same as the type of any already created rule group, it is assigned to the corresponding rule group; if the type is different from any already created rule group, a new rule group is created based on the inspection rule, until all inspection rules have been traversed. In this way, the grouping unit 210 can group inspection rules in real time during a single traversal, without having to completely traverse a certain type before creating the next rule group. Since grouping can be completed in just one traversal, the number of times grouping unit 210 accesses multiple inspection rules is reduced, thereby reducing the computational overhead in the grouping process and shortening the time required for grouping.

[0035] In some examples, after grouping unit 210 determines at least one rule group 212, inspection unit 230 can directly perform a group-by-group inspection on layout 101 according to at least one rule group 212 and output inspection result 112. In some examples, after grouping unit 210 determines at least one rule group 212, sorting unit 220 can determine the correlation degree between different rule groups in at least one rule group 212 and adjust the order of at least one rule group based on the correlation degree to obtain at least one rule group 222 with adjusted order (e.g., ...). Figure 2AAs shown, at least one rule group 222 has an adjusted order (the arrangement order of rule groups in at least one rule group 222 has changed relative to at least one rule group 212). In some examples, the order of the rule groups in at least one rule group 222 before the adjustment can be based on the creation order of the rule groups. For example, if grouping unit 210 created rule group 1 first and then rule group 2, then rule group 1 can be in the order before rule group 2. In some examples, the position of different rule groups in the adjusted order is related to the correlation between different rule groups. For example, the position of different rule groups in at least one rule group 222 after the adjustment is related to the correlation between different rule groups. By way of example only, rule groups with high correlation in at least one rule group 222 can be adjacent in order. Inspection unit 230 can perform a group-by-group inspection on layout 101 according to at least one rule group 222 after the adjustment order and output inspection result 112. In this way, there are as many shareable layout attributes as possible between rule groups that are adjacent in order, which facilitates the reuse of measurement results between adjacent rule groups. Since measured layout attributes can be reused between adjacent rule groups, the number of repeated measurements of the layout attribute by the inspection unit 230 is further reduced, thereby further reducing the computational overhead of the processor and shortening the inspection time.

[0036] Regarding the specific method by which the sorting unit 220 performs the sorting, in some embodiments, each rule group in at least one rule group 212 targets at least one layout attribute. The sorting unit 220 can determine the correlation between different rule groups based on the degree of overlap between the at least one layout attribute targeted by each rule group in at least one rule group 212. A layout attribute can refer to a measurable attribute possessed by a graphic in the layout, typically including but not limited to the width of the graphic, the spacing between different graphics, and the area of ​​the graphic. A graphic is a geometric entity in the layout, which can include solid graphics, lines, cutout graphics, etc. As an example only, the width of a graphic can include the width of a line in the layout, the spacing between different graphics can include the spacing between different lines in the layout, and the area of ​​a graphic can include the area of ​​a cutout graphic, the area of ​​a line, the area of ​​a solid graphic, etc. Of course, this is just an example, and this document does not limit it. The degree of overlap can refer to the proportion or number of identical attributes among the layout attributes targeted by different rule groups. The correlation between rule groups increases with the increase of the degree of overlap.

[0037] For example, the more common the map attributes targeted by two rule groups, the higher the correlation between the two rule groups. For instance, if rule group A corresponds to the spacing attribute and rule group B corresponds to both width and spacing, since both rule groups A and B correspond to spacing, sorting unit 220 can determine that rule groups A and B are related. Similarly, if rule group C corresponds to the region attribute, since in some scenarios this attribute may need to be determined based on width and spacing, rule group C can be considered to approximately correspond to width and spacing. In this case, since rule group C and rule group A both correspond to spacing, sorting unit 220 can determine that rule group C and rule group B are related; furthermore, since both rule group C and rule group B correspond to spacing and width, sorting unit 220 can determine that rule groups C and rule group B are related. In this way, sorting unit 220 characterizes the correlation between rule groups based on the degree of overlap between the map attributes targeted by different rule groups, allowing rule groups with more shared attributes to be arranged closer together during sorting. Since the determination of the correlation degree directly corresponds to the number of shareable layout attributes, the sorting unit 220 can reuse the measurement results more fully after sorting them, thereby further reducing the amount of measurement calculation and reducing the computational overhead of the processor.

[0038] In some embodiments, taking at least one rule group 212 as including a first rule group and a second rule group, with the first rule group targeting a first map attribute and the second rule group targeting a second map attribute as an example, the sorting unit 220 can obtain a correlation table recording the attribute correlation between different map attributes, and determine the attribute correlation between the first map attribute and the second map attribute based on this correlation table. The sorting unit 220 can then determine the correlation between the first rule group and the second rule group based on this attribute correlation. The correlation table can record the attribute correlation between different map attributes. As an example, the attribute correlation between spacing and area can be 0.8; the attribute correlation between diagonal distance and spacing can be 0.6 (of course, this is just an example, and in reality, it can be any appropriate value). This correlation table can be fixed or fine-tuned by the user based on their specific needs. If rule group A corresponds to the spacing attribute and rule group B corresponds to the area attribute, since the correlation table indicates that the attribute correlation between the spacing attribute and the area attribute is 0.8, the sorting unit 220 can determine that the correlation between rule group A and rule group B is 0.8. In this way, the sorting unit 220 can quickly determine the correlation between different rule groups by querying a pre-maintained correlation table. Since the correlation can be obtained directly by looking up the table, the sorting unit 220 does not need to recalculate the correlation between attributes each time it sorts, thereby reducing the computational overhead in the sorting process and shortening the time required for sorting.

[0039] Regarding the specific method by which the inspection unit 230 performs group-by-group checks, in some embodiments, for each rule group (at least one rule group 212 or at least one rule group 222) of the layout, the inspection unit 230 can measure the layout attribute targeted by that rule group to obtain the measurement result, and based on the measurement result, execute the inspection rules included in that rule group. For example, for a rule group targeting width (which may include, for example, multiple inspection rules requiring the width to be less than a first threshold, the width to be greater than a second threshold, the width to be within a specific range, etc.), after the inspection unit 230 measures the width information of the graphic in the layout once to obtain the measurement result, it can execute the aforementioned multiple inspection rules based on the measurement result. In this way, for multiple inspection rules targeting the same layout attribute in the same rule group, the inspection unit 230 only needs to measure once to provide the measurement result for all inspection rules in that rule group, achieving one measurement and multiple checks. Since the same layout attribute is only measured once, the amount of measurement calculation performed by the inspection unit 230 is significantly reduced, thereby reducing the processor's computational overhead and shortening the inspection time.

[0040] In some embodiments, for a first check rule in the rule group (which can be any check rule in the rule group), the check unit 230 can generate a first mark corresponding to the graphic in response to a measurement result indicating the presence of a graphic in the layout that conforms to the first check rule. This mark can refer to information used to identify the graphic in the layout that conforms to a specific check rule, typically recording information such as the position of the conforming graphic. The check unit 230 can also, for example, output the first mark to a layer corresponding to the first check rule. The layer can refer to a layer used to carry the mark; different layers can typically correspond to different check rules to facilitate the differentiation of check results and subsequent processing. Figure 2B Example 200B illustrates inspection rules and their corresponding layers according to some embodiments. According to example 200B, inspection unit 230 can output the marker corresponding to inspection rule "rule1" to layer "layer1", the marker corresponding to inspection rule "rule2" to layer "layer2", and so on. In this way, inspection unit 230 records the graphics in the layout that conform to each inspection rule in the form of markers and outputs the markers to the layer corresponding to each inspection rule, making the inspection results easy to distinguish and process subsequently. Since the graphics that conform to the rules are recorded in the form of markers to the corresponding layers, inspection unit 230 does not need to retain complete intermediate measurement data to characterize the inspection results, thereby reducing the storage space required.

[0041] In some embodiments, taking the example of at least one rule group 222 having highly correlated rule groups that are sequentially adjacent, the at least one rule group 222 may include a third rule group and a fourth rule group that are sequentially adjacent. The third rule group and the fourth rule group are associated with the same layout attribute. In the inspection of the third rule group, the inspection unit 230 may measure the layout attribute associated with the third rule group and the fourth rule group to obtain a first measurement result and store the first measurement result in a cache. The layout attribute associated with the third rule group and the fourth rule group may be a layout attribute that corresponds to both of them. The cache may refer to storage space used to temporarily store measurement results for subsequent reuse, typically including but not limited to memory, cache, etc. Further, in the inspection of the fourth rule group, the inspection unit 230 may reuse the first measurement result in the cache. For example, in the inspection of the third rule group (such as a rule group that measures the width first), the inspection unit 230 may store the measured width information in the cache and, in the subsequent inspection of the fourth rule group (such as other rule groups that also use width), directly reuse the width information in the cache without measuring it again. In this way, for two rule groups that are sequentially adjacent and whose target layout attributes are related, the inspection unit 230 can reuse the layout attributes that have been measured and cached in the inspection of the previous rule group in the inspection of the later rule group, avoiding repeated measurement of the layout attributes. Since the measurement results in the cache are reused across rule groups, the amount of measurement calculation performed by the inspection unit 230 is further reduced, thereby further reducing the processor's computational overhead and shortening the inspection time.

[0042] In some embodiments, the checking unit 230 may also add flag information to the first measurement result in response to the completion of the check on the third rule group. This flag information may indicate that one or more rule groups exist after the third rule group. The layout attributes targeted by these one or more rule groups are associated with the layout attributes targeted by the third rule group. For example, when the check on the third rule group is completed, the checking unit 230 may add flag information to the first measurement result in the cache to indicate that there are subsequent rule groups associated with the third rule group, thus preventing the first measurement result in the cache from being deleted before the check on the one or more rule groups is completed. In this way, the checking unit 230 can use the flag information to determine whether the measurement result in the cache still needs to be reused by subsequent associated rule groups, thereby avoiding prematurely releasing measurement results that will still be reused. Since the flag information clearly indicates the subsequent reuse requirement of the measurement result, the checking unit 230 can reasonably retain the cache while ensuring high utilization of the measurement result, avoiding the additional computational overhead caused by duplicate measurements due to premature release.

[0043] In some embodiments, the flag information also indicates the number of one or more rule groups. The checking unit 230 may also update the flag information by decrementing the number in response to reuse of the first measurement result in the cache during a check of the fourth rule group. The checking unit 230 may also remove the first measurement result from the cache in response to the updated flag information indicating a number of zero. For example, the flag information may include a value indicating the number of subsequent associated rule groups. The checking unit 230 decrements this value each time the first measurement result is reused, and when the value reaches zero, it indicates that there are no longer any associated rule groups that need to reuse the first measurement result, and the checking unit 230 removes the first measurement result from the cache accordingly. In this way, the checking unit 230 can accurately track the subsequent reuse of measurement results in the cache and release the cache promptly when reuse is no longer needed. Because the measurement results are removed promptly when they are no longer reused, the checking unit 230's cache space usage is reduced accordingly, thereby improving storage space utilization.

[0044] Through the above architecture, the electronic device 110 can group multiple inspection rules that originally needed to be executed sequentially according to their corresponding layout attributes, and perform group-by-group inspections on the layout 101. Therefore, for the same layout attribute targeted by a rule group, the electronic device 110 only needs to perform a measurement once, which can be shared by multiple inspection rules within that rule group. Because the number of measurement operations is reduced, the amount of measurement computation required by the electronic device 110 during the layout inspection process is correspondingly reduced, thereby reducing the processor's computational overhead and shortening the overall layout inspection time.

[0045] Figure 3 A flowchart of an example process 300 for layout checking according to some embodiments is shown. Process 300 can be implemented at electronic device 110. Reference is made below. Figure 3 To describe process 300.

[0046] like Figure 3 As shown, in step 310, electronic device 110 acquires multiple inspection rules for inspecting the layout.

[0047] In step 320, the electronic device 110 determines at least one rule group based on the types of the plurality of inspection rules, wherein each rule group in the at least one rule group includes at least one inspection rule from the plurality of inspection rules, and the inspection rules belonging to the same rule group target the same layout attribute.

[0048] In step 330, the electronic device 110 performs a group-by-group check on the layout according to at least one rule group.

[0049] In this manner, the electronic device 110 groups multiple inspection rules into at least one rule group according to the layout attributes they target, and performs group-by-group inspections on the layout. This ensures that for the same layout attribute targeted by a rule group, only one measurement is needed for multiple inspection rules within that group, reducing redundant measurement operations on the same layout attribute. Because the number of measurement operations is reduced, the amount of measurement computation performed by the electronic device 110 during layout inspection is correspondingly reduced, thereby reducing processor computational overhead and shortening the overall layout inspection time. Simultaneously, since there is no need to repeatedly measure and cache the same attribute information for each inspection rule, the storage space usage is also reduced, improving the overall throughput of layout inspection.

[0050] In some embodiments, the electronic device 110 can determine at least one rule group based on the names of multiple inspection rules, wherein the name of each inspection rule indicates the type of the corresponding inspection rule, inspection rules of the same type are determined to belong to the same rule group, and the type of the rule group corresponds to the type of inspection rules included in the rule group. In this way, the electronic device 110 can quickly determine the type of inspection rules based on their names and group them accordingly, simplifying the grouping decision logic. Since the type can be determined based on the name, the electronic device 110 does not need to parse the inspection conditions of each inspection rule one by one to determine the type, thereby reducing the computational overhead in the grouping process and shortening the time required for grouping.

[0051] In some embodiments, the electronic device 110 can sequentially traverse multiple inspection rules and, for each traversed inspection rule: if the type indicated by the name of the inspection rule is the same as the type corresponding to an already created rule group, determine that the inspection rule belongs to the already created rule group; and if the type indicated by the name of the inspection rule is different from the type corresponding to any already created rule group, create a new rule group based on the inspection rule. In this way, the electronic device 110 can group inspection rules in real time during a single traversal, without having to fully traverse a particular type before creating the next rule group. Since grouping can be completed in just one traversal, the number of times the electronic device 110 accesses multiple inspection rules is reduced, thereby reducing the computational overhead during the grouping process and shortening the time required for grouping.

[0052] In some embodiments, the electronic device 110 performing a group-by-group check on a layout may include: measuring the layout attributes targeted by the rule group for each rule group in at least one rule group to obtain a measurement result; and executing the check rules included in the rule group based on the measurement result. In this way, for multiple check rules targeting the same layout attribute within the same rule group, the electronic device 110 only needs to perform a single measurement to provide the measurement result for use by all check rules within that rule group, achieving one measurement, multiple checks. Since the same layout attribute is measured only once, the computational load of the measurement performed by the electronic device 110 is significantly reduced, thereby reducing the processor's computational overhead and shortening the check time.

[0053] In some embodiments, the electronic device 110 executing the inspection rules included in the rule group may include: for a first inspection rule in the rule group, in response to a measurement result indicating the existence of a graphic in the layout that conforms to the first inspection rule, generating a first marker corresponding to the graphic; and outputting the first marker to the layer corresponding to the first inspection rule. In this way, the electronic device 110 records the graphics in the layout that conform to each inspection rule in the form of markers and outputs the markers to the layers corresponding to each inspection rule, making the inspection results easy to distinguish and process subsequently. Since the graphics that conform to the rules are recorded in the form of markers on the corresponding layers, the electronic device 110 does not need to retain complete intermediate measurement data to characterize the inspection results, thereby reducing the storage space required.

[0054] In some embodiments, the electronic device 110 may further determine the correlation between different rule groups within at least one rule group; adjust the order of at least one rule group based on the correlation, wherein the position of different rule groups in the adjusted order is related to the correlation between the different rule groups; and perform a group-by-group check on the layout according to at least one rule group may include performing a group-by-group check on the layout according to the adjusted order. In this way, the electronic device 110 enables adjacent rule groups to have as many shareable layout attributes as possible, facilitating the reuse of measurement results between adjacent rule groups. Since the measured layout attributes can be reused between adjacent rule groups, the electronic device 110 further reduces the number of repeated measurements of the layout attribute, thereby further reducing the processor's computational overhead and shortening the check time.

[0055] In some embodiments, each rule group in at least one rule group targets at least one layout attribute. Determining the correlation between different rule groups within the at least one rule group may include: determining the correlation between different rule groups based on the degree of overlap between the at least one layout attribute targeted by each rule group, wherein the correlation increases with the degree of overlap. In this way, the electronic device 110 characterizes the correlation between rule groups by the degree of overlap between the layout attributes targeted by different rule groups, allowing rule groups with more shareable attributes to be arranged closer together during sorting. Since the determination of the correlation directly corresponds to the number of shareable layout attributes, the electronic device 110 can more fully reuse measurement results after sorting accordingly, thereby further reducing measurement computation and lowering processor computational overhead.

[0056] In some embodiments, at least one rule group includes a first rule group and a second rule group, where the first rule group targets a first map attribute and the second rule group targets a second map attribute. Determining the correlation between different rule groups within the at least one rule group may include: determining the attribute correlation between the first map attribute and the second map attribute based on a correlation table that records attribute correlations between different map attributes; and determining the correlation between the first rule group and the second rule group based on this attribute correlation. In this way, the electronic device 110 can quickly determine the correlation between different rule groups by querying a pre-maintained correlation table. Since the correlation can be directly obtained by looking up the table, the electronic device 110 does not need to recalculate the correlation between attributes each time it sorts, thereby reducing the computational overhead during the sorting process and shortening the time required for sorting.

[0057] In some embodiments, at least one rule group includes a third rule group and a fourth rule group that are sequentially adjacent, with the third rule group and the fourth rule group associated with the same layout attribute. The electronic device 110 performing a group-by-group check on the layout may include: in the check of the third rule group, measuring the associated layout attribute to obtain a first measurement result; storing the first measurement result in a cache; and in the check of the fourth rule group, reusing the first measurement result from the cache. In this way, for two rule groups that are sequentially adjacent and associated with the same layout attribute, the electronic device 110 can reuse the layout attribute measured and cached in the check of the previous rule group in the check of the later rule group, avoiding repeated measurement of the layout attribute. Because the measurement result in the cache is reused across rule groups, the amount of measurement computation performed by the electronic device 110 is further reduced, thereby further reducing the processor's computational overhead and shortening the check time.

[0058] In some embodiments, the electronic device 110 may also add flag information to the first measurement result in response to the completion of the check on the third rule group. This flag information indicates that one or more rule groups exist after the third rule group, and the layout attributes targeted by these rule groups are associated with the layout attributes targeted by the third rule group. In this way, the electronic device 110 can use the flag information to determine whether the measurement results in the cache still need to be reused by subsequent associated rule groups, thereby avoiding prematurely releasing measurement results that will still be reused. Because the flag information explicitly indicates the subsequent reuse requirement of the measurement results, the electronic device 110 can reasonably retain the cache while ensuring high utilization of the measurement results, avoiding the additional computational overhead caused by duplicate measurements due to premature release.

[0059] In some embodiments, the flag information also indicates the number of one or more rule groups; and the electronic device 110 can also update the flag information by decrementing the number in response to the reuse of the first measurement result in the cache during a check for the fourth rule group; and remove the first measurement result from the cache in response to the updated flag information indicating a number of zero. In this way, the electronic device 110 can accurately track the subsequent reuse of measurement results in the cache and release the cache promptly when reuse is no longer needed. Because the measurement results are removed promptly when they are no longer reused, the electronic device 110's cache space usage is reduced accordingly, thereby improving storage space utilization.

[0060] In some embodiments, layout attributes include at least one of the following: the width of a graphic in the layout, the spacing between different graphics in the layout, and the area of ​​a graphic in the layout.

[0061] A corresponding apparatus for implementing the above methods or processes is also provided.

[0062] Figure 4 A schematic structural block diagram of an example apparatus 400 for layout inspection according to some embodiments is shown. Apparatus 400 may be implemented as or included in electronic device 110. Various modules / components in apparatus 400 may be implemented by hardware, software, firmware, or any combination thereof.

[0063] like Figure 4As shown, the apparatus 400 includes: an inspection rule acquisition module 410 configured to acquire a plurality of inspection rules for inspecting a layout; a rule group determination module 420 configured to determine at least one rule group based on the types of the plurality of inspection rules, wherein each rule group in the at least one rule group includes at least one inspection rule from the plurality of inspection rules, and the inspection rules belonging to the same rule group target the same layout attributes; and a layout inspection module 430 configured to perform a group-by-group inspection of the layout according to the at least one rule group.

[0064] In some embodiments, the rule group determination module 420 may also be configured to determine at least one rule group based on the names of the plurality of inspection rules, wherein the name of each inspection rule indicates the type of the corresponding inspection rule, inspection rules of the same type are determined to belong to the same rule group, and the type of the rule group corresponds to the type of inspection rules included in the rule group.

[0065] In some embodiments, the rule group determination module 420 may also be configured to: sequentially traverse multiple inspection rules, and for each traversed inspection rule, determine that the inspection rule belongs to the created rule group in response to the type indicated by the name of the inspection rule being the same as the type corresponding to any created rule group; and create a new rule group based on the inspection rule in response to the type indicated by the name of the inspection rule being different from the type corresponding to any created rule group.

[0066] In some embodiments, the layout inspection module 430 may also be configured to: measure the layout attributes of the layout targeted by the rule group for each rule group in at least one rule group to obtain measurement results; and execute the inspection rules included in the rule group based on the measurement results.

[0067] In some embodiments, the layout inspection module 430 may also be configured to: generate a first mark corresponding to the graphic in response to a measurement result indicating that a graphic conforming to the first inspection rule exists in the layout; and output the first mark to the layer corresponding to the first inspection rule.

[0068] In some embodiments, the rule group determination module 420 may also be configured to: determine the correlation between different rule groups in at least one rule group; adjust the order of at least one rule group based on the correlation, wherein the position of different rule groups in the adjusted order is related to the correlation between different rule groups; and the layout inspection module 430 may also be configured to perform a group-by-group inspection on the layout according to the adjusted order.

[0069] In some embodiments, each rule group in at least one rule group targets at least one layout attribute, and the rule group determination module 420 can also be configured to: determine the correlation between different rule groups based on the degree of overlap between the at least one layout attribute targeted by the different rule groups in at least one rule group, wherein the correlation increases as the degree of overlap increases.

[0070] In some embodiments, at least one rule group includes a first rule group and a second rule group, the first rule group being for a first map attribute and the second rule group being for a second map attribute. The rule group determination module 420 may also be configured to: determine the attribute correlation between the first map attribute and the second map attribute based on a correlation table that records the attribute correlation between different map attributes; and determine the correlation between the first rule group and the second rule group based on the attribute correlation.

[0071] In some embodiments, at least one rule group includes a third rule group and a fourth rule group that are sequentially adjacent, the third rule group and the fourth rule group being associated with the layout attributes targeted by them, and the layout inspection module 430 may also be configured to: measure the associated layout attributes to obtain a first measurement result in the inspection of the third rule group; store the first measurement result in a cache; and reuse the first measurement result in the cache in the inspection of the fourth rule group.

[0072] In some embodiments, the layout inspection module 430 may also be configured to: in response to the completion of the inspection of the third rule group, add flag information to the first measurement result, the flag information indicating that there are one or more rule groups after the third rule group, the layout attributes targeted by the one or more rule groups being associated with the layout attributes targeted by the third rule group.

[0073] In some embodiments, the flag information also indicates the number of one or more rule groups, and the layout inspection module 430 may also be configured to: update the flag information by decrementing the number in response to the reuse of the first measurement result in the cache in the inspection of the fourth rule group; and remove the first measurement result from the cache in response to the number indicated by the updated flag information being zero.

[0074] In some embodiments, layout attributes include at least one of the following: the width of a graphic in the layout, the spacing between different graphics in the layout, and the area of ​​a graphic in the layout.

[0075] The modules included in device 400 can be implemented in various ways, including software, hardware, firmware, or any combination thereof. In some embodiments, one or more modules may be implemented using software and / or firmware, such as machine-executable instructions stored on a storage medium. In addition to or as an alternative to machine-executable instructions, some or all of the units in device 400 may be implemented at least partially by one or more hardware logic components. By way of example and not limitation, exemplary types of hardware logic components that may be used include field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard parts (ASSPs), systems on a chip (SOCs), complex programmable logic devices (CPLDs), and so on.

[0076] Figure 5 A block diagram of an electronic device 500 in which one or more examples may be implemented is shown. It should be understood that... Figure 5 The electronic device 500 shown is merely exemplary and should not be construed as limiting the functionality and scope of the examples described herein. Figure 5 The electronic device 500 shown can be used to implement the electronic device 110 discussed above.

[0077] like Figure 5 As shown, electronic device 500 is in the form of a general-purpose electronic device. Components of electronic device 500 may include, but are not limited to, one or more processing units or processors 510, memory 520, storage devices 530, one or more communication units 540, one or more input devices 550, and one or more output devices 560. Processor 510 may be a physical or virtual processor and is capable of performing various processes according to programs stored in memory 520. In a multiprocessor system, multiple processors execute computer-executable instructions in parallel to improve the parallel processing capability of electronic device 500.

[0078] Electronic device 500 typically includes multiple computer storage media. Such media can be any accessible media that is accessible to electronic device 500, including but not limited to volatile and non-volatile media, removable and non-removable media. Memory 520 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof). Storage device 530 can be removable or non-removable media and can include machine-readable media, such as flash drives, disks, or any other media that can be used to store information and / or data and can be accessed within electronic device 500.

[0079] Electronic device 500 may further include additional removable / non-removable, volatile / non-volatile storage media. Although not explicitly stated... Figure 5 As shown, disk drives for reading from or writing to removable, non-volatile disks (e.g., "floppy disks") and optical disk drives for reading from or writing to removable, non-volatile optical disks can be provided. In these cases, each drive can be connected to a bus (not shown) via one or more data media interfaces. Memory 520 may include computer program product 525 having one or more program modules configured to perform various methods or actions of various examples.

[0080] The communication unit 540 enables communication with other electronic devices via a communication medium. Additionally, the functionality of the components of the electronic device 500 can be implemented using a single computing cluster or multiple computing machines capable of communicating via communication connections. Therefore, the electronic device 500 can operate in a networked environment using logical connections to one or more other servers, networked personal computers, or another network node.

[0081] Input device 550 can be one or more input devices, such as a mouse, keyboard, trackball, etc. Output device 560 can be one or more output devices, such as a monitor, speaker, printer, etc. Electronic device 500 can also communicate with one or more external devices (not shown) via communication unit 540 as needed. These external devices include storage devices, display devices, etc., and can communicate with one or more devices that enable user interaction with electronic device 500, or with any device that enables electronic device 500 to communicate with one or more other electronic devices (e.g., network card, modem, etc.). Such communication can be performed via an input / output (I / O) interface (not shown).

[0082] A computer-readable storage medium is provided that stores computer-executable instructions thereon, wherein the computer-executable instructions are executed by a processor to implement the methods described above. A computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, which are executed by a processor to implement the methods described above.

[0083] The flowcharts and / or block diagrams of the methods, apparatus, devices, and computer program products referred to herein describe various aspects. It should be understood that each block of the flowcharts and / or block diagrams, as well as combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[0084] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processor of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner; thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0085] Computer-readable program instructions can be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions that execute on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0086] The flowcharts and block diagrams in the accompanying figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products under various scenarios. In this respect, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those shown in the figures. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.

[0087] Various examples have been described above. The foregoing descriptions are exemplary and not exhaustive, nor are they limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is chosen to best explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the various implementations disclosed herein.

Claims

1. A layout inspection method, characterized in that, include: Obtain multiple inspection rules for checking the layout; Based on the types of the plurality of inspection rules, at least one rule group is determined, wherein each rule group in the at least one rule group includes at least one inspection rule from the plurality of inspection rules, and the inspection rules belonging to the same rule group target the same layout attributes; as well as For each of the at least one set of rules, based on the measurement results of the layout attributes targeted by the set of rules, each check rule included in the set of rules is executed, the measurement results being obtained by measuring the layout attributes targeted by the set of rules and applied to the respective check rules.

2. The method according to claim 1, characterized in that, Determining the at least one rule group includes: The at least one rule group is determined based on the names of the plurality of inspection rules, wherein the name of each inspection rule indicates the type of the corresponding inspection rule, and inspection rules of the same type are determined to belong to the same rule group, and the type of the rule group corresponds to the type of inspection rules included in the rule group.

3. The method according to claim 2, characterized in that, Determining the at least one rule group includes: The multiple inspection rules are iterated sequentially, and for each inspect rule encountered, In response to the fact that the type indicated by the name of the inspection rule is the same as the type corresponding to an already created rule group, it is determined that the inspection rule belongs to the already created rule group; and In response to the fact that the type indicated by the name of the inspection rule is different from the type corresponding to any rule group that has been created, a new rule group is created based on the inspection rule.

4. The method according to claim 1, characterized in that, The check rules included in this rule group are as follows: In response to the measurement result indicating the presence of a graphic conforming to the first check rule in the rule group, a first marker corresponding to the graphic is generated; and Output the first mark to the layer corresponding to the first inspection rule.

5. The method according to claim 1, characterized in that, The method further includes: Determine the degree of correlation between different rule groups within the at least one rule group; The order of the at least one rule group is adjusted based on the correlation degree, wherein the position of different rule groups in the adjusted order is related to the correlation degree between the different rule groups; and The layout is checked group by group in the adjusted order described above.

6. The method according to claim 5, characterized in that, Determining the correlation between different rule groups within the at least one rule group, for each of at least one map attribute, includes: The correlation degree between the different rule groups is determined based on the degree of overlap between the at least one map attribute targeted by each of the at least one rule group, wherein the correlation degree increases as the degree of overlap increases.

7. The method according to claim 5, characterized in that, The at least one rule group includes a first rule group and a second rule group, wherein the first rule group targets a first map attribute, and the second rule group targets a second map attribute; and determining the correlation between different rule groups within the at least one rule group includes: Based on the correlation table that records the correlation between different map attributes, the correlation between the first map attribute and the second map attribute is determined. The correlation between the first rule group and the second rule group is determined based on the attribute correlation.

8. The method according to claim 5, characterized in that, The at least one rule group includes a third rule group and a fourth rule group that are adjacent in the order, and the third rule group is associated with the layout attribute targeted by the fourth rule group; And the group-by-group check performed on the layout includes: During the inspection of the third rule group, the associated layout attributes are measured to obtain a first measurement result; Store the first measurement result in a cache; and During the inspection of the fourth rule group, the first measurement result in the cache is reused.

9. The method according to claim 8, characterized in that, The method further includes: In response to the completion of the check for the third rule group, a flag is added to the first measurement result, the flag indicating that there are one or more rule groups following the third rule group, the layout attributes targeted by the one or more rule groups being associated with the layout attributes targeted by the third rule group.

10. The method according to claim 9, characterized in that, The flag information also indicates the number of the one or more rule groups; The method further includes: In response to the reuse of the first measurement result in the cache during the inspection of the fourth rule group, the flag information is updated by decrementing the number by one; and In response to the updated flag information indicating that the number is zero, the first measurement result is removed from the cache.

11. The method according to claim 1, characterized in that, The map attributes include at least one of the following: The width of the graphic in the layout, The spacing between different graphics in the layout, and The area of ​​the graphic in the map.

12. An apparatus for layout inspection, characterized in that, include: The inspection rule acquisition module is configured to acquire multiple inspection rules for inspecting the layout; The rule group determination module is configured to determine at least one rule group based on the types of the plurality of inspection rules, wherein each rule group in the at least one rule group includes at least one inspection rule from the plurality of inspection rules, and the inspection rules belonging to the same rule group target the same layout attribute. as well as The layout inspection module is configured to execute, for each of the at least one rule group, each inspection rule included in the rule group based on the measurement results of the layout attributes targeted by the rule group, wherein the measurement results are obtained by measuring the layout attributes targeted by the rule group of the layout and applied to the respective inspection rules.

13. An electronic device, characterized in that, include: At least one processor; as well as At least one memory, the at least one memory being coupled to the at least one processor and storing instructions for execution by the at least one processor, characterized in that, when executed by the at least one processor, the instructions cause the electronic device to perform the method according to any one of claims 1 to 11.

14. A computer-readable storage medium having computer-executable instructions stored thereon, characterized in that, The computer-executable instructions can be executed by a processor to implement the method according to any one of claims 1 to 11.

15. A computer program product, said computer program product being tangibly stored in a computer storage medium and comprising computer-executable instructions, characterized in that, The computer-executable instructions, when executed by the device, cause the device to perform the method according to any one of claims 1 to 11.

Citation Information

Patent Citations

  • Method and device for detecting acceleration design rule

    CN102346800A