Method and device for generating filling area

Through grouping and sorting fill rules, relay layers are gradually generated and Boolean operations are performed, which solves the problem of low redundant graphics filling efficiency in chip layout design, and achieves efficient density balance and calculation efficiency improvement.

CN119692290AActive Publication Date: 2025-03-25YIXIN TECH (HANGZHOU) CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202510188091.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-20
Publication Date
2025-03-25
Estimated Expiration
2045-02-20

AI Technical Summary

Technical Problem

In chip layout design, how to efficiently realize redundant graphics filling to balance density, avoid affecting the original circuit, and have a high computing burden and low processing efficiency.

Method used

By grouping and sorting the fill rules according to the layer, relay layers are gradually generated, and these relay layers are used to perform boolean operations on the fill areas to generate the actual fill areas.

Benefits of technology

It reduces the computing burden, improves processing efficiency, improves the efficiency of redundant graphics filling, and ensures that the filled graphics meet the distance requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119692290A_ABST
    Figure CN119692290A_ABST
Patent Text Reader

Abstract

The invention discloses a method and device for generating a filling area, and the method comprises the steps: carrying out the size operation according to a last generated relay layer result one by one from small to large according to a distance requirement, simplifying the object of each time of size operation through the step-by-step size operation, enabling the input pattern of each time of size operation to be simpler, reducing the calculation burden, and improving the calculation efficiency. The processing efficiency is improved, and a guarantee is provided for improving the redundant graph filling efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to but is not limited to semiconductor integrated circuit technology, and in particular to a method and device for generating a filling area. Background Art

[0002] In chip layout design, filling redundant graphics is an important step to meet process density requirements. During chip manufacturing, uneven layout density may cause etching or deposition process problems. Therefore, it is necessary to fill redundant graphics in the blank areas of the layout to balance the density. When designing a chip, the user will specify the fill area to be filled, and fill the fill area with redundant graphics of a specific style (such as rectangles, circles or other patterns) according to the rules.

[0003] When filling redundant graphics, it is necessary to ensure that the original layout circuit will not be affected. Therefore, the filling rules usually specify that the filled redundant graphics must meet a certain distance requirement from the original graphics. How to efficiently achieve redundant graphics filling is a technical problem that needs to be solved urgently. Summary of the invention

[0004] The present application provides a method and device for generating a fill area, which can reduce the computational burden and improve processing efficiency, thereby providing a guarantee for improving the efficiency of redundant graphic filling.

[0005] An embodiment of the present invention provides a method for generating a fill area, comprising: Group filling rules by layer and sort distance requirements of the same layer; For different groups, according to the distance requirements from small to large, the relay layers corresponding to different distance values ​​of the same layer are generated. The generation of the current relay layer is based on the previous relay layer. The obtained relay layer is used to perform Boolean operations on the area to be filled to generate the actual filling area.

[0006] In an exemplary embodiment, grouping the filling rules by layer and sorting the distance requirements of the same layer includes: Read the filling rules of the user, and extract the layers corresponding to each filling rule and the distance requirements of each layer; The filling rules are grouped according to layers, and the distance requirements within each group are sorted from small to large.

[0007] In an exemplary embodiment, generating relay layers corresponding to different distance values ​​of the same layer includes: For each layer corresponding to the different groups, starting from the distance value with the minimum distance requirement, the relay layers are gradually generated, wherein the first relay layer is based on the original layer and is generated through a size operation according to the minimum distance value; the second relay layer is based on the first relay layer and is generated through a size operation according to the difference between the second smallest distance value and the minimum distance value, and so on, and the subsequent relay layers are based on the relay layer of the previous layer and are generated through a size operation according to the difference between the current distance value and the previous distance value.

[0008] In an exemplary embodiment, performing a Boolean operation to generate an actual filling area includes: The actual filling area is generated by performing an intersection operation between the area to be filled and all the obtained relay layers.

[0009] An embodiment of the present application further provides a computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are used to execute any of the above methods for generating a filling area.

