A global routing method, device and electronic equipment based on a clustering algorithm

By using a clustering algorithm to classify the initial routing into different types and optimizing the processing, the problem of low parallelism in existing global routing algorithms when routing within a large bounding box is solved, resulting in more efficient routing.

CN116090402BActive Publication Date: 2026-03-03SHANGHAI LIXIN SOFTWARE TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-01-17
Publication Date
2026-03-03

AI Technical Summary

Technical Problem

Existing global routing algorithms suffer from low parallelism and large search space when dealing with traces with large bounding boxes, resulting in low routing efficiency and reduced efficiency when processing congested areas.

Method used

The initial routing is divided into routings to be clustered and routings that do not need to be clustered using a clustering algorithm. The pins of the routings to be clustered are processed by the DBSCAN clustering algorithm to generate clustered routings. The routing results are optimized by combining FLUTE, dynamic programming, Z-mode, U-mode and maze algorithms to generate global routing results.

Benefits of technology

It improves the parallelism of the routing algorithm, reduces the chance of bounding box overlap, shortens the routing time, reduces the error rate, and improves routing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116090402B_ABST
    Figure CN116090402B_ABST
Patent Text Reader

Abstract

Provided in the embodiments of the present disclosure is a global routing method based on a clustering algorithm, comprising: obtaining initial routing, and dividing the initial routing into to-be-clustered routing and non-clustered routing based on a preset rule; performing clustering processing on pins on each to-be-clustered routing, and obtaining a clustering result, the clustering result comprising clustered pins; generating clustered routing based on the clustered pins; and generating a global routing result based on the to-be-clustered routing, the non-clustered routing and the clustered routing. Through the processing scheme of the present disclosure, the bounding box of each routing is reduced, the overlap opportunity of the bounding box corresponding to each routing is reduced, the parallelism of the algorithm is improved, and the routing time of the algorithm is accelerated, thereby solving the problem of low routing efficiency of the current routing algorithm.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of routing algorithms, specifically to a global routing method based on clustering algorithms, and more specifically to a global routing method, apparatus, and electronic device based on clustering algorithms. Background Technology

[0002] Global routing is a crucial element in integrated circuits, referring to the global planning of the entire chip's traces to ensure that even large chip designs can achieve their final routing goals. For integrated circuits, only with well-planned global routing can the final routing be accurate.

[0003] Existing global routing algorithms, such as CUGR and Fastroute, primarily optimize for factors like trace length, via count, congestion, timing, and design violations such as antenna effects. Global routing based on these algorithms is typically implemented using parallel algorithms. While parallel processing is possible when trace bounding boxes do not overlap, the parallelism decreases and the efficiency of parallel algorithms is reduced when the netlist file contains many traces with large bounding boxes. Secondly, the presence of traces with large bounding boxes also leads to a large search space, further reducing the algorithm's efficiency. Additionally, existing algorithms often remove and reroute traces associated with congested areas, which also impacts efficiency.

[0004] Therefore, traditional global routing algorithms suffer from low routing efficiency, and a routing algorithm that can perform global routing efficiently is needed to solve the problem of low routing efficiency in current algorithms. Summary of the Invention

[0005] In view of this, the present disclosure provides a global routing method based on a clustering algorithm, which at least partially solves the problems existing in the prior art.

[0006] According to one aspect of the present disclosure, a global routing method based on a clustering algorithm is provided, comprising:

[0007] Obtain the initial routing and divide the initial routing into routing to be clustered and routing that does not need to be clustered based on preset rules;

[0008] Clustering is performed on the pins of each of the said traces to be clustered, and the clustering results are obtained, including the clustered pins;

[0009] Generate clustered traces based on the clustering pins;

[0010] A global routing result is generated based on the routing to be clustered, the routing that does not need to be clustered, and the routing that has been clustered.

[0011] According to a specific implementation of this disclosure, selecting the routing to be clustered from the initial routing includes:

[0012] Obtain the number of pins in each initial trace, and determine the pin threshold of the trace to be clustered based on the number of pins;

[0013] The clustering of traces in the initial traces is determined based on the threshold value of the traces to be clustered and the number of the traces.

[0014] According to a specific implementation of this disclosure, generating a global routing result based on the traces to be clustered, the traces not requiring clustering, and the clustered traces includes:

