Filling unit layout optimization method and device, equipment and storage medium

Through dynamic programming and path backtracking methods combined with decision tree model and solution space tree, the problem of low plug-in efficiency in integrated circuit design is solved, and the rapid and accurate optimal plug-in in rows is achieved under multiple constraints, meeting advanced process nodes demand.

CN119129509APending Publication Date: 2024-12-13SHANGHAI LIXIN SOFTWARE TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411135154.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-19
Publication Date
2024-12-13

AI Technical Summary

Technical Problem

In existing integrated circuit designs, the filling unit insertion algorithm is inefficient when facing complex constraints, and it is difficult to meet the needs of advanced process nodes, and the operation time is long under multiple constraints.

Method used

Using the pruning and path backtracking method based on dynamic programming, the decision tree model and the space tree are solved, and the sub-nodes are traversed from top to bottom, and pre-pruning judgment is made based on the filling constraint cost. The backtracking algorithm is used to find the filling with the smallest cumulative number of violations. Unit insertion scheme.

Benefits of technology

The optimal fill unit insertion in the row is realized under low time complexity and spatial complexity, reducing the number of constraint violations, improving algorithm efficiency and accuracy, and is suitable for integrated circuit automation design under multiple constraints.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119129509A_ABST
    Figure CN119129509A_ABST
Patent Text Reader

Abstract

The invention provides an in-line optimal filling unit insertion algorithm for a multi-constraint problem, relates to the field of integrated circuit design automation, and is used for efficiently inserting filling units under the condition of meeting various design rules. Modeling parameters such as filling position information, filling type information and filling constraint cost are obtained, a multi-level solution space tree is constructed through the parameters, and each leaf node represents a possible filling scheme; traversing the solution space tree from top to bottom by adopting a dynamic programming algorithm, and performing pre-pruning operation according to the filling constraint cost to reduce the search space; finding a node with the minimum accumulated violation number by utilizing a backtracking algorithm, and backtracking to a root node through a father node pointer to obtain an optimal filling unit insertion scheme; the pre-pruning operation is performed by using the limitation of the filling constraint cost, so that the time complexity and the space complexity of the algorithm are reduced, and the algorithm efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of integrated circuit design, and in particular to a filling unit layout optimization method, device, equipment and storage medium. Background Art

[0002] In the integrated circuit automation process, the insertion of fill cells is an essential step in chip design. It is used to fill the blank areas in the layout to ensure the reliability of the manufacturing process. However, the complex constraints in modern chip design, such as ion implantation layer constraints, self-aligned dual imaging constraints, and fill cell minimum width constraints, make the insertion of fill cells extremely difficult. Existing insertion algorithms are inefficient when dealing with complex constraints. Improper fill cell insertion will lead to partial constraint violations, making it difficult to meet the requirements of advanced process nodes.

[0003] Chinese patent CN202010236834.8 discloses an automatic layout method for filling rings in chip design, which locates the filling rings based on the design total power consumption data, area constraint information, packaging constraint information, core location information and information of the chip design selected process library, but the filling modules are still randomly inserted, and the constraints are unrelated to the insertion of the filling units.

[0004] Currently, only a few studies have considered the problem of constrained filling cell insertion. US application US20110078639A1 discloses a filling cell for design optimization in a location and route system, which selects a suitable filling cell according to the expected impact on the database or the expected impact on the performance parameters of two adjacent circuit cells with a given gap, but the filling cell includes up to five types of structures, and the filling cell design is performed only by predefining the index in the database, which has high time complexity and long running time under multi-constraint problems.

[0005] Aiming at the problems existing in the existing methods of inserting filling cells under multiple constraints in the design of integrated circuits, the present invention aims to provide an accurate and fast algorithm for inserting optimal filling cells within a row. Given the filling conditions of two adjacent rows, the algorithm can insert optimal filling cells within a row with low time complexity and space complexity, and reduce the number of violations of the corresponding constraints. Summary of the invention

[0006] In view of this, the embodiments of the present application provide a filling unit layout optimization method, device, equipment and storage medium, which can find the filling unit insertion scheme with the least number of violations under the consideration of multiple local constraints by pruning and path backtracking methods based on dynamic programming, and realize the optimal filling unit insertion within the row with low time complexity and space complexity. The embodiments of the present application provide the following technical solutions:

[0007] On the one hand, an embodiment of the present application provides a method for optimizing a filling unit layout, comprising:

[0008] Acquire modeling parameters, wherein the modeling parameters include filling position information, filling type information, and filling constraint cost;

[0009] Based on the modeling parameters, a decision tree model is used to construct a solution space tree of multiple levels and multiple child nodes, wherein the levels represent the in-row insertion positions in the fill position information, and the child nodes include the current fill type, the continuous type length, the accumulated number of violations, and the parent node pointer;

[0010] Using a dynamic programming algorithm on the solution space tree, traversing and processing the child nodes of each level from top to bottom, calculating the cumulative number of violations of the child nodes according to the current filling type and the continuous type length, and performing pre-pruning judgment on the child nodes based on the filling constraint cost;

[0011] A backtracking algorithm is used to traverse the lowest level to obtain the child node with the smallest cumulative number of violations, and based on the child node with the smallest cumulative number of violations and the corresponding parent node pointer, backtrack to the root node of the solution space tree, and the backtracking path is recorded to obtain the optimal filling unit insertion plan.

[0012] Furthermore, the filling position information includes the row number of the row to be filled, the in-row insertion position in the row to be filled and the fillable judgment value of the in-row insertion position, and the filling type information includes the available filling unit type and the width of the filling unit type.

[0013] Furthermore, the number of the levels is one more than the number of the insertion positions within the row, and the number of branches of the child nodes is no more than the number of the filling types.

[0014] Furthermore, the filling constraint cost includes two or more combinations of ion implantation layer constraint, self-aligned dual imaging constraint, minimum filling cell width constraint, minimum width constraint between rows, minimum width constraint within a row, minimum spacing constraint between rows, and minimum spacing constraint within a row.

[0015] Furthermore, based on the continuous boundary and / or the filling constraint cost, a violation judgment point is specified, and a pre-pruning judgment is performed based on the violation judgment point. When the accumulated number of violations meets the pre-pruning operation, the violation judgment point and its subtree are pruned.

[0016] Furthermore, the continuous type length is used to determine the continuous boundary of the current filling type. When the continuous type length exceeds the minimum limit, the constraint length determination of subsequent child nodes of the same current filling type is stopped.

[0017] In a second aspect, an embodiment of the present application provides a filling unit layout optimization device, including:

[0018] An acquisition module, used to acquire modeling parameters, wherein the modeling parameters include filling position information, filling type information and filling constraint cost;

[0019] A modeling module, for constructing a solution space tree of multiple levels and multiple child nodes based on the modeling parameters and using a decision tree model, wherein the levels represent the in-row insertion positions in the fill position information, and the child nodes include the current fill type, the continuous type length, the accumulated number of violations, and the parent node pointer;

[0020] A calculation module, configured to use a dynamic programming algorithm to traverse and process the child nodes of each level from top to bottom and from left to right on the solution space tree, calculate the cumulative number of violations of the child nodes according to the current filling type and the continuous type length, and perform pre-pruning judgment on the child nodes based on the filling constraint cost;

[0021] A backtracking module is used to use a backtracking algorithm to traverse from right to left at the bottom layer to obtain the child node with the smallest cumulative number of violations, backtrack to the root node of the solution space tree based on the child node with the smallest cumulative number of violations and the corresponding parent node pointer, and record the backtracking path to obtain the optimal filling unit insertion plan.

[0022] In a third aspect, an embodiment of the present application provides an electronic device, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute any one of the above-mentioned filling unit layout optimization methods.

[0023] In a fourth aspect, an embodiment of the present application provides a non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to enable the computer to execute any of the above-mentioned filling unit layout optimization methods.

[0024] In a fifth aspect, an embodiment of the present application provides a computer program product, including a computer program, which, when executed by a processor, implements any of the above-mentioned methods for optimizing the layout of a filling unit.

[0025] Compared with the prior art, the at least one technical solution adopted in the embodiment of the present application can achieve the following beneficial effects:

[0026] 1. The filling unit layout optimization method provided by the present invention performs computational optimization based on a solution space tree model. It can find the filling unit insertion plan with the least number of violations while considering multiple local constraints. It uses a dynamic programming algorithm to scan the grid points of the row to be processed from left to right, and record the corresponding cost at each dynamic programming node to indicate the cumulative number of violations of the dynamic programming node. According to the cost of the dynamic programming node corresponding to the rightmost grid point of the row, the node with the smallest cost is selected for backtracking, thereby obtaining the optimal filling unit insertion plan for the row.