[0010] An embodiment of the present application further provides a computer device, including a memory and a processor, wherein the memory stores the following instructions executable by the processor: for executing the steps of any of the above-mentioned methods for generating a filling area.

[0011] The present application embodiment further provides a device for generating a filling area, comprising: a grouping module, a generating module, and a Boolean processing module; wherein: A grouping module, used to group filling rules by layer and sort the distance requirements of the same layer; A generation module is used to generate relay layers corresponding to different distance values ​​of the same layer for different groups according to the distance requirements from small to large, and the generation of the current relay layer is obtained based on the previous relay layer; The Boolean processing module is used to use the obtained relay layer to perform Boolean operation on the area to be filled to generate an actual filling area.

[0012] In an exemplary embodiment, the grouping module is used to: The filling rules of the user are read, and the layers corresponding to each filling rule and the distance requirements of each layer are extracted; the filling rules are grouped according to the layers, and the distance requirements in each group are sorted from small to large.

[0013] In an exemplary embodiment, the generating module is used to: For each layer corresponding to the different groups, starting from the distance value with the minimum distance requirement, the relay layers are gradually generated, wherein the first relay layer is based on the original layer and is generated through a size operation according to the minimum distance value; the second relay layer is based on the first relay layer and is generated through a size operation according to the difference between the second smallest distance value and the minimum distance value, and so on, and the subsequent relay layers are based on the relay layer of the previous layer and are generated through a size operation according to the difference between the current distance value and the previous distance value.

[0014] The method for generating a filling area provided in the embodiment of the present application performs size operations one by one according to the last generated relay layer results from small to large according to the distance requirements. This step-by-step size operation simplifies the object of each size operation, making the input graphics of each size operation simpler, reducing the calculation burden, improving processing efficiency, and providing a guarantee for improving the efficiency of filling redundant graphics.

[0015] Other features and advantages of the present invention will be described in the following description, and partly become apparent from the description, or understood by practicing the present invention. The purpose and other advantages of the present invention can be realized and obtained by the structures particularly pointed out in the description, claims and drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] The accompanying drawings are used to provide further understanding of the technical solution of the present application and constitute a part of the specification. Together with the embodiments of the present application, they are used to explain the technical solution of the present application and do not constitute a limitation on the technical solution of the present application.

[0017] Figure 1 A schematic diagram of a flow chart of a method for generating a fill area in an embodiment of the present application; Figure 2 This is an example schematic diagram of the original layer in the embodiment of the present application; Figure 3 In the embodiments of this application, based on Figure 2 The example schematic diagram of the original laye generating the first relay layer shown; Figure 4 In the embodiments of this application, based on Figure 3 An example schematic diagram of a first relay layer generating a second relay layer is shown; Figure 5 In the embodiments of this application, based on Figure 4 The example schematic diagram of the second relay layer generating the third relay layer shown; Figure 6 This is an example schematic diagram of generating an actual filling area through Boolean operation in an embodiment of the present application; Figure 7In the embodiments of this application, based on Figure 6 A schematic diagram of the actual filled area generated by the example; Figure 8 Schematic diagram of the composition structure of the device for generating a filling area in an embodiment of the present application. DETAILED DESCRIPTION

[0018] In order to make the purpose, technical solution and advantages of the present application more clear, the embodiments of the present application will be described in detail below with reference to the accompanying drawings. It should be noted that the embodiments and features in the embodiments of the present application can be combined with each other arbitrarily without conflict.

[0019] In a typical configuration of the present application, a computing device includes one or more processors (CPU), an input / output interface, a network interface, and a memory.

[0020] Memory may include non-permanent storage in a computer-readable medium, in the form of random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.

[0021] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include non-transitory media such as modulated data signals and carrier waves.

[0022] The steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions. Also, although a logical sequence is shown in the flowchart, in some cases, the steps shown or described can be performed in a sequence different from that shown here.