[0015] Obtain the chip size, the number of chip metal layers, and the track spacing of each of the chip metal layers;

[0016] A wiring grid is generated based on the chip size, the number of chip metal layers, and the track spacing of each chip metal layer. The wiring grid includes 2D wiring grids and 3D wiring grids.

[0017] The global routing result is generated based on the routing mesh, the routing to be clustered, the routing that does not need to be clustered, and the routing that has been clustered.

[0018] According to a specific implementation of this disclosure, generating the global routing result based on the routing mesh, the traces to be clustered, the traces not requiring clustering, and the clustered traces includes:

[0019] Based on the FLUTE algorithm, 2D initial routing results are generated on the 2D routing mesh for the clustered routes and the routes that do not need to be clustered.

[0020] Based on the dynamic programming algorithm, 3D initial routing results are generated on the 3D routing mesh for the routing to be clustered, the already clustered routing, and the routing that does not need to be clustered.

[0021] The initial 2D routing result is optimized to obtain the final 2D routing result.

[0022] The initial 3D routing result is optimized to obtain the final 3D routing result.

[0023] The global routing result is generated based on the 2D routing result and the 3D routing result.

[0024] According to a specific implementation of this disclosure, the optimization of the 2D initial routing result includes:

[0025] The 2D routing results are optimized using the Z-mode algorithm and / or the U-mode algorithm.

[0026] According to a specific implementation of this disclosure, optimizing the 3D initial wiring result includes:

[0027] The 3D wiring results are optimized based on the maze algorithm.

[0028] According to one specific implementation of this disclosure, the maze algorithm includes a multi-level maze wiring algorithm.

[0029] According to a specific implementation of this disclosure, optimizing the 3D initial wiring result includes:

[0030] The maze algorithm is used to generate routing results for each routing in each routing to be clustered.

[0031] Secondly, embodiments of this disclosure provide a global routing apparatus based on a clustering algorithm, including a global routing method based on a clustering algorithm as described in the first aspect of this disclosure or any implementation thereof.

[0032] Thirdly, embodiments of this disclosure provide an electronic device, including a global routing method based on a clustering algorithm as described in the first aspect of this disclosure or any implementation thereof, or including a global routing device based on a clustering algorithm as described in the second aspect of this disclosure.

[0033] This disclosure provides a global routing method for a clustering algorithm, comprising: acquiring initial traces and dividing the initial traces into traces to be clustered and traces not to be clustered based on preset rules; performing clustering processing on pins on each trace to be clustered and obtaining clustering results, the clustering results including clustered pins; generating clustered traces based on the clustered pins; and generating a global routing result based on the traces to be clustered, the traces not to be clustered, and the clustered traces. Through the processing scheme of this disclosure, the bounding box of each trace is reduced, the chance of overlap between bounding boxes corresponding to each trace is reduced, the parallelism of the algorithm is improved, and the routing time of the algorithm is accelerated, solving the problem of low routing efficiency in current routing algorithms. Attached Figure Description

[0034] To more clearly illustrate the technical solutions of the embodiments of this disclosure, the drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0035] Figure 1 A flowchart illustrating a global routing method based on a clustering algorithm provided in an embodiment of this disclosure;

[0036] Figure 2 A schematic flowchart illustrating another optimal embodiment of global routing based on clustering algorithm provided in this disclosure;

[0037] Figure 3 This is a clustering routing diagram illustrating a global routing method based on a clustering algorithm provided in an embodiment of this disclosure. Detailed Implementation

[0038] The embodiments of this disclosure will now be described in detail with reference to the accompanying drawings.

[0039] The following specific examples illustrate the implementation of this disclosure. Those skilled in the art can easily understand other advantages and effects of this disclosure from the content disclosed in this specification. Obviously, the described embodiments are only a part of the embodiments of this disclosure, and not all of them. This disclosure can also be implemented or applied through other different specific embodiments, and the details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of this disclosure. It should be noted that, in the absence of conflict, the following embodiments and features in the embodiments can be combined with each other. Based on the embodiments in this disclosure, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this disclosure.

[0040] It should be noted that various aspects of embodiments within the scope of the appended claims are described below. It will be apparent that the aspects described herein can be embodied in a wide variety of forms, and any particular structure and / or function described herein is merely illustrative. Based on this disclosure, those skilled in the art will understand that one aspect described herein can be implemented independently of any other aspect, and two or more of these aspects can be combined in various ways. For example, any number of aspects set forth herein can be used to implement the device and / or practice the method. Additionally, this device and / or method can be implemented using structures and / or functionalities other than one or more of the aspects set forth herein.