[0027] 2. The filling unit layout optimization method provided by the present invention adopts a pre-pruning strategy and uses the limitations of the filling constraint cost to perform pre-pruning operations, thereby reducing the search space of dynamic programming and backtracking algorithms, effectively avoiding wasting computing resources on obviously unreasonable solutions, reducing the time complexity and space complexity of the algorithm, improving the efficiency of the algorithm, accurately eliminating solutions that violate the constraints, and ensuring the legitimacy of the final solution, thereby finding the optimal filling solution that meets the constraints more quickly.

[0028] 3. The filling cell layout optimization method provided by the present invention can meet the calculation requirements of various filling cell constraint costs in the automated design of integrated circuits. Based on the existing method framework, it can further expand the setting of more constraints and show good scalability with low time and space overhead. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings required for use in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0030] Figure 1 It is a flow chart of a filling unit layout optimization method of the present invention;

[0031] Figure 2 It is a schematic diagram of a unit layer to be optimized of a filling unit layout of the present invention;

[0032] Figure 3 It is a schematic diagram of a solution space tree structure before pruning of the present invention;

[0033] Figure 4 It is a schematic diagram of a solution space tree structure after pruning of the present invention;

[0034] Figure 5 It is a schematic flow chart of a second embodiment of a filling unit layout optimization method of the present invention;

[0035] Figure 6It is a schematic diagram of a filling unit layout optimization device of the present invention. DETAILED DESCRIPTION

[0036] The embodiments of the present invention are described in detail below with reference to the accompanying drawings.

[0037] The following describes the embodiments of the present invention through specific examples, and those skilled in the art can easily understand other advantages and effects of the present invention from the contents disclosed in this specification. Obviously, the described embodiments are only a part of the embodiments of the present invention, rather than all the embodiments. The present invention can also be implemented or applied through other different specific embodiments, and the details in this specification can also be modified or changed in various ways based on different viewpoints and applications without departing from the spirit of the present invention. It should be noted that the following embodiments and features in the embodiments can be combined with each other without conflict. Based on the embodiments in the present invention, all other embodiments obtained by ordinary technicians in this field without making creative work belong to the scope of protection of the present invention.

[0038] In the description of this article, the solution space tree refers to a tree that uses a tree structure to represent the solution structure of the problem based on the characteristics of the problem to be solved, and uses leaves to represent all possible solutions to all problems. In the process of solving the problem using the solution space tree, a deep traversal search of the solution space tree is often used, and during the search process, it is determined at any time whether the current node meets the problem-solving requirements. If the requirements are met, the search continues downward, and if the requirements are not met, the tree is traced back to the previous level to continue searching for another subtree. However, the time complexity of such a solution increases factorially as the problem-solving requirements increase. When facing multi-constrained problems, the running time of the solution layout is long and the efficiency is low.

[0039] So Figure 1 As shown in the flowchart of a filling unit layout optimization method of the present invention, the present application embodiment provides a filling unit layout optimization method, and this embodiment is illustrated by applying the method to a terminal. In this embodiment, the method includes the following steps:

[0040] S101, obtaining modeling parameters, where the modeling parameters include filling position information, filling type information, and filling constraint cost;

[0041] Specifically, if Figure 2 As shown in a schematic diagram of a cell layer to be optimized of a filling cell layout of the present invention, an embodiment of the present application provides a cell layer to be optimized when the filling cells of upper and lower adjacent rows have been inserted. The figure assumes that there are only two types of filling cells, and does not consider the minimum width constraint of the filling cells. The filling position information needs to include the filling cell insertion information of the upper and lower adjacent rows to determine the inter-row constraints, the row number of the current row to be filled, the intra-row insertion position in the row to be filled, and the fillable judgment value of the intra-row insertion position to determine the intra-row constraints;

[0042] The filling type information includes the available filling cell types and the width of the filling cell types; the filling constraint cost includes two or more combinations of ion implantation layer constraint, self-aligned dual imaging constraint, minimum filling cell width constraint, minimum width constraint between rows, minimum width constraint within a row, minimum spacing constraint between rows, and minimum spacing constraint within a row. Each constraint corresponds to several types of filling cells, and the number of filling cell types (without considering the length difference) is the product of the number of all constraint types, recorded as set L.