[0023] In layout design, in order to fill redundant graphics without affecting the original circuit function, it is usually necessary to fill the blank area with reasonable graphics and strictly abide by the distance rules. One way to achieve this is by generating a relay layer. This process includes generating a relay layer, defining the area to be filled, performing Boolean operations, and generating the actual filling graphics.

[0024] First, according to the distance rule specified by the user, a relay layer is generated for the original graphics. The generation of relay layers is usually completed through the size operation, that is, the original graphics are expanded multiple times to generate several relay layers. For example, it can be expanded to the specified minimum distance D first, and then more relay layers can be generated as needed to represent different safety distance ranges. The generation of relay layers provides a basis for subsequent fill area cropping. Among them, in layout design, the size operation is a geometric transformation operation that expands or shrinks the graphics, which is mainly used to adjust the boundary range of the geometric graphics in the layout. The size operation is a common operation in electronic design automation (EDA) tools. It is usually used to generate relay layers, expand or reduce areas to meet design rules or process requirements. Expansion refers to translating each edge outward by a certain distance, and the position of the corner point will also be adjusted according to the adjacent edges. Contraction refers to translating each edge inward by a certain distance. The adjustment method of the corner point is similar to expansion, but in the opposite direction.

[0025] After that, define the area to be filled, that is, determine the target area that needs to be filled with redundant graphics. The area to be filled is usually a blank part of the layout, which is the initial candidate area for filling (Initial Fill Region). At this stage, the range of the fill area must be consistent with the overall layout range, and exclude areas that do not need to be filled, such as functionally sensitive areas or areas where filling is explicitly prohibited by the design.

[0026] Then, Boolean operations are used to crop the area to be filled to ensure that the final generated fillable area meets the distance rules. In other words, by performing a series of Boolean operations (such as AND NOT or INTERSECT) on the area to be filled and the relay layer, the areas that violate the rules are excluded. After Boolean operations, the actual fillable areas (Valid FillRegion) are obtained, which meet the distance requirements and do not affect the function of the original circuit. For example: through AND NOT operations, the areas covered by the relay layer are excluded to ensure that redundant graphics do not enter the range that violates the distance rules; for example: through AND or INTERSECT operations, the generation fill area is limited to the legal layout range.

[0027] Finally, in the cropped fillable area, redundant graphics are generated according to specific needs. The size, shape, and density of these redundant graphics must meet the process requirements and ensure that the spacing between the fill graphics is not less than the specified minimum distance.

[0028] This method of generating multiple relay layers through size operations can make the redundant graphics fill meet the distance requirements, that is, by generating different relay layers in sequence, it is ensured that the filled redundant graphics meet the distance rules. However, in order to meet multiple distance requirements, multiple relay layers will be generated independently, which may lead to redundant calculations, and the generation of a large number of relay layers does not utilize the usual requirements of user filling rules. In other words, the process of generating relay layers does not fully consider the optimization potential in the filling rules. Each generated relay layer needs to perform calculation operations such as expansion and Boolean operations, which undoubtedly increases the calculation burden and reduces the processing efficiency. Especially when processing complex layouts, this method may waste computing resources.

[0029] The inventor of the present application has found that the user's filling rules generally have a large number of different distance requirements for a certain layer. If this can be used to gradually generate relay layers for different distance requirements of the same layer, the efficiency will be improved. In order to better apply to the scene of redundant graphic filling, the embodiment of the present application provides a method for generating a filling area, such as Figure 1 As shown, it may include: Step 100: Group the filling rules by layer and sort the distance requirements of the same layer.

[0030] In one exemplary embodiment, step 100 may include: Read the user's filling rules, extract the layers corresponding to each filling rule and the distance requirements of each layer; Group the filling rules by layer and sort the distance requirements within each group from smallest to largest.

[0031] For example, given a set of filling rules, each filling rule includes two attributes: Layer name, indicating the layer name to which the fill rule belongs, such as layer1 or layer2; Distance value: indicates the specific distance requirement of this layer.

