Layout DRC repairing method and device based on dynamic programming
Through dynamic programming-based methods and GPU matrix computing, the DRC problem of metal wiring is automatically repaired, and the problem of low manual repair efficiency in the prior art is solved, achieving efficient and accurate DRC repair effect.
Patent Information
- Application Number
- CN202510764708.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-10
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2045-06-10
AI Technical Summary
The prior art lacks effective automated repair solutions when facing complex metal wiring DRC problems, and mainly relies on manual repair, resulting in high time cost and low efficiency.
Using a dynamic programming method, by establishing a tree topology between metal lines, using a dynamic programming algorithm to traverse the local topology, determine the optimal solution of the action of the metal lines, and update its location to repair the DRC problem, and accelerate the repair process in combination with GPU matrix operations.
It realizes efficient and accurate DRC repair, reduces the cost of manual repair time, improves the speed of layout design process, and ensures the accuracy and speed of the repair process.
Smart Images

Figure CN120278115A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present invention relate to the technical field of Design Rule Check (DRC), and particularly to a layout DRC repair method and device based on dynamic programming. Background Art
[0002] In the process of chip layout design, designers need to convert the circuit schematic diagram into a layout that meets the manufacturing process constraints. After converting it into a layout, designers also need to manually check and modify DRC violations to make the layout meet the physical constraints caused by semiconductor manufacturing processes such as the minimum line width and minimum spacing, ensuring that the circuit can be correctly processed during actual manufacturing and avoiding problems such as short circuits, open circuits, overheating, and excessive power. Currently, DRC problems are mainly divided into several categories, and the short circuit problem of lines accounts for the main part.
[0003] Currently, the methods for repairing DRC violations mainly rely on manual labor. Some existing automated DRC repair technologies can only provide auxiliary support such as faster positioning and review for manual labor, or can only solve DRC problems through direct methods that damage the original design intention, such as deleting metal wires. There is still a lack of appropriate solutions for complex and large amounts of metal wiring DRC problems. Summary of the Invention
[0004] The present invention provides a layout DRC repair method and device based on dynamic programming, providing an efficient, accurate and complexity-adaptive DRC repair method, greatly improving the speed of the layout design process and reducing the time cost of manually repairing DRC problems.
[0005] In a first aspect, an embodiment of the present invention provides a layout DRC repair method based on dynamic programming, including: S1. Establish a tree-like topological structure between metal wires according to the original data of layout DRC, and extract the local topological structure to be repaired from the tree-like topological structure; S2. Traverse the metal wires in the local topological structure by using the dynamic programming algorithm to determine the optimal action solution of each metal wire, and update the position information of each metal wire according to the optimal action solution to complete the repair of DRC problems in the local topological structure.
[0006] Optionally, the S1 specifically includes: Read the original data of all metal wires in the layout DRC; Add parent-child relationship attributes to the metal wires by traversing and judging whether they intersect after translation, and establish a tree-like topological structure of the metal wires; Search for metal lines with DRC short - circuit problems as child nodes, and extract the local topology structure to be repaired from the tree - like topology structure according to the preset tree width and search depth.
[0007] Optionally, step S2 specifically includes: Determine the action space of the metal line in the specified direction according to the minimum movement step and maximum movement distance of the metal line; Read the distance matrix of the metal line in the specified direction at the current coordinate, and use the distance matrix as the initial state of dynamic programming; Construct a state - transition equation, and use the minimum movement steps of the metal line as the optimization objective of the state - transition equation; Determine the initial conditions and termination conditions of the state - transition equation, and solve the state - transition equation according to the action space, initial state, and optimization objective to obtain the optimal action solution of the metal line.
[0008] Optionally, the state - transition equation is: dp[j]=min(a[j]+ cond(a[j]|dp[i])*dp[i]); Where dp[i] is the optimal solution set of the historical action space from the 0th metal line to the ith metal line in the specified direction; a[j] is the effective action set of the new metal line; cond(a[j]|dp[i]) is the condition that no error occurs after the new metal line executes the action in the action space; the new metal line is the metal line currently traversed by the dynamic programming algorithm.
[0009] Optionally, the initial condition of the state - transition equation is: the short - circuit information that already exists when the metal line is at the initial coordinate position; The termination condition of the state - transition equation is: when all metal lines in the local topology structure are traversed, there is no new short - circuit problem and no new short - circuit problem is generated under the new action combination.
[0010] In a second aspect, an embodiment of the present invention further provides a layout DRC repair device based on dynamic programming, including: A topology structure establishment module, configured to establish a tree - like topology structure between metal lines according to the original data of the layout DRC, and extract the local topology structure to be repaired from the tree - like topology structure; An optimal solution determination module, configured to traverse the metal lines in the local topology structure by using a dynamic programming algorithm to determine the optimal action solution of each metal line, and update the position information of each metal line according to the optimal action solution to complete the repair of the DRC problem in the local topology structure.
[0011] Optionally, the topology structure establishment module is specifically configured to: Read the original data of all metal lines in the layout DRC; By traversing to determine whether the metal wires intersect after translation, add parent-child relationship attributes to the metal wires and establish a tree-like topological structure of the metal wires; Search with the metal wires having DRC short circuit problems as child nodes, and extract the local topological structure to be repaired from the tree-like topological structure according to the preset tree width and search depth.
[0012] Optionally, the optimal solution determination module is specifically configured to: Determine the action space of the metal wires in the specified direction according to the minimum movement step and maximum movement distance of the metal wires; Read the distance matrix of the metal wires in the specified direction at the coordinates where they are located, and use the distance matrix as the initial state of dynamic programming; Construct a state transition equation, and use the minimum movement steps of the metal wires as the optimization objective of the state transition equation; Determine the initial conditions and termination conditions of the state transition equation, and solve the state transition equation according to the action space, initial state and optimization objective to obtain the optimal action solution of the metal wires.
[0013] Optionally, the state transition equation is: dp[j] = min(a[j]+ cond(a[j]|dp[i])*dp[i]); Wherein, dp[i] is the optimal solution set of the historical action space from the 0th metal wire to the ith metal wire in the specified direction; a[j] is the effective action set of the new metal wire; cond(a[j]|dp[i]) is the condition that no error occurs after the new metal wire executes the actions in the action space; the new metal wire is the metal wire currently traversed by the dynamic programming algorithm.
[0014] Optionally, the initial condition of the state transition equation is: the short circuit information that already exists when the metal wires are at the initial coordinate positions; The termination condition of the state transition equation is: when all the metal wires in the local topological structure end traversing, there is no new short circuit problem and no new short circuit problem is generated under the new action combination.
[0015] The present invention first establishes a tree-like topological structure between metal wires according to the original data of the layout DRC, then uses the dynamic programming algorithm to traverse the metal wires in the topological structure to determine the optimal action solution of each metal wire, and updates the position information of each metal wire according to the optimal action solution to complete the repair of the local DRC problem. This method can achieve batch high-precision DRC repair by adjusting the hyperparameters of dynamic programming. In addition, the method of accelerating the GPU matrix operation in the present invention can ensure the accuracy and speed of the repair process. Description of the Drawings
[0016] Figure 1 The flowchart of a layout DRC repair method based on dynamic programming provided by an embodiment of the present invention; Figure 2 The algorithm flowchart of a layout DRC repair method based on dynamic programming provided by an embodiment of the present invention; Figure 3 An example diagram of the update process of the historical action space provided by an embodiment of the present invention. Detailed implementation manners
[0017] The present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It can be understood that the specific embodiments described herein are only used to explain the present invention, rather than limiting the present invention. In addition, it should be noted that, for the sake of description, only parts related to the present invention are shown in the drawings rather than all the structures. Embodiment
[0018] Figure 1 The flowchart of a layout DRC repair method based on dynamic programming provided by an embodiment of the present invention specifically includes the following steps: S1. Establish a tree - like topological structure between metal lines according to the original data of layout DRC, and extract the local topological structure to be repaired from the tree - like topological structure.
[0019] In this embodiment, first, the effective attributes of all metal lines are read through EDA software to complete the description of the metal lines. Among them, the effective attributes of the metal lines may include line width, name, layer number, and whether to move, etc.
[0020] Establish a tree - like topological structure relationship of metal lines according to conditions such as translation and intersection, construct a parent - child relationship in the tree - like structure in the horizontal or vertical direction for all metal lines, and at the same time establish the connection relationship between horizontal metal lines and vertical metal lines.
[0021] Specifically, when different metal lines intersect after translation, it indicates that there is a parent - child relationship between the metal lines. Add the parent - child relationship attribute to the metal lines by traversing the metal lines to determine whether they intersect after translation.
[0022] DRC problems can generally be solved in the local tree structure. For different types of DRC problem scenarios, search with the metal lines with DRC problems as child nodes. By setting a reasonable tree width and search depth, while ensuring the accuracy, the running speed is improved and the computing space is saved.
[0023] Exemplarily, a breadth - first algorithm can be used. With the metal lines with DRC problems as child nodes and the parent - child relationship as the search path, extract the local topological structure to be repaired from the tree - like topological structure.
[0024] Furthermore, the DRC problem in this embodiment is the short - circuit problem of the wire.
[0025] S2. Traverse the metal wires in the local topology structure using the dynamic programming algorithm to determine the optimal action solutions for each metal wire, and update the position information of each metal wire according to the optimal action solutions to complete the repair of the DRC problem in the local topology structure.
[0026] For the metal wires within a subtree structure, most of the DRC violations can be corrected through reasonable translation and stretching actions. This embodiment adopts the idea of dynamic programming, transforms the DRC violation correction into a mathematical problem, selects the optimal action combination from all possible actions, and solves the DRC violation problem while maintaining the original layout design intention.
[0027] Specifically, the above - mentioned S2 specifically includes the following steps: Step 1. Define the discrete action space In this embodiment, the action space of the metal wire in the specified direction is determined according to the minimum movement step and the maximum movement distance of the metal wire. The above - mentioned specified direction can be the horizontal direction or the vertical direction.
[0028] The action space of the metal wire in the horizontal or vertical direction is {-K,...,-1,0,1,...,K}, where the unit distance of the metal wire movement is variable, and K represents the maximum distance that can be moved.
[0029] Taking the 28 - nm chip design as an example, the minimum movement step of the discrete action space is set to 25 nm, that is, the optional actions of the metal wire are (0, ±25, ±50,...). The number of optional actions is coordinated and confirmed according to the complexity of the actual DRC problem and the computing power of the computer. Generally, setting the action space to (0, ±25) can ensure a high accuracy while not changing the relative position of the wires.
[0030] Step 2. Define the initial state After determining the optimization direction as horizontal or vertical, through EDA reading, the distance matrix of the metal wire in the specified direction at the current coordinates without performing any action is obtained. This matrix represents the initial state of the dynamic programming without any movement.
[0031] Step 3. Determine the state - transition equation The state - transition equation is mainly used to achieve: while the new metal wire action can effectively avoid and not generate DRC errors such as short - circuits, minimize the movement steps to meet the original intention of the layout design. In this embodiment, the optimization goal of the state - transition equation is to minimize the movement steps of the metal wire.
[0032] Specifically, the state - transition equation is defined as follows: dp[j] = min(a[j]+ cond(a[j]|dp[i])*dp[i]); Among them, dp[i] is the optimal solution set of the historical action space from the 0th metal wire to the ith metal wire in the specified direction.
[0033] a[j] is the set of valid actions of the new metal wire; cond(a[j]|dp[i]) is the condition that there is no error after the actions in the action space of the new metal wire are executed; the new metal wire is the metal wire currently traversed by the dynamic programming algorithm, and the set of valid actions in a[j] is the set of actions that do not cause errors after the actions in the action space of the new metal wire are executed.
[0034] Step 4: Determine the initial conditions and termination conditions of the state transition equation, and solve the state transition equation In this embodiment, the short-circuit information already existing at the initial coordinate position of the metal wire is used as the initial condition, and actions are selected by traversing each metal wire one by one. The termination condition is that all the metal wires in the subtree have completed traversal and there are no new short-circuit problems under the new action combination.
[0035] When solving the state transition equation, after a series of actions in the action space of the new metal wire are executed, DRC short-circuit checking is performed again. According to the cond(a[j]|dp[i]) condition, a set of new actions and the splicing action matrix of the historical action space of the old metal wire are screened and generated, and the set of actions with the smallest action amplitude in the updated historical action space is selected and updated into dp[j] by summing.
[0036] Furthermore, the calculation efficiency of the dynamic programming algorithm can be greatly improved through matrixization. For specific content, see Table 1.
[0037] Table 1 Matrix description of the relationship between metal wires
[0038] Specifically, the above matrix can be used to describe the relative distance between metal wires, whether the names of metal wires are the same, whether there is a parent-child relationship between metal wires, whether the layer of metal wires is the same, etc. Under different combinations of historical actions and actions of new metal wires, the distance matrix is updated, and the rationality of the combined actions is calculated in combination with other description matrices.
[0039] For further reference Figure 2 , Figure 2It is the algorithm flowchart of the layout DRC repair method based on dynamic programming. When executing the dynamic programming algorithm, the metal wires with DRC short - circuit problems are used as child nodes for searching. Read the information of one / group of metal wires, and generate the action space corresponding to the metal wires. Then, judge whether there is a historical action space for the current metal wire. If not, use the action space as the initial historical action space. If so, calculate the state transition equation according to the action space of the metal wire, and then calculate the optimal historical action matched by the metal wire and update the historical action space. When traversing to the last one / group of metal wires in the subtree, repeat the above steps to update the historical action space, sum and sort the historical action space, and take the action combination with the smallest cumulative action as the final result, update the metal wire position information, and complete the repair of the local DRC problem.
[0040] See further Figure 3 , Figure 3 It is an example diagram of the historical action space update process.
[0041] The technical solution of this embodiment extracts local data to establish a topological structure, and uses the idea of dynamic programming to calculate the optimal actions wire by wire / group by group, which can obtain an adaptive optimal solution that does not interfere with global data, solves the problem of high cost of manual repair after DRC detection, and realizes batch high - precision DRC repair. In addition, this embodiment also uses the method of GPU matrix operation acceleration, which can ensure both the accuracy and speed of the repair process.
[0042] Furthermore, the present invention also provides a layout DRC repair device based on dynamic programming, including: A topological structure establishment module, which is used to establish a tree - like topological structure between metal wires according to the original data of layout DRC, and extract the local topological structure to be repaired from the tree - like topological structure; An optimal solution determination module, which is used to traverse the metal wires in the local topological structure by using the dynamic programming algorithm to determine the optimal action solutions of each metal wire, and update the position information of each metal wire according to the optimal action solutions to complete the repair of the DRC problem in the local topological structure.
[0043] Optionally, the topological structure establishment module is specifically used for: Read the original data of all metal wires in the layout DRC; Add parent - child relationship attributes to the metal wires by traversing and judging whether they intersect after translation of the metal wires, and establish a tree - like topological structure of the metal wires; Use the metal wires with DRC short - circuit problems as child nodes for searching, and extract the local topological structure to be repaired from the tree - like topological structure according to the preset tree width and search depth.
[0044] Furthermore, the optimal solution determination module is specifically used for: Determine the action space of the wire in the specified direction according to the minimum moving step and the maximum moving distance of the wire; Read the distance matrix of the wire in the specified direction at the current coordinates, and use the distance matrix as the initial state of dynamic programming; Construct a state transition equation, and use the minimum number of moving steps of the wire as the optimization objective of the state transition equation; Determine the initial conditions and termination conditions of the state transition equation, and solve the state transition equation according to the action space, the initial state, and the optimization objective to obtain the optimal solution of the wire's action.
[0045] Specifically, the state transition equation is: dp[j] = min(a[j]+ cond(a[j]|dp[i])*dp[i]); Where dp[i] is the optimal solution set of the historical action space from the 0th wire to the ith wire in the specified direction; a[j] is the set of valid actions of the new wire; cond(a[j]|dp[i]) is the condition that no error occurs after the new wire executes the actions in the action space; the new wire is the wire currently traversed by the dynamic programming algorithm.
[0046] The initial condition of the state transition equation is: the short-circuit information that already exists when the wire is at the initial coordinate position; The termination condition of the state transition equation is: when all the wires of the subtree end traversing, there is no new short-circuit problem and no new short-circuit problem is generated under the new action combination.
[0047] The layout DRC repair device based on dynamic programming provided by the embodiments of the present invention can execute the layout DRC repair method based on dynamic programming provided by any embodiment of the present invention, and has the corresponding functional modules and beneficial effects of the execution method, which will not be elaborated here.
[0048] Note that the above is only the preferred embodiment of the present invention and the technical principles applied. Those skilled in the art will understand that the present invention is not limited to the specific embodiments described here, and various obvious changes, re-adjustments, and substitutions can be made by those skilled in the art without departing from the protection scope of the present invention. Therefore, although the present invention has been described in detail through the above embodiments, the present invention is not limited to the above embodiments. Without departing from the concept of the present invention, more other equivalent embodiments can be included, and the scope of the present invention is determined by the scope of the appended claims.
Claims
1. A layout DRC repair method based on dynamic programming, characterized in that, Including: S1. Establish a tree - like topological structure between metal lines according to the original data of layout DRC, and extract the local topological structure to be repaired from the tree - like topological structure; S2. Use the dynamic programming algorithm to traverse the metal lines in the local topological structure to determine the optimal action solution for each metal line, and update the position information of each metal line according to the optimal action solution to complete the repair of the DRC problem in the local topological structure.
2. The method according to claim 1, wherein The specific steps of S1 include: Read the original data of all metal lines in layout DRC; Add parent - child relationship attributes to metal lines by traversing and judging whether they intersect after translation, and establish a tree - like topological structure of metal lines; Search with the metal lines having DRC short - circuit problems as child nodes, and extract the local topological structure to be repaired from the tree - like topological structure according to the preset tree width and search depth.
3. The method according to claim 1, characterized in that, The specific steps of S2 include: Determine the action space of metal lines in a specified direction according to the minimum movement step and maximum movement distance of metal lines; Read the distance matrix of metal lines in the specified direction at their current coordinates, and use the distance matrix as the initial state of dynamic programming; Construct a state transition equation, with the minimum movement step number of metal lines as the optimization objective of the state transition equation; Determine the initial conditions and termination conditions of the state transition equation, and solve the state transition equation according to the action space, initial state, and optimization objective to obtain the optimal action solution of metal lines.
4. The method according to claim 3, wherein The state transition equation is: dp[j] = min(a[j] + cond(a[j]|dp[i])*dp[i]); Where dp[i] is the optimal solution set of the historical action space from the 0th metal line to the ith metal line in the specified direction; a[j] is the effective action set of the new metal line; cond(a[j]|dp[i]) is the condition that no error occurs after the new metal line executes the actions in the action space; the new metal line is the metal line currently traversed by the dynamic programming algorithm.
5. The method according to claim 3, characterized in that, The initial condition of the state transition equation is: the short - circuit information that already exists when the metal line is at the initial coordinate position; The termination condition of the state transition equation is: when all metal lines in the local topological structure have been traversed, there is no new short - circuit problem and no new short - circuit problem is generated under the new action combination.
6. A layout DRC repair device based on dynamic programming, characterized in that Including: A topological structure establishment module, which is used to establish a tree - like topological structure between metal lines according to the original data of layout DRC, and extract the local topological structure to be repaired from the tree - like topological structure; An optimal solution determination module, which is used to traverse the metal lines in the local topological structure by using the dynamic programming algorithm to determine the optimal action solution for each metal line, and update the position information of each metal line according to the optimal action solution to complete the repair of the DRC problem in the local topological structure.
7. The device according to claim 6, characterized in that, The topological structure establishment module is specifically used for: Read the original data of all metal lines in layout DRC; Add parent - child relationship attributes to metal lines by traversing and judging whether they intersect after translation, and establish a tree - like topological structure of metal lines; Search using the metal wire with DRC short - circuit problem as a child node, and extract the local topology structure to be repaired from the tree - shaped topology structure according to the preset tree width and search depth.
8. The device according to claim 6, characterized in that, The optimal solution determination module is specifically used for: Determine the action space of the metal wire in the specified direction according to the minimum movement step and the maximum movement distance of the metal wire; Read the distance matrix of the metal wire in the specified direction at its current coordinates, and use the distance matrix as the initial state of dynamic programming; Construct a state transition equation, and use the minimum movement steps of the metal wire as the optimization objective of the state transition equation; Determine the initial conditions and termination conditions of the state transition equation, and solve the state transition equation according to the action space, initial state, and optimization objective to obtain the optimal action solution of the metal wire.
9. The device according to claim 8, characterized in that, The state transition equation is: dp[j] = min(a[j] + cond(a[j]|dp[i])*dp[i]); Where dp[i] is the optimal solution set of the historical action space from the 0th metal wire to the ith metal wire in the specified direction; a[j] is the set of valid actions of the new metal wire; cond(a[j]|dp[i]) is the condition that there is no error after the new metal wire executes the actions in the action space; the new metal wire is the metal wire currently traversed by the dynamic programming algorithm.
10. The device according to claim 8, characterized in that, The initial condition of the state transition equation is: the existing short - circuit information of the metal wire at the initial coordinate position; The termination condition of the state transition equation is: when all metal wires in the local topology structure have been traversed, there is no new short - circuit problem and no new short - circuit is generated under the new action combination.
Citation Information
Patent Citations
Graphic topological command concurrent computation method for integrated circuit layout verification
CN102622456A
FinFET process standard cell wiring control method and related equipment
CN119378485A
Decision tree algorithm-based EDA design rule inspection method and system
CN119578361A
Obstacle avoidance global wiring method and system based on sparse maze graph
CN119990054A