[0043] S102, based on the modeling parameters, using a decision tree model, constructing a solution space tree with multiple levels and multiple sub-nodes, wherein the path from the root node to the leaf node in the solution space tree is an insertion scheme of a filling unit;

[0044] like Figure 3 The present invention is a solution space tree structure schematic diagram before pruning, for Figure 2 The unit layer to be optimized is shown in the embodiment of the present application. It provides a solution space tree including two filling types. The root node represents the state before the filling starts. Each constraint corresponds to certain types. Based on the principle of the solution space tree, a series of judgment and decision-making processes for inserting filling units into the problem solving and various possible results are presented in a tree structure. Each step of the judgment and decision-making process corresponds to a branch node of the solution space tree, and various possible different results correspond to each child and each subtree of the node. The problem-solving process of a series of judgments and decisions corresponds to the growth process of the solution space tree; and all possible solutions to the problem will be presented on the leaves of this solution space tree.

[0045] Each grid point from left to right in the filling row corresponds to a layer in the complete tree. The number of nodes in each layer is |L| times the number of nodes in the previous layer, and |L| is the number of filling unit types. For each grid point, all possible filling unit types are traversed, so that all possible solutions for inserting different types of filling units at different sites can be represented.

[0046] Among them, the level represents the in-row insertion position in the fill position information, which increases from top to bottom. The child node does not directly perform operations, but stores data and provides access to other nodes. The child node in this embodiment includes the current fill type, the continuous type length, the cumulative number of violations and the parent node pointer; specifically, the current fill type (type_id) indicates the fill unit type selected by the node; the continuous type length indicates the length of the continuous appearance of the current fill type, for example, the current node selects type_id = 1, and its parent node is also type_id = 1, then the continuous type length is 2; the cumulative number of violations indicates the cumulative number of times the constraint is violated from the root node to the current node; the parent node pointer points to the parent node of the current node, which is used to trace the path back. Furthermore, the number of levels is one more than the number of in-row insertion positions, and the number of branches of the child node is no more than the number of fill types.

[0047] S103, using a dynamic programming algorithm on the solution space tree, traverses and processes the child nodes of each level from top to bottom and from left to right, calculates the cumulative number of violations of the current child node based on the current filling type and continuous type length, combined with the known filling information of the previous node, and pre-prunes the child node based on the filling constraint cost.

[0048] It should be understood that traversing from left to right is only one way to implement the child node traversal. The choice of traversal method needs to be considered comprehensively according to the specific application scenario, the structural characteristics of the tree, and the algorithm requirements. For tree operations implemented using pre-order traversal (root-left-right), it is ensured that the parent node is processed before the child node, which conforms to the logical structure of the tree. In this case, the traversal method from left to right is more efficient. In addition, for tree nodes stored in an array, the array subscript follows the order of hierarchical traversal, and the traversal method from left to right can also more conveniently access child nodes. However, since recursive traversal of the tree structure itself has a certain overhead, in this case, the impact of the traversal order on efficiency may be masked by the recursive overhead, and a method that is more suitable for the scenario can be selected to implement traversal of child nodes.

[0049] like Figure 4 As shown in a schematic diagram of a solution space tree structure after pruning of the present invention, an embodiment of the present application provides a tree structure corresponding to pre-pruning under several constraints. According to preset pruning rules, it is determined whether new violation points are generated, and child nodes that do not meet the conditions are pruned. In particular, after pre-pruning, the number of nodes in each layer is at most |L|.

[0050] Furthermore, the continuous type length is used to determine the continuous boundary of the current filling type. When the continuous type length exceeds the minimum continuous length limit allowed by the same type of filling unit, the constraint judgment of the minimum continuous length of the type will no longer be performed on the subsequent child nodes of the same type. Since the filling scheme exceeding the minimum continuous length must meet the constraint conditions, stopping the recording of these constraints as early as possible can avoid invalid calculations.

[0051] For pre-pruning judgment and operation, if the cumulative number of violations of the current node has exceeded the preset threshold, or according to the filling constraint cost, it is judged that the current filling type of the current child node has violated the constraint or will inevitably lead to subsequent constraint violations, then the expansion of the unqualified child nodes can be stopped in advance, and the node and its subtree can be pruned, thereby reducing the size of the solution space tree, reducing the computational complexity of subsequent dynamic programming and backtracking algorithms, and improving algorithm efficiency.

