A global routing method considering advanced process constraints and cell movement
By using a power-aware and timing-driven gain map generation method, combined with multi-source and multi-sink maze routing and the A* algorithm, the layout and routing of integrated circuits are optimized, which solves the problem of the gap between layout and routing optimization targets under advanced process constraints and improves routing quality and chip performance.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-17
- Publication Date
- 2026-04-14
AI Technical Summary
Existing integrated circuit physical design methods struggle to effectively bridge the gap between optimization goals for placement and routing when dealing with advanced process constraints, leading to a decline in solution quality.
A power-aware routing optimization method is adopted, a routing layer constraint-aware lookup table is constructed, and a timing-driven gain graph generation method is used to perform cell movement and cluster movement to optimize the routing results. The routing path is optimized by combining a multi-source multi-sink maze routing algorithm and the A* algorithm.
By taking into account advanced process constraints, the correlation between layout and routing optimization objectives has been improved, thereby enhancing the quality of routing solutions and chip performance.
Smart Images

Figure CN115526140B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a global routing method that takes into account advanced process constraints and cell movement, and belongs to the field of integrated circuit design automation technology. Background Technology
[0002] Integrated circuit physical design is a typical NP-hard problem. The current mainstream approach decomposes it into two independent problems: placement and routing. To reduce the difficulty of solving the placement and routing problem, a "divide and conquer" approach is typically used, dividing these two problems into several sub-problems: global placement, legalization, detailed placement, global routing, and detailed routing. However, since the optimization objectives of these problems are not entirely consistent, the "divide and conquer" approach inevitably leads to a decrease in solution quality. Furthermore, due to the various complex advanced process constraints imposed in current physical designs (e.g., timing, R / C characteristics, voltage regions), bridging the gap between placement and routing while meeting these advanced process constraints becomes even more challenging.
[0003] To enhance the correlation between placement and routing, existing placement tools typically employ different strategies to optimize routerability. For example, they might integrate a global router into the router to generate an accurate congestion map, then use efficient superlinear cell expansion techniques to mitigate routing congestion during global placement. Alternatively, they might use dynamic cell expansion and congestion relief models to optimize routerability. However, these methods only guide placement based on routing congestion estimation, rather than generating a routing solution. Therefore, the gap between placement and routing remains unbridgeable. Unlike routerability-driven placers, some routers also employ cell swapping techniques during global routing to improve routerability.
[0004] To achieve superior performance and optimized power consumption in advanced process nodes, current physical designs require further consideration of additional advanced process constraints / objectives (i.e., layer-based power consumption, voltage region constraints, and timing). Specifically, due to the often different R / C characteristics of each routing layer, routing at different layers leads to different power consumption. Since different voltage regions often exist within the layout area, cells with different voltage requirements need to be placed in specific regions. Therefore, bridging the gap between the optimization objectives of placement and routing while considering all the aforementioned advanced process constraints / objectives becomes extremely challenging. To address this issue, supporting cell movement during the routing stage has received increasing attention. While maintaining good placement quality and satisfying all routing constraints, moving some cells during the routing stage can achieve better solution quality, significantly improving the effectiveness and robustness of physical design methods. Therefore, designing a global routing method that considers all the aforementioned advanced process constraints and optimization objectives and can perform efficient cell movement plays a crucial role in optimizing the quality of integrated circuit physical design solutions and improving chip performance indicators. Summary of the Invention
[0005] Technical Problem: The purpose of this invention is to provide a global routing method that takes into account advanced process constraints and cell movement, so as to increase the correlation between the optimization objectives of layout and routing problems and optimize the routing solution.
[0006] Technical solution: A global routing method of the present invention that takes into account advanced process constraints and cell movement includes the following steps:
[0007] Step S1: For a given netlist with advanced process constraints and an initial placement and routing solution, perform power-aware routing optimization to obtain better and more convergent routing results, thereby providing accurate location information for subsequent cell movement.
[0008] Step S2: To improve the efficiency of the subsequent cell movement position prediction process, a lookup table for wiring layer constraint awareness is constructed.
[0009] Step S3: Based on the lookup table constructed in the previous stage, a timing-driven gain map generation method is proposed;
[0010] Step S4: Perform position prediction for all units based on the gain map generation method, sort them according to the maximum movement gain of each unit, and determine the movement order of the units in the current round;
[0011] Step S5: Based on the unit movement sequence determined in the previous step, perform unit movement and wire mesh dismantling and rewiring;
[0012] Step S6: Perform clustering movement and partial wireline disconnection and rewiring;
[0013] Step S7: Execute unit movement validation and net routing optimization;
[0014] Step S8: Repeat steps S4-S7 until the weighted bus length converges.
[0015] in:
[0016] In step S1, the power-aware routing optimization method, to obtain a better and more convergent routing result based on a fixed layout, includes the following two steps:
[0017] The first step is to handle the minimum routing layer constraint of the net. To simplify the impact of the minimum routing layer constraint on the entire routing process, a simple and effective operation is adopted: First, project the actual pins below the minimum routing layer onto the minimum routing layer to form virtual pins. Then, using the minimum routing layer as the boundary, divide the net's routing path into two parts: the set of connections above the minimum layer and the set of connections below the minimum layer. During the routing process, as long as the pin positions below the minimum routing layer do not change, the connections in the set of connections below the minimum layer will not change. Therefore, in the actual routing process, it is not necessary to handle this part of the connections in the set of connections below the minimum layer. Only, under the premise of satisfying the routing direction constraint, need to connect the actual pins on the minimum routing layer to the virtual pins projected onto the minimum layer.
[0018] The second step is power-aware two-level network rerouting; a power-aware two-level network rerouting scheme is implemented to optimize the initial routing results; firstly, the right-angle Steiner minimum tree algorithm is used to decompose all actual and virtual pins at or above the minimum routing layer of the network into multiple pin pairs; then, pattern routing and layer allocation techniques are used to generate better 3D routing results; secondly, a multi-source multi-sink maze routing algorithm that works directly in 3D space is adopted to further improve the routing results while considering congestion information; during the maze routing process, for each 3D grid point u in the routing model, the cost of its maze routing is calculated by equation (1), and the routing cost includes three parts: basic cost, congestion cost, and overflow penalty cost.
[0019]
[0020] in α1 represents the base power consumption of the layer where grid point u is located, which is also the base cost of routing. capacity(u) and demand(u) are the net capacity of grid point u and the resources currently consumed, respectively. α1∈{0,1} is the penalty factor to avoid overflow of grid point u. When the available routing resources of grid point u are zero, that is, when capacity(u)=demand(u), α1 will be 1, and the overflow penalty cost of u will be infinite.
[0021] In step S2, since the performance of the cell movement method is highly dependent on the performance of the position prediction algorithm, a method for accurately estimating the wiring connection length between any two points in the model is designed, and a lookup table for the minimum weighted wiring length is constructed. When there are no wiring constraints in the wiring model, the minimum connection distance between any two points is their 3D Manhattan distance. When minimum layer constraints and wiring direction constraints are applied to the model, estimating the minimum wiring distance becomes very difficult. In this scenario with advanced process constraints, the method for calculating the minimum weighted wiring length between two points...
[0022] Under the premise of satisfying the wiring direction constraint, given grid point u(x) u y u , z v ), v(x) v y v , z v The weighted wiring length wl(u, v, l) between these two points x , l y Estimate using formula (2),
[0023]
[0024] Where, Δx=|x u -x v |,Δy=|y u -y v |,l x , l y It refers to the wiring layer where the horizontal and vertical connections in the wiring path are located, wl z It is the weighted length of the wiring path in the z-direction, calculated using formula (3).
[0025]
[0026] Where l = max(l) x , l y ), z1=min(z u , z v ), z2 = max(z u , z v );
[0027] Use L H With L V Let represent all routing layers in the routing model with horizontal and vertical routing directions, respectively. The minimum weighted routing length connecting grid points u and v can be defined as follows.
[0028]
[0029] Obviously, traversing each group l x , l y This will allow us to obtain the minimum weighted wiring length;
[0030] By analyzing the characteristics of the wiring model, the calculation process is simplified. Based on the relative positional relationship between grid points u and v, wl is... min The calculation of (u, v) can be divided into the following four cases: (1) x u ≠x v y u ≠y v (2)x u =x v y u ≠y v (3)x u ≠x v y u =y v (4)x u =x v y u =y v Let's take the most complex case (1) as an example to illustrate our simplified operation;
[0031] For a given l x ∈L H , l y ∈L V Assume l x >l y Because in the wiring model, power consumption gradually decreases from lower to higher layers, therefore Therefore, we get
[0032]
[0033] Because of equation (3), we can obtain wl(u, v, l) x , l y )≥wl(u, v, l x , l x -1), therefore
[0034]
[0035] Similarly, if l x <l y , can be obtained
[0036]
[0037] From equations (6) and (7), it can be seen that by trying to traverse all adjacent layers l and l+1 and performing routing, the shortest weighted routing length can be obtained. This will greatly reduce the time complexity of the algorithm (the simplified time complexity is O(N). layer It should be noted that if pf l-1 =pf l+1 Then, the traversal of adjacent layers l and l+1 does not need to be calculated; in order to reduce redundant calculations in the cell movement position prediction process, a lookup table mwrw, or wl, is constructed based on the relative position information between two grid points. min (u, v) = mwrw(|x u -x v |,|y u -y v |,z u In the subsequent prediction process, when it is necessary to find the minimum weighted wiring length between any two grid points, it is only necessary to look up the table in the mwrw table based on the above four features.
[0038] In step S3, based on the lookup table constructed in step S2, a timing-driven gain map generation method is proposed to find candidate locations with large movement gains for the movable unit; in unit c i During the location prediction process, each connected wire mesh is traversed sequentially, and the decrease in the weighted line length of all wire meshes after the cell moves to a certain location is calculated. This change is then used as the movement gain for that location. To accelerate the cell prediction process, only c... i bounding box [x l x r ]×[y b y t Evaluate each position in the [ ] and calculate the movement gain; for c i The processing of the connected net n is divided into two parts, with the minimum routing layer mrl(n) of the net as the boundary: (1) Calculation under the minimum routing layer: In step S1, the minimum routing layer constraint of the net is processed, and the connection part under the minimum routing layer of the net is stored in the connection segment set under the minimum layer. Therefore, we will be located at c i Initial position and with c i The relevant part of the link is from c i The initial position is moved to [x] l x r ]×[y b y t (2) Calculation on the minimum wiring layer: First, calculate the reduction in the corresponding via length at each position in the via array and store the value in the via array; iPins in net n are removed from the routing path on the minimum routing layer, and the net is dismantled along the pin locations. All grid points in the remaining path are stored in array rmG, and the bus length of the dismantled path is denoted as wl. r The wire-breaking strategy employed ensures that the remaining part of the net is connected; a breadth-first search is used to traverse the layers containing the pins at [x] l x r ]×[y b y t For each position in the net, calculate the minimum connection length to reconnect them to the remaining part of the net and store the value in the array conWl. In this process, directly look up the table to get the connection length of each position to the corresponding grid point on the remaining path. Finally, obtain the gain map of net n through equation (8).
[0039] gainMap n [x, y] = (via [x][y] + wl) r -conWl[x][y])×w(n) (8)
[0040] Where w(n) represents the weight of net n, used to characterize the temporal importance of this net; after traversing c... i By connecting each net and simultaneously overlaying the gainMap obtained from each net, we can obtain cell c. i The moving earnings chart.
[0041] In step S4, the time-driven gain map generation method proposed in step S3 is used to generate a gain map for each moving unit. Then, based on the maximum moving gain of each unit, all moving units are sorted in descending order to initially determine the moving order of the units in the current round. However, since the estimation of subsequent units may become inaccurate after the previous unit moves, except for the first unit, subsequent units need to regenerate a new gain map before moving.
[0042] In step S5, based on the determined cell movement order, an attempt is made to move each cell to an appropriate position to optimize the wiring result, in cell c. i In each move attempt, the total weighted line length of all connected nets before the move is calculated in advance, i.e. Next, unit c iRemove it from the routing path of all the nets connected to it and place it at the target location; next, according to different net removal situations, use different net reconnection algorithms to generate new complete routing paths; after removing the relevant pins from the nets, (1) if the remaining part includes two or more connected parts, use multi-source multi-sink maze routing to reconnect the pins of this subtree to the target location; (2) if the remaining connected parts are connected, then it is only necessary to reconnect this subtree to the target location, then this connection problem can be simplified to a multi-source single-target connection problem; in this case, the A* algorithm is used to solve this problem. In the routing process of A*, the A* cost of the searched grid point u is calculated using equation (9), which mainly consists of two parts: the path cost from grid point u to the source set S. p (u, s), and the guiding cost from the target grid point t to u. g (t, u), the routing cost of each grid point in the routing path from grid point u to source set S can be calculated using equation (1):
[0043]
[0044] Where s∈S, after searching all grid points in the net bounding box, the path with minimum cost connecting the source set S to the target grid point t can be obtained. Then, the complete net routing path is constructed by backtracking the minimum cost path. For each net n∈N i After partial rerouting, the total weighted length of all current nets is calculated. If no overflow occurs and the reduction in total weighted length is greater than or equal to `accept`, the current cell layout and routing results will be accepted; otherwise, cell c will be removed. i Put it back in its original position and restore N. i The initial wiring path.
[0045] In step S6, a clustering-based moving approach is used to further optimize the routing results, forming clusters on a net-by-net basis. For each net n, if the area of the net's bounding box is not greater than a set threshold, each associated cell is traversed, and the cell is added to a new cluster. When a cell already belongs to a cluster, all cells in its original cluster are merged into the current cluster. Considering that too many cells in a cluster would increase the failure rate of clustering and significantly increase the time required for clustering, the number of clusters needs to be strictly limited. After generating clusters, a location prediction algorithm similar to that in step S5 is used to select suitable candidate locations for the clusters, and a partial rerouting process for the nets is executed.
[0046] In step S7, cell movement validation and final net routing optimization are performed. During cell movement, the number of movable cells is increased by 50% to optimize the layout and routing scheme to a greater extent. Therefore, when the total number of movable cells equals the expansion value, some cells need to be moved to their original positions to validate the maximum number of movable cells constraint. To minimize the impact of the replacement operation on the overall routing result while maintaining the effectiveness of the expansion operation, all moved cells are traversed multiple times, and some cells are gradually moved back to their original positions. In each round of cell replacement, the accept parameter is set to determine whether to return the cell to its original position. The accept parameter gradually decreases with the iteration process. After validation, multiple rounds of multi-source and multi-sink maze routing are performed to optimize the routing result.
[0047] In step S8, after performing multiple moves and legalization processes, a layout and routing result with weighted line length convergence is obtained.
[0048] Beneficial Effects: This invention, while considering advanced process constraints, utilizes a global routing method based on proposed high-precision cell position prediction algorithms to efficiently reduce global routing line length. This effectively increases the correlation between the optimization objectives of placement and routing problems, bridging the gap between placement and routing issues. Attached Figure Description
[0049] Figure 1 This is a flowchart of a global routing method that takes into account advanced process constraints and cell movement according to the present invention. Detailed Implementation
[0050] Example 1:
[0051] The technical solution of the invention will now be described in detail with reference to the accompanying drawings.
[0052] This invention provides a global routing method considering advanced process constraints and cell movement. The method first performs power-aware routing optimization on a given netlist with advanced process constraints and an initial placement and routing solution to obtain a better and more convergent routing result, thus providing accurate location information for subsequent cell movements. Then, a routing layer constraint-aware lookup table is constructed. Based on the constructed lookup table, a timing-driven gain map generation method is used to select suitable candidate movement positions for each moving cell. During the process of optimizing routing length by performing cell movements, position prediction is first performed, and cells are sorted according to their maximum movement gain to determine the order of cell movements in the current round. Then, based on the cell movement order determined in the previous step, cell movements, clustered movements, and partial netting rerouting are performed. Finally, cell movement validation and netting routing optimization are performed. Figure 1 As shown, the method includes the following steps:
[0053] 101. For a given netlist with advanced process constraints and an initial placement and routing solution, perform power-aware routing optimization to obtain better and more convergent routing results, thereby providing accurate location information for subsequent cell movement.
[0054] 102. In order to improve the efficiency of the subsequent unit movement position prediction process, a lookup table for wiring layer constraint awareness is constructed.
[0055] 103. Based on the lookup table constructed in the previous stage, a time-driven gain map generation method is proposed.
[0056] 104. Based on the gain map generation method, perform position prediction for all units, sort them according to the maximum movement gain of each unit, and determine the movement order of the units in the current round.
[0057] 105. Based on the unit movement sequence determined in the previous stage, perform unit movement and partial wire dismantling and rewiring of the network.
[0058] 106. Perform clustering, movement, and partial wireline disconnection and rewiring;
[0059] 107. Execution unit movement validation and net routing optimization;
[0060] In 101, a power-aware routing optimization method was proposed to obtain better and more convergent routing results based on a fixed layout, including the following steps:
[0061] (1) Handling Minimum Routing Layer Constraints: To simplify the impact of minimum routing layer constraints on the entire routing process, we employ a simple yet effective method: First, we project the actual pins below the minimum routing layer onto the minimum routing layer, forming virtual pins. Then, using the minimum routing layer as the boundary, we divide the routing path of the net into two parts: the set of connections above the minimum layer and the set of connections below the minimum layer. Clearly, during the routing process, as long as the pin positions below the minimum routing layer do not change, the connections in the set of connections below the minimum layer will not change. Therefore, in the actual routing process, it is unnecessary to handle these connections in the set of connections below the minimum layer. We only need to connect the actual pins on the minimum routing layer to the virtual pins projected onto the minimum layer, provided that the routing direction constraints are satisfied. This pin projection operation greatly simplifies the subsequent routing process.
[0062] (2) Power-Aware Two-Level Net Rerouting: In this stage, a power-aware two-level net rerouting scheme is implemented to optimize the initial routing results. The two-level net rerouting process is described as follows: First, the right-angle Steiner minimum tree algorithm is used to decompose all actual and virtual pins at or above the minimum routing layer of the network into multiple pin pairs. Then, pattern routing and layer allocation techniques are used to generate better 3D routing results. Second, we adopt a multi-source, multi-sink maze routing algorithm that works directly in 3D space to further improve the routing results while considering congestion information. In the maze routing process, for each 3D grid point u in the routing model, the cost of its maze routing is calculated by equation (1), and the routing cost includes three parts: basic cost, congestion cost, and overflow penalty cost.
[0063]
[0064] in α1 represents the base power consumption of the layer where grid point u is located, which is also the base cost of routing. capacity(u) and demand(u) are the net capacity of grid point u and the resources currently consumed, respectively. α1∈{0,1} is the penalty factor to avoid overflow of grid point u. When the available routing resources of grid point u are zero, that is, when capacity(u)=demand(u), α1 will be 1, and the overflow penalty cost of u will be infinite.
[0065] In section 102, since the performance of the cell movement method is highly dependent on the performance of the position prediction algorithm, it is crucial to design an accurate method for estimating the wiring connection length between any two points in the model. Based on this, we constructed a lookup table for the minimum weighted wiring length. When there are no wiring constraints in the routing model, the minimum connection distance between any two points is their 3D Manhattan distance. However, when we impose minimum layer constraints and routing direction constraints on the model, estimating the minimum wiring distance becomes very difficult. In practical placement and routing problems, since the conductors in the upper metal layers of the routing model are usually thicker and have lower power consumption, for some critical nets, attempting to route to higher layers often yields a greater gain in reducing wire length. Next, we present our method for calculating the minimum weighted wiring length between two points in this scenario with advanced process constraints.
[0066] Under the premise of satisfying the wiring direction constraint, given grid point u(x) u y u , z v ), v(x) v y v , z v The weighted wiring length wl(u, v, l) between these two points x , l y The value can be estimated using formula (2).
[0067]
[0068] Where, Δx=|x u -x v |,Δy=|y u -y v |,l x , l y This refers to the wiring layer where the horizontal and vertical connections in the wiring path reside. wl z It is the weighted length of the wiring path in the z-direction, which can be calculated using formula (3).
[0069]
[0070] Where l = max(l) x , l y ), z1=min(z u , z v ), z2 = max(z u , z v ).
[0071] We use L H With L VLet represent all routing layers in the routing model with horizontal and vertical routing directions, respectively. The minimum weighted routing length connecting grid points u and v can be defined as follows.
[0072]
[0073] Obviously, traversing each group l x , l y This allows us to obtain the minimum weighted wiring length. However, enumerating all cases and calculating the minimum length is a very time-consuming operation (time complexity is approximately O(n log n)). Therefore, we simplified the calculation process by analyzing the characteristics of the wiring model. Based on the relative positional relationship between grid points u and v, we will... min The calculation of (u, v) can be divided into the following four cases: (1) x u ≠x v y u ≠y v (2)x u =x v y u ≠y v (3)x u ≠x v y u =y v (4)x u =x v y u =y v Let's take the most complex case (1) as an example to illustrate our simplified operation.
[0074] For a given l x ∈L H , l y ∈L V Assume l x >l y Because in the wiring model, power consumption gradually decreases from lower to higher layers, therefore Therefore, we can obtain
[0075]
[0076] Because of equation (3), we can obtain wl(u, v, l) x , l y )≥wl(u, v, l x , l x -1), therefore
[0077]
[0078] Similarly, if l x <l y , can be obtained
[0079]
[0080] From equations (6) and (7), we can see that we can try to traverse all adjacent layers l and l+1 and perform routing to obtain the shortest weighted routing length. This will greatly reduce the time complexity of the algorithm (the simplified time complexity is O(N). layer It should be noted that if pf l-1 =pf l+1 If the traversal of adjacent layers l and l+1 is not required, then no calculation is needed. To reduce redundant calculations in the cell movement prediction process, a lookup table mwrw, or wl, is constructed based on the relative position information between two grid points to obtain the shortest weighted wiring length. min (u, v) = mwrw(|x u -x v |,|y u -y v |,z u In the subsequent prediction process, when it is necessary to find the minimum weighted wiring length between any two grid points, it is only necessary to look up the table in the mwrw table based on the above four features.
[0081] In step 103, based on the lookup table constructed in step S2, we propose a timing-driven gain map generation method to find candidate locations with large movement gains for movable cells. In cell c... i During the location prediction process, we sequentially traverse each connected mesh, calculate the decrease in the weighted line length of all meshes after the cell moves to a certain location, and use this change as the movement gain for that location. To speed up the cell prediction process, we only perform the prediction on c. i bounding box [x l x r ]×[y b y t Evaluate each position in the [ ] and calculate the movement gain. For c i The processing of the connected net n is divided into two parts, with the minimum routing layer mrl(n) of the net as the boundary: (1) Calculation under the minimum routing layer: In step S1, we processed the minimum routing layer constraint of the net. The connection part under the minimum routing layer of the net is stored in the connection segment set under the minimum layer. Therefore, we will calculate the connection part under the minimum routing layer c. i Initial position and with c i The relevant part of the link is from c i The initial position is moved to [x] l x r ]×[y b y t(2) Calculation on the minimum wiring layer: We first calculate the reduction in the corresponding via length at each position in the via array and store the value in the via array; i The pins in net n are removed from the routing path on the minimum routing layer, and the net is dismantled along the pin locations. All grid points in the remaining path are stored in array rmG, and the bus length of the dismantled path is denoted as wl. r The adopted wire-breaking strategy ensures that the remaining part of the net is connected. Next, we use breadth-first search to traverse the layers containing the pins at [x... l x r ]×[y b y t For each position in the net, calculate the minimum connection length required to reconnect them to the remaining part of the net, and store the value in the array conWl. In this process, we directly look up the table to obtain the connection length of each position to the corresponding grid point on the remaining path. Finally, we obtain the gain map of net n through equation (8).
[0082] gainMap n [x, y] = (via [x][y] + wl) r -conWl[x][y])×w(n) (8)
[0083] Where w(n) represents the weight of net n, used to characterize the temporal importance of this net. Currently, c has been traversed. i By connecting each net and simultaneously overlaying the gainMap obtained from each net, we can obtain cell c. i The moving earnings chart.
[0084] In step 104, we employ the time-driven gain map generation method proposed in step S3 to generate a gain map for each moving unit. Then, based on the maximum moving gain of each unit, we sort all moving units in descending order to initially determine the moving order of units in the current round. However, since the estimation of subsequent units may become inaccurate after the previous unit moves, except for the first unit, subsequent units need to regenerate a new gain map before moving.
[0085] In step 105, based on the cell movement order determined in step S4, we attempt to move each cell to an appropriate position to optimize the routing result. In cell c... i During each move attempt, we calculate in advance the total weighted length of all connected nets before the move, i.e. Next, we will use unit c iRemove the wires from the routing paths of all connected wires and place them at the target location. Next, we will use different wire reconnection algorithms to generate new complete routing paths according to different wire removal situations. After removing the relevant pins from the wires, (1) if the remaining part includes two or more connected parts, we will use multi-source multi-sink maze routing to reconnect the pins of this subtree to the target location; (2) if the remaining connected parts are connected, then we only need to reconnect this subtree to the target location, and then this connection problem can be simplified to a multi-source single-target connection problem. In this case, we use the A* algorithm to solve this problem. In the A* routing process, we use equation (9) to calculate the A* cost of the searched grid point u, which mainly consists of two parts: the path cost from grid point u to the source set S. p (u, s), and the guiding cost from the target grid point t to u. g (t, u), the routing cost of each grid point in the routing path from grid point u to source set S can be calculated by equation (1).
[0086]
[0087] Where s∈S, after searching all grid points within the net bounding box, we can obtain the path with minimum cost connecting the source set S to the target grid point t. Then, we construct the complete net routing path by backtracking the minimum cost path. For each net n∈N i After partial rerouting, we calculate the total weighted trace length of all current nets. If no overflow occurs and the reduction in total weighted trace length is greater than or equal to `accept`, we accept the current cell layout and routing results. Otherwise, we will remove cell c. i Put it back in its original position and restore N. i The initial wiring path.
[0088] In step 106, we employed a clustering-based move approach to further optimize the routing results, forming clusters on a net-by-net basis. For each net *n*, if the area of the net's bounding box is not greater than a set threshold, we iterate through each associated cell and add that cell to a new cluster. Note that when a cell already belongs to a cluster, we merge all cells from its original cluster into the current cluster. Considering that clusters containing too many cells increase the failure rate and significantly increase the time required for clustering moves, the number of clusters needs to be strictly limited. After generating the clusters, we use a location prediction algorithm similar to that in step S5 to select suitable candidate locations for the clusters and perform partial net rerouting.
[0089] In section 107, we will perform cell movement validation and final net routing optimization. During cell movement, to further optimize the placement and routing scheme, we increased the number of movable cells by 50%. Therefore, when the total number of movable cells equals the expansion value, we need to move some cells back to their original positions to validate the maximum number of movable cells constraint. To minimize the impact of the replacement operation on the overall routing result while maintaining the effectiveness of our expansion operation, we will iterate through all moved cells multiple times and gradually move some cells back to their original positions. In each round of cell replacement, we use the `accept` parameter to determine whether to return a cell to its original position; `accept` gradually decreases with each iteration. After validation, we will perform multiple rounds of multi-source, multi-sink maze routing to optimize the routing result.
[0090] It will be understood by those skilled in the art that the above description is merely a preferred embodiment of the present invention and is not intended to limit the present invention. Although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art can still modify the technical solutions described in the foregoing embodiments or make equivalent substitutions for some of the technical features. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A global routing method considering advanced process constraints and cell movement, characterized in that, The method includes the following steps: Step S1: For a given netlist with advanced process constraints and an initial placement and routing solution, perform power-aware routing optimization to obtain better and more convergent routing results, thereby providing accurate location information for subsequent cell movement. Step S2: To improve the efficiency of the subsequent cell movement position prediction process, a lookup table for wiring layer constraint awareness is constructed. Step S3: Based on the lookup table constructed in the previous stage, a timing-driven gain map generation method is proposed; Step S4: Perform position prediction for all units based on the gain map generation method, sort them according to the maximum movement gain of each unit, and determine the movement order of the units in the current round; Step S5: Based on the unit movement sequence determined in the previous step, perform unit movement and wire mesh dismantling and rewiring; Step S6: Perform clustering movement and partial wireline disconnection and rewiring; Step S7: Execute unit movement validation and net routing optimization; Step S8: Repeat steps S4-S7 until the weighted bus length converges.
2. The global routing method considering advanced process constraints and cell movement according to claim 1, characterized in that: In step S1, the power-aware routing optimization method, to obtain a better and more convergent routing result based on a fixed layout, includes the following two steps: The first step is to handle the minimum routing layer constraint of the net. First, in order to simplify the impact of the minimum routing layer constraint on the entire routing process, a simple and effective operation is adopted to handle the minimum routing layer constraint: first, project the actual pins below the minimum routing layer of the net onto the minimum routing layer to form virtual pins. Then, with the minimum routing layer as the boundary, divide the routing path of the net into two parts: the set of upper connection segments of the minimum layer and the set of lower connection segments of the minimum layer. During the routing process, as long as the pin positions under the minimum routing layer do not change, the connection part in the connection segment set under the minimum layer will not change. Therefore, in the actual routing process, it is not necessary to deal with this part of the connection in the connection segment set under the minimum layer. It is only necessary to connect the actual pins on the minimum routing layer with the virtual pins projected onto the minimum layer, provided that the routing direction constraints are met. The second step is power-aware two-level network rerouting; a power-aware two-level network rerouting scheme is implemented to optimize the initial routing results; firstly, the right-angle Steiner minimum tree algorithm is used to decompose all actual and virtual pins at or above the minimum routing layer of the network into multiple pin pairs; then, pattern routing and layer allocation techniques are used to generate better 3D routing results; secondly, a multi-source multi-sink maze routing algorithm that works directly in 3D space is adopted to further improve the routing results while considering congestion information; during the maze routing process, for each 3D grid point u in the routing model, the cost of its maze routing is calculated by equation (1), and the routing cost includes three parts: basic cost, congestion cost, and overflow penalty cost. in α1 represents the base power consumption of the layer where grid point u is located, which is also the base cost of routing. capacity(u) and demand(u) are the net capacity of grid point u and the resources currently consumed, respectively. α1∈{0,1} is the penalty factor to avoid overflow of grid point u. When the available routing resources of grid point u are zero, that is, when capacity(u)=demand(u), α1 will be 1, and the overflow penalty cost of u will be infinite.
3. The global routing method considering advanced process constraints and cell movement according to claim 1, characterized in that, In step S2, since the performance of the cell movement method is highly dependent on the performance of the position prediction algorithm, a method for accurately estimating the wiring connection length between any two points in the model is designed, and a lookup table for the minimum weighted wiring length is constructed. When there are no routing constraints in the routing model, the minimum connection distance between any two points is their 3D Manhattan distance. However, when minimum layer constraints and routing direction constraints are applied to the model, estimating the minimum routing distance becomes extremely difficult. In this scenario with advanced process constraints, the method for calculating the minimum weighted routing length between two points needs further clarification. Under the premise of satisfying the wiring direction constraint, given grid point u(x) u ,y u ,z v ),v(x v ,y v ,z v The weighted wiring length wl(u,v,l) between these two points x ,l y Estimate using formula (2), Where, Δx=|x u -x v |,Δy=|y u -y v |,l x ,l y It refers to the wiring layer where the horizontal and vertical connections in the wiring path are located, wl z It is the weighted length of the wiring path in the z-direction, calculated using formula (3). where l = max(l x , l y ), z1 = min(z u , z v ), z2 = max(z u , z v ); Use L H With L V Let represent all routing layers in the routing model with horizontal and vertical routing directions, respectively. The minimum weighted routing length connecting grid points u and v can be defined as follows. Obviously, traversing each group l x ,l y This will allow us to obtain the minimum weighted wiring length; By analyzing the characteristics of the wiring model, the calculation process is simplified. Based on the relative positional relationship between grid points u and v, wl is... min The calculation of (u,v) can be divided into the following four cases: (1)x u ≠x v ,y u ≠y v (2)x u =x v ,y u ≠y v (3)x u ≠x v ,y u =y v (4)x u =x v ,y u =y v Let's take the most complex case (1) as an example to illustrate our simplified operation; For a given l x ∈L H ,l y ∈L V Assume l x >l y Because in the wiring model, power consumption gradually decreases from lower to higher layers, therefore Therefore, we get Because of equation (3), we can obtain wl(u,v,l) x ,l y )≥wl(u,v,l x ,l x -1), therefore Similarly, if l x <l y , can be obtained From equations (6) and (7), it can be seen that by trying to traverse all adjacent layers l, l+1 and perform routing, the shortest weighted routing length can be obtained. This will greatly reduce the time complexity of the algorithm (the simplified time complexity is O(N). layer It should be noted that if pf l-1 =pf l+1 Then, the traversal of adjacent layers l, l+1 does not need to be calculated; in order to reduce redundant calculations in the cell movement position prediction process, a lookup table mwrw, or wl, is constructed based on the relative position information between two grid points. min (u,v)=mwrw(|x u -x v |,|y u -y v |,z u In the subsequent prediction process, when it is necessary to find the minimum weighted wiring length between any two grid points, it is only necessary to look up the table in the mwrw table based on the above four features.
4. The global routing method considering advanced process constraints and cell movement according to claim 1, characterized in that, In step S3, based on the lookup table constructed in step S2, a timing-driven gain map generation method is proposed to find candidate locations with large movement gains for the movable unit; in unit c i During the location prediction process, each connected wire mesh is traversed sequentially, and the decrease in the weighted line length of all wire meshes after the cell moves to a certain location is calculated. This change is then used as the movement gain for that location. To accelerate the cell prediction process, only c... i bounding box [x l ,x r ]×[y b ,y t Evaluate each position in the [ ] and calculate the movement gain; for c i The processing of the connected net n is divided into two parts, with the minimum routing layer mrl(n) of the net as the boundary: (1) Calculation under the minimum routing layer: In step S1, the minimum routing layer constraint of the net is processed, and the connection part under the minimum routing layer of the net is stored in the connection segment set under the minimum layer. Therefore, we will be located at c i Initial position and with c i The relevant part of the link is from c i The initial position is moved to [x] l ,x r ]×[y b ,y t (2) Calculation on the minimum wiring layer: First, calculate the reduction in the corresponding via length at each position in the via array and store the value in the via array; i Pins in net n are removed from the routing path on the minimum routing layer, and the net is dismantled along the pin locations. All grid points in the remaining path are stored in array rmG, and the bus length of the dismantled path is denoted as wl. r The wire-breaking strategy employed ensures that the remaining part of the net is connected; a breadth-first search is used to traverse the layers containing the pins at [x] l ,x r ]×[y b ,y t For each position in the net, calculate the minimum connection length to reconnect them to the remaining part of the net and store the value in the array conWl. In this process, directly look up the table to get the connection length of each position to the corresponding grid point on the remaining path. Finally, obtain the gain map of net n through equation (8). gainMap n [x,y]=(via[x][y]+wl r -conWl[x][y])×w(n) (8) Where w(n) represents the weight of net n, used to characterize the temporal importance of this net; after traversing c... i By connecting each net and simultaneously overlaying the gainMap obtained from each net, we can obtain cell c. i The moving earnings chart.
5. A global routing method considering advanced process constraints and cell movement according to claim 1, characterized in that, In step S4, the time-driven gain map generation method proposed in step S3 is used to generate a gain map for each moving unit. Then, based on the maximum moving gain of each unit, all moving units are sorted in descending order to initially determine the moving order of the units in the current round. However, since the estimation of subsequent units may become inaccurate after the previous unit moves, except for the first unit, subsequent units need to regenerate a new gain map before moving.
6. A global routing method considering advanced process constraints and cell movement according to claim 1, characterized in that, In step S5, based on the determined cell movement order, an attempt is made to move each cell to an appropriate position to optimize the wiring result, in cell c. i In each move attempt, the total weighted line length of all connected nets before the move is calculated in advance, i.e. Next, unit c i Remove it from the routing path of all the nets connected to it and place it at the target location; next, according to different net removal situations, use different net reconnection algorithms to generate new complete routing paths; after removing the relevant pins from the nets, (1) if the remaining part includes two or more connected parts, use multi-source multi-sink maze routing to reconnect the pins of this subtree to the target location; (2) if the remaining connected parts are connected, then it is only necessary to reconnect this subtree to the target location, then this connection problem can be simplified to a multi-source single-target connection problem; in this case, the A* algorithm is used to solve this problem. In the routing process of A*, the A* cost of the searched grid point u is calculated using equation (9), which mainly consists of two parts: the path cost from grid point u to the source set S. p (u,s), and the guiding cost from the target grid point t to u. g (t,u), the routing cost of each grid point in the routing path from grid point u to source set S can be calculated using equation (1): Where s∈S, after searching all grid points in the net bounding box, the path with minimum cost connecting the source set S to the target grid point t can be obtained. Then, the complete net routing path is constructed by backtracking the minimum cost path. For each net n∈N i After partial rerouting, the total weighted length of all current nets is calculated. If no overflow occurs and the reduction in total weighted length is greater than or equal to `accept`, the current cell layout and routing results will be accepted; otherwise, cell c will be removed. i Put it back in its original position and restore N. i The initial wiring path.
7. A global routing method considering advanced process constraints and cell movement according to claim 1, characterized in that, In step S6, a clustering-based moving approach is used to further optimize the routing results, forming clusters on a net-by-net basis. For each net n, if the area of the net's bounding box is not greater than a set threshold, each associated cell is traversed, and the cell is added to a new cluster. When a cell already belongs to a cluster, all cells in its original cluster are merged into the current cluster. Considering that too many cells in a cluster would increase the failure rate of clustering and significantly increase the time required for clustering, the number of clusters needs to be strictly limited. After generating clusters, a location prediction algorithm similar to that in step S5 is used to select suitable candidate locations for the clusters, and a partial rerouting process for the nets is executed.
8. A global routing method considering advanced process constraints and cell movement according to claim 1, characterized in that, In step S7, cell movement validation and final net routing optimization are performed. During cell movement, the number of movable cells is increased by 50% to optimize the layout and routing scheme to a greater extent. Therefore, when the total number of movable cells equals the expansion value, some cells need to be moved to their original positions to validate the maximum number of movable cells constraint. To minimize the impact of the replacement operation on the overall routing result while maintaining the effectiveness of the expansion operation, all moved cells are traversed multiple times, and some cells are gradually moved back to their original positions. In each round of cell replacement, the accept parameter is set to determine whether to return the cell to its original position. The accept parameter gradually decreases with the iteration process. After validation, multiple rounds of multi-source and multi-sink maze routing are performed to optimize the routing result.
9. A global routing method considering advanced process constraints and cell movement according to claim 1, characterized in that, In step S8, after performing multiple moves and legalization processes, a layout and routing result with weighted line length convergence is obtained.
Citation Information
Patent Citations
Time sequence sensing layer distribution method based on multi-stage strategy
CN110705204A
Incremental three-dimensional global wiring method considering unit movement and complex wiring constraint
CN113591427A