[0032] For example, a set of filling rules for the example is as follows: The distance requirement for layer1 is 0.1.

[0033] The distance requirement for layer2 is 0.3.

[0034] The distance requirement for layer1 is 0.9.

[0035] The distance requirement for layer1 is 0.3.

[0036] Group the filling rules by layer, and classify the filling rules belonging to the same layer into one category; within each group, sort the distance values ​​from small to large, and remove duplicate values ​​(if required). The grouping results are as follows: The distance requirements contained in layer1 are sorted from small to large as [0.1, 0.3, 0.9].

[0037] Layer2 has only one distance requirement, which is [0.3].

[0038] Through step 100, the input filling rules are converted into structured grouping and sorting results, and each grouping corresponds to the same layer, which is convenient for the generation of subsequent relay layers.

[0039] Step 101: for different groups, respectively, according to the distance requirements from small to large, generate relay layers corresponding to different distance values ​​of the same layer, and the generation of the current relay layer is obtained based on the previous relay layer.

[0040] For each layer corresponding to different groups, starting from the distance value with the minimum distance requirement, the relay layers are gradually generated, wherein the first relay layer is based on the original layer (the original layer is the actual geometric figure in the design), and is generated through the size operation according to the current distance value, that is, the minimum distance value; the second relay layer is based on the first relay layer, and is generated through the size operation according to the difference between the current distance value and the previous distance value, that is, the difference between the second smallest distance value and the minimum distance value; and so on, the subsequent relay layers are based on the relay layer of the previous layer, and are generated through the size operation according to the difference between the current distance value and the previous distance value, that is, the difference between the second largest distance value and the maximum distance value.

[0041] For example, if the distance requirements of a certain group are sorted from small to large as d1, d2, ..., dn, then the first relay layer = relay layer[d1] = original layer SIZE d1, that is, the first relay layer is generated based on the original layer, according to the current distance value, that is, the smallest distance value d1, through the size operation; the second relay layer = relay layer[d2] = relay layer[d1]SIZE (d2 - d1), that is, the second relay layer is generated based on the first relay layer, according to the difference between the current distance value and the previous distance value, that is, the difference between the second smallest distance value and the minimum distance value, through the size operation; and so on, the nth relay layer = relay layer[dn] = relay layer[d(n-1)]SIZE (dn - d(n-1)), that is, the nth relay layer is generated based on the n-1th relay layer, according to the difference between the current distance value and the previous distance value, that is, the difference between the second largest distance value and the maximum distance value, through the size operation.

[0042] For example, suppose the distance requirements of a group are sorted from small to large as 0.25, 0.5, and 0.8. Figure 2 As shown in the figure, an example of an original layer is shown, which is represented by a lower left diagonal shadow. Figure 3 As shown, it shows the Figure 2 The original layer shown has a distance requirement of 0.25. The first relay layer is generated by translating each edge outward by 0.25 through the size operation, that is, the first relay layer = relay layer [0.25] = original layer SIZE 0.25. Figure 3 In the figure, the first relay layer is represented by a right-down diagonal shadow, and the original layer is represented by a diamond shadow.

[0043] like Figure 4 As shown, it shows the Figure 3 The first relay layer shown has a distance requirement of 0.5, and the second relay layer is generated by translating each edge outward by (0.5-0.25)=0.25 through the size operation, that is, the second relay layer = relay layer[0.5] = first relay layer SIZE (0.5-0.25), Figure 4 In the figure, the second relay layer is represented by vertical line shading, and the first relay layer is represented by small square shading.

[0044] like Figure 5 As shown, it shows the Figure 4The second relay layer shown has a distance requirement of 0.8. The third relay layer is generated by translating each edge outward by (0.8-0.5)=0.3 through the size operation, that is, the third relay layer=relay layer[0.8]=second relay layer SIZE (0.8-0.5). The first relay layer is represented by a lower right slash shadow. Figure 5 In the figure, the third relay layer is represented by dense horizontal line shading, and the second relay layer is represented by dense small square shading.