[0052] In some embodiments, based on the continuous boundary and / or filling constraint cost, specifying the violation judgment point can effectively reduce invalid search, reduce algorithm complexity, and improve layout quality. For inter-row violations, the violation judgment point is defined as the left and right endpoints of continuous grid points of the same type (not distinguishing between filling cells and logic cells); for violations of non-filler width constraints within a row (such as ion implantation layer constraints, self-aligned dual imaging constraints), the violation judgment point is defined as the right endpoint of continuous grid points of the same type (not distinguishing between filling cells and logic cells) or the grid point whose length from the left endpoint is the minimum width of the constraint (depending on which is closer to the left endpoint); for filler minimum width constraints, the violation judgment point is defined as the right endpoint of continuous grid points of the same type (only filling cells) or the grid point whose length from the left endpoint is the minimum width of the constraint (depending on which is closer to the left endpoint).

[0053] Furthermore, when performing settlement at the above-mentioned violation judgment points, for a continuous segment of the same filling type grid points, it is only necessary to judge the inter-row violation and intra-row violation at the end of the previous segment at the leftmost of the segment grid points, and judge the inter-row violation and intra-row violation of the current segment grid points at the rightmost of the segment grid points. These settlements can be performed in a greedy manner to improve the accuracy of pre-pruning judgment without affecting the violation judgment of subsequent continuous segments. It should be understood that there is a difference between the greedy violation settlement here and the greedy filling unit insertion. The greedy violation settlement here is only performed at the violation judgment point instead of at each grid point, which can ensure that the optimal solution will not be lost.

[0054] S104, using the backtracking algorithm to traverse from right to left at the bottom level, obtain the child node with the smallest cumulative number of violations, backtrack to the root node of the solution space tree based on the violation judgment point and the parent node pointer, record the backtracking path to obtain the optimal filling unit insertion plan. Through the above steps, it is possible to find a solution with the smallest number of violations more quickly when multiple constraints are set.

[0055] Furthermore, after obtaining the padding scheme of the row, it is physically mapped to the actual cell instance, the abstract padding scheme is converted into a specific physical layout, and the corresponding physical cell instance is created according to each padding cell in the padding scheme. Each instance should contain specific geometric information, such as size, shape, etc., and different types of padding cells should be considered; the logical position in the padding scheme is converted into actual physical coordinates, and the physical layer to which each padding cell instance belongs is specified. If the padding cells need to be connected, the necessary connection structure is added; the mapped physical layout is checked for design rules to ensure compliance with all design rules, so as to convert the internal representation of the padding scheme into a data format acceptable to the target layout tool.

[0056] like Figure 5 As shown in the flow chart of the second embodiment of a filling unit layout optimization method of the present invention, compared with the above embodiment, the embodiment of the present application provides a method of using a cost lookup table in the process of calculating the cumulative number of violations of the current child node, and calculates the cost of each child node according to the cost lookup table, starting from the root node of the complete tree, and in a top-down order, the cost lookup table is used to calculate the left and right cost values ​​of each node, which are used to settle and judge the inter-row and intra-row violation constraints at the violation judgment point, and judge the length constraint at each node.

[0057] Specifically, the cost lookup table includes an inter-row constraint cost lookup table and a filling cell cost lookup table. The inter-row constraint cost lookup table is generated based on the inter-row constraints, and is used to record the cost of inserting a specific type of filling cell under the distribution of two adjacent rows of cells. It is generated during the preprocessing process to speed up the settlement process of the inter-row constraints; the filling cell cost lookup table is generated based on the filling cell list, and is used to record the costs of different types of filling cells. It is generated during the preprocessing process to handle the situation where there is filling cell coupling under multiple constraints, such as a certain type of filling cell does not exist in the standard cell library.

[0058] At the algorithm implementation level, this algorithm uses dynamic programming and backtracking algorithms. First, the node set is initialized. This set is a recursive record table of dynamic programming. The first dimension is the sequence number of the current filling points from left to right, the second dimension is the length of the current continuous segment, and the third dimension is the filling unit type of the current continuous segment. Each node in the set also records the cumulative cost of the node and the previous node derived to the node (i.e., the parent node in the tree structure) to ensure subsequent backtracking from right to left.