[0041] It should also be noted that the illustrations provided in the following embodiments are only schematic representations of the basic concept of this disclosure. The drawings only show the components related to this disclosure and are not drawn according to the number, shape and size of the components in actual implementation. In actual implementation, the form, quantity and proportion of each component can be arbitrarily changed, and the layout of the components may also be more complex.

[0042] Furthermore, specific details are provided in the following description to facilitate a thorough understanding of the examples. However, those skilled in the art will understand that the described aspects can be practiced without these specific details.

[0043] The embodiments disclosed herein are mainly applied to the field of EDA-Router-Global Router for chips, namely the field of global routing algorithms.

[0044] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0045] First, refer to Figure 1 , Figure 1 A flowchart illustrating a global routing method based on a clustering algorithm provided in this disclosure includes:

[0046] Step 101: Obtain the initial routing and divide the initial routing into routing to be clustered and routing that does not need to be clustered based on preset rules.

[0047] Specifically, in this embodiment, initial traces are first obtained. These initial traces include initial pins and the nets between them, with each portion of the trace also including its corresponding bounding box. It's easy to understand that the sizes and positions of the initial traces vary. The purpose of this solution is to classify the traces, dividing large traces into smaller ones, and then processing each smaller trace individually. In this embodiment, the larger traces are primarily based on their size, designated as traces to be clustered and processed separately after clustering, while smaller traces are considered traces that do not require clustering; that is, they do not need to be clustered in subsequent operations and can be directly routed.

[0048] Specifically, the determination of trace size can be based on either the number of pins or the size of the bounding box. For the number of pins, it can be based on a preset pin count, or it can be achieved by first obtaining the pin count of each trace in the initial trace set, then calculating a corresponding classification threshold based on the pin count of each trace, and finally classifying each trace based on the classification threshold to obtain traces to be clustered and traces that do not need clustering. For the size of the bounding box, it can be based on either the perimeter or the area. Regardless of whether the distinction is based on the perimeter or the area, the distinction threshold can be a preset threshold or a threshold calculated based on the perimeter or area of ​​each trace. Based on the distinction threshold and the actual bounding box value, the corresponding traces are classified to obtain traces to be clustered and traces that do not need clustering.

[0049] In some specific embodiments, the routing to be clustered is also referred to as a supernet.

[0050] Step 102: Perform clustering processing on the pins on each trace to be clustered and obtain the clustering results, which include the clustered pins.

[0051] Specifically, in step 101, the initial traces have been classified, and the larger traces are classified as traces to be clustered. Based on this, the pins in the traces to be clustered are clustered. The main basis for clustering the pins in the traces to be clustered is the position of each pin in each trace. The main clustering algorithm is the DBSCAN clustering algorithm. In other embodiments, other clustering algorithms can also be used, as long as they can satisfy the clustering function and the main clustering basis of the clustering algorithm is density. Then, the clustering results for the pins to be clustered can be obtained. The clustering results include pins that are clustered together, that is, clustered pins.

[0052] Step 103: Generate clustered traces based on clustered pins.

[0053] As is easy to understand, in step 102, multiple cluster pins have already been obtained based on the clustering algorithm. Next, it is only necessary to obtain the position of each cluster pin and generate the corresponding traces of each cluster pin in each cluster based on the position of each cluster pin. Specifically, these traces can be called clustered traces.

[0054] Step 104: Generate global routing results based on the routing to be clustered, routing that does not need to be clustered, and routing that has been clustered.

[0055] Specifically, in the above steps, a new routing algorithm generates new traces, whose size is smaller than the traces to be clustered before clustering. Therefore, the subsequent global routing, in addition to the initial traces to be clustered and traces that do not need to be clustered, also routes the traces that need to be clustered. Thus, in this embodiment, the global routing result is generated based on the traces to be clustered, the traces that do not need to be clustered, and the clustered traces. It is easy to understand that the routing result generated based on the above traces has higher routing efficiency than the routing result generated based on the initial traces because the traces are smaller.

