Solder ball distribution method and device and storage medium
By establishing a network flow model and optimizing calculations, the problem of low solder ball allocation efficiency was solved, intelligent matching between solder balls and ports was achieved, connection length and signal transmission were optimized, the characteristics of heterogeneous ports were adapted, and the efficiency and reliability of integrated circuit design were improved.
Patent Information
- Application Number
- CN202511293857.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-11
- Publication Date
- 2025-10-17
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Existing solder ball assignment methods are inefficient, making it difficult to achieve global optimization in VLSI design. They also lack effective handling of heterogeneous ports, leading to problems such as excessively long interconnects, parasitic resistance, and signal delay.
A network flow model is established, and the matching scheme between solder balls and ports is obtained through optimization calculation. Solder balls and ports are used as vertices, the connecting lines are used as edges, and the distance is used as the edge weight. Euclidean distance or Manhattan distance is used for optimization to construct a flow network of source point-port-solder ball-end point. The minimum cost maximum flow algorithm is used to solve the problem, and the global optimal matching is ensured by combining iterative and loop detection mechanisms.
It achieves intelligent matching between solder balls and ports, significantly shortens the connection length, reduces signal transmission delay and interference, improves distribution efficiency and accuracy, adapts to the characteristics of different ports, and ensures connection consistency and flexibility.
Smart Images

