A layout DRC repair method and device based on dynamic programming
Through dynamic programming-based methods and GPU matrix operations, the tree topology of metal lines is established and the optimal solution to the action is determined, which solves the automated repair of complex DRC problems, improves the speed and accuracy of the layout design process, and reduces the cost of manual repair time.
Patent Information
- Application Number
- CN202510764708.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-10
- Publication Date
- 2025-08-08
- Estimated Expiration
- 2045-06-10
AI Technical Summary
The prior art lacks efficient automated repair methods 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 and accuracy of the layout design process, and can adapt to complex DRC problems.
Smart Images

Figure CN120278115B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present invention relate to the technical field of Design Rule Check (DRC), and in particular to a layout DRC repair method and device based on dynamic programming. Background Art
[0002] During chip layout design, designers need to convert circuit schematics into layouts that conform to manufacturing process constraints. After conversion, designers must manually check and correct DRC (Descriptive Reference Control) (DRC) violations to ensure the layout meets physical constraints imposed by the semiconductor manufacturing process, such as minimum line width and minimum spacing. This ensures that the circuit can be correctly processed during actual manufacturing, avoiding problems such as short circuits, open circuits, overheating, and excessive power. Currently, DRC issues fall into several categories, with short circuits accounting for the majority.
[0003] Currently, DRC violation repair methods primarily rely on manual labor. Existing automated DRC repair technologies can only provide auxiliary support, such as faster location and review, or can only resolve DRC issues through direct methods such as deleting metal lines, which undermines the original design intent. There is still a lack of suitable solutions for complex and large-scale metal routing DRC issues. Summary of the Invention
[0004] The present invention provides a layout DRC repair method and device based on dynamic programming, providing a DRC repair method that is efficient, accurate and capable of adapting to complexity, 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, comprising:
[0006] S1. Establishing a tree topology structure between metal lines based on the original layout DRC data, and extracting a local topology structure that needs to be repaired from the tree topology structure;
[0007] S2. Use a dynamic programming algorithm to traverse the metal wires in the local topology structure to determine the optimal solution for the movement of each metal wire, update the position information of each metal wire according to the optimal solution, and complete the repair of the DRC problem in the local topology structure.
[0008] Optionally, the S1 specifically includes:
[0009] Read the original data of all metal lines in the layout DRC;
[0010] By traversing and judging whether the metal wires intersect after translation, parent-child relationship attributes are added to the metal wires, and a tree topology structure of the metal wires is established;
[0011] The metal line with the DRC short circuit problem is used as a child node for searching, and the local topology structure that needs to be repaired is extracted from the tree topology structure according to the preset tree width and search depth.
[0012] Optionally, the S2 specifically includes:
[0013] Determine the motion space of the metal wire in a specified direction according to the minimum moving step length and the maximum moving distance of the metal wire;
[0014] Reading a distance matrix of the metal wire along a specified direction at the coordinates, and using the distance matrix as an initial state for dynamic programming;
[0015] Constructing a state transfer equation, and taking the minimized number of movement steps of the metal wire as an optimization goal of the state transfer equation;
[0016] The initial conditions and termination conditions of the state transfer equation are determined, and the state transfer equation is solved according to the action space, the initial state and the optimization target to obtain the optimal solution for the action of the metal wire.
[0017] Optionally, the state transition equation is:
[0018] dp[j] = min(a[j]+ cond(a[j]|dp[i])*dp[i]);
[0019] Where dp[i] is the optimal solution set of the historical action space from the 0th metal wire to the i-th metal wire in the specified direction; a[j] is the valid action set of the new metal wire; cond(a[j]|dp[i]) is the condition for the new metal wire to execute the action in the action space without reporting an error; the new metal wire is the metal wire currently traversed by the dynamic programming algorithm.
[0020] Optionally, the initial condition of the state transfer equation is: short circuit information that already exists at the metal wire at the initial coordinate position;
[0021] The termination condition of the state transfer equation is: when all metal wires in the local topology structure finish traversing, no new short circuit problem exists and no new short circuit problem is generated under the new action combination.
[0022] In a second aspect, an embodiment of the present invention further provides a layout DRC repair device based on dynamic programming, comprising:
[0023] A topology structure establishment module is used to establish a tree topology structure between metal lines based on the original data of the layout DRC, and to extract the local topology structure that needs to be repaired from the tree topology structure;
[0024] The optimal solution determination module is used to traverse the metal wires in the local topology structure using a dynamic programming algorithm to determine the optimal solution for the movement of each metal wire, update the position information of each metal wire according to the optimal solution, and complete the repair of the DRC problem in the local topology structure.
[0025] Optionally, the topology structure establishing module is specifically used to:
[0026] Read the original data of all metal lines in the layout DRC;
[0027] By traversing and judging whether the metal wires intersect after translation, parent-child relationship attributes are added to the metal wires, and a tree topology structure of the metal wires is established;
[0028] The metal line with the DRC short circuit problem is used as a child node for searching, and the local topology structure that needs to be repaired is extracted from the tree topology structure according to the preset tree width and search depth.
[0029] Optionally, the optimal solution determination module is specifically used to:
[0030] Determine the motion space of the metal wire in a specified direction according to the minimum moving step length and the maximum moving distance of the metal wire;
[0031] Reading a distance matrix of the metal wire along a specified direction at the coordinates, and using the distance matrix as an initial state for dynamic programming;
[0032] Constructing a state transfer equation, and taking the minimized number of movement steps of the metal wire as an optimization goal of the state transfer equation;
[0033] The initial conditions and termination conditions of the state transfer equation are determined, and the state transfer equation is solved according to the action space, the initial state and the optimization target to obtain the optimal solution for the action of the metal wire.
[0034] Optionally, the state transition equation is:
[0035] dp[j] = min(a[j]+ cond(a[j]|dp[i])*dp[i]);
[0036] Where dp[i] is the optimal solution set of the historical action space from the 0th metal wire to the i-th metal wire in the specified direction; a[j] is the valid action set of the new metal wire; cond(a[j]|dp[i]) is the condition for the new metal wire to execute the action in the action space without reporting an error; the new metal wire is the metal wire currently traversed by the dynamic programming algorithm.
[0037] Optionally, the initial condition of the state transfer equation is: short circuit information that already exists at the metal wire at the initial coordinate position;
[0038] The termination condition of the state transfer equation is: when all metal wires in the local topology structure finish traversing, no new short circuit problem exists and no new short circuit problem is generated under the new action combination.
[0039] The present invention first establishes a tree-like topology between metal lines based on the original layout DRC data. It then uses a dynamic programming algorithm to traverse the metal lines in the topology to determine the optimal solution for each metal line's movement. Based on this optimal solution, the position information of each metal line is updated to complete the repair of local DRC issues. This method can achieve high-precision batch DRC repair by adjusting the hyperparameters of dynamic programming. Furthermore, the present invention utilizes GPU matrix operation acceleration to ensure the accuracy and speed of the repair process. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] Figure 1 A flowchart of a layout DRC repair method based on dynamic programming provided by an embodiment of the present invention;
[0041] Figure 2 An algorithm flow chart of a layout DRC repair method based on dynamic programming provided by an embodiment of the present invention;
[0042] Figure 3 This is an example diagram of the historical action space update process provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0043] The present invention will be further described in detail below with reference to the accompanying drawings and examples. It will be understood that the specific embodiments described herein are intended only to illustrate the present invention and are not intended to limit the present invention. It should also be noted that, for ease of description, the accompanying drawings only illustrate portions relevant to the present invention, not all structures. Example
[0044] Figure 1 A flowchart of a layout DRC repair method based on dynamic programming provided by an embodiment of the present invention specifically includes the following steps:
[0045] S1. Establish a tree-like topology structure between metal lines according to the original data of the layout DRC, and extract a local topology structure that needs to be repaired from the tree-like topology structure.
[0046] In this embodiment, the description of the metal lines is first completed by reading the valid attributes of all metal lines through EDA software. The valid attributes of the metal lines may include line width, name, number of layers, and whether to move.
[0047] A tree-like topological structure relationship of metal wires is established based on conditions such as translation intersection, and a parent-child relationship under a tree structure in a horizontal or vertical direction is constructed for all metal wires. At the same time, a connection relationship between horizontal metal wires and vertical metal wires is established.
[0048] Specifically, when different metal lines intersect after translation, it indicates that there is a parent-child relationship between the metal lines. By traversing the metal lines to determine whether there is an intersection after translation, a parent-child relationship attribute is added to the metal lines.
[0049] DRC problems can generally be solved in a local tree structure. For different types of DRC problem scenarios, metal wires with DRC problems are searched as child nodes. By setting a reasonable tree width and search depth, the running speed is improved while ensuring accuracy and saving computing space.
[0050] For example, a breadth-first algorithm may be used, with metal lines with DRC problems as child nodes and parent-child relationships as search paths, to extract the local topology that needs to be repaired from the tree topology.
[0051] Furthermore, the DRC problem in this embodiment is a line short circuit problem.
[0052] S2. Use a dynamic programming algorithm to traverse the metal wires in the local topology structure to determine the optimal solution for the movement of each metal wire, update the position information of each metal wire according to the optimal solution, and complete the repair of the DRC problem in the local topology structure.
[0053] For metal lines within a subtree structure, most DRC violations can be corrected through appropriate translation and stretching. This embodiment adopts the concept of dynamic programming, transforming DRC violation correction into a mathematical problem and selecting the optimal combination of actions from all possible actions. This solves DRC violations while maintaining the original layout design intent.
[0054] Specifically, the above S2 specifically includes the following steps:
[0055] Step 1: Define the discrete action space
[0056] In this embodiment, the movement space of the metal wire in a specified direction is determined based on the minimum moving step length and the maximum moving distance of the metal wire. The specified direction can be a horizontal direction or a vertical direction.
[0057] The horizontal or vertical motion space of the metal wire is {-K,...,-1,0,1,...,K}, where the unit distance of the metal wire movement is variable, and K represents the maximum movable distance.
[0058] Taking 28nm chip design as an example, the minimum step size in the discrete action space is set to 25nm, meaning the metal wire can move in a range of (0, ±25, ±50, ...). The number of possible moves is determined based on the complexity of the actual DRC problem and the computing power. Generally, setting the action space to (0, ±25) ensures high accuracy while maintaining the relative positions of the wires.
[0059] Step 2: Define the initial state
[0060] After determining whether the optimization direction is horizontal or vertical, the EDA reads the distance matrix of the metal wire along the specified direction at the coordinates without performing any action. This matrix represents the initial state of the dynamic programming without any movement.
[0061] Step 3: Determine the state transition equation
[0062] The state transition equation is mainly used to achieve: adding metal line movements can effectively avoid and prevent DRC errors such as short circuits, while minimizing the number of movement steps to meet the original intention of layout design. In this embodiment, the optimization goal of the state transition equation is to minimize the number of metal line movement steps.
[0063] Specifically, the state transfer equation is defined as follows:
[0064] dp[j] = min(a[j]+ cond(a[j]|dp[i])*dp[i]);
[0065] Among them, dp[i] is the optimal solution set of the historical action space from the 0th metal wire to the i-th metal wire in the specified direction.
[0066] a[j] is the set of valid actions for the new wire; cond(a[j]|dp[i]) is the condition under which the new wire executes actions in the action space without reporting an error; the new wire is the wire currently traversed by the dynamic programming algorithm, and the valid action set in a[j] is the set of actions that the new wire executes in the action space without reporting an error.
[0067] Step 4: Determine the initial and termination conditions of the state transfer equation and solve the state transfer equation
[0068] In this embodiment, the short circuit information that already exists at the initial coordinate position of the metal wire is used as the initial condition, and the action is selected by traversing each metal wire one by one. The termination condition is that all metal wires in the subtree complete the traversal and no new short circuit problem exists under the new action combination.
[0069] When solving the state transition equation, the new metal wire performs a series of actions in the action space and then performs a DRC short-circuit check again. According to the cond(a[j]|dp[i]) condition, a set of new actions and the concatenated action matrix of the historical action space of the old metal wire are screened and generated. The sum of the actions with the smallest action amplitude in the updated historical action space is taken and updated to dp[j].
[0070] Furthermore, the computational efficiency of the dynamic programming algorithm can be greatly improved through matrixization. For details, see Table 1.
[0071] Table 1 Matrix description of metal line relationships
[0072]
[0073] Specifically, the matrix can be used to describe the relative distances between wires, whether wire names are consistent, whether wires have parent-child relationships, and whether wire layers are consistent. The distance matrix is updated for different combinations of historical actions and new wire actions, and the rationality of the combined actions is calculated in conjunction with other description matrices.
[0074] See further Figure 2 , Figure 2 This is a flowchart of the algorithm for repairing layout DRCs based on dynamic programming. When executing the dynamic programming algorithm, a metal line with a DRC short problem is searched as a child node. Information for a metal line or group of metal lines is read to generate the corresponding action space for that metal line. Next, a determination is made as to whether a historical action space exists for the current metal line. If not, the action space is used as the initial historical action space. If so, the state transition equation is calculated based on the action space for that metal line, and the optimal historical action matching the metal line is calculated and updated. When the last metal line or group of metal lines in the subtree is traversed, the above steps are repeated to update the historical action space. The historical action spaces are summed and sorted, and the action combination with the smallest cumulative action is selected as the final result. The metal line position information is then updated to complete the local DRC repair.
[0075] See further Figure 3 , Figure 3 An example diagram of the historical action space update process.
[0076] The technical solution of this embodiment extracts local data to establish a topological structure and uses dynamic programming to calculate the optimal action for each line or group of lines. This method can obtain an adaptive optimal solution that does not interfere with global data. This solves the high cost of manual repair after DRC detection and achieves high-precision DRC repair in batches. In addition, this embodiment also utilizes GPU matrix operation acceleration to ensure both accuracy and speed of the repair process.
[0077] Furthermore, the present invention also provides a layout DRC repair device based on dynamic programming, comprising:
[0078] A topology structure establishment module is used to establish a tree topology structure between metal lines based on the original data of the layout DRC, and to extract the local topology structure that needs to be repaired from the tree topology structure;
[0079] The optimal solution determination module is used to traverse the metal wires in the local topology structure using a dynamic programming algorithm to determine the optimal solution for the movement of each metal wire, update the position information of each metal wire according to the optimal solution, and complete the repair of the DRC problem in the local topology structure.
[0080] Optionally, the topology structure establishing module is specifically used to:
[0081] Read the original data of all metal lines in the layout DRC;
[0082] By traversing and judging whether the metal wires intersect after translation, parent-child relationship attributes are added to the metal wires, and a tree-like topology structure of the metal wires is established;
[0083] The metal line with the DRC short circuit problem is used as a child node for searching, and the local topology structure that needs to be repaired is extracted from the tree topology structure according to the preset tree width and search depth.
[0084] Furthermore, the optimal solution determination module is specifically used to:
[0085] Determine the motion space of the metal wire in a specified direction according to the minimum moving step length and the maximum moving distance of the metal wire;
[0086] Reading a distance matrix of the metal wire along a specified direction at the coordinates, and using the distance matrix as an initial state for dynamic programming;
[0087] Constructing a state transfer equation, and taking the minimized number of movement steps of the metal wire as an optimization goal of the state transfer equation;
[0088] The initial conditions and termination conditions of the state transfer equation are determined, and the state transfer equation is solved according to the action space, the initial state and the optimization target to obtain the optimal solution for the action of the metal wire.
[0089] Specifically, the state transfer equation is:
[0090] dp[j] = min(a[j]+ cond(a[j]|dp[i])*dp[i]);
[0091] Where dp[i] is the optimal solution set of the historical action space from the 0th metal wire to the i-th metal wire in the specified direction; a[j] is the valid action set of the new metal wire; cond(a[j]|dp[i]) is the condition for the new metal wire to execute the action in the action space without reporting an error; the new metal wire is the metal wire currently traversed by the dynamic programming algorithm.
[0092] The initial conditions of the state transfer equation are: the short circuit information of the metal wire already exists at the initial coordinate position;
[0093] The termination condition of the state transfer equation is: when all metal wires of the subtree are finished traversing, no new short circuit problem exists and no new short circuit problem is generated under the new action combination.
[0094] A layout DRC repair device based on dynamic programming provided in an embodiment of the present invention can execute a layout DRC repair method based on dynamic programming provided in any embodiment of the present invention, and has the corresponding functional modules and beneficial effects of the execution method, which will not be described in detail.
[0095] Note that the above are only preferred embodiments of the present invention and the technical principles employed. Those skilled in the art will understand that the present invention is not limited to the specific embodiments described herein, and that various obvious changes, readjustments, and substitutions can be made by those skilled in the art without departing from the scope of protection 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 and may include many other equivalent embodiments without departing from the concept of the present invention. 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: include: S1. Establishing a tree topology structure between metal lines based on the original layout DRC data, and extracting a local topology structure that needs to be repaired from the tree topology structure; S2. Using a dynamic programming algorithm to traverse the metal wires in the local topology structure to determine an optimal solution for the movement of each metal wire, and updating the position information of each metal wire according to the optimal solution to complete the repair of the DRC problem in the local topology structure; The S2 specifically includes: Determine the motion space of the metal wire in a specified direction according to the minimum moving step length and the maximum moving distance of the metal wire; Reading a distance matrix of the metal wire along a specified direction at the coordinates at which it is located, and using the distance matrix as an initial state for dynamic programming; Constructing a state transfer equation, and taking the minimized number of movement steps of the metal wire as an optimization goal of the state transfer equation; The initial conditions and termination conditions of the state transfer equation are determined, and the state transfer equation is solved according to the action space, the initial state and the optimization target to obtain the optimal solution for the action of the metal wire.
2. The method according to claim 1, characterized in that Said S1 specifically includes: Read the original data of all metal lines in the layout DRC; By traversing and judging whether the metal wires intersect after translation, parent-child relationship attributes are added to the metal wires, and a tree topology structure of the metal wires is established; The metal line with the DRC short circuit problem is used as a child node for searching, and the local topology structure that needs to be repaired is extracted from the tree topology structure according to a preset tree width and search depth.
3. The method according to claim 1, characterized in that The state transfer 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 i-th metal wire in the specified direction; a[j] is the valid action set of the new metal wire; cond(a[j]|dp[i]) is the condition for the new metal wire to execute the action in the action space without reporting an error; the new metal wire is the metal wire currently traversed by the dynamic programming algorithm.
4. The method according to claim 1, wherein The initial conditions of the state transfer equation are: the short circuit information of the metal wire already exists at the initial coordinate position; The termination condition of the state transfer equation is: when all metal wires in the local topology structure have finished traversing, no new short circuit problem exists and no new short circuit problem is generated under the new action combination.
5. A layout DRC repair device based on dynamic programming, characterized in that: include: The topology building module is used to build the tree topology between metal lines according to the original data of the layout DRC. Extracting a local topological structure that needs to be repaired from the tree topological structure; an optimal solution determination module, configured to use a dynamic programming algorithm to traverse the metal wires in the local topology structure to determine an optimal solution for the movement of each metal wire, update the position information of each metal wire according to the optimal solution, and complete the repair of the DRC problem in the local topology structure; The optimal solution determination module is specifically used for: Determine the motion space of the metal wire in a specified direction according to the minimum moving step length and the maximum moving distance of the metal wire; Reading a distance matrix of the metal wire along a specified direction at the coordinates at which it is located, and using the distance matrix as an initial state for dynamic programming; Constructing a state transfer equation, and taking the minimized number of movement steps of the metal wire as an optimization goal of the state transfer equation; The initial conditions and termination conditions of the state transfer equation are determined, and the state transfer equation is solved according to the action space, the initial state and the optimization target to obtain the optimal solution for the action of the metal wire.
6. The device according to claim 5, characterized in that The topology structure establishment module is specifically used for: Read the original data of all metal lines in the layout DRC; By traversing and judging whether the metal wires intersect after translation, parent-child relationship attributes are added to the metal wires, and a tree topology structure of the metal wires is established; The metal line with the DRC short circuit problem is used as a child node for searching, and the local topology structure that needs to be repaired is extracted from the tree topology structure according to a preset tree width and search depth.
7. The device according to claim 5, characterized in that The state transfer 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 i-th metal wire in the specified direction; a[j] is the valid action set of the new metal wire; cond(a[j]|dp[i]) is the condition for the new metal wire to execute the action in the action space without reporting an error; the new metal wire is the metal wire currently traversed by the dynamic programming algorithm.
8. The device according to claim 5, characterized in that The initial conditions of the state transfer equation are: the short circuit information of the metal wire already exists at the initial coordinate position; The termination condition of the state transfer equation is: when all metal wires in the local topology structure have finished traversing, no new short circuit problem exists and no new short circuit problem is generated under the new action combination.
Citation Information
Patent Citations
FinFET process standard cell wiring control method and related equipment
CN119378485A
Decision tree algorithm-based EDA design rule inspection method and system
CN119578361A