[0056] Based on the above-mentioned global routing method using clustering algorithms, each routing path becomes smaller (and its bounding box is also smaller) due to the clustering and splitting process. Therefore, it has the following advantages compared to existing routing algorithms:

[0057] 1. The chance of overlap between bounding boxes corresponding to small routing becomes smaller, and the probability of them running in parallel increases, thus increasing the parallelism of the routing algorithm.

[0058] 2. Smaller traces allow for faster wiring speeds, reducing wiring time and improving wiring efficiency.

[0059] 3. By clustering and splitting, the compact parts of the routing will be routed in the first few routing stages, while the more distant parts will be routed in the last stage. In addition, for congested areas, they will be bypassed as much as possible in the last routing stage, which reduces the error rate of routing and improves the efficiency of routing.

[0060] In another embodiment of this disclosure, selecting the traces to be clustered from the initial traces includes: obtaining the number of pins in each initial trace, determining a pin threshold for the traces to be clustered based on the number of pins, and determining the traces to be clustered from the initial traces based on the pin threshold and the number of pins.

[0061] Specifically, the selection method for the traces to be clustered is determined by the number of pins of each trace, and different pin thresholds for traces to be clustered will be obtained for different netlists with different initial traces.

[0062] Accordingly, in this embodiment, the number of pins of each trace in the initial trace is first obtained, and then the number of pins is used as the parameter of the algorithm. The calculation result is obtained through calculation, and the pin threshold of the trace to be clustered can be obtained based on the calculation result.

[0063] As is easy to understand, after obtaining the pin threshold of the trace to be clustered, the number of pins of each initial trace is compared with the pin threshold of the trace to be clustered. The initial traces with a number of pins greater than the pin threshold of the trace to be clustered are taken as traces to be clustered, and the initial traces with a number of pins less than the pin threshold of the trace to be clustered are taken as traces that do not need to be clustered.

[0064] In another embodiment of this disclosure, generating a global routing result based on traces to be clustered, traces not to be clustered, and traces already clustered includes: obtaining the chip size, the number of chip metal layers, and the track spacing of each chip metal layer; generating a routing mesh based on the chip size, the number of chip metal layers, and the track spacing of each chip metal layer, the routing mesh including 2D routing mesh and 3D routing mesh; and generating a global routing result based on the routing mesh and the traces to be clustered, traces not to be clustered, and traces already clustered.

[0065] Specifically, generating a global routing result requires generating a routing mesh, and routing is performed based on the routing mesh and the traces within it. Therefore, in this embodiment, it is first necessary to obtain the routing mesh corresponding to the chip.

[0066] Obtaining the routing mesh involves first acquiring the chip size, the number of chip metal layers, and the track spacing between each chip metal layer. The chip size, the number of chip metal layers, and the track spacing between each chip metal layer are then used as inputs to the routing structure output program, and the corresponding routing mesh can then be obtained.

[0067] In this embodiment, the acquisition of the routing mesh includes 2D routing mesh and 3D routing mesh. It is easy to understand that by routing the 2D routing mesh and the 3D routing mesh separately and optimizing them together, a better and more efficient global routing result can be obtained.

[0068] In one embodiment of this disclosure, generating a global routing result based on a routing mesh and traces to be clustered, traces not requiring clustering, and already clustered traces includes: generating initial 2D routing results on a 2D routing mesh using the FLUTE algorithm for already clustered traces and traces not requiring clustering; generating initial 3D routing results on a 3D routing mesh using a dynamic programming algorithm for traces to be clustered, already clustered traces, and traces not requiring clustering; optimizing the initial 2D routing results to obtain 2D routing results; optimizing the initial 3D routing results to obtain 3D routing results; and generating a global routing result based on the 2D and 3D routing results.

[0069] Specifically, for clustered and non-clustered traces in a 2D routing mesh, the routing results are obtained through the FLUTE algorithm, which generates the initial 2D routing results. For traces to be clustered, clustered, and non-clustered traces in a 3D routing mesh, the initial 3D routing results are generated through a dynamic programming algorithm.

[0070] In this embodiment, since the generation of the 3D routing mesh also includes the generation of routing results between different numbers of metal layers, it is also necessary to include routings with larger traces to be clustered, which is beneficial for the generation of the subsequent global routing results. The 3D initial routing results generated by the dynamic programming algorithm can also optimize the number of metal layers, improving the optimization degree of the routing results. Then, the 2D routing results and 3D routing results are integrated to obtain the final routing results between each initial trace in the initial netlist.