[0059] Specifically, dynamic programming is used to exploit the locality of a single violation judgment to obtain a local optimal solution, where local constraints refer to constraints that can be expressed as minimum width between rows / within rows and minimum spacing between rows / within rows. The characteristics of these constraints are that the violation is determined by multiple units, and there may be a cascading relationship between violations, but a single violation can be judged by the local unit distribution, and pre-pruning operations are performed during the generation and replacement process.

[0060] In particular, when calculating the objective function value of each node, the optimal predecessor node of the node is recorded. If the node is empty, it is necessary to traverse the filling type, generate and possibly replace elements in the node set (the pre-pruning operation occurs during the replacement process, and the replaced node will be discarded and no subtree will be generated). For nodes that are occupied by standard cells and do not need to be filled, the node only needs to be recorded.

[0061] After recursively reaching the rightmost grid point of the row to be processed, a node with the lowest cost can be accessed and backtracked in the leaf node corresponding to the grid point. According to the predecessor parent node information recorded in each node, backtrack to the root node in turn, and finally the optimal path for inserting the filling unit is obtained to obtain the filling plan for the row and physically map it to the actual unit instance.

[0062] In code implementation, different constraints can be used as different class structures, and the maintenance of the padding unit length can be used as an independent class structure, thereby improving the scalability of the algorithm under more constraints.

[0063] On the other hand, Figure 6 As shown in a schematic diagram of a filling unit layout optimization device of the present invention, an embodiment of the present application provides a filling unit layout optimization device, including:

[0064] An acquisition module is used to acquire modeling parameters, including filling position information, filling type information and filling constraint cost;

[0065] A modeling module, for constructing a solution space tree with multiple levels and multiple child nodes based on modeling parameters and using a decision tree model, wherein the levels represent the in-row insertion positions in the fill position information, and the child nodes include the current fill type, the continuous type length, the accumulated number of violations, and the parent node pointer;

[0066] The calculation module is used to use the dynamic programming algorithm on the solution space tree to traverse and process the child nodes of each level from top to bottom and from left to right, calculate the cumulative number of violations of the child nodes according to the current filling type and continuous type length, and pre-prune the child nodes based on the filling constraint cost;

[0067] The backtracking module is used to use the backtracking algorithm to traverse from right to left at the bottom level to obtain the child node with the smallest cumulative violation number, backtrack to the root node of the solution space tree based on the violation judgment point and the parent node pointer, and record the backtracking path to obtain the optimal filling unit insertion plan.

[0068] The filling position information stored in the acquisition module includes the row number of the row to be filled, the intra-row insertion position in the row to be filled, and the fillable judgment value of the intra-row insertion position, and the filling type information includes the usable filling unit type and the width of the filling unit type. The filling constraint cost includes two or more combinations of ion implantation layer constraint, self-aligned dual imaging constraint, minimum filling unit width constraint, minimum width constraint between rows, minimum width constraint within a row, minimum spacing constraint between rows, and minimum spacing constraint within a row.

[0069] The number of solution space tree levels generated in the modeling module is one more than the number of inline insertion positions in the acquisition module, and the number of child node branches is no more than the number of filling types. The generated continuous type length is used to determine the continuous boundary of the current filling type. When the continuous type length exceeds the minimum limit, the constraint length determination of subsequent child nodes with the same current filling type is stopped.

[0070] In the calculation module, based on the continuous boundary and / or filling constraint cost, the violation judgment point is specified, and pre-pruning judgment is performed based on the violation judgment point. When the cumulative number of violations meets the pre-pruning operation, the violation judgment point and its subtree are pruned.

[0071] On the other hand, an embodiment of the present application provides an electronic device, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute any one of the above-mentioned filling unit layout optimization methods.

[0072] In a fourth aspect, an embodiment of the present application provides a non-transitory computer-readable storage medium storing computer instructions, where the computer instructions are used to enable a computer to execute any of the above-mentioned filling cell layout optimization methods.

[0073] In a fifth aspect, an embodiment of the present application provides a computer program product, including a computer program, which implements any of the above-mentioned filling unit layout optimization methods when executed by a processor.

[0074] In this specification, the same or similar parts between the various embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the embodiments described later, the description is relatively simple, and the relevant parts can be referred to the partial description of the previous embodiments.