[0045] Figure 2-Figure 5 The example process shown shows the process of gradually generating multiple relay layers with different distance values ​​for a layer corresponding to the same group. Starting from the second relay layer, the generation of each relay layer is based on the previous relay layer, so a smaller distance value is used for the size operation. During the generation process, the graph is gradually simplified and the number is gradually reduced, which improves the efficiency of the entire relay layer generation process.

[0046] In the embodiment of the present application, size operations are performed one by one according to the last generated relay layer result from small to large according to the distance requirements. Although the number of relay layers finally generated remains unchanged and the number of size operations remains unchanged, the object of each size operation is simplified through the step-by-step size operations, that is, the input graphics of each size operation are simpler, which reduces the calculation burden, improves the processing efficiency, and provides a guarantee for improving the efficiency of redundant graphics filling.

[0047] Step 102: Use the obtained relay layer to perform Boolean operation on the area to be filled to generate an actual filling area.

[0048] In an exemplary embodiment, the actual filling area can be generated by performing an intersection operation between the area to be filled and all the obtained relay layers. Figure 6 As shown in the figure, area 61 is the area to be filled (i.e., the target area) specified by the user, and areas 621, 622, and 623 represent different relay layers. After Boolean operations, the final filled area is obtained as follows Figure 7 The area 70 is shown in shaded area.

[0049] The method for generating a filling area provided in the embodiment of the present application performs size operations one by one according to the last generated relay layer results from small to large according to the distance requirements. This step-by-step size operation simplifies the object of each size operation, making the input graphics of each size operation simpler, reducing the calculation burden, improving processing efficiency, and providing a guarantee for improving the efficiency of filling redundant graphics.

[0050] It should be noted that, in this article, only the size operation of expansion is used as an example for illustration, but it is not used to limit the protection scope of the present application. The method for generating a filling area provided in the embodiment of the present application is also applicable to the size operation of contraction, which will not be repeated here.

[0051] The present application also provides a computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are used to execute any of the above methods for generating a filling area.

[0052] The present application further provides a computer device, including a memory and a processor, wherein the memory stores the following instructions executable by the processor: for executing the steps of any of the above-mentioned methods for generating a filling area.

[0053] Figure 8 FIG. 1 is a schematic diagram of the structure of the device for generating a filling area in an embodiment of the present application. Figure 8 As shown, it may include: a grouping module, a generation module, and a Boolean processing module; wherein, A grouping module, used to group filling rules by layer and sort the distance requirements of the same layer; A generation module is used to generate relay layers corresponding to different distance values ​​of the same layer for different groups according to the distance requirements from small to large, and the generation of the current relay layer is obtained based on the previous relay layer; The Boolean processing module is used to use the obtained relay layer to perform Boolean operation on the area to be filled to generate an actual filling area.

[0054] In one exemplary embodiment, the grouping module may be used to: Read the user's filling rules, extract the layers corresponding to each filling rule and the distance requirements of each layer; group the filling rules according to the layers, and sort the distance requirements in each group from small to large.

[0055] In one exemplary embodiment, the generation module may be used to: For each layer corresponding to different groups, starting from the distance value with the minimum distance requirement, the relay layers are gradually generated, wherein the first relay layer is based on the original layer (the original layer is the actual geometric figure in the design), and is generated through the size operation according to the current distance value, that is, the minimum distance value; the second relay layer is based on the first relay layer, and is generated through the size operation according to the difference between the current distance value and the previous distance value, that is, the difference between the second smallest distance value and the minimum distance value; and so on, the subsequent relay layers are based on the relay layer of the previous layer, and are generated through the size operation according to the difference between the current distance value and the previous distance value, that is, the difference between the second largest distance value and the maximum distance value.