[0071] In one embodiment of this disclosure, optimizing the 2D initial routing results includes: performing monotonic routing optimization on the 2D routing results based on the Z-mode algorithm and / or the U-mode algorithm.

[0072] Specifically, in this embodiment, the routing results between all traces in the initial 2D routing result are further optimized. The optimization method is to optimize the connection method of the routing results individually or in combination using the Z-mode algorithm and the / U-mode algorithm.

[0073] Optimizing the initial 2D routing results using the Z-mode algorithm and / or U-mode algorithm can improve the connection between each trace in the 2D routing results, making the routing connections between each trace in the 2D routing results smoother and avoiding connection errors between traces.

[0074] In another example of this disclosure, optimizing the 3D initial wiring results includes optimizing the 3D wiring results based on a maze algorithm.

[0075] Specifically, optimizing 3D routing results mainly requires searching for the shortest path between each metal layer and replacing the current routing result with the shortest path. In other words, replacing the path in the current routing result that is not short enough with the shortest path.

[0076] In this embodiment, the algorithm for optimizing the 3D routing results is the maze algorithm. Based on the maze algorithm, the shortest path between the routing results of each metal layer can be effectively searched and optimized into the initial 3D routing results.

[0077] In one embodiment of this disclosure, the maze algorithm includes a multi-level maze wiring algorithm.

[0078] As is easily understood, maze routing algorithms include multi-level routing algorithms and single-level routing algorithms. Since the routing result to be optimized is the initial 3D routing result of a multi-metal layer, the multi-level maze routing algorithm is the optimal embodiment of this solution. Using a multi-level maze routing algorithm can improve the optimization efficiency of the routing algorithm and reduce the error rate in the routing algorithm optimization.

[0079] In another embodiment of this disclosure, optimizing the 3D initial routing results includes: using a maze algorithm to generate routing results for each routing in each routing to be clustered.

[0080] Specifically, in the routing results, each trace to be clustered is a multi-pin trace with a large bounding box. Therefore, further optimization is needed for each trace to be clustered.

[0081] In this embodiment, further optimization of the traces to be clustered is performed on the initial 3D routing results. This mainly involves generating routing results for each small trace in each trace to be clustered using a maze algorithm. The small traces include the smallest trace between two pins. For each small trace, a new routing result is generated, which can effectively optimize the traces to be clustered and correspondingly optimize the overall initial 3D routing results.

[0082] In another embodiment, the smaller routes that have already been broken down into clustered routes can be considered as unit nodes. Then, a connected graph is generated based on each clustered route, and a minimum spanning tree is generated based on this graph. This minimum spanning tree serves as the routing order for the clustered routes in the current clustering process. Each edge in the minimum spanning tree corresponds to a clustered route that needs to be connected. Next, a multi-source, multi-objective maze algorithm is used to connect every two corresponding clustered routes. This results in the optimized routing of the current clustering process.

[0083] like Figure 2 As shown, Figure 2 This is a schematic flowchart of another optimal embodiment of global routing based on clustering algorithm provided by this disclosure.

[0084] First, similar to steps 101 to 103 in the above embodiments, the initial traces are first obtained, and the initial traces are divided into traces to be clustered and traces that do not need to be clustered based on preset rules. The pins on each trace to be clustered are clustered, and the clustering results are obtained. The clustering results include clustered pins, and clustered traces are generated based on the clustered pins.

[0085] Next, step 104 generates global routing results by identifying routes to be clustered, routes that do not require clustering, and routes that have already been clustered. Step 104 includes six steps for generating routing results.

[0086] Step 201: First, based on the chip size, the number of chip metal layers, and the spacing between chip metal layer tracks, a corresponding wiring mesh is generated. The wiring mesh includes 2D wiring mesh and 3D wiring mesh.

[0087] Step 202: Based on the FLUTE algorithm, perform initial routing result generation processing on the 2D routing mesh. This routing result generation processing is performed on small routings, including those that have been clustered and those that do not require clustering.

[0088] Step 203: Based on the dynamic programming algorithm, generate corresponding wiring for all traces in the 3D wiring mesh.

[0089] Step 204: Based on the Z-mode algorithm and / or the U-mode algorithm, further optimize the connection method of the wiring results in the 2D wiring mesh.