[0075] The above are only specific embodiments of the present invention, but the protection scope of the present invention is not limited thereto. Any changes or substitutions that can be easily thought of by a person skilled in the art within the technical scope disclosed by the present invention should be included in the protection scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the claims.

Claims

1. A method for optimizing the layout of a filling unit, It is characterized in that include: Acquire modeling parameters, wherein the modeling parameters include filling position information, filling type information, and filling constraint cost; Based on the modeling parameters, a decision tree model is used to construct a solution space tree of multiple levels and multiple child nodes, wherein the levels represent the in-row insertion positions in the fill position information, and the child nodes include the current fill type, the continuous type length, the accumulated number of violations, and the parent node pointer; Using a dynamic programming algorithm on the solution space tree, traversing and processing the child nodes of each level from top to bottom, calculating the cumulative number of violations of the child nodes according to the current filling type and the continuous type length, and performing pre-pruning judgment on the child nodes based on the filling constraint cost; A backtracking algorithm is used to traverse the lowest level to obtain the child node with the smallest cumulative number of violations, and based on the child node with the smallest cumulative number of violations and the corresponding parent node pointer, backtrack to the root node of the solution space tree, and the backtracking path is recorded to obtain the optimal filling unit insertion plan.

2. The method for optimizing the layout of the filling unit according to claim 1, It is characterized in that The filling position information includes the row number of the row to be filled, the inline insertion position in the row to be filled and the fillable judgment value of the inline insertion position, and the filling type information includes the available filling unit type and the width of the filling unit type.

3. The method for optimizing the layout of the filling unit according to claim 2, It is characterized in that The number of the levels is one more than the number of the insertion positions within the row, and the number of branches of the child nodes is no more than the number of the filling types.

4. The method for optimizing the layout of a filling unit according to claim 1, It is characterized in that The filling constraint cost includes two or more combinations of ion implantation layer constraint, self-aligned dual imaging constraint, minimum filling cell width constraint, minimum width constraint between rows, minimum width constraint within a row, minimum spacing constraint between rows, and minimum spacing constraint within a row.

5. The method for optimizing the layout of a filling unit according to claim 1, It is characterized in that Based on the continuous boundary and / or the filling constraint cost, a violation judgment point is specified, and a pre-pruning judgment is performed based on the violation judgment point. When the accumulated number of violations meets the pre-pruning operation, the violation judgment point and its subtree are pruned.

6. The method for optimizing the layout of the filling unit according to claim 5, It is characterized in that The continuous type length is used to determine the continuous boundary of the current filling type. When the continuous type length exceeds the minimum limit, the constraint length determination of subsequent child nodes of the same current filling type is stopped.

7. A filling unit layout optimization device, It is characterized in that include: An acquisition module, used to acquire modeling parameters, wherein the modeling parameters include filling position information, filling type information and filling constraint cost; A modeling module, for constructing a solution space tree of multiple levels and multiple child nodes based on the modeling parameters and using a decision tree model, wherein the levels represent the in-row insertion positions in the fill position information, and the child nodes include the current fill type, the continuous type length, the accumulated number of violations, and the parent node pointer; A calculation module, configured to use a dynamic programming algorithm to traverse and process the child nodes of each level from top to bottom and from left to right on the solution space tree, calculate the cumulative number of violations of the child nodes according to the current filling type and the continuous type length, and perform pre-pruning judgment on the child nodes based on the filling constraint cost; A backtracking module is used to use a backtracking algorithm to traverse from right to left at the bottom layer to obtain the child node with the smallest cumulative number of violations, backtrack to the root node of the solution space tree based on the child node with the smallest cumulative number of violations and the corresponding parent node pointer, and record the backtracking path to obtain the optimal filling unit insertion plan.

8. An electronic device, It is characterized in that include: at least one processor; And a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the filling unit layout optimization method described in any one of claims 1-6.

9. A non-transitory computer-readable storage medium storing computer instructions, It is characterized in that The computer instructions are used to enable the computer to execute the filling cell layout optimization method according to any one of claims 1-6.

10. A computer program product, It is characterized in that The invention comprises a computer program, which, when executed by a processor, implements the filling cell layout optimization method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Automatic layout method of filling ring in chip design

    CN111475994A

  • Filler cells for design optimization in a place-and-route system

    US20110078639A1