Figure CN120805515A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of integrated circuit design, in particular to a solder ball distribution method, device and storage medium. BACKGROUND
[0002] With the continuous development of ultra large scale integrated circuit technology, flip chip packaging has become the mainstream packaging form of high-performance chips due to its superior electrical performance and high-density interconnection characteristics. In this technology, the chip is electrically connected to the packaging substrate or external circuit through solder balls, so the correct and efficient distribution of solder balls and signal ports and power ports on the chip directly affects the performance, reliability and manufacturing cost of the circuit. Traditional solder ball distribution methods rely mostly on manual operation by designers or automated scripts based on simple rules, which are not only inefficient but also difficult to achieve global optimization in ultra large scale designs. With the sharp increase in the number of ports and solder balls, manual distribution methods cannot meet the precision and efficiency requirements of modern packaging design.
[0003] Although some existing automated distribution tools can achieve basic connections, they generally lack advanced optimization models as support, often resulting in excessively long total connection length, introducing unnecessary parasitic resistance and signal delay, and thus affecting electrical performance. In addition, signal ports and power ports differ significantly in electrical characteristics, current carrying capacity, etc., and need to be handled differently, but traditional methods have limited ability to handle such heterogeneous port distribution problems. Therefore, there is an urgent need for a high-performance computing method that can efficiently and automatically complete solder ball and port distribution and optimize the total length of interconnection lines from a global perspective to solve the technical bottlenecks faced in current flip chip packaging design. SUMMARY
[0004] To solve the technical problems of low efficiency and poor distribution effect of existing solder ball and port distribution, the present application provides a solder ball distribution method, device and storage medium.
[0005] The technical problem solving scheme of the present application is to provide a solder ball distribution method, comprising: obtaining a design layout, and obtaining unassigned ports and solder balls based on the design layout; establishing a network flow model by taking the ports and the solder balls as vertices, the connections between the solder balls and the ports as edges, and the distances between the solder balls and the ports as edge weights; performing optimization calculation on the network flow model to obtain a matching scheme of the solder balls and the ports with the minimum total edge weight; and connecting the solder balls and the ports based on the matching scheme to complete solder ball distribution.
[0006] Preferably, obtaining unassigned ports and solder balls based on the design layout comprises: establishing a port queue and a solder ball queue; traversing the ports and the solder balls in the design layout and detecting whether the ports or the solder balls have connection relationships; if the solder balls or the ports have connection relationships, skipping the solder balls or the ports; otherwise, adding the solder balls or the ports to the port queue or the solder ball queue.
[0007] Preferably, the ports comprise power ports and signal ports; and the power ports or the signal ports are removed from the port queue before the network flow model is established.
[0008] Preferably, the edge weights are Euclidean distances or Manhattan distances of the solder balls and the ports.
[0009] Preferably, the network flow model comprises a source point, a port vertex group, a solder ball vertex group and a terminal point, the port vertex group comprises at least one port, the solder ball vertex group comprises at least one solder ball; the source point is connected with all the ports in the port vertex group, and the corresponding edge weight is 0; the terminal point is connected with all the solder balls in the solder ball vertex group to form a second edge, and the corresponding edge weight is 0.
[0010] Preferably, the optimization calculation on the network flow model obtains a matching scheme of the solder balls and the ports with the minimum total edge weight, comprising: traversing edge weights of all the ports and the solder balls, the source point and the ports, the solder balls and the terminal point, calculating a minimum weight path from the source point to the terminal point, and recording the minimum weight path; creating a reverse path of the minimum weight path, and the weight of the reverse path is the negative value of the minimum weight path; repeatedly iterating the calculation of the minimum weight path and the creation of the reverse path until the minimum weight path comprises all the ports or all the solder balls.
[0011] Preferably, the optimization calculation on the network flow model further comprises a loop detection mechanism; when the calculation of the minimum weight path falls into an infinite loop, terminating the calculation and returning a current matched connection scheme, and connecting the matched ports and the solder balls.
[0012] Preferably, after the matched ports and the solder balls are connected, a network flow model is re-established for the unassigned ports and the solder balls and a matching scheme is calculated until all the ports or the solder balls are matched.
[0013] To solve the above technical problems, the present application provides another technical solution as follows: an electronic device comprising a memory, a processor and a computer program stored in the memory, the processor executes the computer program to implement the solder ball distribution method according to any one of the above.
[0014] To solve the above technical problems, the present application provides another technical solution as follows: a computer storage medium, which stores computer program instructions, the computer program instructions are executed to realize the solder ball distribution method according to any one of the above.
[0015] Compared with the prior art, the solder ball distribution method, device and storage medium provided by the present application have the following advantages: 1. The solder ball distribution method provided by the embodiment of the present application realizes intelligent matching of solder balls and ports by establishing a network flow model and optimizing calculation, constructs a model by taking ports and solder balls as vertices and distance as weight, converts the originally discrete and empirical solder ball distribution problem into a mathematical optimization problem that can be solved within a polynomial time, and can objectively quantify the connection cost; by solving the matching scheme with the minimum total edge weight, the optimal solder ball matching scheme for all unassigned ports can be obtained at one time, which can significantly shorten the overall connection length, reduce signal transmission delay and interference, and compared with the traditional manual distribution method, the method not only improves the distribution efficiency, but also ensures the optimality and consistency of the connection.
[0016] 2. The solder ball distribution method provided by the embodiment of the present application filters unassigned ports and solder balls by establishing a queue and traversing to detect the connection state, uses the detection logic of "connected and skipped", automatically removes the wired resources, ensures that the objects participating in the matching are all to-be-processed targets, and avoids repeated connection or omission; this step provides accurate input data for the construction of the subsequent network flow model, reduces the invalid calculation amount, and improves the accuracy of the overall distribution.
[0017] 3. The solder ball distribution method provided by the embodiment of the present application can realize targeted solder ball distribution optimization by removing power ports or signal ports before modeling, so that the optimization target focuses on a specific network, prevents crosstalk and voltage drop caused by mixed arrangement of power large current paths and signal lines, and ensures the balance of power distribution when signal ports are matched alone. Similarly, processing power ports alone can ensure the balance of power distribution; this classification processing mechanism improves the flexibility of the method and can adapt to the characteristics of different types of ports.
[0018] 4. The solder ball distribution method provided by the embodiment of the present application defines the edge weight as Euclidean distance or Manhattan distance, which provides an intuitive and quantifiable optimization target for the network flow model; the Euclidean distance is suitable for straight line connection scenes without obstacles and can reflect the real physical distance; the Manhattan distance is suitable for grid layout limited by layout boundaries or obstacles and is more consistent with the actual wiring rules; the selection of the two distances makes it adaptable to different layout design requirements, covers multiple processes, ensures the rationality of weight calculation, and reduces the cost of repeated development.
[0019] 5、The solder ball distribution method provided by the embodiment of the present application, by introducing a source point and a terminal point, constructs a complete flow network of "source point-port-solder ball-terminal point", reduces the dimension of the "multi-port-multi-solder ball" matching problem to the minimum cost maximum flow of the classic bipartite graph, converts the matching problem of the port and the solder ball into a minimum cost flow problem, and can directly use the mature network flow algorithm for solving, with high reliability and low implementation threshold; the edge weight between the source point and the port and between the solder ball and the terminal point is set to 0, avoiding the interference of the non-port-solder ball connection on the total weight, and ensuring that the optimization target focuses only on the distance between the port and the solder ball; the model structure is designed scientifically, providing a clear mathematical framework for subsequent optimization calculation.
[0020] 6、The solder ball distribution method provided by the embodiment of the present application, by iteratively finding the minimum weight path and creating a reverse path, gradually constructs an optimal matching scheme, and ensures the minimization of the total edge weight; by the "shortest augmented path + reverse edge" strategy, the algorithm can efficiently converge to an approximately optimal solution; the negative weight design of the reverse path naturally eliminates the blockage, so that the algorithm can jump out of the local extremum and realize global optimal matching; each iteration is based on the current network state to update the path, avoiding the local optimal trap.
[0021] 7、The solder ball distribution method provided by the embodiment of the present application, the cyclic detection mechanism can effectively avoid the calculation process from falling into an infinite loop, ensuring the stability and reliability of the method; when the iteration cannot be terminated due to model construction errors, data conflicts and other abnormal situations, the mechanism can terminate the calculation in time and return the matched result, avoiding resource waste; at the same time, the design of retaining the matched connection can reduce repeated calculation and improve fault tolerance; and the unmatched objects can be processed separately later, improving the system robustness.
[0022] 8、The solder ball distribution method provided by the embodiment of the present application, by re-modeling and calculating the unmatched port and solder ball, realizes the goal of "batch matching and gradual coverage", ensuring that all objects to be distributed can be processed eventually, and by multiple rounds of matching, the remaining objects are gradually digested, improving the universality of the method; combined with the cyclic detection mechanism, a complete process of "abnormal handling-secondary optimization" can be formed, further improving the matching coverage.
[0023] 9、The embodiment of the present application further provides an electronic device, including a memory, a processor and a computer program stored in the memory, and the processor executes the computer program to realize the solder ball distribution method according to any one of the above. It has the same beneficial effects as the solder ball distribution method according to any one of the above, which will not be described here.
[0024] 10. The embodiment of the present application further provides a computer storage medium, which stores computer program instructions, and the computer program instructions are executed to realize the solder ball dispensing method according to any one of the preceding embodiments. The computer storage medium has the same beneficial effects as the solder ball dispensing method according to any one of the preceding embodiments, and will not be repeated here. BRIEF DESCRIPTION OF DRAWINGS
[0025] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the embodiments or the prior art description will be briefly introduced as follows. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without any creative effort on the basis of these drawings.
[0026] Figure 1 is a step flow chart of a solder ball dispensing method provided by the embodiment of the present application.
[0027] Figure 2 is a step flow chart of a port queue and a solder ball queue in a solder ball dispensing method provided by the embodiment of the present application.
[0028] Figure 3 is a schematic diagram of screening available solder balls and ports in a solder ball dispensing method provided by the embodiment of the present application.
[0029] Figure 4 is a schematic diagram of a network flow model in a solder ball dispensing method provided by the embodiment of the present application.
[0030] Figure 5 is a schematic diagram of a minimum cost maximum flow model in a solder ball dispensing method provided by the embodiment of the present application.
[0031] Figure 6 is a step flow chart of calculating a minimum weight path in a solder ball dispensing method provided by the embodiment of the present application.
[0032] Figure 7 is a structural schematic diagram of an electronic device provided by the embodiment of the present application.
[0033] Figure 8 is a structural schematic diagram of a computer storage medium provided by the embodiment of the present application.
[0034] BRIEF DESCRIPTION OF DRAWINGS 10. The embodiment of the present application further provides a computer storage medium, which stores computer program instructions, and the computer program instructions are executed to realize the solder ball dispensing method according to any one of the preceding embodiments. The computer storage medium has the same beneficial effects as the solder ball dispensing method according to any one of the preceding embodiments, and will not be repeated here. DETAILED DESCRIPTION
[0035] In order to make the objects, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to the drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and should not be used to limit the present application.
[0036] In the embodiments provided by the present application, it should be understood that "B corresponding to A" means that B is associated with A, and B can be determined according to A. However, it should also be understood that the determination of B according to A means that B can be determined according to A and / or other information, not only according to A.
[0037] It should be understood that "one embodiment" or "an embodiment" mentioned throughout the specification means that a specific feature, structure or characteristic related to the embodiment is included in at least one embodiment of the present application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. Those skilled in the art should also know that the embodiments described in the specification are all optional embodiments, and the actions and modules involved are not necessarily required by the present application.
[0038] In various embodiments of the present application, it should be understood that the size of the serial number of the above processes does not mean the inevitable sequence of execution, and the execution sequence of the processes should be determined according to its function and inherent logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0039] In the flowcharts and block diagrams of the drawings of the present application, the possible implementation architecture, function and operation of the system, method and computer program product according to various embodiments of the present application are illustrated. In this regard, each block in the flowchart or block diagram can represent a module, a program segment or a part of code containing one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks can also occur in a different order from that indicated in the drawings. For example, two blocks indicated in succession can actually be executed substantially in parallel, and sometimes they can be executed in reverse order, based on the functions involved. It should be particularly noted that each block in the block diagram and / or flowchart, and the combination of blocks in the block diagram and / or flowchart, can be implemented by a dedicated hardware-based system performing the specified function or operation, or can be implemented by a combination of special-purpose hardware and computer instructions.
[0040] Please refer to Figure 1 The embodiment of the present application provides a solder ball dispensing method, comprising: Step S1: obtaining a design layout, and obtaining unassigned ports and solder balls based on the design layout; Step S2: establishing a network flow model with the ports and the solder balls as vertices, the connection lines of the solder balls and the ports as edges, and the distance of the solder balls and the ports as edge weights; Step S3: optimizing the network flow model to obtain a matching scheme of the solder balls and the ports with the minimum total edge weight; Step S4: connecting the solder balls and the ports based on the matching scheme to complete the solder ball distribution.
[0041] It should be noted that the design layout in step S1 can be in the format of GDSII (Graphic Design System II Stream Format), OASIS (Open Artwork System Interchange Standard), LEF (Library Exchange Format), DEF (Design Exchange Format), etc., which contains all physical layout information of the chip, including but not limited to the categories of the solder balls and the ports and their electrical connection relationship, etc.
[0042] The embodiment of the present application provides a solder ball distribution method, which realizes intelligent matching of the solder balls and the ports by establishing a network flow model and optimizing calculation, constructs a model by taking the ports and the solder balls as vertices and the distance as weights, converts the originally discrete and empirical solder ball distribution problem into a mathematical optimization problem that can be solved within a polynomial time, and can objectively quantify the connection cost; by solving the matching scheme with the minimum total edge weight, the best solder ball matching scheme of all unassigned ports can be obtained at one time, the overall connection length can be significantly shortened, the signal transmission delay and interference can be reduced, and compared with the traditional manual distribution method, the method not only improves the distribution efficiency, but also guarantees the optimality and consistency of the connection.
[0043] Further, please refer to Figure 2 , the unassigned ports and the solder balls are obtained based on the design layout, including: Step S11: establishing a port queue and a solder ball queue; Step S12: traversing the ports and the solder balls in the design layout and detecting whether the ports or the solder balls have a connection relationship; Step S13: if the solder balls or the ports have a connection relationship, skipping the solder balls or the ports; otherwise, adding them to the port queue or the solder ball queue.
[0044] Specifically, the port queue and the solder ball queue are two dynamic arrays, and their initial state is blank, i.e., there is no port or solder ball in the initial port queue and the initial solder ball queue.
[0045] It should be noted that in order to screen the available solder balls and ports not assigned on the design layout, it is necessary to traverse all the ports and solder balls in the current design layout first, detect whether the current port and solder ball have a connection relationship, if there is a connection relationship, skip the port or solder ball, otherwise, add it to the assignment queue.
[0046] Exemplarily, refer to Figure 3 In the figure, there is a solder ball in the upper right corner which has been connected with a power port, at this time, the solder ball will be skipped and not put into the solder ball queue, and then the selection of the remaining 8 solder balls is continued; at the same time, there is a power port which has been connected with a solder ball, which will also be skipped and not put into the port queue, and only the selection of the remaining 4 ports is carried out, and so on, until all the ports and solder balls are screened.
[0047] The solder ball assignment method provided by the embodiment of the application screens the unassigned ports and solder balls by establishing a queue and traversing the connection state, uses the detection logic of'skip if connected', automatically eliminates the wired resources, ensures that the objects participating in the matching are all to-be-processed targets, and avoids repeated connection or omission; the step provides accurate input data for the construction of the subsequent network flow model, reduces the invalid calculation amount, and improves the accuracy of the overall assignment.
[0048] Further, the ports include power ports and signal ports; before establishing the network flow model, the power ports or signal ports are eliminated from the port queue.
[0049] It should be noted that the port queue includes power ports and signal ports, and the user can select whether to further screen the port categories in the port queue according to the actual product demand, that is, only the power ports are connected, or only the signal ports are connected, or both the two types of ports are connected.
[0050] The solder ball assignment method provided by the embodiment of the application can realize targeted solder ball assignment optimization by eliminating the power ports or signal ports before modeling, so that the optimization target focuses on a specific network, and prevents crosstalk and voltage drop caused by mixed arrangement of power large current paths and signal lines.
[0051] Specifically, when the power ports are eliminated and the signal ports are matched alone, the optimization of the signal transmission path can be more focused, and the influence of power interference on signal integrity is reduced; similarly, processing the power ports alone can ensure the balance of power distribution; such classification processing mechanism improves the flexibility of the method, and can adapt to the characteristic requirements of different types of ports.
[0052] In some embodiments, a distribution mode of "signal first and power second" can be selected, that is, before the network flow model is established, the power port can be removed first, that is, the matching of the signal port and the solder ball is completed first, and then a new network flow model is reconstructed to complete the matching of the power port and the solder ball, so that the signal transmission quality and the power stability are both guaranteed.
[0053] Optionally, the solder ball distribution method provided by the application also supports a distribution mode of "power first and signal second", that is, before the network flow model is established, the signal port can be removed first, that is, the matching of the power port and the solder ball is completed first, and then a new network flow model is reconstructed to complete the matching of the signal port and the solder ball.
[0054] Through this design, the method supports various distribution schemes, can execute various processing sequences, and does not need to modify the core algorithm, thereby adapting to the diversified design requirements of mixed signal chips such as radio frequency chips.
[0055] As a feasible implementation manner, the network flow model is introduced to model the filtered solder ball queue and the port queue, and a network flow model schematic diagram is as shown in Figure 4 The left side points represent the ports, the right side points represent the solder balls, each point has its own coordinates, and each port on the left side and each solder ball on the right side are connected by a weighted directed edge, and the weight is the distance between the two points. By constructing the network flow model, the original optimization target of minimizing the total length of the connection lines between all the solder balls and the ports is converted into an optimization target of minimizing the sum of the edge weights of all the edges connecting the solder ball points and the port points one by one. This problem is also called the weighted bipartite matching problem.
[0056] Specifically, the edge weight is the Euclidean distance or the Manhattan distance between the solder ball and the port.
[0057] The solder ball distribution method provided by the embodiment of the application defines the edge weight as the Euclidean distance or the Manhattan distance, provides an intuitive and quantifiable optimization target for the network flow model, the Euclidean distance is suitable for a straight line connection scene without obstacles and can reflect the real physical distance, and the Manhattan distance is suitable for a grid layout limited by a layout boundary or an obstacle and is more in line with the actual wiring rules. The selection of the two distances can adapt to different layout design requirements, cover various processes, ensure the rationality of the weight calculation, and reduce the repeated development cost.
[0058] Further, the network flow model comprises a source point, a port vertex group, a solder ball vertex group and a terminal point, the port vertex group comprises at least one port, the solder ball vertex group comprises at least one solder ball, the source point is connected with all the ports in the port vertex group, and the corresponding edge weight is 0; the terminal point is connected with all the solder balls in the solder ball vertex group to form a second edge, and the corresponding edge weight is 0.
[0059] The solder ball dispensing method provided by the embodiment of the application has a network flow model which introduces a source point and a terminal point, constructs a complete flow network of "source point-port-solder ball-terminal point", reduces the "multi-port-multi-solder ball" matching problem to a classical bipartite graph minimum cost maximum flow, converts the matching problem of the port and the solder ball into a minimum cost flow problem, and can directly use a mature network flow algorithm to solve the problem, so that the reliability is high and the implementation threshold is low. The edge weight of the source point and the port and the edge weight of the solder ball and the terminal point are set to 0, so that the interference of the non-port-solder ball connection on the total weight is avoided, and it is ensured that the optimization target focuses only on the distance between the port and the solder ball. The model structure is designed scientifically, and a clear mathematical framework is provided for subsequent optimization calculation.
[0060] Specifically, based on the bipartite network flow model shown in Figure 4 , a source point is added in front of the port vertex group, and the source point is connected with each port, and the weight of the connection line is set to 0. A terminal point is added behind the solder ball vertex group, and the terminal point is connected with each solder ball, and the weight of the connection line is set to 0. In this way, the bipartite network flow model is converted into a minimum cost maximum flow model. For details, please refer to Figure 5 . The problem of solving the model is also called the minimum cost maximum flow problem.
[0061] Further, please refer to Figure 6 , the network flow model is optimized and calculated to obtain a matching scheme of the solder ball and the port with the minimum total edge weight, including: Step S31: traverse the edge weights of all ports and solder balls, the source point and the port, and the solder ball and the terminal point, calculate the minimum weight path from the source point to the terminal point, and record the minimum weight path; Step S32: create a reverse path of the minimum weight path, and the weight of the reverse path is the negative value of the minimum weight path; Step S33: repeatedly calculate the minimum weight path and create the reverse path until the minimum weight path includes all ports or all solder balls.
[0062] It should be noted that the algorithm steps for solving the minimum cost maximum flow problem in this embodiment are as follows: first, traverse all ports and solder balls, and calculate the edge weights between all solder balls and ports, the edge weights between the source point and the port, and the edge weights between the solder ball and the terminal point. Based on these edge weights, a path is found to minimize the total weight value of the connection lines of the source point, the port, the solder ball and the terminal point, and the iteration is repeated until the minimum cost of all points is no longer updated, that is, the minimum weight value is no longer updated. At this time, the "source point-port-solder ball-terminal point" obtained is the minimum weight path in this algorithm cycle.
[0063] Specifically, the algorithm provided by the embodiment finds and confirms only one optimal path each cycle, and determines the pairing of a pair of port and solder ball each cycle, and may also adjust the existing pairing.
[0064] For example, the minimum weight connection found in the first cycle is the connection from port 1 to solder ball 1, and the minimum weight connection found in the second cycle is the connection from port 2 to solder ball 2, that is, the minimum weight path determined after two cycles is "port 1→solder ball 1→port 2→solder ball 2", but in actual operation, the following situation may occur: the edge weight of port 2 solder ball 1 is lower than the edge weight of port 1 to solder ball 1, that is, the total weight of the path "port 1→solder ball 2→port 2→solder ball 1" is lower, but since the first cycle has determined the pairing of port 1 to solder ball 1, in the second cycle, port 2 can only be paired with solder ball 2.
[0065] In some embodiments, when the minimum weight path is found and recorded each cycle, a reverse path needs to be created for the minimum weight path, and the edge weight of the reverse path is set to the negative value of the corresponding minimum weight path, which is equivalent to adding a "reversing channel" on the minimum weight path, so that the algorithm can reverse the previous pairing result through the reverse path in the subsequent cycle and re-adjust, thereby avoiding falling into a local optimal solution.
[0066] For example, the first cycle allocates "port 1→solder ball 1", and the edge weight is 5, and a reverse path "solder ball 1→port 1" is created, and the edge weight is set to -5; in the second cycle, the algorithm again finds the minimum weight path on the basis of the first cycle, if there is no reverse path, then port 1 and solder ball 1 have been paired and locked in the first cycle, and the algorithm will not calculate these two points again, but due to the existence of the reverse path, the algorithm can return to port 1 through the reverse path, that is, reverse the pairing of "port 1→solder ball 1", and re-pair, such as pairing "port 1 and solder ball 2", and pairing "port 2 and solder ball 1", thereby obtaining the minimum total weight path "port 1→solder ball 2→port 2→solder ball 1", through the setting of the reverse path, the algorithm can reverse the previous allocation scheme, focus on the whole, and constantly optimize and adjust, so as to find a new optimal allocation scheme.
[0067] The solder ball distribution method provided by the embodiment of the application gradually constructs an optimal matching scheme by iteratively finding a minimum weight path and creating a reverse path, thereby ensuring that the total edge weight is minimized; through the "shortest augmented path + reverse edge" strategy, the algorithm can efficiently converge to an approximate optimal solution; the negative weight design of the reverse path naturally eliminates the blockage, so that the algorithm can jump out of the local extreme value and realize global optimal matching; each iteration is based on the current network state to update the path, thereby avoiding the local optimal trap.
[0068] Further, the optimized calculation of the network flow model also includes a loop detection mechanism; when the calculation of the minimum weight path falls into an infinite loop, the calculation is terminated, and the current matched connection scheme is returned, and the matched ports and solder balls are connected.
[0069] It should be noted that after the reverse path is created, the subsequent algorithm search will not only look at the original minimum weight path, but also pay attention to the reverse path. Since the minimum weight path and the reverse path form a loop, an infinite loop process may occur in subsequent calculations, such as an infinite loop path of "source point → port 1 → solder ball 1 → port 2 → solder ball 2 → port 1 → solder ball 1 → port 2 → solder ball 2 …". In order to avoid the algorithm falling into a dead loop, the embodiment adds a loop detection mechanism. When it is detected that the algorithm falls into an infinite loop, it is forced to exit, terminate the calculation, and return the current found, partially optimal matching scheme. Through this design, it is ensured that the algorithm can return a feasible solution within a limited time in any case, even if it is not globally optimal, it is a suboptimal solution, avoiding program deadlock and enhancing the stability and practicality of the tool.
[0070] The loop detection mechanism of the solder ball distribution method provided by the embodiment of the application can effectively prevent the calculation process from falling into an infinite loop, ensuring the stability and reliability of the method. When iteration cannot be terminated due to model construction errors, data conflicts, or other abnormal situations, the mechanism can terminate the calculation and return the matched result in time, avoiding resource waste. At the same time, the design of retaining matched connections can reduce repeated calculations and improve fault tolerance. In addition, unmatched objects can be handled separately later, improving system robustness.
[0071] Further, after the matched ports and solder balls are connected, the network flow model is reconstructed for the unmatched ports and solder balls, and a matching scheme is calculated until all ports or solder balls are matched.
[0072] As a feasible implementation, if there are still unmatched solder balls and ports after the calculation is forced to terminate, the minimum cost maximum flow model is rebuilt for these ports or solder balls, and calculation is performed until all ports or all solder balls are paired, and the program is ended. Through the mechanism of iterative model reconstruction, it is ensured that even if the loop detection is triggered and the program is exited halfway, all available resources can be maximally distributed.
[0073] The solder ball distribution method provided by the embodiment of the application rebuilds the model for the unmatched ports and solder balls, realizes the goal of "batch matching and gradual coverage", and ensures that all objects to be distributed can be processed eventually. Through multiple rounds of matching, the remaining objects are gradually digested, improving the universality of the method. Combined with the loop detection mechanism, a complete process of "abnormal handling and secondary optimization" can be formed, further improving the matching coverage rate.
[0074] Referring to Figure 7 The embodiment of the present application also provides an electronic device 10, comprising a memory 1, a processor 2 and a computer program stored in the memory, and the processor 2 executes the computer program to realize the solder ball dispensing method according to any one of the above.
[0075] Specifically, the electronic device 10 can be a smart phone, a tablet computer, a computer or a portable computer and the like.
[0076] It should be noted that the processor 2 can include one or more cores for processing data and a message matrix unit. The processor 2 connects various parts in the entire electronic device 10 by using various interfaces and lines, executes various functions and processes data of the electronic device 10 by running or executing instructions, programs, code sets or instruction sets stored in the memory 1 and calling data stored in the memory 1.
[0077] Optionally, the processor 2 can be implemented in at least one of a hardware form of a digital signal processing, a field programmable gate array and an editable logic array. The processor can be integrated with one or a combination of a central processing unit, an image processor and a modem and the like. The modem can also not be integrated into the processor, but be realized by a separate communication chip.
[0078] Referring to Figure 8 The embodiment of the present application also provides a computer storage medium 20, which stores computer program instructions, and the computer program instructions are executed to realize the solder ball dispensing method according to any one of the above.
[0079] The computer storage medium 20 has the same beneficial effects as the solder ball dispensing method according to any one of the above, and details are not repeated here.
[0080] It is appreciated that the processes described above with reference to the flowcharts can be implemented as computer software programs according to the embodiments disclosed in the present disclosure. For example, the embodiments of the present disclosure include a computer program product comprising a computer program carried on a computer readable medium, the computer program comprising program code for executing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network by a communication section, and / or installed from a detachable medium. When the computer program is executed by a central processing unit (CPU), the above-described functions defined in the methods of the present application are executed. It is noted that the computer readable medium in the present disclosure can be a computer readable signal medium or a computer readable storage medium or any combination of the two. The computer readable storage medium includes, for example, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or any combination of the above. More specific examples of the computer readable storage medium can include, but are not limited to, an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, the computer readable storage medium can be any tangible medium that contains or stores a program that can be used by or in connection with an instruction execution system, apparatus, or device. In the present disclosure, the computer readable signal medium can include a data signal carried in a baseband or as part of a carrier wave, in which the computer readable program code is carried. Such a propagated data signal can take any of a variety of forms, including but not limited to electro-magnetic, optical, or any suitable combination thereof. The computer readable signal medium can also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code contained on a computer readable medium can be transmitted by any suitable medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the above.
[0081] Computer program code for carrying out operations of the present application can be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider).
[0082] The above detailed description of a solder ball dispensing method, device and storage medium according to the embodiments of the present application has been provided, and the principles and implementation manners of the present application have been described by applying specific examples. The above description of the embodiments is only used to help understand the method of the present application and its core idea. Meanwhile, for those skilled in the art, according to the idea of the present application, the specific implementation manners and application ranges can be changed, and the above description of the present application should not be understood as a limitation of the present application. Any modification, equivalent replacement and improvement within the principles of the present application should be included in the protection scope of the present application.
Claims
1. A solder ball distribution method, characterized in that: include: Acquire a design layout, and obtain unassigned ports and solder balls based on the design layout; A network flow model is established by taking the port and the solder ball as vertices, the line connecting the solder ball and the port as an edge, and the distance between the solder ball and the port as an edge weight; Optimizing and calculating the network flow model to obtain a matching solution between the solder ball and the port with the minimum total edge weight; Based on the matching scheme, the solder balls and the ports are connected to complete solder ball allocation.
2. The solder ball distributing method according to claim 1, wherein: Unassigned ports and solder balls are obtained based on the design layout, including: Establish port queues and solder team queues; Traversing the ports and solder balls in the design layout, and detecting whether the ports or the solder balls have a connection relationship; If the solder ball or the port has a connection relationship, the solder ball or port is skipped; otherwise, it is added to the port queue or the solder ball queue.
3. The solder ball distributing method according to claim 2, wherein: The ports include a power port and a signal port; Before establishing the network flow model, the power port or the signal port is removed from the port queue.
4. The solder ball distributing method according to claim 1, wherein: The edge weight is the Euclidean distance or the Manhattan distance between the solder ball and the port.
5. The solder ball distributing method according to claim 1, wherein: The network flow model includes a source point, a port vertex group, a solder ball vertex group and an end point, wherein the port vertex group includes at least one port, and the solder ball vertex group includes at least one solder ball; The source point is connected to all the ports in the port vertex group, and the corresponding edge weight is 0; the end point is connected to all the solder balls in the solder ball vertex group to form a second edge, and the corresponding edge weight is 0.
6. The solder ball distributing method according to claim 5, wherein: Optimizing and calculating the network flow model to obtain a matching solution between the solder ball and the port with the minimum total edge weight includes: Traversing the edge weights between all the ports and the solder balls, the source points and the ports, and the solder balls and the end points, calculating the minimum weight path from the source point to the end point, and recording the minimum weight path; Creating a reverse path of the minimum weight path, where the weight of the reverse path is the negative value of the minimum weight path; The iterative calculation of the minimum weight path and the creation of the reverse path are repeated until the minimum weight path includes all ports or all solder balls.
7. The solder ball distributing method according to claim 6, wherein: Optimizing the calculation of the network flow model also includes a loop detection mechanism; When the calculation of the minimum weight path falls into an infinite loop, the calculation is terminated, and the currently matched connection scheme is returned to connect the matched ports and the solder balls.
8. The solder ball distributing method according to claim 7, wherein: After the matched ports and solder balls are connected, a network flow model is rebuilt for the unmatched ports and solder balls and a matching solution is calculated until all the ports or solder balls are matched.
9. An electronic device, characterized in that: The device comprises a memory, a processor and a computer program stored in the memory, wherein the processor executes the computer program to implement the solder ball distributing method according to any one of claims 1 to 8.
10. A computer storage medium, characterized in that: Computer program instructions are stored thereon, and when the computer program instructions are executed, the solder ball distributing method according to any one of claims 1 to 8 is implemented.
Citation Information
Patent Citations
Method and device for distributing line network in chip design
CN102054068A
Transportation route planning method, device and system based on network flow model
CN116644872A
Global I / O distribution method and device and electronic equipment
CN117931093A
Design method and device for layout of passing points, computer equipment, medium and program
CN119849413A
Solder ball simulation analysis method and device, electronic equipment and storage medium
CN120218010A