[0090] Step 205: Based on a multi-level maze wiring algorithm, further optimize all wiring results in the 3D mesh.

[0091] Step 206: Based on the maze algorithm, generate the corresponding routing result for each clustered routing in the clustered routing.

[0092] Step 207: Integrate the routing results from steps 204, 205 and 206 to generate the final routing result.

[0093] The global routing based on clustering algorithm based on the above-described optimal specific embodiment can solve the technical problems in the background art. Compared with the routing algorithms in the prior art, it has the advantages of improving routing parallelism and routing efficiency.

[0094] like Figure 3 As shown, Figure 3 This is a clustering routing diagram illustrating a global routing method based on a clustering algorithm provided in an embodiment of this disclosure.

[0095] Figure 3 This is a schematic diagram of the entire routing clustering process. First, the supernet a with a larger bounding box is selected, which is the routing to be clustered. Using a clustering algorithm, it is split into six smaller routings: Net a1, Net a2, Net a3, Net a4, Net a5, and Net a6. It is understandable that each routing becomes smaller (with a smaller bounding box) after clustering.

[0096] These six smaller clustered routes, along with the previously un-clustered routes Net b, Net c, and Net d (a total of nine routes), are processed in parallel. After steps using the FLUTE algorithm, Z-mode algorithm and / or U-mode algorithm, monotonic algorithm, dynamic programming algorithm, and maze algorithm, the internal routes of these nine smaller routes are now connected, i.e., the solid line portions.

[0097] Next, each of the smaller, split traces (i.e., the bounding box portion in the diagram) is treated as a unit node. Then, a connected graph is generated based on the distances between the unit nodes. A minimum spanning tree is then generated based on this connected graph, where each edge corresponds to the connection order of two smaller, clustered traces that need to be connected. The minimum spanning tree algorithm is used to determine the connection order between Net a1 to Net a6.

[0098] Next, a multi-source, multi-target maze algorithm is used to connect the two split traces, as shown by the dashed lines in the diagram. In addition, for areas with congestion, routing should be done around them as much as possible during this stage.

[0099] based on Figure 3 As shown in the clustering routing diagram, it is clear that before clustering and splitting, there is overlap between Net a, Net b, Net c, and Net d, and no opportunity for parallelism; after Net a is clustered and split, the parallelism between the smaller nets is greatly improved.

[0100] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium. When executed, the computer program can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.

[0101] Based on the above, the present disclosure proposes the following solutions:

[0102] 1. A global routing method based on a clustering algorithm, comprising:

[0103] Obtain the initial routing and divide the initial routing into routing to be clustered and routing that does not need to be clustered based on preset rules;

[0104] Cluster the pins on each trace to be clustered and obtain the clustering results, which include the clustered pins.

[0105] Generate clustered traces based on clustered pins;

[0106] Global routing results are generated based on routings to be clustered, routings that do not require clustering, and routings that have already been clustered.

[0107] 2. Based on the global routing method using clustering algorithm in section 1, the traces to be clustered in the initial routing include:

[0108] Obtain the number of pins in each initial trace, and determine the pin threshold of the trace to be clustered based on the number of pins.

[0109] The clustering of traces in the initial traces is determined based on the threshold value of the trace to be clustered and the number of traces.

[0110] 3. Based on the clustering-based global routing in section 1, the global routing results generated for traces to be clustered, traces not requiring clustering, and already clustered traces include:

[0111] Obtain the chip size, the number of chip metal layers, and the track spacing of each chip metal layer;

[0112] A wiring mesh is generated based on the chip size, the number of chip metal layers, and the track spacing of each chip metal layer. The wiring mesh includes 2D wiring mesh and 3D wiring mesh.

[0113] Global routing results are generated based on the routing mesh and the routes to be clustered, the routes that do not need to be clustered, and the routes that have already been clustered.

[0114] 4. Based on the clustering algorithm-based global routing in section 3, the global routing results generated based on the routing mesh and the traces to be clustered, traces that do not require clustering, and traces that have already been clustered include:

[0115] Based on the FLUTE algorithm, 2D initial routing results are generated on a 2D routing mesh for clustered and non-clustered routings.

[0116] Based on the dynamic programming algorithm, generate 3D initial routing results on the 3D routing mesh for routing to be clustered, already clustered routing, and routing that does not need to be clustered.