[0056] The device for generating a filling area provided in the embodiment of the present application performs size operations one by one according to the relay layer results generated last time according to the distance requirements from small to large. This step-by-step size operation simplifies the object of each size operation, making the input graphics of each size operation simpler, reducing the calculation burden, improving processing efficiency, and providing a guarantee for improving the efficiency of filling redundant graphics.

[0057] Although the embodiments disclosed in this application are as above, the contents described are only embodiments adopted to facilitate understanding of this application and are not intended to limit this application. Any technician in the field to which this application belongs can make any modifications and changes in the form and details of implementation without departing from the spirit and scope disclosed in this application, but the scope of patent protection of this application shall still be based on the scope defined in the attached claims.

Claims

1. A method for generating a fill area, characterized in that: include: Group filling rules by layer and sort distance requirements of the same layer; For different groups, according to the distance requirements from small to large, the relay layers corresponding to different distance values ​​of the same layer are generated. The generation of the current relay layer is based on the previous relay layer. The obtained relay layer is used to perform Boolean operations on the area to be filled to generate the actual filling area.

2. The method according to claim 1, wherein: The method of grouping the filling rules by layer and sorting the distance requirements of the same layer includes: Read the filling rules of the user, and extract the layers corresponding to each filling rule and the distance requirements of each layer; The filling rules are grouped according to layers, and the distance requirements within each group are sorted from small to large.

3. The method according to claim 1, wherein: The generating of relay layers corresponding to different distance values ​​of the same layer includes: For each layer corresponding to the different groups, starting from the distance value with the minimum distance requirement, the relay layers are gradually generated, wherein the first relay layer is based on the original layer and is generated through a size operation according to the minimum distance value; the second relay layer is based on the first relay layer and is generated through a size operation according to the difference between the second smallest distance value and the minimum distance value, and so on, and the subsequent relay layers are based on the relay layer of the previous layer and are generated through a size operation according to the difference between the current distance value and the previous distance value.

4. The method according to claim 1, wherein: The Boolean operation is performed to generate the actual filling area, including: The actual filling area is generated by performing an intersection operation between the area to be filled and all the obtained relay layers.

5. A computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions are used to execute the method for generating a filling area according to any one of claims 1 to 4.

6. A computer device comprising a memory and a processor, wherein: The memory stores the following instructions executable by the processor: used to execute the steps of the method for generating a filling area as described in any one of claims 1-4.

7. A device for generating a filling area, characterized in that: include: Grouping module, generation module, Boolean processing module; among them, A grouping module, used to group filling rules by layer and sort the distance requirements of the same layer; A generation module is used to generate relay layers corresponding to different distance values ​​of the same layer for different groups according to the distance requirements from small to large, and the generation of the current relay layer is obtained based on the previous relay layer; The Boolean processing module is used to use the obtained relay layer to perform Boolean operation on the area to be filled to generate an actual filling area.

8. The device according to claim 7, wherein: The grouping module is used for: The filling rules of the user are read, and the layers corresponding to each filling rule and the distance requirements of each layer are extracted; the filling rules are grouped according to the layers, and the distance requirements in each group are sorted from small to large.

9. The device according to claim 7, wherein: The generation module is used for: For each layer corresponding to the different groups, starting from the distance value with the minimum distance requirement, the relay layers are gradually generated, wherein the first relay layer is based on the original layer and is generated through a size operation according to the minimum distance value; the second relay layer is based on the first relay layer and is generated through a size operation according to the difference between the second smallest distance value and the minimum distance value, and so on, and the subsequent relay layers are based on the relay layer of the previous layer and are generated through a size operation according to the difference between the current distance value and the previous distance value.

Citation Information

Patent Citations

  • Filling method for redundancy graph

    CN103886150A

  • Spatial polygon gridding filling method and device under constraint conditions

    CN111599015A

  • Redundant metal filling method, device, equipment and medium

    CN115310398A

  • Method and device for realizing redundant graph filling

    CN119443034A

  • Density-Based Layer Filler for Integrated Circuit Design

    US20080120586A1