[0117] The initial 2D routing results are optimized to obtain the final 2D routing results.

[0118] The initial 3D routing results are optimized to obtain the final 3D routing results.

[0119] Generate global routing results based on 2D and 3D routing results.

[0120] 5. Based on the clustering-based global routing in section 4, the optimization of the 2D initial routing results includes:

[0121] Monotonic routing optimization of 2D routing results is performed based on Z-mode and / or U-mode algorithms.

[0122] 6. Based on the clustering-based global routing in section 4, the optimization of the initial 3D routing results includes:

[0123] The maze algorithm is used to optimize the 3D wiring results.

[0124] 7. Based on the clustering-based global wiring in 6, the maze algorithm includes a multi-level maze wiring algorithm.

[0125] 8. Based on the clustering-based global routing in section 4, the optimization of the initial 3D routing results includes:

[0126] The maze algorithm is used to generate routing results for each routing in each routing to be clustered.

[0127] 9. A global routing apparatus based on a clustering algorithm, comprising a global routing method based on a clustering algorithm according to any one of 1-10.

[0128] 10. An electronic device comprising a global routing method based on a clustering algorithm according to any one of 1-8 or a global routing device based on a clustering algorithm according to 9.

[0129] The above description is merely a specific embodiment of this disclosure, but the scope of protection of this disclosure is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this disclosure should be included within the scope of protection of this disclosure. Therefore, the scope of protection of this disclosure should be determined by the scope of the claims.

Claims

1. A global routing method based on a clustering algorithm, characterized in that, The method comprises the following steps: obtaining initial traces and dividing the initial traces into traces to be clustered and traces not to be clustered based on preset rules; performing clustering processing on pins on each of the traces to be clustered and obtaining clustering results, the clustering results comprising clustered pins; generating clustered traces based on the clustered pins; generating a global routing result based on the traces to be clustered, the traces not to be clustered and the clustered traces; wherein the generation of the global routing result based on the traces to be clustered, the traces not to be clustered and the clustered traces comprises: obtaining a chip size, a number of chip metal layers and a track pitch of each of the chip metal layers; generating a routing grid based on the chip size, the number of chip metal layers and the track pitch of each of the chip metal layers, the routing grid comprising a 2D routing grid and a 3D routing grid; generating the global routing result based on the routing grid and the traces to be clustered, the traces not to be clustered and the clustered traces; wherein the generation of the global routing result based on the routing grid and the traces to be clustered, the traces not to be clustered and the clustered traces comprises: generating a 2D initial routing result of the clustered traces and the traces not to be clustered on the 2D routing grid based on an FLUTE algorithm; generating a 3D initial routing result of the traces to be clustered, the clustered traces and the traces not to be clustered on the 3D routing grid based on a dynamic programming algorithm; performing routing result optimization on the 2D initial routing result to obtain a 2D routing result; performing routing result optimization on the 3D initial routing result to obtain a 3D routing result; generating the global routing result based on the 2D routing result and the 3D routing result.

2. The method of claim 1, wherein, The division of the initial traces into traces to be clustered based on preset rules comprises: obtaining a pin number in each of the initial traces and determining a trace-to-be-clustered pin threshold based on the pin number; determining the traces to be clustered in the initial traces based on the trace-to-be-clustered pin threshold and the pin number.

3. The method of claim 1, wherein, The routing result optimization on the 2D initial routing result comprises: performing monotonic routing optimization on the 2D routing result based on a Z-mode algorithm and / or a U-mode algorithm.

4. The method of claim 1, wherein, The routing result optimization on the 3D initial routing result comprises: performing routing result optimization on the 3D routing result based on a maze algorithm.

5. The method of claim 4, wherein, The maze algorithm comprises a multi-level maze routing algorithm.

6. The method of claim 1, wherein, The routing result optimization on the 3D initial routing result comprises: generating a routing result for each of the traces to be clustered based on the maze algorithm.

7. A global routing device based on a clustering algorithm, characterized by The method comprises the following steps:

8. An electronic device, comprising: The method comprises the following steps: The method comprises the following steps:

Citation Information

Patent Citations

  • Method for automatically wiring and generating report

    CN108563810A

  • Method and device for checking device pin connection, equipment and storage medium

    CN114254583A