Design method and device of salient point layout, computer equipment, medium and program
By introducing connection weight and maximum weight matching algorithms in integrated circuit design, the bump layout is optimized, and the problem of difficult to improve design efficiency and quality in the existing technology is solved, and efficient and automated layout optimization is achieved.
Patent Information
- Application Number
- CN202411919051.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-24
- Publication Date
- 2025-04-18
AI Technical Summary
The prior art is difficult to effectively optimize the bump layout in integrated circuit design, resulting in difficulty in improving design efficiency and quality.
By introducing the weight of the connection, it represents the connection quality reflected by the connection properties of the connection, builds a weight data structure, uses the maximum weight matching algorithm to find a matching solution for maximizing the connection quality, and determines the layout position of the target Bump.
The intelligent and automated optimization of bump layout has been achieved, the connection quality between the source Pin point and the target Bump point has been improved, and the design efficiency and design quality have been improved.
Smart Images

Figure CN119849414A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the technical field of integrated circuit design, and specifically to a method, apparatus, computer equipment, medium and program for designing a bump layout. Background Art
[0002] Bump layout refers to a technique for determining the layout position of bumps in integrated circuit design to optimize circuit performance and reliability. Bumps are conductive connection structures of integrated circuit packages, which are used to establish electrical and mechanical connections between integrated circuits and package substrates, or between integrated circuits and carriers (carriers are intermediary layers between integrated circuits and package substrates), or between integrated circuits and other integrated circuits. Bump layout is a key task in integrated circuit design. How to provide a design solution for bump layout to improve the design efficiency and quality of bump layout has become a technical problem that technicians in this field need to solve urgently. Summary of the invention
[0003] In view of this, embodiments of the present application provide a bump layout design method, apparatus, computer equipment, medium, and program to improve the bump layout design efficiency and design quality.
[0004] To achieve the above objectives, the embodiments of the present application provide the following technical solutions.
[0005] In a first aspect, an embodiment of the present application provides a method for designing a bump layout, comprising:
[0006] Get multiple source Pin points and multiple candidate Bump points;
[0007] Determine a weight data structure based at least on the connection attributes between the source Pin points and the candidate Bump points, wherein the weight data structure includes at least the weights corresponding to the respective connections between the plurality of source Pin points and the plurality of candidate Bump points, and the weights corresponding to the connections represent the connection quality reflected by the connection attributes of the connections;
[0008] Based on the weight data structure, determine the weight result of the connection and the target matching scheme corresponding to the maximum connection quality, wherein the target matching scheme includes candidate Bump points matched by each source Pin point;
[0009] The candidate Bump points matched by each source Pin point in the target matching solution are determined as the target Bump points corresponding to each source Pin point, and the layout position of the target Bump is obtained.
[0010] In a second aspect, an embodiment of the present application provides a device for designing a bump layout, comprising:
[0011] Data preparation module, used to obtain multiple source Pin points and multiple candidate Bump points;
[0012] A weight data structure determination module, configured to determine a weight data structure based at least on the connection attributes between the source Pin points and the candidate Bump points, wherein the weight data structure includes at least the weights corresponding to the respective connections between the plurality of source Pin points and the plurality of candidate Bump points, and the weights corresponding to the connections represent the connection quality reflected by the connection attributes of the connections;
[0013] A matching optimization solution module is used to determine the weight result of the connection and the target matching solution corresponding to the maximum connection quality based on the weight data structure, and the target matching solution includes candidate Bump points matched by each source Pin point;
[0014] The layout result confirmation module is used to determine the candidate Bump points matched by each source Pin point in the target matching solution as the target Bump points corresponding to each source Pin point, and obtain the layout position of the target Bump.
[0015] In a third aspect, an embodiment of the present application provides a computer device comprising at least one memory and at least one processor, wherein the memory stores computer execution instructions, and the processor calls the computer execution instructions stored in the memory to execute the bump layout design method as described in the first aspect above.
[0016] In a fourth aspect, an embodiment of the present application provides a storage medium, wherein the storage medium stores computer execution instructions, and when the computer execution instructions are executed, the bump layout design method described in the first aspect is implemented.
[0017] In a fifth aspect, an embodiment of the present application provides a computer program, including computer execution instructions, which, when executed, implement the bump layout design method as described in the first aspect above.
[0018] The embodiment of the present application introduces the weight of the connection, and the weight of the connection represents the connection quality reflected by the connection attribute of the connection, so that each connection between the source Pin point and the source candidate Bump point will be assigned a weight, and the weight is used to quantitatively evaluate the connection quality of the connection, so that the convex point layout can focus on the connection quality of the connection; based on the weights assigned to each connection of the source Pin point and the candidate Bump point, the embodiment of the present application can determine the weight data structure, and then based on the weight data structure, find the target matching scheme corresponding to the weight result of the connection and the maximization of the connection quality, and the target matching scheme includes the candidate Bump point matched by each source Pin point; by using the candidate Bump point matched by each source Pin point in the target matching scheme that maximizes the connection quality as the target Bump point corresponding to each source Pin point, the layout position of the target Bump can be obtained, and the layout position of the target Bump of the convex point layout can be determined. Therefore, the embodiment of the present application can intelligently and automatically realize the layout optimization of the convex point layout, and improve the connection quality between the source Pin point and the target Bump point, so as to achieve the effect of improving the design efficiency and design quality of the convex point layout. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.
[0020] Figure 1 An example diagram of an integrated circuit package.
[0021] Figure 2 A flowchart of a method for designing a bump layout provided in an embodiment of the present application.
[0022] Figure 3A A flowchart of the data preparation phase provided for an embodiment of the present application.
[0023] Figure 3B An example diagram showing how the bump layout problem is transformed into a matching problem.
[0024] Figure 4A A flow chart of a method for constructing a weight data structure provided in an embodiment of the present application.
[0025] Figure 4B This is an example diagram of the weight matrix provided in the embodiments of the present application.
[0026] Figure 5A A flow chart of a method for updating a weight data structure provided in an embodiment of the present application.
[0027] Figure 5B An example diagram of an updated weight data structure.
[0028] Fig. 6A A flowchart of another method for updating a weight data structure provided in an embodiment of the present application.
[0029] Figure 6B Another example diagram of updating the weight data structure.
[0030] Fig. 7A A flowchart of the matching optimization solution phase provided in an embodiment of the present application.
[0031] Figure 7B A flowchart for initializing equal subgraphs provided in an embodiment of the present application.
[0032] Fig. 8A Describe an example graph for the maximum weight matching problem.
[0033] Figure 8B This is an example image for initializing the top label.
[0034] Fig. 9A A flow chart of a method for determining a complete match provided in an embodiment of the present application.
[0035] Fig. 9B Example graph for finding augmenting paths and flipping operations.
[0036] Fig. 9C Another example graph for finding augmenting paths and flipping operations.
[0037] Fig.9D An example graph for adjusting equal subgraphs.
[0038] Fig.9E Another example diagram for finding augmenting paths and flipping operations.
[0039] Fig.9F This is an example of a perfect match.
[0040] Fig.10 A block diagram of a bump layout design device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0041] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0042] To understand the concepts of bump layout, Figure 1 An example diagram of an integrated circuit package is shown as an example. Figure 1 Before, it should be noted that the integrated circuit referred to in the embodiments of the present application can be a chip, or any form of electronic circuit that integrates a large number of electronic components (such as transistors, resistors, capacitors, etc.) into a semiconductor material (such as a silicon wafer); accordingly, the integrated circuit package is the packaging structure of the integrated circuit, which realizes physical protection, electrical connection, heat dissipation and other effects for the integrated circuit, that is, the integrated circuit is achieved through packaging technology (such as advanced packaging technology, etc.) Physical protection, electrical connection and heat dissipation effects, so that the integrated circuit can interact with the outside in a stable and reliable manner. For example, taking the integrated circuit as a chip as an example, the integrated circuit package is such as a chip package, that is, the packaging structure of the chip.
[0043] Reference Figure 1 , the integrated circuit package may include:
[0044] BASE 110 is the base layer of the integrated circuit package, providing mechanical support and physical stability. Specifically, BASE is the bottom structure of the integrated circuit package, responsible for carrying all the layers and components above. It should be noted that, in the structural hierarchy of the integrated circuit package, the package substrate is located under the integrated circuit (e.g., chip) and supports the integrated circuit (e.g., chip), while the base (BASE) is located at the bottom of the integrated circuit package, carrying and supporting the package substrate and the structure above.
[0045] Multiple metal layers 120, where the metal layers are used to form a connection network for signals, power and ground lines to help transmit signals and currents; multiple metal layers can use different signal routing or power distribution to optimize electrical performance; overlapping multiple metal layers can improve signal transmission efficiency, reduce electromagnetic interference, and better handle current loads;
[0046] UBM (Under Bump Metallization) 130, located between the bump 140 and the integrated circuit pad (e.g., chip pad), for enhancing the adhesion and electrical connection between the bump and the integrated circuit pad;
[0047] Bump 140 is a conductive connection structure of an integrated circuit package, used to establish electrical and mechanical connections between an integrated circuit and a package substrate, a carrier or other integrated circuits; for example, taking an integrated circuit as a chip, a bump is used to connect the chip to the package substrate, and can also be used for inter-chip connections in a multi-chip package, etc.
[0048] The bump can be made of conductive materials, such as copper, nickel, gold, tin or their alloys. The bump is placed at a specific location on the surface of the package (such as a pad or above a pin) to achieve efficient and reliable connection between the integrated circuit and the external circuit. The bump can reduce signal delay and resistance by providing a short and direct current path while enhancing heat dissipation. In addition, the bump can also provide sufficient mechanical support during the packaging process to ensure the stability and reliability of the integrated circuit in the integrated circuit package.
[0049] Pin 150 is an interface for connecting the internal circuit of the integrated circuit with the external circuit. It is responsible for transmitting the internal signal of the integrated circuit to the external circuit, and is also responsible for receiving the external signal and inputting it into the integrated circuit for processing. In the packaging technology of integrated circuits such as chips (such as advanced packaging technology), the integrated circuit package uses a bump to connect to the outside of the integrated circuit, and inside the integrated circuit package, the pin of the integrated circuit is connected to the bump of the integrated circuit package to complete the interaction between the inside and the outside of the integrated circuit.
[0050] IO Macros (input-output macro unit) 160 is a circuit structure for input and output of the integrated circuit, used for receiving and sending signals; specifically, in the integrated circuit package, the pins of the integrated circuit can be, for example, the pins of the IO Macros, so that the Pins of the IO Macros are connected to the Bump on the surface of the integrated circuit package to realize the interaction between the internal circuit of the integrated circuit and the external circuit.
[0051] In a more specific description, the Pin can be regarded as the interface between the integrated circuit and the integrated circuit package, which leads out the signal generated by the internal circuit of the integrated circuit and inputs the signal from the outside of the integrated circuit into the integrated circuit for processing; the Bump is located on the surface of the integrated circuit package, serving as a bridge between the integrated circuit and the package substrate or other devices to ensure the reliability of signal transmission; thus, the signal led out by the Pin can be transmitted to the external circuit through the Bump, or the external signal can be transmitted to the Pin through the Bump and introduced into the integrated circuit for processing. Therefore, the Pin of the integrated circuit needs to be connected to the Bump of the package to ensure the internal and external interaction of the integrated circuit.
[0052] Matching the connection relationship between the pin and the bump can be achieved in the stage of bump layout in integrated circuit design. Specifically, the optimization of bump layout involves multiple optimization factors, including but not limited to the determination of the layout position, material selection, size, shape, etc. of the bump, which affect the performance, heat dissipation, reliability and cost of the integrated circuit; the core goal of bump layout is to ensure that the bump can effectively transmit electrical signals while reducing the loss and interference during signal transmission; the key issue is to accurately control the layout position and size of the bump, reduce the length of the signal transmission path, reduce resistance and inductance, and thus improve the speed and stability of signal transmission.
[0053] In terms of determining the layout position of the bump, the bump layout can determine the final layout position of the bump matching the pin by matching the connection relationship between the pin and the bump. That is, in a matching connection relationship, the pin is the source point (called the source pin), and the bump matching the source pin is the target point (called the target bump), so that a source pin forms a pair with a matching target bump, corresponding to a connection relationship between a source pin and a target bump, and then the position of the target bump matched by each source pin is the layout position of the bump.
[0054] Specifically, when performing bump layout, the location (i.e., position) of the source Pin may be known, and the layout position of the target Bump may be determined based on the location of the source Pin and the matching connection relationship; for example, the bump layout may be performed after the Floorplan (layout planning) of the integrated circuit design. After the Floorplan is completed, the internal structure of the integrated circuit is basically determined. For example, the location of the IO Macro of the integrated circuit and its Pin location have been determined. Then, the bump layout is performed after the Floorplan. The location of the source Pin may be obtained based on the information of the output Pins of each IO Macro (such as the location of each IO Macro and the location of its Pin), and then the location of the target Bump corresponding to the location of the source Pin may be determined, and the layout position of the target Bump may be obtained. For example, Figure 1 The solid line with double-headed arrows in the figure indicates the connection relationship between the source Pin and the target Bump, which can be used for reference.
[0055] From the above description, it can be seen that in the process of integrated circuit design (especially back-end design), the design of bump layout is carried out to match the connection relationship between Pin and Bump (that is, pairing Pin and Bump), and confirm the final layout position of Bump, which is the basis for realizing the internal and external interaction of integrated circuit. Therefore, bump layout directly affects the performance, power consumption, cost and manufacturability of integrated circuit. Bump layout is a very important link in integrated circuit design.
[0056] However, with the continuous improvement of the integration and functionality of integrated circuits, the number of bumps in integrated circuit packages is increasing (for example, the number of bumps reaches 10 4 ), the number of pins inside the integrated circuit is also large (for example, the number of pins reaches 10 3 Up to 10 4 ), when the number of bumps and pins is large, the connection relationship between bumps and pins that need to be processed in bump layout becomes very complicated. In addition, since integrated circuit design requires high integration and versatility, the position of each bump needs to meet a variety of constraints, which further increases the design complexity of bump layout. Therefore, it is particularly important to optimize the design scheme of bump layout and improve design efficiency and design quality.
[0057] One design approach is to use electronic design automation tools to design.
[0058] Specifically, electronic design automation tools help integrated circuit designers preliminarily plan bump layout plans through automated algorithms and graphical interfaces, thereby preliminarily planning the connection relationship between bumps and pins. However, as the complexity of designs increases, electronic design automation tools are unable to meet the needs in terms of automation and accuracy, making it difficult to ensure design quality. In addition, the use of electronic design automation tools requires integrated circuit designers to have rich professional knowledge and skills, with a long learning curve and high requirements on the professional skills of integrated circuit designers.
[0059] One design method is for integrated circuit designers to perform manual layout and adjustment.
[0060] Specifically, in highly complex or special design scenarios, integrated circuit designers manually layout and adjust the bump layout scheme; for example, based on experience and knowledge, integrated circuit designers adjust the bump layout scheme initially planned by the electronic design automation tool to adapt to the higher design complexity. However, the manual intervention of integrated circuit designers is time-consuming and labor-intensive. When faced with multi-dimensional and highly complex design requirements, integrated circuit designers often find it difficult to make decisions in a short period of time, which affects design efficiency. In addition, due to the limitations of the cognitive and processing capabilities of integrated circuit designers, the risk of design quality may increase. Therefore, with the increase in the number of bumps and pins and the increase in constraints, it is difficult to meet the requirements of efficient and high-quality design by relying on the manual intervention of integrated circuit designers.
[0061] One design approach is to design using electronic design automation tools that use rule-based layout algorithms.
[0062] Specifically, advanced electronic design automation tools can use rule-based layout algorithms to automatically optimize bump layout and provide the connection relationship between bumps and pins according to preset design rules and constraints. However, the rule-based layout algorithms of electronic design automation tools rely on preset rules and conditions. In the case of high design complexity, the flexibility and adaptability of the rules and algorithms of electronic design automation tools are limited, and it may be difficult to cover the design considerations of bump layout, affecting the design quality.
[0063] One design approach is to use intelligent optimization algorithms based on artificial intelligence and machine learning.
[0064] Specifically, with the development of artificial intelligence and machine learning, intelligent optimization algorithms can be applied to bump layout design. However, intelligent optimization algorithms based on artificial intelligence and machine learning need to learn a large number of design cases to automatically generate layout solutions that meet the design quality. This leads to large resource consumption and long running time of intelligent optimization algorithms, and requires a large amount of training data and prior knowledge support. In the case of insufficient training data and prior knowledge, the effect of intelligent optimization algorithms is limited and it is difficult to meet the design quality.
[0065] In summary, as the design complexity of bump layout increases, manual adjustments by electronic design automation tools and integrated circuit designers are difficult to meet the requirements of efficient and high-quality design. Although electronic design automation tools based on rule-based layout algorithms and intelligent optimization algorithms based on artificial intelligence and machine learning can be tried, problems of design efficiency and quality are still faced when faced with complex designs or lack of training data and prior knowledge.
[0066] Based on this, in an optional implementation, the embodiment of the present application considers abstracting the bump layout problem as a maximum weight matching problem of a bipartite graph, and through algorithm optimization means, finds a matching solution that maximizes the connection quality, so as to effectively improve the design efficiency and design quality of complex bump layouts, reduce dependence on manual intervention, and realize an intelligent and automated bump layout design process, thereby improving the design efficiency and design quality of bump layouts.
[0067] It should be noted that a bipartite graph is a special graph structure. The vertex set of a bipartite graph can be divided into two non-intersecting subsets, and each edge in the bipartite graph connects a vertex in each of the two subsets, that is, no edge connects two vertices in the same subset; for example, the vertex set of a bipartite graph is divided into two subsets A and B, then That is, there is no overlapping part between subset A and subset B, where A∩B represents the intersection of subsets A and B. represents the empty set (that is, a set that does not contain any elements). At the same time, each edge in the bipartite graph connects a vertex in subset A and a vertex in subset B, and there is no edge connecting two vertices in subset A or two vertices in subset B.
[0068] In the bump layout problem of the embodiment of the present application, the set of source Pin points (referred to as the source Pin point set) forms a subset, and the set of candidate Bump points (referred to as the candidate Bump point set) forms a subset, and the two subsets do not intersect each other; for example, the source Pin points of the IO Macro inside the integrated circuit constitute a subset, and the candidate Bump points on the surface of the integrated circuit package constitute a subset (for example, all points on the surface of the integrated circuit package where the Bump may be arranged are used as candidate Bump points, thereby constituting a subset), and these two non-intersecting subsets constitute a bipartite graph corresponding to the bump layout. Furthermore, in the bipartite graph corresponding to the bump layout, the connection between the source Pin points (referred to as the source Pin points) and the candidate Bump points (referred to as the candidate Bump points) can be represented by edges, that is, each edge represents a possible connection between a source Pin point and a candidate Bump point.
[0069] It should be noted that Maximum Matching refers to the matching scheme that contains the largest number of edges among all possible matching schemes, that is, the matching scheme with the largest number of connections. Maximum Weight Matching is an extended concept of Maximum Matching, which introduces weights for the connections between vertices to find the matching scheme with the smallest or largest sum of weights; that is, Maximum Weight Matching focuses on the weights of the edges (that is, the weights of the connections) so that the sum of the weights of the edges of the matching scheme found is the smallest or largest.
[0070] In the bump layout problem of the embodiment of the present application, the weight of the connection (i.e., the weight of the connection between the Pin and the Bump) can represent the connection quality reflected by the connection properties of the connection, so that the embodiment of the present application can assign weights to all possible connections between the source Pin point and the candidate Bump point, and the connection quality reflected by the connection properties of the connection is represented by the weight of the connection. Furthermore, the embodiment of the present application uses maximum weight matching mainly to find matching candidate Bump points for each source Pin point, and the sum of the weights of the connections between each source Pin point and the matching candidate Bump point is minimized or maximized, so as to maximize the connection quality of the matching solution found, and achieve the design quality of optimizing the bump layout.
[0071] Furthermore, when searching for matching candidate bump points for each source pin point, the number of candidate bump points that each source pin point matches corresponds to the connection requirements of each source pin point; that is, the number of candidate bump points that each source pin point matches should meet the connection requirements of each source pin point. For example, if a source pin point needs to connect to multiple candidate bump points, then when searching for candidate bump points that match the source pin point, the number of candidate bump points that the source pin point matches should correspond to the number of candidate bump points that need to be connected; for example, if a source pin point needs to connect to one candidate bump point, then when searching for candidate bump points that match the source pin point, the number of candidate bump points that the source pin point matches should be one.
[0072] It should be further explained that, in a possible implementation, the embodiment of the present application can use the maximum weight matching to solve the matching solution with the smallest sum of weights by reversing the weights of the edges, for example, by inverting the weights of the edges, so that the matching solution with the smallest sum of weights of the edges is implemented by the maximum weight matching method. For example, the embodiment of the present application can set the weight of the connection to be negatively correlated with the connection quality, that is, the smaller the weight of the connection, the higher the connection quality of the connection, so as to use the maximum weight matching to find the matching solution with the smallest sum of weights, and the matching solution with the smallest sum of weights is the matching solution with the maximum connection quality, so as to meet the design quality requirements of the bump layout.
[0073] Based on the above introduction, the embodiment of the present application provides a salient point layout design scheme based on maximum weight matching of a bipartite graph, in which a source Pin point set and a candidate Bump point set constitute two subsets of a bipartite graph corresponding to a salient point layout, and introduces a weight factor of the connection between the source Pin point and the candidate Bump point under a constraint condition to represent the connection quality reflected by the connection attribute of the connection, thereby finding a matching scheme corresponding to the weight result of the connection (for example, the sum of the weights of the connection) and maximizing the connection quality through algorithms such as maximum weight matching, and then using the candidate Bump point matched by each source Pin point in the matching scheme that maximizes the connection quality as the target Bump point corresponding to the source Pin point, to realize the layout position confirmation of the target Bump, to achieve the optimization effect of intelligent and automated salient point layout, and to improve the design efficiency and design quality of the salient point layout.
[0074] As an optional implementation, Figure 2An optional flow chart of the bump layout design method provided in the embodiment of the present application is exemplarily shown. The method can be executed by a computer device. For example, the computer device can execute the bump layout design method provided in the embodiment of the present application by running an optimization algorithm. The computer device includes but is not limited to a terminal device or a server device, and can be any computer device used for integrated circuit design that can be used by integrated circuit designers. Figure 2 The design method of the bump layout provided in the embodiment of the present application may include the following steps.
[0075] Step S210: Acquire multiple source Pin points and multiple candidate Bump points.
[0076] As an optional implementation, the embodiment of the present application can obtain multiple source Pin points by obtaining a source Pin point set, and obtain multiple candidate Bump points by obtaining a candidate Bump point set.
[0077] Among them, the source Pin point set is a set of source Pin points, including multiple source Pin points, and the source Pin points are the coordinate positions of the source Pin (such as the coordinate positions of the source Pin on the integrated circuit). For ease of explanation, the source Pin points are referred to as source Pin points in the embodiment of the present application. When performing bump layout, multiple source Pin points are known. For example, after completing Floorplan, the position of the IO Macro of the integrated circuit and its Pin position have been determined, so that the known multiple source Pin points can be collected to form a source Pin point set.
[0078] Bump points are the points of the Bump, such as the coordinate position of the Bump; candidate Bump points are the points of the candidate Bump, that is, the candidate points of the target Bump. The candidate Bump points need to be determined to provide a basis for matching the target Bump points corresponding to the source Pin points from the candidate Bump points. If the candidate Bump points have not been determined, the embodiment of the present application can plan the candidate Bump points, such as planning all possible points of the target Bump within the layout range of the Bump. These all possible target Bump points are candidate Bump points, thereby forming a set of candidate Bump points.
[0079] It should be noted that although the positions of multiple candidate bump points in the candidate bump point set have been determined, the multiple candidate bump points are of candidate nature, that is, the target bump point (referred to as the target bump point) is a candidate bump point selected from the candidate bump points to match the source pin point.
[0080] Step S210 can be regarded as the data preparation stage of the bump layout design solution provided in the embodiment of the present application, which is mainly used to prepare a source Pin point set and a candidate Bump point set with determined positions, so as to provide basic data for subsequent processes.
[0081] Step S220, determine a weight data structure based at least on the connection attributes between the source Pin point and the candidate Bump point, the weight data structure including at least the weights corresponding to each connection between multiple source Pin points and multiple candidate Bump points, and the weights corresponding to the connections represent the connection quality reflected by the connection attributes of the connections.
[0082] In the bump layout problem of the embodiment of the present application, the weight of the connection represents the connection quality reflected by the connection attribute of the connection. The form and type of the connection attribute of the connection can be selected according to the actual design requirements, that is, according to the actual design requirements, the form and type of the connection attribute to be introduced when the bump layout is selected. For example, the connection attribute of the connection may include but is limited to at least one of the following:
[0083] The connection distance, that is, the distance between the pin and the bump. The smaller the connection distance, the higher the connection quality. For example, a shorter connection distance between the pin and the bump can reduce signal transmission time and possible delays, which helps to increase the operating speed of the circuit. At the same time, a shorter connection distance means less resource occupation (such as wiring space, etc.).
[0084] The signal integrity of the connection. Signal integrity refers to whether the quality of the signal can remain stable during transmission without interference or distortion. Good signal integrity can ensure the accuracy and reliability of data transmission. Therefore, the higher the signal integrity of the connection, the higher the connection quality.
[0085] The power consumption of the connection, that is, the power consumption of the connection between the pin and the bump. The smaller the power consumption, the higher the energy efficiency and the lower the heat dissipation requirements. Therefore, the lower the power consumption of the connection, the higher the connection quality.
[0086] In an optional implementation, the embodiment of the present application can set the connection weight to be negatively correlated with the connection quality, that is, the smaller the connection weight, the higher the connection quality, so as to use the maximum weight matching to find the matching scheme with the smallest sum of weights. The matching scheme with the smallest sum of weights is the matching scheme that maximizes the connection quality, so as to meet the design quality requirements of the bump layout.
[0087] That is, in the maximum weight matching, the matching scheme with the smallest sum of weights can correspond to maximizing the connection quality. This is because the weight of the connection is negatively correlated with the connection quality, so minimizing the sum of weights can correspond to maximizing the connection quality.
[0088] For example, if the connection attribute of the connection is the connection distance of the connection, the shorter the connection distance, the higher the connection quality, that is, the connection distance and the connection quality are negatively correlated, and thus based on the setting that the connection weight and the connection quality are negatively correlated, the embodiment of the present application can set the connection distance and the connection weight to be positively correlated when the connection attribute is the connection distance. For example, the shorter the connection distance, the smaller the connection weight, and the correspondingly higher the connection quality, so that finding a matching scheme that minimizes the sum of weights can correspond to maximizing the connection quality; for example, the embodiment of the present application can directly set the connection distance of the connection as the weight of the connection, or convert the connection distance of the connection into the weight of the connection through the conversion of the positive correlation between the connection distance and the weight of the connection, and it is negatively correlated with the connection quality.
[0089] For example, if the connection attribute of the connection is the signal integrity of the connection, the higher the signal integrity of the connection, the higher the connection quality, that is, the signal integrity of the connection and the connection quality are positively correlated, and thus based on the setting that the weight of the connection and the connection quality are negatively correlated, the embodiment of the present application can set the signal integrity of the connection and the weight of the connection to be negatively correlated when the connection attribute is the signal integrity of the connection. For example, the higher the signal integrity of the connection, the smaller the weight of the connection and the correspondingly higher the connection quality, so that finding a matching scheme that minimizes the sum of weights can correspond to maximizing the connection quality.
[0090] For example, if the connection attribute is the power consumption of the connection, the lower the power consumption of the connection, the higher the connection quality, that is, the power consumption of the connection and the connection quality are negatively correlated. Therefore, based on the setting that the weight of the connection and the connection quality are negatively correlated, the embodiment of the present application can set the power consumption of the connection and the weight of the connection to be positively correlated when the connection attribute is the power consumption of the connection. For example, the lower the power consumption of the connection, the smaller the weight of the connection and the correspondingly higher the connection quality, so that finding a matching scheme that minimizes the sum of weights can correspond to maximizing the connection quality.
[0091] Of course, minimizing the sum of weights and maximizing the connection quality is only an optional implementation method. The embodiment of the present application can also set the maximization of the sum of weights to correspond to the maximization of the connection quality, such as setting the connection weight to be positively correlated with the connection quality. The embodiment of the present application does not limit whether to use the maximum weight matching to find the matching scheme with the smallest sum of weights to correspond to the maximization of the connection quality, or to find the matching scheme with the largest sum of weights to correspond to the maximization of the connection quality. The embodiment of the present application supports adjusting the correlation between the connection weight and the connection quality as needed, and there is no limitation on this.
[0092] In the case where weights are introduced for the connections between source Pin points and candidate Bump points, and the connection weights are used to represent the connection quality reflected by the connection attributes of the connections, the embodiments of the present application can determine the weights of all possible connections between each source Pin point and each candidate Bump point, thereby constructing a weight data structure (e.g., a weight matrix), that is, the connection quality of all connections between the source Pin point and the candidate Bump point is quantified to provide a basis for subsequent matching optimization. For example, for all possible connections between each source Pin point in the source Pin point set and each candidate Bump point in the candidate Bump point set, the embodiments of the present application perform weight calculations on the connections, thereby considering all possible connections between the source Pin point and the candidate Bump point, and assigning corresponding weights to each connection, thereby constructing a weight data structure.
[0093] In an optional implementation, for the two sets of source Pin points and candidate Bump points, the embodiment of the present application can calculate the weight of each connection between each source Pin point and each candidate Bump point by cross-calculating the source Pin points and the candidate Bump points in pairs. Assume that the source Pin point set is set to S m , the candidate Bump point set is set to T n , source Pin point set S m There are m source Pin points and a set of candidate Bump points T n There are n candidate Bump points, then the source Pin point set S m Each source Pin point in is related to the candidate Bump point set T n The weight of the connection is calculated once for each candidate Bump point in , thereby obtaining the weights of M×N connections, which represent the weights of all possible connections between the m source Pin points and the n candidate Bump points, thereby forming a weight data structure.
[0094] For example, let the source Pin point set S m The i-th source Pin point in is s i ,s i ∈S m , candidate Bump point set T n The jth candidate Bump point in is t j , t j ∈T n , so the i-th source Pin point is s i and the jth candidate Bump point t j The weight corresponding to the connection between can be expressed as W i,j =weight(s i ,t j), so that the weight corresponding to each connection can construct a weight data structure, that is, the weight data structure includes the weight corresponding to each connection between the source Pin point and the candidate Bump point; for example, the weight data structure may include a weight group for each source Pin point and a weight group for each candidate Bump point, a weight group for a source Pin point includes the weight corresponding to each connection between the source Pin point and each candidate Bump point, and a weight group for a candidate Bump point includes the weight corresponding to each connection between the candidate Bump point and each source Pin point.
[0095] For example, taking the weight data structure as a weight matrix, the weight matrix, as a two-dimensional structure (i.e., a matrix structure), can be used to represent the weight corresponding to each connection between each source Pin point and each candidate Bump point. For example, the weight matrix can be in the form of multiple rows and multiple columns, with one row in the weight matrix corresponding to a source Pin point in the source Pin point set, and one column corresponding to a candidate Bump point in the candidate Bump point set; or, one row in the weight matrix corresponds to a candidate Bump point in the candidate Bump point set, and one column corresponds to a source Pin point in the source Pin point set; thus, each element of the weight matrix (i.e., each intersection of the rows and columns of the weight matrix) corresponds to the weight of each connection between each source Pin point and each candidate Bump point.
[0096] In a more specific example, the source Pin point set S m There are m source Pin points and a set of candidate Bump points T n Taking n candidate bump points as an example, the weight matrix can have m rows and n columns, one row corresponds to a source pin point, one column corresponds to a candidate bump point, and each intersection of rows and columns (i.e., each element of the weight matrix) represents the weight of each connection between each source pin point and each candidate bump point. Based on this, the elements contained in a row of the weight matrix can be a weight group of a source pin point, including the weight corresponding to each connection between the source pin point and each candidate bump point; the elements contained in a column of the weight matrix can be a weight group of a candidate bump point, including the weight corresponding to each connection between the candidate bump point and each source pin point. For example, a weight matrix with m rows and n columns can be defined as W. m*n , then the weight matrix W m*n The structure can be expressed as:
[0097]
[0098] Furthermore, the embodiment of the present application can also update the weight data structure (such as a weight matrix) based on connection constraints after constructing the weight data structure, wherein the connection constraints are used to constrain the connection relationship between the source Pin point and the candidate Bump point.
[0099] Furthermore, the connection constraint can be divided into a connection quantity constraint and a connection priority constraint. In an optional implementation, the connection quantity constraint is used to define the number of connections between the source pin point and the candidate bump point, which can be divided into the connection requirement of each source pin point and the connection limit of each candidate bump point. The connection requirement of the source pin point can indicate the number of bump points that the source pin point needs to connect to, and the connection limit of the candidate bump point can indicate the maximum number of pin points that the candidate bump point is allowed to connect to.
[0100] In an optional implementation, for source Pin points that require connection to multiple Bump points, an embodiment of the present application can copy the weight group corresponding to the source Pin point in a weight data structure (e.g., a weight matrix), so that there are multiple weight groups of the source Pin point in the weight data structure, and the number of weight groups of a source Pin point corresponds to the number of Bump points that the source Pin point requires connection to, thereby adapting to the multiple connection requirements of the source Pin point and facilitating subsequent matching optimization processing; correspondingly, for candidate Bump points that are allowed to connect to multiple source Pin points, an embodiment of the present application can copy the weight group corresponding to the candidate Bump point in a weight data structure (e.g., a weight matrix), and the number of weight groups of a candidate Bump point corresponds to the maximum number of source Pin points that the candidate Bump point is allowed to connect to.
[0101] In an optional implementation, the connection priority constraint is used to define the priority connection and prohibited connection between the source Pin point and the candidate Bump point, that is, the priority and permissibility of the connection. For example, in an actual Bump layout scenario, there may be some special requirements that require a specific Pin point to be preferentially connected to a specific Bump point, or to be prohibited from being connected to a specific Bump point. These requirements form a connection priority constraint, that is, a condition for priority connection or prohibited connection. In order to meet the connection priority constraint, the embodiment of the present application may consider adjusting the weight of the connection between the source Pin point and the candidate Bump point in the weight data structure, so that subsequent matching optimization is more inclined to select the priority connection and avoid selecting the prohibited connection.
[0102] Step S220 can be regarded as the weight data structure determination stage of the bump layout design scheme provided in the embodiment of the present application, which is mainly used to determine the weight data structure to quantify the connection quality of all connections between the source Pin point and the candidate Bump point through weights to provide a basis for subsequent matching optimization. Further, the weight data structure can also be updated to meet the connection constraints between the source Pin point and the candidate Bump point (such as connection quantity constraints and / or connection priority constraints).
[0103] Step S230: Based on the weight data structure, determine the connection weight result and the target matching solution corresponding to the maximum connection quality, where the target matching solution includes candidate Bump points that are matched with each source Pin point.
[0104] Step S230 can be regarded as the matching optimization solution stage of the bump layout design scheme provided in the embodiment of the present application. It is mainly based on the weight data structure (such as the constructed weight data structure or the updated weight data structure) to find the matching scheme that maximizes the connection quality. For the sake of convenience, the matching scheme that maximizes the connection quality is called the target matching scheme. Among them, the target matching scheme includes candidate Bump points that match each source Pin point, and the weight result (such as the sum of the weights) of the connection between each source Pin point and the matching candidate Bump point corresponds to the maximization of the connection quality. Furthermore, the number of candidate Bump points that match each source Pin point corresponds to the connection requirements of each source Pin point.
[0105] For example, after updating the weight data structure based on the connection quantity constraint, for source Pin points that require connection to multiple Bump points, there are multiple weight groups of source Pin points in the weight data structure to adapt to the multiple connection requirements of the source Pin points; thus, based on the weight data structure, candidate Bump points that match the source Pin points are found, and multiple candidate Bump points corresponding to the connection requirements can be matched for the source Pin points to meet the multiple connection requirements of the source Pin points, and the sum of the weights of the connections between the candidate Bump points that match the source Pin points corresponds to the maximization of the connection quality.
[0106] In an optional implementation, the weight corresponding to the connection can be set to be negatively correlated with the connection quality, so that the matching scheme with the smallest sum of the connection weights is the matching scheme with the maximized connection quality. In the matching optimization solution stage, the embodiment of the present application can use algorithms such as maximum weight matching to match each source Pin point with the candidate Bump point corresponding to the connection requirements, and the target matching scheme with the smallest sum of the connection weights, thereby obtaining the target matching scheme with the maximized connection quality.
[0107] That is to say, a matching scheme includes matching candidate bump points corresponding to the connection requirements of each source pin point. For example, if the connection requirement of all source pin points is to connect to a candidate bump point, the matching scheme includes a unique match of each source pin point, that is, in a matching scheme, each pin point uniquely matches a candidate bump point, and the candidate bump point matched by a source pin point cannot be matched by other source pin points. For example, if there is a source pin point whose connection requirement is to connect to multiple candidate bump points, the matching scheme includes multiple candidate bump points matched to the source pin point, so that a source pin point has a matching relationship with multiple candidate bump points.
[0108] In an embodiment of the present application, the evaluation index of the matching scheme is the sum of the weights of the connections between the source Pin points contained in the matching scheme and the matching candidate Bump points, so that the core goal of the matching optimization solution stage of the embodiment of the present application is to find a matching scheme so that the sum of the weights of the connections contained in the matching scheme found corresponds to the maximization of the connection quality. For example, based on the negative correlation between the weight of the connection and the quality of the connection, the matching optimization solution stage can find the matching scheme with the smallest sum of the weights of the connection (i.e., minimize the evaluation index of the matching scheme) as the matching scheme that maximizes the connection quality, thereby ensuring the design quality of the bump layout. For example, taking the target matching scheme with the smallest sum of weights determined in the matching optimization solution stage as an example, the processing of the matching optimization solution stage can be regarded as using maximum weight matching to find the target matching scheme with the smallest sum of weights.
[0109] Step S240: determine the candidate Bump points that match each source Pin point in the target matching solution as the target Bump points corresponding to each source Pin point, and obtain the layout position of the target Bump.
[0110] The candidate bump points that match each source pin point in the target matching scheme that maximizes the connection quality are the target bump points corresponding to each source pin point. Therefore, the embodiment of the present application can complete the layout position confirmation of the target bump of the bump layout design, that is, the candidate bump points that match the source pin point in the target matching scheme are the layout positions of the target bump.
[0111] It can be seen that the embodiment of the present application introduces the weight of the connection, and the weight of the connection represents the connection quality reflected by the connection attribute of the connection, so that each connection between the source Pin point and the source candidate Bump point will be assigned a weight, and the weight is used to quantitatively evaluate the quality of the connection, so that the convex point layout can focus on the connection quality of the connection; based on the weights assigned to each connection of the source Pin point and the candidate Bump point, the embodiment of the present application can determine the weight data structure, and then based on the weight data structure, find the target matching scheme corresponding to the weight result of the connection and the maximization of the connection quality, and the target matching scheme includes the candidate Bump point matched by each source Pin point; by using the candidate Bump point matched by each source Pin point in the target matching scheme that maximizes the connection quality as the target Bump point corresponding to each source Pin point, the layout position of the target Bump can be obtained, and the layout position of the target Bump of the convex point layout can be determined. Therefore, the embodiment of the present application can intelligently and automatically realize the layout optimization of the convex point layout, and improve the connection quality between the source Pin point and the target Bump point, so as to achieve the effect of improving the design efficiency and design quality of the convex point layout.
[0112] To facilitate further understanding, the following Figure 2 The implementation process of each execution stage in the example bump layout design method is introduced.
[0113] As an optional implementation, Figure 3A The flowchart of the data preparation stage provided in the embodiment of the present application is shown as an example. Figure 3A , the process may include the following steps.
[0114] Step S310: Obtain a source Pin point set, where the source Pin point set includes multiple source Pin points.
[0115] In an optional implementation, the source pin point set may be an information list of source pin points, recording multiple source pin points, such as the positions of multiple source pins; that is, the source pin point set may be in a list form, recording multiple source pin points (such as all source pin points) of the integrated circuit in a list form. For ease of explanation, the source pin point set (such as the information list of source pin points) is set to S m .
[0116] Step S311, determine whether the candidate Bump point has been determined, if not, execute step S312, if yes, execute step S313.
[0117] Step S312: Based on the design rules of the Bump, multiple candidate Bump locations are identified in a manner of maximizing the full coverage of the Bump within the layout range of the Bump.
[0118] In the optional implementation, the layout of Bump can be divided into the following two cases:
[0119] In the first case, the location of the source Pin is known, but the location of the target Bump is unknown. In this case, the specific location of the target Bump needs to be determined according to the design requirements.
[0120] In the second case, the location of the source Pin is known, and the locations of all possible target Bumps have been determined. The locations of all possible target Bumps are all candidate Bump points. At this time, it is necessary to match the target Bump for each source Pin.
[0121] The actual situation may also include a combination of the above two situations. In order to facilitate unified processing, the embodiment of the present application can convert the above-mentioned first situation into the second situation, by planning all possible positions of the target Bump, determining the positions of all possible target Bumps, and obtaining multiple candidate Bump points; then, from the candidate Bump points, match the corresponding target Bump point for each source Pin point to confirm the layout position of the target Bump, thereby uniformly converting the Bump layout problem of the unknown position into a matching problem between the source Pin with a determined position and the candidate Bump.
[0122] In an optional implementation, if the candidate bump points are not determined, the embodiment of the present application can maximize the full coverage of the bump within the layout range of the bump based on the design rules of the bump and the layout range of the bump, thereby obtaining multiple bump points. These bump points, i.e., all possible points of the target bump, are regarded as multiple candidate bump points.
[0123] It should be noted that the layout range of the Bump refers to the area where the Bump may be distributed. The design rules of the Bump may include the layout constraints of the Bump and the corresponding design rule constraints, such as the layout density constraints of the Bump, the layout space limit constraints, etc.; by determining the layout range of the Bump and the relevant design rules, boundaries and rules can be provided for the specific layout of the Bump. Furthermore, based on the layout range, layout constraints and corresponding design rule constraints of the Bump, the embodiment of the present application can maximize the full coverage of the Bump within the layout range of the Bump while satisfying the layout constraints of the Bump and the corresponding design rule constraints, so that the Bump is as full as possible within the layout range, thereby obtaining multiple candidate Bump points.
[0124] After executing step S312, the candidate Bump point is determined and the process proceeds to step S313.
[0125] Step S313: Obtain a candidate bump point set, where the candidate bump point set includes a plurality of candidate bump points.
[0126] In an optional implementation, the candidate bump point set may be a list of candidate bump point information, that is, the candidate bump point set may be in list form, and multiple candidate bump points are recorded in list form. For ease of explanation, the candidate bump point set (such as the list of candidate bump point information) is set to T n .
[0127] For further understanding, Figure 3B An example diagram showing how the Bump layout problem is transformed into a matching problem is shown below. Figure 3B As shown, assuming that the source Pin point set S m There are 8 source Pin points, denoted as s1 to s8, which can be the Pin points of IO Macro. Assume that the candidate Bump point set T n There are 13 candidate bump points, denoted as t1 to t13, respectively. These candidate bump points may be possible target bump points on the surface of an integrated circuit package (such as a chip package);
[0128] Therefore, the matching between the source Pin point and the candidate Bump point can be determined by the maximum weight matching of the bipartite graph; specifically, the source Pin point set and the candidate Bump point set are regarded as two non-intersecting subsets of the bipartite graph, which is the source Pin point set S m Each source Pin point in the source Pin point is searched for a matching candidate Bump point, and the number of candidate Bump points matching the source Pin point corresponds to the connection requirement of the source Pin point, so as to find a matching solution corresponding to the sum of the connection weights and the maximum connection quality (for example, a matching solution with the minimum sum of the connection weights). Then, the source Pin point set S m and the candidate bump point set T n Find a matching solution with the best connection quality.
[0129] That is to say, in an optional implementation of an embodiment of the present application, the Bump position confirmation in the Bump layout problem is abstracted into a matching problem between source Pin points and candidate Bump points, wherein the source Pin point set and the candidate Bump point set are regarded as two subsets of a bipartite graph; the possible connections between each source Pin point and the candidate Bump point constitute an edge in the bipartite graph, and a matching scheme whose sum of weights corresponds to the maximum connection quality is selected from all connections through algorithms such as maximum weight matching, and which meets the connection requirements of each source Pin point. The final Bump layout problem is converted into a maximum weight matching problem, thereby realizing the optimal design of the Bump layout.
[0130] After preparing the source Pin point set and the candidate Bump point set, the embodiment of the present application can enter the weight data structure determination stage, thereby determining the weight data structure and quantifying the connection quality between the source Pin point and the candidate Bump point.
[0131] As an optional implementation, the determination of the weight data structure can be divided into the construction of a weight data structure based on connection quality, and the update of a weight data structure based on connection constraints. Specifically, the construction of a weight data structure based on connection quality is to introduce weights for the connection between the source Pin point and the candidate Bump point to quantify the connection quality of each connection between the source Pin point and the candidate Bump point. The update of the weight data structure based on connection constraints is to introduce connection constraints after the weight data structure is constructed, and the weight data structure is updated to meet the constraints of the connection constraints. It should be noted that the embodiment of the present application can at least construct a weight data structure based on connection quality, and the update of the weight data structure based on connection constraints can be implemented as an optional implementation, such as after the weight data structure is constructed, considering whether it is necessary to update the weight data structure based on connection constraints based on actual conditions.
[0132] As an optional implementation, Figure 4A The flowchart of the method for constructing a weight data structure provided in the embodiment of the present application is shown as an example. Figure 4A The method flow may include the following steps.
[0133] Step S410: Based on the connection attributes of each connection between each source Pin point and each candidate Bump point, a weight corresponding to each connection is assigned.
[0134] Step S411: construct a weight data structure based on the weights corresponding to each connection.
[0135] In an optional implementation, the connection attribute may be a single connection attribute or a combination of multiple connection attributes, including but not limited to at least one of a connection distance, a signal integrity of a connection, and a power consumption of a connection.
[0136] Based on the connection properties of each connection between each source Pin point and each candidate Bump point, the embodiment of the present application can determine the weight corresponding to each connection between each source Pin point and each candidate Bump point, thereby representing the connection quality reflected by the connection properties of each connection through the weight of each connection.
[0137] As an optional implementation, if the weight result corresponding to the maximization of the connection quality is the minimum sum of the connection weights, that is, the connection weight is negatively correlated with the connection quality, then for each connection between each source Pin point and each candidate Bump point, if the connection quality reflected by the connection attributes of the connection is higher, the connection weight should be set lower; if the connection quality reflected by the connection attributes of the connection is lower, the connection weight should be set higher.
[0138] For example, taking the connection attribute of connection distance as an example, the lower the connection distance, the higher the connection quality reflected, and thus the connection weight should be set lower; taking the connection attribute of power consumption of the connection as an example, the lower the power consumption of the connection, the higher the connection quality reflected, and thus the connection weight should be set lower; taking the connection attribute of signal integrity of the connection as an example, the higher the signal integrity of the connection, the higher the connection quality reflected, and thus the connection weight should be set lower.
[0139] That is to say, in the case of minimizing the sum of weights, if the connection attributes are negatively correlated with the connection quality (for example, the connection attributes are connection distance, power consumption of the connection, etc.), then the connection attributes are positively correlated with the weight of the connection, such as directly setting the connection attributes as the weight of the connection, or converting the connection attributes of the connection into the weight of the connection according to the positive correlation, so that the weight of the connection is negatively correlated with the connection quality, thereby minimizing the sum of weights and maximizing the connection quality; if the connection attributes are positively correlated with the connection quality (for example, the connection attributes are signal integrity of the connection, etc.), then the connection attributes are negatively correlated with the weight of the connection, such as converting the connection attributes of the connection into the weight of the connection according to the negative correlation, so that the weight of the connection is negatively correlated with the connection quality, thereby minimizing the sum of weights and maximizing the connection quality.
[0140] As an optional implementation, if the weight result corresponding to the maximization of the connection quality is the maximum sum of the connection weights, that is, the connection weight is positively correlated with the connection quality, then for each connection between each source Pin point and each candidate Bump point, if the connection quality reflected by the connection attribute is higher, the connection weight should be set higher, and if the connection quality reflected by the connection attribute is lower, the connection weight should be set lower. In this case, the relevant content and examples can be derived in the same way as above, and will not be expanded here.
[0141] In an optional implementation, the constructed weight data structure can be in the form of a weight matrix, such as a weighted adjacency matrix. It should be noted that in graph theory, an adjacency matrix is a matrix that represents the connection relationship between vertices in a graph. When the edges in a graph have weights, the corresponding adjacency matrix is a weighted adjacency matrix. At this time, the elements in the weighted adjacency matrix can represent the weight of the edge (that is, the weight of the connection between vertices). For example, taking the form of a weighted adjacency matrix as an example, Figure 4B An example diagram of a weight matrix provided in an embodiment of the present application is shown as follows: Figure 4B As shown, assuming that the source Pin point set S m There are 8 source Pin points and a set of candidate Bump points T n There are 13 candidate bump points, and the line (edge) between a source pin point and a candidate bump point represents a possible connection relationship. Then, a weighted adjacency matrix with 8 rows and 13 columns can be constructed, and a row in the weighted adjacency matrix corresponds to a source pin point (for example, 8 rows correspond to source pin points s1 to s8 in sequence), and a column corresponds to a candidate bump point (for example, 13 columns correspond to candidate bump points t1 to t13 in sequence), and each element in the weight matrix represents the weight corresponding to the connection between a source pin point and a candidate bump point. For example, if the element corresponding to s1 and t1 in the weight matrix (that is, the intersection of s1 and t1 in the weight matrix) is 13, it means that the weight corresponding to the connection between source pin point s1 and candidate bump point t1 is 13, and the weights corresponding to the connections between other source pin points and candidate bump points can be referred to in the same way. Figure 4B As shown, it will not be expanded here.
[0142] In an optional implementation example, taking minimizing the sum of weights as an example, and setting the connection attribute as the connection distance as an example, the embodiment of the present application can calculate the connection distance of the connection between the source Pin point and the candidate Bump point, thereby assigning the weight corresponding to the connection based on the positive correlation between the connection distance and the weight, or directly setting the connection distance as the weight, thereby obtaining the weight of the connection; then, determining the weight corresponding to the connection distance of each connection between each source Pin point and each candidate Bump point, a weighted adjacency matrix can be constructed, and the weight corresponding to each connection represents the connection quality reflected by the connection distance of the connection, and the connection distance is positively correlated with the weight of the connection, and the weight of the connection is negatively correlated with the connection quality reflected by the connection distance, so that minimizing the sum of weights corresponds to maximizing the connection quality.
[0143] Furthermore, the embodiment of the present application can calculate the Manhattan distance between the source Pin point and the candidate Bump point to calculate the connection distance between the source Pin point and the candidate Bump point; wherein, in the integrated circuit layout, the Manhattan distance is used to calculate the right-angle path distance between two points physically, because in the integrated circuit design, the signal wiring is generally along the horizontal and vertical directions, rather than the oblique line. For example, assuming that the coordinates of the two points are (x1, y1) and (x2, y2), the Manhattan distance of the two points can be expressed as: |x1-x2|+|y1-y2|.
[0144] In other possible implementations, the connection distance between the source Pin point and the candidate Bump point can also be achieved by calculating the Euclidean distance or the user-defined distance, rather than being limited to calculating the Manhattan distance, so as to meet the user's diversified and personalized layout optimization.
[0145] Furthermore, the embodiments of the present application may update the weight data structure based on connection constraints; wherein, the connection constraints may be used to constrain the connection relationship between the source Pin point and the candidate Bump point, for example, the connection constraints may be divided into connection quantity constraints and connection priority constraints.
[0146] The following introduces the update of the weight data structure based on the connection quantity constraint.
[0147] As an optional implementation, in a complex Pin and Bump matching scenario, it may involve a Pin that needs to be connected to multiple Bumps or multiple Pins that need to be connected to one Bump, or even multiple Pins that need to be connected to multiple Bumps, that is, there are multiple connection relationships between Pins and Bumps, that is, the matching situations of Pins and Bumps are multiple and complex. For ease of understanding, the connection relationships between Pins and Bumps that may be encountered in actual Bump layouts are described below:
[0148] One-to-many connection, that is, one Pin needs to be connected to multiple Bumps. For example, a Pin signal may need to be connected to multiple Bumps for output;
[0149] Many-to-one connection, that is, multiple pins need to be connected to one bump. For example, the power bump needs to be connected to multiple pins to ensure the power cord connection;
[0150] Many-to-many connection, that is, multiple Pins need to be connected to multiple Bumps. Many-to-many connection can be regarded as a combination of the above one-to-many connection and many-to-one connection.
[0151] It can be seen that the actual Bump layout faces multiple connection relationships such as one-to-many connection, many-to-many connection, many-to-one connection, etc. The connection relationship faced by the actual Bump layout is relatively complex, and it is necessary to consider multiple possible connections for each Pin and each Bump. Based on this, in order to uniformly handle various connection relationships to facilitate subsequent matching optimization processing, the embodiment of the present application constructs a weight data structure based on the corresponding weights of each connection between each source Pin point and each candidate Bump point, and then considers the connection quantity constraints based on each source Pin point and each candidate Bump point. By updating the weight data structure, the constraints of the above-mentioned one-to-many connection, many-to-many connection, many-to-one connection, etc. are uniformly converted into a one-to-one connection relationship, and a set of weights of the source Pin point in the weight data structure (including the weights of the connection between the source Pin point and each candidate Bump point), as well as the candidate A set of weights for the bump points (including the weights of the connections between the candidate bump points and each source pin point) is selected to correspond to a connection requirement of the source pin point and a connection restriction of the candidate bump point, so that multiple sets of weights for the same source pin point in the weight data structure can adapt to multiple connection requirements of the source pin point (i.e., multiple connection requirements), and multiple sets of weights for the candidate bump points in the weight data structure can adapt to multiple connection restrictions of the candidate bump points; thereby converting various connection relationships such as complex one-to-many connections, many-to-many connections, and many-to-one connections into standard one-to-one connection graph theory problems, which is convenient for calculation in the subsequent matching optimization solution stage.
[0152] As an optional implementation, Figure 5A The flowchart of the method for updating the weight data structure provided in the embodiment of the present application is shown as an example. Figure 5A The method flow may include the following steps.
[0153] Step S510: Determine the connection requirement of each source Pin point and the connection restriction of each candidate Bump point.
[0154] After constructing a weight data structure (e.g., a weight matrix), an embodiment of the present application may check the connection requirements of each source Pin point in the source Pin point set and the connection restrictions of each candidate Bump point in the candidate Bump point set; wherein, the connection requirements of the source Pin point may indicate the number of Bump points that the source Pin point requires to connect, so that by checking the connection requirements of each source Pin point, the embodiment of the present application may determine the source Pin point that requires connecting to multiple Bump points, that is, check out the source Pin point corresponding to the one-to-many connection relationship; the connection restrictions of the candidate Bump point may indicate the maximum number of Pin points that the candidate Bump point is allowed to connect to, so that by checking the connection restrictions of each candidate Bump point, the embodiment of the present application may determine the candidate Bump point that is allowed to connect to multiple Pin points, that is, check out the candidate Bump point corresponding to the many-to-one connection relationship; at the same time, if it is checked that a source Pin positioning requirement is connected to multiple Bump points, and the connected Bump point is allowed to connect to multiple Pin points, then the source Pin point and the candidate Bump point corresponding to the many-to-many connection relationship can be checked.
[0155] Step S511, for the source Pin point whose connection requirement is to connect multiple Bump points, based on the number of Bump points that the source Pin point needs to connect, copy the weight group corresponding to the source Pin point in the weight data structure so that the number of weight groups corresponding to the source Pin point corresponds to the number of Bump points that need to be connected.
[0156] For source Pin points whose connection requirement is to connect multiple Bump points, that is, for source Pin points with a one-to-many connection relationship, the embodiment of the present application can copy the weight group corresponding to the source Pin point in the weight data structure, so that the number of weight groups corresponding to the source Pin point corresponds to the number of Bump points required to be connected, wherein a weight group corresponding to a source Pin point includes the weight of the connection between the source Pin point and each candidate Bump point, so that each weight group corresponding to the source Pin point can adapt to a connection requirement of the source Pin point, and then the multiple weight groups corresponding to the source Pin point (corresponding to the number of Bump points required to be connected to the source Pin point) can adapt to multiple connection requirements of the source Pin point. It should be noted that even if the multiple weight groups corresponding to the source Pin point are copied and the duplicate source Pin points and candidate Bump points are associated, this can convert the complex one-to-many connection relationship of the source Pin point into multiple groups of one-to-one connection relationships that can be processed separately. That is to say, each weight group corresponding to the source Pin point in the weight data structure can independently participate in the subsequent matching optimization, so as to find a matching target Bump point for each connection requirement of the source Pin point.
[0157] Specifically, taking a weight group corresponding to a source Pin point as an example, for a source Pin point whose connection requirement is to connect multiple Bump points, the embodiment of the present application can copy the source Pin point row in the weight matrix based on the number of Bump points that the source Pin point needs to connect, so that the number of source Pin point rows corresponds to the number of Bump points that need to be connected. For example, if the number of Bump points that a source Pin point needs to connect is x, that is, the need to connect x Bump points, then the source Pin point row can be copied in the weight matrix, so that the number of source Pin point rows after copying is x.
[0158] For ease of understanding, Figure 5B An example diagram of updating the weight data structure is shown exemplarily, combined with Figure 4B and Figure 5B As shown, assuming that the source Pin point s2 needs to connect to two Bump points, the row corresponding to the source Pin point s2 in the weight matrix can be copied once, and the row corresponding to the source Pin point s2 is represented by s2' after copying. It can be seen that the row of s2' is a copy row of s2, which includes the weight corresponding to each connection between the source Pin point s2 and each candidate Bump point.
[0159] Step S512: For a candidate bump point whose connection restriction is to allow connection to multiple pin points, based on the number of pin points allowed to be connected to the candidate bump point, copy the weight group corresponding to the candidate bump point in the weight data structure so that the number of weight groups corresponding to the candidate bump point corresponds to the number of pin points allowed to be connected.
[0160] The processing of step S512 is similar to that of step S511, except that it is aimed at candidate bump points with a many-to-one connection relationship. That is to say, for candidate bump points whose connection restrictions are to allow connection to multiple pin points, that is, for candidate bump points with a many-to-one connection relationship, the embodiment of the present application can copy the weight groups corresponding to the candidate bump points in the weight data structure, so that the number of weight groups corresponding to the candidate bump points corresponds to the number of pin points allowed to be connected.
[0161] Specifically, taking a weight group corresponding to a candidate Bump point as an example, for a candidate Bump point whose connection restriction is to allow connection to multiple Pin points, the embodiment of the present application can copy the columns of the candidate Bump point in the weight matrix based on the number of Pin points allowed to be connected to the candidate Bump point, so that the number of columns of the candidate Bump point corresponds to the number of Pin points allowed to be connected. For example, if a candidate Bump point is allowed to connect to a maximum of y Pin points, the column of the candidate Bump point can be copied in the weight matrix, so that the number of columns of the candidate Bump point after copying is y.
[0162] For ease of understanding, combined Figure 5B As shown, assuming that the connection restriction of candidate bump point t9 is to allow a maximum of 2 pin points to be connected, the column corresponding to candidate bump point t9 in the weight matrix can be copied once, so as to update the weight matrix to form a copy column corresponding to candidate bump point t9. The copy column of candidate bump point t9 is represented by t9'. It can be seen that the column of t9', as a copy column of the column of t9, includes the weight corresponding to each connection between candidate bump point t9 and each source pin point.
[0163] Furthermore, if a source Pin point needs to be connected to multiple Bump points, and the candidate Bump point connected to the source Pin point is allowed to be connected to multiple Pin points, the source Pin point and candidate Bump point corresponding to the many-to-many connection relationship can be determined, so that the source Pin point and candidate Bump point corresponding to the many-to-many connection relationship can be copied in the weight matrix according to steps S511 and S512 respectively. For example, after checking the source Pin point and candidate Bump point of the many-to-many connection relationship, the embodiment of the present application can copy the rows corresponding to the source Pin point based on the number of Bump points that the source Pin point needs to connect, and copy the columns corresponding to the candidate Bump point based on the number of Pin points allowed to be connected to the candidate Bump point, so that the many-to-many connection relationship can be disassembled into multiple groups of one-to-one connection relationships by copying the rows of the source Pin point and the columns of the candidate Bump point respectively.
[0164] It can be seen that the embodiment of the present application can convert the one-to-many connection relationship, many-to-one connection relationship, and many-to-many connection relationship corresponding to the connection number constraint condition into a one-to-one connection relationship based on the connection number constraint condition, and update the constructed weight data structure (such as a weight matrix), so that each connection requirement of the source Pin point and each connection restriction of the candidate Bump point can have a corresponding weight group in the weight data structure, ensuring that the multiple connection requirements of the bump layout are met. It can be understood that, taking the weight data structure as a weight matrix as an example, after updating the weight matrix based on the above-mentioned connection number constraint condition, the number of rows and columns of the weight matrix will be expanded, thereby expanding into a new weight matrix (i.e., an updated weight matrix), which represents an equivalent matching problem, and all connection requirements of the source Pin point and all connection restrictions of the candidate Bump point are disassembled into a one-to-one connection relationship of the corresponding weight group. For ease of explanation, the constructed weight matrix is represented as W m*n , with m rows and n columns, the weight matrix updated based on the above connection number constraint can be expressed as Wp*q, where p is the total number of rows of the weight matrix after row replication, and q is the total number of columns of the weight matrix after column replication.
[0165] The following is an introduction to the update of the weight data structure based on the connection priority constraint. In an optional implementation, the embodiment of the present application can update the weight data structure based on the connection priority constraint on the constructed weight data structure; or it can update the weight data structure based on the connection priority constraint on the basis of the weight data structure updated based on the connection quantity constraint.
[0166] As an optional implementation, Fig. 6A Another method flow chart for updating the weight data structure provided in the embodiment of the present application is shown as an example. Fig. 6A The method flow may include the following steps.
[0167] Step S610: Determine the priority connection and prohibited connection between the source Pin point and the candidate Bump point based on the connection priority constraint condition.
[0168] The connection priority constraint is used to define the priority connection and prohibited connection between the source Pin point and the candidate Bump point. The embodiment of the present application can determine the priority connection with priority between the source Pin point and the candidate Bump point, and the prohibited connection between the source Pin point and the candidate Bump point that needs to be prohibited based on the connection priority constraint; for ease of explanation, the connection with priority between the source Pin point and the candidate Bump point is called the priority connection, and the connection between the source Pin point and the candidate Bump point that needs to be prohibited is called the prohibited connection.
[0169] Step S611: In the weight data structure, the weight corresponding to the priority connection is combined with the preset priority connection coefficient to update the weight corresponding to the priority connection, so that the possibility of the priority connection being selected increases; and the weight corresponding to the prohibited connection is combined with the preset prohibited connection coefficient to update the weight corresponding to the prohibited connection, so that the possibility of the prohibited connection being selected decreases.
[0170] In an optional implementation, taking the minimization of the sum of weights as an example, the weight of the connection is negatively correlated with the connection quality, so that the smaller the weight of the connection, the higher the possibility of the connection being selected, and the larger the weight of the connection, the lower the possibility of the connection being selected; based on this, the embodiment of the present application can set the priority connection coefficient to be smaller than the prohibited connection coefficient, and the priority connection coefficient approaches 0, and the prohibited connection coefficient is selected from a preset exponential interval; further, for the priority connection, after the weight corresponding to the priority connection is combined with the priority connection coefficient (such as multiplication), the weight of the priority connection can approach 0, so that the possibility of the priority connection being selected is greatly increased; for the prohibited connection, after the weight corresponding to the prohibited connection is combined with the prohibited connection coefficient (such as multiplication), the weight of the prohibited connection should be increased as much as possible, or even increased to infinity (for example, based on the fact that the prohibited connection coefficient belongs to the exponential interval, the weight corresponding to the prohibited connection is combined with the prohibited connection coefficient, and the weight corresponding to the prohibited connection can increase exponentially), so that the possibility of the prohibited connection being selected is greatly reduced.
[0171] As an optional implementation, in the case where the sum of weights is minimized, the coefficient ρ of each connection in the updated weight data structure (such as the weight matrix Wp*q) is divided into the following cases:
[0172] By default, the connection coefficient ρ = 1, which means that the weight corresponding to the connection is maintained;
[0173] In the case of priority connection, the priority connection has a priority connection coefficient, assuming that the priority connection coefficient is ρ R , then the priority connection coefficient ρ R Approaching 0, such as the priority connection coefficient ρ R It can be a decimal between 0 and 1. For example, the priority connection coefficient ρ R The value range can be ρ R ∈[10 -4 ,10 -2 ], so the weight of the priority connection and the priority connection coefficient ρ R Multiplying them together can make the weight of the optimized connection approach 0, so that the priority connection is selected first; that is, the priority connection coefficient ρ R The closer it is to 0, the more preferred the priority connection is selected;
[0174] In the case of prohibited connection, the prohibited connection has a prohibited connection coefficient, assuming that the prohibited connection coefficient is ρ E , then the connection coefficient ρ is prohibited E It can be an exponential coefficient, selected from a preset exponential interval, such as the forbidden connection coefficient ρ E ∈[10 4 ,10 8 ], so that the weight of the forbidden connection and the forbidden connection coefficient ρ E By multiplying, the weight of the forbidden connection can be increased as much as possible, or even increased to infinity, so that the forbidden connection is forbidden to be selected.
[0175] That is to say, when the weight of the connection is negatively correlated with the quality of the connection, and the weight result of the connection corresponds to the maximum quality of the connection, the smaller the weight of the connection, the more preferred it is in the matching optimization solution stage, that is, the connection with the smaller weight is regarded as the preferred connection choice. As an example, in actual engineering experience, the priority connection coefficient ρ R ∈[10 -4 ,10 -2 ].
[0176] It should be noted that the priority connection coefficient ρ R It is not directly set to 0 because the number of priority connections may be more than one. If the priority connection coefficient ρ R If it is set to 0, the weights of all priority connections will be updated to 0. At this time, all priority connections will lose the weight-based connection quality evaluation criteria; that is, even if there are multiple priority connections, the priority connection is the connection that should be given priority over the default connection and the prohibited connection, and there are also weight-based connection quality differences among multiple priority connections.
[0177] It should be further explained that the forbidden connection coefficient ρE It can be a theoretically infinite value. In actual calculations, it can be represented by a sufficiently large exponential coefficient, such as the forbidden connection coefficient ρ E It can be defined as the forbidden connection coefficient ρ R >>1, indicating that the forbidden connection is forbidden or almost impossible to be selected; this is because when looking for a matching solution that minimizes the sum of weights, the matching optimization solution stage will select connections with smaller weights, and a very large weight will put the connection at a disadvantage in the matching competition. For example, in actual engineering experience, the forbidden connection coefficient ρ E ∈[10 4 ,10 8 ].
[0178] Of course, the embodiments of the present application may also support the situation where the matching scheme for maximizing the sum of weights corresponds to the situation where the connection quality is maximized. At this time, the greater the weight of the connection, the higher the possibility of the connection being selected, and the smaller the weight of the connection, the lower the possibility of the connection being selected. The embodiments of the present application may accordingly set the priority connection coefficient for the priority connection and the prohibited connection coefficient for the prohibited connection. For example, the values of the priority connection coefficient and the prohibited connection coefficient in the case of minimizing the above-mentioned sum of weights are interchanged. The relevant content may be deduced by referring to the previous text in the same way and will not be expanded here.
[0179] For further understanding, Figure 6B Another example diagram of updating the weight data structure is shown exemplarily, combined with Figure 4B and Figure 6B As shown in the figure, assuming that the source Pin points s1 and s2 need to be preferentially connected to the candidate Bump points t4 and t5, the priority connections are the connection corresponding to s1 and t4, the connection corresponding to s1 and t5, the connection corresponding to s2 and t4, and the connection corresponding to s2 and t5. Therefore, the weight of the connection corresponding to s1 and t4, the weight of the connection corresponding to s1 and t5, the weight of the connection corresponding to s2 and t4, and the weight of the connection corresponding to s2 and t5 in the weight matrix are multiplied by the priority connection coefficient ρ R , to update the weight of the above-mentioned priority connection, so that the subsequent matching optimization solution stage is more inclined to select the above-mentioned priority connection; assuming that the source Pin points s5 and s6 are forbidden to be connected with the candidate Bump points t9 and t10, then the forbidden connections are the connection corresponding to s5 and t9, the connection corresponding to s5 and t10, the connection corresponding to s6 and t9, and the connection corresponding to s6 and t10, so that the weight of the connection corresponding to s5 and t9, the weight of the connection corresponding to s5 and t10, the weight of the connection corresponding to s6 and t9, and the weight of the connection corresponding to s6 and t10 in the weight matrix are multiplied by the forbidden connection coefficient ρ E , in order to update the weights of the above-mentioned prohibited connections, so that the subsequent matching optimization solution stage avoids selecting the above-mentioned prohibited connections.
[0180] It should be noted that the above example takes the constructed weight data structure (such as the constructed weight matrix) as an example to illustrate the weight update of the priority connection and the forbidden connection in the weight data structure. If the constructed weight data structure copies the weight group of the source Pin point and the weight group of the candidate Bump point based on the connection quantity constraint, then the copied weight group (such as the copied row, the copied column) may also have priority connections and forbidden connections, so the weights of the priority connections and forbidden connections in the copied weight group also need to be updated accordingly. For example, the priority connection in the copied weight group needs to be consistent with the priority connection coefficient ρ R Combined (e.g., multiplied), the forbidden connections in the replicated weight group need to be equal to the forbidden connection coefficient ρ E That is, the updating of the weight data structure based on the connection priority constraint is not limited to being based on the weight data structure constructed based on the connection quality or based on the weight data structure updated based on the connection quantity constraint.
[0181] For example, the embodiment of the present application can update the weights of priority connections and prohibited connections in the weight data structure based on the connection priority constraints on the basis of the constructed weight data structure, so that the weights of priority connections and prohibited connections are reflected in the updated weight data structure; then, the weight data structure is updated based on the connection quantity constraints, so that the weights of priority connections and prohibited connections corresponding to the source Pin points that require connection to multiple Bump points and the candidate Bump points that allow connection to multiple Pin points will be copied accordingly when the weight group is copied.
[0182] For another example, the embodiment of the present application can update the weight data structure based on the connection quantity constraint on the basis of the constructed weight data structure, so that the copy weight group of the source Pin point that requires connection to multiple Bump points and the copy weight group of the candidate Bump point that allows connection to multiple Pin points are reflected in the updated weight data structure; then, based on the connection priority constraint, the weights of the priority connection and the prohibited connection in the weight data structure are updated, so that the weights of the priority connection and the prohibited connection in each weight group (including the copy weight group) are updated accordingly.
[0183] After determining the weight data structure, for example, after constructing the weight data structure based on the connection quality, or after updating the constructed weight data structure based on the connection constraints, the embodiment of the present application can enter the matching optimization solution stage, thereby finding the connection weight result and the matching solution corresponding to the maximum connection quality based on the weight data structure.
[0184] In an optional implementation, the matching optimization solution stage can be based on a weighted data structure, using maximum weight matching to solve a target matching solution that maximizes the connection quality, such as solving a target matching solution with the smallest sum of weights. The maximum weight matching solution can use a variety of algorithms, including but not limited to: Hungarian algorithm, KM (Kuhn-Munkres, Kuhn-Monkres) algorithm, various derivative algorithms of the Hungarian algorithm and KM algorithm, algorithm methods based on deep learning and reinforcement learning, etc. Different algorithms are suitable for different scenarios, and the embodiments of the present application do not limit the specific algorithm type used in the matching optimization solution stage.
[0185] As an optional implementation, the algorithm for finding the maximum weight matching in a weighted bipartite graph (such as the KM algorithm, etc.) can convert the problem of finding the maximum weight matching into the problem of finding a complete matching by assigning a label to each vertex; the core of the algorithm is to continuously adjust the label to expand a special subgraph (i.e., the equal subgraph) until a complete matching is found in the equal subgraph, so that this complete matching is the maximum weight matching of the bipartite graph. It should be further explained that the value assigned to the vertex is called the label. By adjusting the label, the weight of the equal edges (i.e., equal connections) in the equal subgraph is restricted, and the algorithm can find a valid matching in each iteration. The role of the label is to help the algorithm find a matching solution that satisfies the weight minimization or maximization, while reducing the computational complexity. Specifically, the equal subgraph considers the edge whose edge weight is equal to the sum of the labels of the two vertices, so that by introducing the label, the edges in the equal subgraph can be regarded as equal edges. A complete matching means that each vertex to be matched has only one unique matching, that is, in a complete matching, a vertex in one subset can only match one vertex in another subset, and no vertex is matched repeatedly.
[0186] As an optional implementation, the optional implementation of the matching optimization solution phase based on equal subgraphs can refer to Fig. 7A As shown, Fig. 7A The flowchart of the matching optimization solution phase provided in the embodiment of the present application is shown as an example. Fig. 7A , the process may include the following steps.
[0187] Step S710, based on the weight data structure, initialize the equal subgraph to obtain an initial equal subgraph; wherein the initial equal subgraph includes source Pin point vertices corresponding to each source Pin point in the equal subgraph, candidate Bump point vertices corresponding to each candidate Bump point in the equal subgraph, and initial equal connections, wherein the initial equal connections are connections corresponding to the source Pin point with the maximum connection quality corresponding to each source Pin point vertex.
[0188] Among them, the vertex of the source Pin point in the equal subgraph is called the source Pin point vertex, which is determined based on the weight data structure and is not necessarily determined from the source Pin point set. For example, a source Pin point in the source Pin point set may correspond to multiple source Pin point vertices in the equal subgraph to meet the multi-connection requirements of the source Pin point. Similarly, the vertex of the candidate Bump point in the equal subgraph is called the candidate Bump point vertex, which is determined based on the weight data structure. For example, a candidate Bump point in the candidate Bump point set may correspond to multiple candidate Bump point vertices in the equal subgraph to meet the connection restriction that the candidate Bump point is allowed to connect to multiple Pin points.
[0189] That is to say, the number of source Pin vertices corresponding to a source Pin corresponds to the connection requirements of the source Pin; the number of candidate Bump vertices corresponding to a candidate Bump corresponds to the number of Pins that the candidate Bump is allowed to connect to. The embodiment of the present application supports the situation where any source Pin requires connecting to one or more Bumps, and a candidate Bump allows connecting to one or more Pins.
[0190] To introduce the process of initializing equal subgraphs in more detail, Figure 7B The flowchart of initializing an equal subgraph provided in an embodiment of the present application is exemplarily shown. Figure 7B The process shown can be regarded as an optional implementation of step S710, see Figure 7B As shown, the process may include the following steps.
[0191] Step S711, based on the weight data structure, determine multiple source Pin point vertices and multiple candidate Bump point vertices, wherein the number of source Pin point vertices corresponding to a source Pin point corresponds to the connection requirement of the source Pin point, and the number of candidate Bump point vertices corresponding to a candidate Bump point corresponds to the number of Pin points allowed to be connected to the candidate Bump point.
[0192] In an optional implementation, a connection requirement of a source Pin point is matched by a source Pin point vertex in the matching optimization solution stage, so that the multiple connection requirements of a source Pin point connecting multiple Bump points are matched by multiple source Pin point vertices in the matching optimization solution stage. For example, for a source Pin point whose connection requirement is to connect multiple Bump points, the weight data structure will have multiple weight groups of the source Pin point after updating, and the number of multiple weight groups of a source Pin point corresponds to the number of Bump points that the source Pin point needs to connect, so that the multiple weight groups of the source Pin point in the weight data structure can adapt to the multiple connection requirements of the source Pin point; further, for a source Pin point that needs to connect multiple Bump points, the embodiment of the present application can determine the multiple source Pin point vertices corresponding to the source Pin point based on the multiple weight groups of the source Pin point in the weight data structure, so that the multiple connection requirements of the source Pin point are matched by multiple source Pin point vertices in the equal subgraph in the matching optimization solution stage.
[0193] For example, if a row in the weight matrix contains a weight group corresponding to a source Pin point, the number of rows in the weight matrix for a source Pin point corresponds to the number of corresponding source Pin point vertices. That is, the number of rows in the weight matrix for a source Pin point is the number of source Pin point vertices in the equal subgraph for the source Pin point. Figure 5B As shown, the source Pin point s2 has two rows in the weight matrix (one of which is the copy row s2'), then the equal subgraph should contain the two source Pin point vertices corresponding to the source Pin point s2.
[0194] It can be understood that, for a source Pin point that needs to be connected to a Bump point, the source Pin point vertex corresponding to the source Pin point in the same subgraph is also one.
[0195] Similarly, the number of candidate bump point vertices corresponding to a candidate bump point in the candidate bump point set corresponds to the number of pin points that the candidate bump point is allowed to connect to; for example, the weight data structure has multiple weight groups of candidate bump points, and the number of multiple weight groups of a candidate bump point corresponds to the number of pin points that the candidate bump point is allowed to connect to. Therefore, for candidate bump points that are allowed to connect to multiple pin points, the embodiment of the present application can determine the multiple candidate bump point vertices corresponding to the candidate bump point based on the multiple weight groups of the candidate bump point in the weight data structure, and include them in the equal subgraph in the matching optimization solution stage.
[0196] For example, if the elements contained in a column of the weight matrix are a weight group corresponding to a candidate bump point, the number of columns of a candidate bump point in the weight matrix corresponds to the number of corresponding candidate bump point vertices, that is, the number of columns of a candidate bump point in the weight matrix is the number of candidate bump point vertices in the equal subgraph of the candidate bump point. Figure 5B As shown, the candidate Bump point t9 has two columns in the weight matrix (one of which is the copy column t9'), and the equal subgraph should contain two candidate Bump point vertices corresponding to the candidate Bump point t9.
[0197] It should be noted that the above is to update the weight data structure based on the connection quantity constraint condition, so that the weight data structure has multiple weight groups of the same source Pin point and multiple weight groups of the same candidate Bump point. The embodiment of the present application can also support directly taking each source Pin point in the source Pin point set as a source Pin point vertex, and taking each candidate Bump point in the candidate Bump point set as a candidate Bump point vertex, that is, a source Pin point in the source Pin point set corresponds to a source Pin point vertex in the equal subgraph, and a candidate Bump point in the candidate Bump point set corresponds to a candidate Bump point vertex in the equal subgraph. For example, the embodiment of the present application can directly perform the matching optimization solution stage after constructing the weight data structure based on the connection quality, or, after updating and constructing the weight data structure based on the connection priority constraint condition, perform the matching optimization solution stage. At this time, there is no weight group copied from the source Pin point and the candidate Bump point in the weight data structure, and the connection requirements of each source Pin point are defaulted to be one-to-one connection requirements.
[0198] After determining the source Pin point vertices corresponding to each source Pin point in the equal subgraph, and the candidate Bump point vertices corresponding to each candidate Bump point vertices in the equal subgraph, the embodiment of the present application can obtain multiple source Pin point vertices and multiple candidate Bump point vertices, thereby forming a source Pin point vertex set (including multiple source Pin point vertices) and a candidate Bump point vertex set (including multiple candidate Bump point vertices).
[0199] For the source Pin point vertex in the source Pin point vertex set and the candidate Bump point vertex in the candidate Bump point vertex set, a matching scheme can be regarded as a matching set M, and (s k →t k )∈M,s k is the source Pin point vertex in the source Pin point vertex set, t kis a candidate Bump point vertex in the candidate Bump point vertex set, and each s in a matching set k Connect only one t k (i.e., each source Pin vertex is connected to only one candidate Bump vertex), and each t k Can only be one s k Connection (that is, each candidate bump point vertex is only connected to one source pin point vertex), so all connections in a matching set are one-to-one connections between source pin point vertices and candidate bump point vertices. At this time, for source pin points that need to connect multiple bump points, since one source pin point corresponds to multiple source pin point vertices corresponding to the connection requirements, the multiple candidate bump point vertices matched by the multiple source pin point vertices through one-to-one connections are the candidate bump points matched by the source pin point, and meet the multiple connection requirements of the source pin point. For example, combined with Figure 5B As shown, there are two source Pin point vertices in the equal subgraph of the source Pin point s2. The candidate Bump point vertices matched by the two source Pin point vertices through a one-to-one connection can be regarded as candidate Bump points that meet the connection requirements of the source Pin point s2.
[0200] Furthermore, in the matching optimization solution stage, the bump layout problem can be transformed into a maximum weight matching problem of the source pin point vertex set and the candidate bump point vertex set, and solved by the complete matching of equal subgraphs. Taking the minimization of the sum of weights and the maximization of the connection quality as an example, the above maximum weight matching problem can be described as:
[0201] To minimize:
[0202] Among them, (s k →t k )∈M, that is, the above maximum weight matching problem is to find an optimal matching set M by minimizing the sum of weights L.
[0203] For example, Fig. 8A An example diagram of the maximum weight matching problem description is shown for ease of explanation. Fig. 8AThe example directly uses the source Pin point set as the source Pin point vertex set, and directly uses the candidate Bump point set as the candidate Bump point vertex set. However, in actual situations, one source Pin point may correspond to multiple source Pin point vertices in the source Pin point vertex set, and one candidate Bump point may correspond to multiple candidate Bump point vertices in the candidate Bump point vertex set. Here, only for the convenience of example, the source Pin point set is directly used as the source Pin point vertex set, and the candidate Bump point set is directly used as the source Pin point vertex set. It does not mean that the connection requirement of the source Pin points is to connect to one Bump point, nor does it mean that the connection restriction of the candidate Bump points is to connect to one Pin point.
[0204] like Fig. 8A As shown, the source Pin point vertex set has multiple source Pin point vertices s1 to s8, the candidate Bump point vertex set has multiple candidate Bump point vertices t1 to t13, and the connection between each source Pin point vertex and each candidate Bump point vertex is configured with a weight, reflecting the connection quality; in the matching optimization stage, the connection weight corresponds to the matching cost between the source Pin point vertex and the candidate Bump point vertex, so as to search for a matching set M so that each source Pin point vertex uniquely matches a candidate Bump point vertex (i.e., a complete match), and the sum of the weights L of the connections between each source Pin point vertex and the uniquely matched candidate Bump point vertex is minimized, and then a matching solution that satisfies the maximum connection quality is found. It should be noted that in Fig. 8A In the example matching set M, m1 to m8 represent the unique connections corresponding to the source Pin point vertices s1 to s8 respectively (i.e., the unique matches of the source Pin point vertices s1 to s8 respectively), where the i-th connection m i ∈M, and the number of connections is m, so the matching set corresponding to the sum of the minimized weights of the m connections is the matching set that maximizes the connection quality, that is:
[0205] To minimize: Among them, w k is the weight of the kth connection among the m connections.
[0206] Step S712: based on the connection quality maximization and weight data structure, initialize the top mark for each source Pin point vertex and each candidate Bump point vertex, wherein the top mark initialized for the source Pin point vertex is: the weight corresponding to the connection with the maximum connection quality of the source Pin point vertex.
[0207] After determining multiple source Pin point vertices and multiple candidate Bump point vertices, the embodiment of the present application can initialize the top mark for each source Pin point vertex and each candidate Bump point vertex respectively, so as to provide a basis for constructing an initial equal subgraph. In an optional implementation, the top mark of a source Pin point vertex can be initialized to the weight corresponding to the connection with the greatest connection quality among all connections corresponding to the source Pin point vertex. For example, for any source Pin point vertex, based on the weight group corresponding to the source Pin point vertex in the weight data structure, the embodiment of the present application can determine the weight corresponding to the connection with the greatest connection quality, and initialize it as the top mark of the source Pin point vertex. Furthermore, each source Pin point vertex is initialized with a top mark in the above manner, and then the top marks of multiple source Pin point vertices can be obtained to form an initial source Pin point vertex top mark set, and the source Pin point vertex top mark set is referred to as the source Pin point vertex top mark set.
[0208] In an optional implementation, based on the negative correlation between the weight of a connection and the quality of the connection, for any source Pin vertex, the connection with the smallest weight among all the connections corresponding to the source Pin vertex is the connection with the greatest quality. Thus, the embodiment of the present application can initialize the minimum weight among the connections of the source Pin vertex as the top label of the source Pin vertex. For example, the top label set of the source Pin vertex can be set to SK, then for the i-th source Pin vertex, the top label of the i-th source Pin vertex can be expressed as SK i , and SK i Initialized to the minimum weight of all connections associated with the i-th source Pin vertex.
[0209] In an optional implementation, the top mark of any candidate bump point vertex can be initialized to 0 or a default value, so that the top marks of multiple candidate bump point vertices are initialized to form an initial set of top marks of candidate bump point vertices, and the set of top marks of candidate bump point vertices is referred to as the candidate bump point vertex top mark set. For example, the candidate bump point vertex top mark set can be set to TK, then for the jth candidate bump point vertex, the top mark of the jth candidate bump point vertex can be expressed as TK j , and TK j Initialized to 0.
[0210] For further understanding, Figure 8B An example diagram of initializing the top mark is shown exemplarily, combined with Figure 4B and Figure 8BAs shown, assuming that the source Pin point set is directly used as the source Pin point vertex set, and the candidate Bump point set is directly used as the candidate Bump point vertex set, then the 8 source Pin point vertices s1 to s8 in the source Pin point vertex set can have top labels SK1 to SK8, respectively, and the 13 candidate Bump point vertices t1 to t13 in the candidate Bump point vertex set can have top labels TK1 to TK8, respectively. 13 ;by Figure 4B Taking the weight matrix shown in the figure and finding the target matching solution with the minimum sum of weights as an example, the top label of each source Pin point vertex is initialized to the minimum weight in the associated connection, such as the top label of the source Pin point vertex s1 is initialized to 3, the top label of the source Pin point vertex s2 is initialized to 5, and so on; at the same time, the top label of each candidate Bump point vertex is initialized to 0.
[0211] Step S713: Initialize the top mark based on each source Pin point vertex and each candidate Bump point vertex to determine the initial equal connection.
[0212] As an optional implementation, the equal subgraph contains, in addition to multiple source Pin point vertices and multiple candidate Bump point vertices, a set of equal connections that meet the equal conditions. For example, when the sum of the top marks of the source Pin point vertices and the top marks of the candidate Bump point vertices is equal to the weight of the connection between the source Pin point vertices and the candidate Bump point vertices, the connection between the source Pin point vertices and the candidate Bump point vertices meets the equal conditions and is an equal connection in the equal subgraph.
[0213] For example, let the weight of the connection between the i-th source Pin point vertex and the j-th candidate Bump point vertex be W i,j , then if the i-th source Pin point is the top mark SK of the vertex i The top mark TK of the j-th candidate Bump point vertex j The sum of the top marks is equal to W i,j , namely SK i +TK j =w i,j , then the connection between the i-th source Pin point vertex and the j-th candidate Bump point vertex can be confirmed as an equal connection, which meets the equality condition for inclusion in the equal subgraph.
[0214] As an example, when initializing the top labels, the top labels of all candidate bump point vertices are set to 0, and the top labels of each source pin point vertex are set to the minimum weight corresponding to the connection; therefore, the initial equal connection is the connection corresponding to the maximum connection quality of each source pin point vertex, such as the connection with the smallest weight. Figure 8B As shown, Figure 8B The connection between the source Pin point vertex and the candidate Bump point vertex is represented as the initial equal connection, which is the connection corresponding to the minimum weight of each source Pin point vertex. For example, the top label of the source Pin point vertex s1 is initialized to 3. Since the top labels of all candidate Bump point vertices are initialized to 0, the initial equal connection connecting the source Pin point vertex s1 is: the connection with a weight of 3 among all the connections of the source Pin point vertex s1; Figure 8B The other initial equal connections can be deduced in the same way and will not be expanded here.
[0215] That is to say, the embodiment of the present application is to screen out equal connections that meet the equal conditions, and the weight of the equal connection is equal to the sum of the top marks of the source Pin point vertex and the candidate Bump point vertex corresponding to the equal connection. Thus, the screened equal connections, multiple source Pin point vertices (i.e., the source Pin point vertex set), and multiple candidate Bump point vertices (i.e., the candidate Bump point vertex set) form an equal subgraph.
[0216] Step S714: forming an initial equal subgraph based on multiple source Pin point vertices, multiple candidate Bump point vertices, and initial equal connections.
[0217] It should be noted that Figure 7B Steps S711 to S714 shown can be regarded as Fig. 7A The optional implementation method of initializing the equal subgraph of step S710 is shown. The method of obtaining the initial equal subgraph in the embodiment of the present application is not limited to the execution method of steps S711 to S714.
[0218] Back to Fig. 7A As shown, in step S720, starting from the initial equal subgraph, the equal subgraph is continuously adjusted until each source Pin point vertex has a unique matching candidate Bump point vertex in the final equal subgraph, wherein the candidate Bump point corresponding to the candidate Bump point vertex that uniquely matches the source Pin point vertex is: the matching result of the source Pin point corresponding to the source Pin point vertex.
[0219] Step S730: Based on the matching result of the source Pin point, a target matching solution corresponding to maximizing the connection quality is formed.
[0220] In an optional implementation, the embodiment of the present application can solve the complete matching of source Pin point vertices by adjusting the equal subgraph, that is, by adjusting the equal subgraph, a unique matching candidate Bump point vertex is found for each source Pin point vertex in the final equal subgraph. At this time, a source Pin point vertex has only one matching candidate Bump point vertex, and a candidate Bump point vertex that has been matched by a source Pin point vertex is no longer matched with other source Pin point vertices. Then, the candidate Bump point corresponding to the candidate Bump point vertex that uniquely matches the source Pin point vertex is the matching result of the source Pin point corresponding to the source Pin point vertex, that is, the candidate Bump point matched by the source Pin point, thereby forming a target matching scheme corresponding to maximizing the connection quality.
[0221] It should be noted that since the initial equal connection is the connection corresponding to the maximum connection quality of the source Pin point corresponding to each source Pin point vertex (for example, the connection corresponding to the minimum weight of each source Pin point), the initial equal connection has been constrained to be the connection corresponding to the maximum connection quality. Then, starting from the initial equal subgraph, the equal subgraph is continuously adjusted and a specific minimum adjustment amount of the connection quality is introduced when adjusting the equal subgraph. This can ensure that the complete match found in the final equal subgraph is the target matching solution that maximizes the corresponding connection quality.
[0222] As an optional implementation, an embodiment of the present application can start from an initial equal subgraph, search for an augmenting path of unmatched source Pin point vertices in the equal subgraph, and increase the matching relationship of the source Pin point vertices by flipping the augmenting path, wherein an augmenting path starts from an unmatched source Pin point vertex, along the equal connection of the equal subgraph and through alternating unmatched connections and matching connections, to reach an unmatched candidate Bump point vertex; wherein a matching connection (also called a matching edge) is an equal connection connecting a matched source Pin point vertex and a candidate Bump point vertex, and correspondingly, an unmatched connection (also called an unmatched edge) also belongs to an equal connection in the equal subgraph, except that the source Pin point vertex and the candidate Bump point vertex connected by the unmatched connection have not yet matched, that is, they have not yet been paired.
[0223] It should be noted that in graph theory, an augmenting path refers to a path that starts from an unmatched point, passes through an alternating path (i.e., unmatched edges and matched edges appear alternately on the alternating path), and finally reaches another unmatched point. Since the starting point and end point of an augmenting path are both unmatched points, the augmenting path contains at least one unmatched edge. Therefore, by flipping the matching status of equal edges on the augmenting path (i.e., changing unmatched edges to matched edges, and matching edges to unmatched edges), the matching scale can be increased, thereby gradually approaching a complete match. An alternating path is a tool used in graph theory to find augmenting paths. An alternating path refers to a path that starts from an unmatched point and where unmatched edges and matched edges appear alternately, i.e., the equal edges on the alternating path appear alternately between matched and unmatched.
[0224] Furthermore, by performing a flipping operation on the augmenting path (changing the unmatched connection to a matched connection, and changing the matched connection to an unmatched connection), the number of matched connections can be increased by one, that is, the matched connection and the unmatched connection will be flipped due to the flipping operation of the augmenting path, and the number of matched connections will increase by one. Specifically, the equal connections in the equal subgraph should meet the equality condition, and the flipping operation of the augmenting path will change the matching state of the equal connections on the augmenting path, which means that the originally unmatched equal connection (i.e., unmatched connection) becomes a matched equal connection (i.e., matched connection), and the originally matched equal connection (i.e., matched connection) becomes an unmatched equal connection (i.e., unmatched connection), so that after the flipping operation, the number of matched connections increases by one.
[0225] Furthermore, if there are unmatched source Pin point vertices for which no augmenting path has been found in the equal subgraph, the embodiment of the present application can introduce a specific minimum adjustment amount of the connection quality, and adjust the top marks of the source Pin point vertices and the candidate Bump point vertices on the augmenting path, thereby introducing new equal connections that meet the equality conditions, that is, expanding the equal subgraph to obtain the equal subgraph with the top mark adjusted; then, continue to search for augmenting paths in the equal subgraph for the unmatched source Pin point vertices for which no augmenting path has been found, and increase matching connections by flipping the found augmenting paths.
[0226] Based on the flipping operation of the above-mentioned augmenting path and the top label adjustment of the equal subgraph based on the minimum adjustment amount of the connection quality, the embodiment of the present application can gradually increase the matching connections and gradually approach the complete matching, so as to find the candidate Bump point vertices that uniquely match each source Pin point vertex in the final equal subgraph, that is, find the unique matching connection of each source Pin point vertex.
[0227] In other words, as a tool for dynamically adjusting matching relationships, augmenting paths can be used to solve the matching problem of unmatched source Pin point vertices. By flipping the augmenting path, the matching scale of the equal subgraph can be gradually expanded, and finally all source Pin point vertices can be fully matched. When an unmatched source Pin point vertex cannot find an augmenting path in the equal subgraph, it means that the set of equal connections (i.e., the set of equal edges) of the equal subgraph is not enough to provide new opportunities. At this time, the equal subgraph is expanded by adjusting the top mark, so that the range of the equal subgraph is gradually expanded, which can provide more possibilities for the subsequent augmenting path search. Furthermore, the alternating effect of the augmenting path and the top mark adjustment of the equal subgraph can continuously optimize the matching relationship in the equal subgraph, and finally achieve the unique matching connection of all source Pin point vertices in the equal subgraph, forming a target matching solution with maximized connection quality.
[0228] For further understanding, the embodiment of the present application may define a current equal subgraph and explain the complete matching solution process from the perspective of the current equal subgraph. As an optional implementation, Fig. 9A The flowchart of the method for determining a complete match provided by the embodiment of the present application is shown as an example. Fig. 9A As shown, the method flow may include the following steps.
[0229] Step S910: Determine the current equal subgraph.
[0230] The current equal subgraph can be an initial equal subgraph, or an equal subgraph that has been adjusted at least once. That is, the current equal subgraph is at least composed of multiple source Pin point vertices, multiple candidate Bump point vertices, and equal connections that meet the equality condition under the current top mark value (initialized top mark value or adjusted top mark value).
[0231] Step S911: In the current equal subgraph, along the equal connections of the current equal subgraph, try to find an augmenting path for each unmatched source Pin point vertex.
[0232] Step S912: For the found augmenting path, the matching state of the equal connections on the augmenting path is flipped to increase the matching relationship between the source Pin point vertex and the candidate Bump point vertex.
[0233] The embodiment of the present application can attempt to find an augmenting path for the unmatched source Pin point vertices in the current equal subgraph. Since the current equal subgraph is the initial equal subgraph or the equal subgraph that has undergone at least one top mark adjustment, all source Pin point vertices in the current equal subgraph may not be matched (corresponding to the initial equal subgraph), or some source Pin point vertices in the current equal subgraph may not be matched and some source Pin point vertices may be matched (corresponding to the equal subgraph that has undergone at least one top mark adjustment). In either case, the embodiment of the present application is to find an augmenting path for the unmatched source Pin point vertices; when finding an augmenting path for any unmatched source Pin point vertex, the search can be performed along the equal connections of the current equal subgraph, and unmatched connections (i.e., unmatched equal connections) and matched connections (i.e., matched equal connections) appear alternately in the augmenting path until an unmatched candidate Bump point vertex is reached.
[0234] For the augmented path found, the embodiment of the present application can flip the matching status of the equal connections on the augmented path, add matching connections, and thus update the matching relationship between the source Pin point vertex and the candidate Bump point vertex (i.e., update the pairing), so that the number of matching relationships increases.
[0235] For ease of explanation, the source Pin point set is directly used as the source Pin point vertex set, the candidate Bump point set is directly used as the candidate Bump point vertex set, and the initial equal subgraph is used as an example for explanation; for example, Fig. 9B An example diagram showing the search for augmentation paths and flip operations is shown, combined with Figure 8B and Fig. 9B As shown, in the initial equal subgraph, the equal connections exist in the following connection situations: s1 connects t4 and t6, s2 connects t4, s3 connects t6, s4 connects t2, s5 connects t10, s6 connects t13, s7 connects t10, and s8 connects t12;
[0236] The embodiment of the present application can try to find an augmented path for each source Pin point vertex s1 and s8; for example, starting from s1, along the equal connection in the equal subgraph, find the candidate Bump point vertex that has not been matched, then s1 can find the candidate Bump point vertex t4 that has not been matched through the equal connection (unmatched connection) of s1 and t4, thereby flipping the matching state of the equal connection of s1 and t4, then the equal connection of s1 and t4 changes from the initial unmatched connection to the matched connection, and then records the matching relationship (s1, t4) between s1 and t4; for the convenience of illustration, the figure uses thin solid lines to represent unmatched connections, and thick solid lines to represent matched connections;
[0237] Continue to find augmenting paths for s2, for example, Fig. 9CAnother example diagram of finding augmented paths and flipping operations is shown exemplarily, combined with Fig. 9C As shown, starting from s2, along the equal connection in the equal subgraph, s2 can find the candidate bump point vertex t4 through the equal connection (unmatched connection) of s2 and t4. Since the candidate bump point vertex t4 has been matched with s1, the path needs to be extended; thus, the path finds s1 from t4 through the matching connection of t4 and s1, and s1 can find the unmatched candidate bump point vertex t6 along the equal connection (unmatched connection) of s1 and t6 in the equal subgraph. At this time, the augmenting path of s2 reaches an unmatched candidate bump point vertex, and the augmenting path of s2 ends; the augmenting path of s2 has the following equal connections:
[0238] The equal connection of s2 and t4 (unmatched connection), the equal connection of t4 and s1 (matched connection), and the equal connection of s1 and t6 (unmatched connection);
[0239] Furthermore, by flipping the matching status of the equal connections on the augmenting path of s2, the matching connections can be updated, and the number of matching connections is increased by 1, thereby increasing the matching relationship between the source Pin point vertex and the candidate Bump point vertex; for example, after the augmenting path of s2 is flipped, the equal connection between s2 and t4 becomes a matching connection, the equal connection between t4 and s1 becomes an unmatched connection, and the equal connection between s1 and t6 becomes a matching connection, thereby forming new matching relationships (s2, t4) and (s1, t6). Compared with the matching relationship when searching for the augmenting path of s1, the matching relationship is updated and the number of matching relationships is increased by 1, and the number of corresponding matching connections is increased by 1.
[0240] Each source Pin point vertex can refer to the above description to find the augmenting path, and update and increase the matching relationship by flipping the matching state of the equal connection on the augmenting path, which will not be expanded here.
[0241] Step S913, determine whether there are unmatched source Pin points where no augmented path can be found. If not, execute step S914; if so, execute step S915.
[0242] In the process of trying to find an augmenting path for the unmatched source Pin point vertices in the current equal subgraph, the embodiment of the present application can flip the found augmenting path to increase the matching relationship between the source Pin point vertices and the candidate Bump point vertices; if all the source Pin point vertices have been matched and are uniquely matched, there are no remaining unmatched source Pin point vertices, indicating that a complete match has been achieved. The embodiment of the present application can terminate the process and obtain the candidate Bump point vertices that uniquely match each source Pin point vertex.
[0243] If there are still unmatched source Pin point vertices in the current equality subgraph, and no augmenting path can be found for the unmatched source Pin point vertices in the current equality subgraph, it means that the matching relationship in the current equality subgraph can no longer be expanded. At this time, it is necessary to introduce new equal connections by adjusting the top mark, that is, to expand the equality subgraph, so as to continue to try to find augmenting paths for the unmatched source Pin point vertices. Fig. 9C , when looking for an augmenting path for the source Pin point vertex s3, starting from s3, along the equal connection in the equal subgraph, s3 can find the candidate Bump point vertex t6 through the equal connection (unmatched connection) of s3 and t6. Since t6 has been matched with s1, the path needs to be extended further, and s1 is found through the equal connection (matched connection) of t6 and s1, and then t4 is found through the equal connection (unmatched connection) from s1 to t4. Since t4 has been matched with s2, the path is continued to be extended, and s2 is found through the equal connection (matched connection) of s2 and t4. However, at this time, there are no other equal connections in the equal subgraph that can connect s2 to other candidate Bump point vertices except t4, that is, it is impossible to find an augmenting path for s3 along the equal connection of the equal subgraph, so it is necessary to introduce new equal connections by adjusting the top mark in order to continue trying to find an augmenting path for s3.
[0244] Step S914: Determine the candidate Bump point vertices that uniquely match each source Pin point vertex.
[0245] There is no unmatched source Pin point vertex in the current equal subgraph and no augmenting path can be found, that is, all source Pin point vertices have found augmenting paths and have been matched, then the candidate Bump point vertex that uniquely matches each source Pin point vertex can be obtained.
[0246] Step S915: Based on the minimum adjustment amount of the connection quality, adjust the top marks of the source Pin point vertices and the candidate Bump point vertices on the augmented path to introduce new equal connections and obtain a new equal subgraph; use the new equal subgraph as the new current equal subgraph, and return to step S910.
[0247] If there are unmatched source Pin point vertices in the current equal subgraph and no augmenting path can be found, it is necessary to introduce new equal connections by adjusting the top mark to expand the equal subgraph, so that the expanded equal subgraph allows the addition of new matching relationships, and then continue to find augmenting paths for the unmatched source Pin point vertices and perform flipping operations until all source Pin point vertices have found augmenting paths in the equal subgraph and have been matched. At this time, all source Pin point vertices have found unique matching connections, that is, complete matching is achieved.
[0248] As an optional implementation, an embodiment of the present application can determine each connection that is not on the augmenting path. For each connection that is not on the augmenting path, the sum of the top marks of the source Pin point vertex and the candidate Bump point vertex corresponding to the connection is subtracted from the weight of the connection, thereby obtaining the missing amount of each connection that does not meet the equality condition; then, the minimum value of the missing amount of each connection is determined as the minimum adjustment amount of the connection quality, and the top marks of the source Pin point vertex and the candidate Bump point vertex on the augmenting path are adjusted by the minimum adjustment amount of the connection quality, thereby introducing new equal connections that meet the equality conditions.
[0249] For example, let the i-th connection that is not on the augmenting path connect the i-th source Pin point vertex and the j-th candidate Bump point vertex, where the top label of the i-th source Pin point vertex is SK i , the top label of the j-th candidate Bump point vertex is TK j , the weight of the i-th connection that is not on the augmenting path is w i,j , then the missing amount of the i-th connection that does not satisfy the equality condition can be expressed as: SK i +TK j -w i,j ; Thus, we take the minimum value of the missing amount of all connections that are not on the augmenting path, that is, min(SK i +TK j -w i,j ), the minimum adjustment amount of the connection quality can be obtained, expressed as d. It can be seen that the missing amount represents the gap between the connection not on the augmenting path and the equality condition required by the equal subgraph. When the weight w of the i-th connection not on the augmenting path is i,j The smaller it is, the easier it is to meet the gap. Therefore, by selecting the smallest missing amount as the minimum adjustment amount d of the connection quality, low-weight connections can be preferentially introduced into the equal subgraph to ensure the maximization of the connection quality when the weight is negatively correlated with the connection quality.
[0250] As an optional implementation, based on the minimum adjustment amount of the determined connection quality, the embodiment of the present application can add the minimum adjustment amount to the top marks of all source Pin point vertices on the augmented path, and subtract the minimum adjustment amount from the top marks of all candidate Bump point vertices on the augmented path, thereby adjusting the top marks of the equal subgraphs so that the equal subgraphs are included in the new equal connections that meet the equality conditions. It can be seen that the embodiment of the present application can provide new augmented path search opportunities for the remaining unmatched source Pin point vertices without destroying the existing matching relationship.
[0251] For example, Fig.9D An exemplary diagram showing adjustment of equal subgraphs, combined with Fig. 9C and Fig.9D As shown, when searching for an augmenting path for s3, the augmenting path is s3→t6→s1→t4→s2 and the path stops at s2 because s2 has no other candidate bump point vertices that can be connected. At this time, based on the minimum adjustment amount of the connection quality, the embodiment of the present application can adjust the top marks of the source Pin point vertices s1, s2 and s3, and the candidate bump point vertices t4 and t6 that are already on the augmenting path; assuming that the minimum adjustment amount of the connection quality is 2, the top marks of the source Pin point vertices s1, s2 and s3 are respectively added with 2, and the top marks of the candidate bump point vertices t4 and t6 are respectively subtracted with 2, so that based on the adjustment of the top marks, new equal connections that meet the equality conditions can be introduced into the equal subgraph (for example Fig.9D The equal connection of s2 and t8 shown in the figure) is performed to expand the equal subgraph and obtain a new equal subgraph.
[0252] In the embodiment of the present application, the new equal subgraph can be used as the new current equal subgraph, thereby returning to step S910. Fig. 9A The processing logic of the current equal subgraph shown in FIG. 1 continues to try to find an augmenting path for each unmatched source Pin vertex in the new current equal subgraph. For example, taking the example of continuing to find an augmenting path for s3, Fig.9E Another example diagram of finding an augmentation path and a flipping operation is shown as an example. Fig.9E As shown, in the new current equal subgraph, starting from s3, through the equal connection of s3 and t6 (unmatched connection), the equal connection of t6 and s1 (matched connection), the equal connection of s1 and t4 (unmatched connection), the equal connection of t4 and s2 (matched connection), and the equal connection of s2 and t8 (newly introduced unmatched connection), an unmatched candidate bump point vertex t8 is found, thereby completing the augmenting path search of s3; then, the matching status of the equal connection on the augmenting path of s3 is flipped, and the matching relationship can be updated to (s3, t6), (s1, t4), and (s2, t8), thereby adding a pair of matching relationships.
[0253] That is to say, by continuously adjusting the equal subgraphs to expand the equal connections, it provides opportunities for the remaining unmatched source Pin point vertices to find augmented paths, and increases the matching relationship by flipping the augmented paths, and then continuously repeats the above process until all source Pin point vertices find augmented paths, so that all source Pin point vertices are matched and uniquely matched, and a complete match is achieved. For example, Fig.9F An example diagram of a complete match is shown as follows: Fig.9F As shown in the figure, after multiple top-mark adjustments of the same subgraph, the top marks of the vertices of each source Pin point are compared with Fig.9D The top mark shown may be enlarged (corresponding to Fig.9D The equal subgraphs shown are not enough to find a complete match, and the top mark is adjusted later), or they may be equal (corresponding to Fig.9D The equal subgraph shown in the figure has been able to find a complete match). Similarly, the top labels of the vertices of each candidate Bump point are compared to Fig.9D The top marks shown may be smaller or equal; Fig.9F Taking the complete match shown as an example, the complete match can be: s1 matches t4, s2 matches t5, s3 matches t6, s4 matches t7, s5 matches t9, s6 matches t10, s7 matches t11, and s8 matches t12.
[0254] Thus, the candidate Bump points corresponding to the candidate Bump points that are uniquely matched by each source Pin point vertex are: The candidate Bump points that are matched by each source Pin point vertex can obtain the corresponding target matching scheme that maximizes the connection quality of the convex point layout. In other words, the complete matching found based on the equal subgraph is the maximum weight matching of the bipartite graph. At this time, each source Pin point is matched to the optimal target Bump point, which is also the target matching scheme that maximizes the connection quality (such as the target matching scheme that minimizes the sum of weights), and the layout position determination of the target Bump corresponding to all source Pins is completed.
[0255] The solution provided by the embodiment of the present application converts the Bump layout problem into a maximum weight matching problem of a bipartite graph, considers the connection attributes such as the connection distance between the source Pin point and the candidate Bump point, and introduces the weight of the connection to represent the connection quality reflected by the connection attribute, thereby generating a target matching solution that maximizes the connection quality, which can ensure that the layout position of the target Bump corresponding to each source Pin with maximized connection quality is determined, thereby effectively reducing signal interference and power consumption loss, and significantly improving the design quality and design performance. The embodiment of the present application can realize the design of the bump layout through an automated algorithm, thereby replacing the bump layout method that relies on manual experience and trial and error, which can greatly improve the design efficiency, reduce human errors, and shorten the design cycle. Further, the embodiment of the present application supports a variety of weight configurations and personalized optimization schemes, which can adapt to different design requirements, such as pre-fixing the matching relationship between some Pins and Bumps, while automatically optimizing the remaining layout tasks, and flexibly responding to complex design scenarios. Further, the optimized bump layout involves a scheme that reduces redundant design and unnecessary connections, thereby reducing material and manufacturing costs, while improving the reliability and stability of integrated circuits, and reducing later maintenance and repair costs.
[0256] As an optional implementation, the embodiment of the present application also provides a bump layout design device, which can be regarded as a functional module required for a computer device to implement the bump layout design method provided in the embodiment of the present application. The following description can be referenced to the above description.
[0257] As an optional implementation, Fig.10 An optional block diagram of a bump layout design device provided in an embodiment of the present application is shown exemplarily, referring to Fig.10 , the bump layout design device may include:
[0258] The data preparation module 10 is used to obtain multiple source Pin points and multiple candidate Bump points;
[0259] A weight data structure determination module 11 is used to determine a weight data structure based on at least the connection attributes between the source Pin points and the candidate Bump points, wherein the weight data structure includes at least the weights corresponding to the respective connections between the multiple source Pin points and the multiple candidate Bump points, and the weights corresponding to the connections represent the connection quality reflected by the connection attributes of the connections;
[0260] The matching optimization solution module 12 is used to determine the weight result of the connection and the target matching solution corresponding to the maximum connection quality based on the weight data structure, and the target matching solution includes the candidate Bump points matched by each source Pin point;
[0261] The layout result confirmation module 13 is used to determine the candidate Bump points matched by each source Pin point in the target matching solution as the target Bump points corresponding to each source Pin point, and obtain the layout position of the target Bump.
[0262] As an optional implementation, the weight data structure determination module 11 is used to determine the weight data structure based on at least the connection attribute between the source Pin point and the candidate Bump point, including:
[0263] Based on the connection attributes of each connection between each source Pin point and each candidate Bump point, a weight corresponding to each connection is assigned to construct a weight data structure;
[0264] And, based on the connection constraint condition, the weight data structure is updated, and the connection constraint condition is used to constrain the connection relationship between the source Pin point and the candidate Bump point.
[0265] As an optional implementation, the weight data structure determination module 11 is used to assign weights corresponding to each connection based on the connection attributes of each connection between each source Pin point and each candidate Bump point to construct a weight data structure including:
[0266] For each source Pin point in the source Pin point set, based on the connection attribute of each connection between the source Pin point and each candidate Bump point, a weight corresponding to each connection between the source Pin point and each Bump point is assigned to form a weight group for each source Pin point;
[0267] And, for each candidate bump point in the candidate bump point set, based on the connection attribute of each connection between the candidate bump point and each source pin point, a weight corresponding to each connection between the candidate bump point and each source pin point is assigned to form a weight group for each candidate bump point;
[0268] Based on the weight group of each source Pin point and the weight group of each candidate Bump point, a weight data structure is constructed.
[0269] In an optional implementation, the connection constraint condition includes: a connection quantity constraint condition; the connection quantity constraint condition is used to define the number of connections between the source Pin point and the candidate Bump point.
[0270] In an optional implementation, the weight data structure determination module 11 is used to update the weight data structure based on the connection constraint condition, including:
[0271] Determine the connection requirements for each source pin point and the connection limits for each candidate bump point;
[0272] For source Pin points that require connection to multiple Bump points, based on the number of Bump points that the source Pin point requires connection to, copy the weight group corresponding to the source Pin point in the weight data structure so that the number of weight groups corresponding to the source Pin point corresponds to the number of Bump points that require connection;
[0273] For candidate bump points whose connection restrictions allow connection to multiple pin points, based on the number of pin points allowed to be connected to the candidate bump points, the weight groups corresponding to the candidate bump points are copied in the weight data structure so that the number of weight groups corresponding to the candidate bump points corresponds to the number of pin points allowed to be connected.
[0274] In the optional implementation set, the number of candidate Bump points matched by each source Pin point in the target matching solution corresponds to the connection requirement of each source Pin point.
[0275] In an optional implementation, the connection constraint condition includes: a connection priority constraint condition; the connection priority constraint condition is used to define a priority connection and a prohibited connection between a source Pin point and a candidate Bump point.
[0276] In an optional implementation, the weight data structure determination module 11 is used to update the weight data structure based on the connection constraint condition, including:
[0277] Based on the connection priority constraint, determine the priority connection and prohibited connection between the source Pin point and the candidate Bump point;
[0278] In the weight data structure, the weight corresponding to the priority connection is combined with the preset priority connection coefficient to update the weight corresponding to the priority connection so that the possibility of the priority connection being selected increases;
[0279] And, the weight corresponding to the forbidden connection is combined with a preset forbidden connection coefficient to update the weight corresponding to the forbidden connection, so that the possibility of the forbidden connection being selected is reduced.
[0280] In an optional implementation, the weight of the connection is negatively correlated with the connection quality; the preset priority connection coefficient is smaller than the preset prohibited connection coefficient, and the preset priority connection coefficient approaches 0, and the preset prohibited connection coefficient causes the weight corresponding to the prohibited connection to increase exponentially.
[0281] In an optional implementation, the weight data structure is a weight matrix, the rows of the weight matrix correspond to source Pin points, the columns of the weight matrix correspond to candidate Bump points, the elements contained in a row of the weight matrix are a weight group corresponding to a source Pin point, and the elements contained in a column of the weight matrix are a weight group corresponding to a candidate Bump point.
[0282] In an optional implementation, the weight of the connection is negatively correlated with the connection quality; and the target matching scheme is a matching scheme with the smallest sum of weights.
[0283] In an optional implementation, the connection attribute of the connection includes at least one of the following:
[0284] The connection distance of the connection, where the connection distance is positively correlated with the connection weight and negatively correlated with the connection quality;
[0285] The signal integrity of the connection, where the signal integrity of the connection is negatively correlated with the weight of the connection, and the signal integrity of the connection is positively correlated with the quality of the connection;
[0286] The power consumption of the connection, wherein the power consumption of the connection is positively correlated with the weight of the connection, and the power consumption of the connection is negatively correlated with the quality of the connection.
[0287] In an optional implementation, the matching optimization solution module 12 is used to determine the weight result of the connection and the target matching solution corresponding to the maximum connection quality based on the weight data structure, including:
[0288] Based on the weight data structure, the equal subgraph is initialized to obtain the initial equal subgraph; wherein the initial equal subgraph includes the source Pin point vertices corresponding to each source Pin point in the equal subgraph, the candidate Bump point vertices corresponding to each candidate Bump point in the equal subgraph, and the initial equal connection, and the initial equal connection is the connection corresponding to the maximum connection quality of the source Pin point corresponding to each source Pin point vertex;
[0289] Starting from the initial equal subgraph, the equal subgraph is continuously adjusted until each source Pin point vertex has a unique matching candidate Bump point vertex in the final equal subgraph, wherein the candidate Bump point corresponding to the candidate Bump point vertex that uniquely matches the source Pin point vertex is: the matching result of the source Pin point corresponding to the source Pin point vertex;
[0290] Based on the matching results of the source Pin points, a corresponding target matching solution is formed to maximize the connection quality.
[0291] In an optional implementation, the matching optimization solving module 12 is used to initialize the equal subgraph based on the weight data structure, and the initial equal subgraph obtained includes:
[0292] Based on the weight data structure, multiple source Pin point vertices and multiple candidate Bump point vertices are determined, wherein the number of source Pin point vertices corresponding to a source Pin point corresponds to the connection requirement of the source Pin point, and the number of candidate Bump point vertices corresponding to a candidate Bump point corresponds to the number of Pin points allowed to be connected to the candidate Bump point;
[0293] Based on the connection quality maximization and weight data structure, initialize the top label for each source Pin point vertex and each candidate Bump point vertex, where the top label initialized for the source Pin point vertex is: the weight corresponding to the connection with the maximum connection quality of the source Pin point vertex;
[0294] Based on the initialized top marks of each source Pin point vertex and each candidate Bump point vertex, determine the initial equal connection, where the weight of the equal connection is equal to the sum of the top marks of the source Pin point vertex and the candidate Bump point vertex corresponding to the equal connection;
[0295] Based on multiple source Pin point vertices, multiple candidate Bump point vertices, and initial equal connections, an initial equal subgraph is formed.
[0296] In an optional implementation, the matching optimization solving module 12 is used to determine multiple source Pin point vertices and multiple candidate Bump point vertices based on the weight data structure, including:
[0297] For a source Pin point that needs to connect multiple Bump points, multiple source Pin point vertices corresponding to the source Pin point are determined based on multiple weight groups of the source Pin point in the weight data structure;
[0298] And, for a candidate Bump point that allows connecting multiple Pin points, multiple candidate Bump point vertices corresponding to the candidate Bump point are determined based on multiple weight groups of the candidate Bump point in the weight data structure.
[0299] In an optional implementation, the weight of the connection is negatively correlated with the connection quality; the top mark of the source Pin point vertex initialized is specifically: the minimum weight in the connection of the source Pin point corresponding to the source Pin point vertex; the top mark of the candidate Bump point vertex initialized is 0.
[0300] In an optional implementation, the matching optimization solving module 12 is used to continuously adjust the equal subgraph starting from the initial equal subgraph until each source Pin point vertex has a unique matching candidate Bump point vertex in the final equal subgraph, including:
[0301] Starting from the initial equal subgraph, find the augmenting path of the unmatched source Pin point vertex in the equal subgraph, and increase the matching relationship of the source Pin point vertex by flipping the augmenting path, wherein an augmenting path starts from an unmatched source Pin point vertex, along the equal connection of the equal subgraph and through alternating unmatched connections and matched connections, to reach an unmatched candidate Bump point vertex, the matched connection is a matched equal connection, and the unmatched connection is an unmatched equal connection;
[0302] Furthermore, if there are source Pin point vertices in the equal subgraph for which no augmenting path has been found, the source Pin point vertices and candidate Bump point vertices on the augmenting path are top-marked adjusted based on the minimum adjustment amount of the connection quality to expand the equal subgraph until all source Pin point vertices have found augmenting paths in the equal subgraph and have been matched.
[0303] In an optional implementation, the matching optimization solving module 12 is used to start from the initial equal subgraph, find the augmenting path of the unmatched source Pin point vertex in the equal subgraph, and increase the matching relationship of the source Pin point vertex by flipping the augmenting path, including:
[0304] Determine a current equal subgraph, where the current equal subgraph is an initial equal subgraph, or an equal subgraph that has undergone at least one top mark adjustment;
[0305] In the current equal subgraph, along the equal connection of the current equal subgraph, try to find an augmenting path for each unmatched source Pin vertex;
[0306] For the augmented path found, the matching state of the equal connection on the augmented path is flipped to increase the matching relationship between the source Pin point vertex and the candidate Bump point vertex.
[0307] In an optional implementation, the matching optimization solving module 12 is used to adjust the top marks of the source Pin point vertices and the candidate Bump point vertices on the augmenting path based on the minimum adjustment amount of the connection quality if there are source Pin point vertices in the equal subgraph that have not found the augmenting path, so as to expand the equal subgraph until all source Pin point vertices find the augmenting path in the equal subgraph and have been matched, including:
[0308] Determine whether there are unmatched source Pin points where no augmenting path can be found;
[0309] If not, determine the candidate Bump point vertices that uniquely match each source Pin point vertex;
[0310] If so, based on the minimum adjustment amount of the connection quality, adjust the top marks of the source Pin point vertices and the candidate Bump point vertices on the augmenting path to introduce new equal connections and obtain a new equal subgraph. The new equal subgraph is used as the new current equal subgraph to continue searching for augmenting paths for the source Pin point vertices that have not been matched and perform flipping operations until all source Pin point vertices have found augmenting paths in the equal subgraph and have been matched.
[0311] In an optional implementation, the matching optimization solving module 12 is used to adjust the top marks of the source Pin point vertex and the candidate Bump point vertex on the augmented path based on the minimum adjustment amount of the connection quality, including:
[0312] For each connection that is not on the augmenting path, the sum of the top marks of the source Pin point vertex and the candidate Bump point vertex corresponding to the connection is subtracted from the weight of the connection to obtain the missing amount of each connection that does not meet the equality condition;
[0313] The minimum value of the missing amount of each connection is determined as the minimum adjustment amount of the connection quality;
[0314] Based on the minimum adjustment amount, the minimum adjustment amount is added to the top mark of the vertex of the source Pin point on the augmenting path, and the minimum adjustment amount is subtracted from the top mark of the vertex of the candidate Bump point on the augmenting path.
[0315] In an optional implementation, the data preparation module 10, for obtaining a plurality of candidate bump points, includes:
[0316] If the candidate bump locations are not determined, based on the bump design rules, the bump is fully laid out within the bump layout range to maximize the number of candidate bump locations.
[0317] In a further optional implementation, the embodiment of the present application further provides a computer device, which can execute the bump layout design method provided in the embodiment of the present application by running a software algorithm. For example, the computer device can be provided with the bump layout design device described above to execute the bump layout design method provided in the embodiment of the present application. In an optional implementation, the computer device may include at least one memory and at least one processor, the memory stores computer-executable instructions, and the processor calls the computer-executable instructions stored in the memory to execute the bump layout design method provided in the embodiment of the present application.
[0318] In a further optional implementation, the embodiment of the present application also provides a storage medium, which can store computer execution instructions. When the computer execution instructions are executed (for example, when the computer execution instructions are executed by a processor), the design method of the bump layout provided in the embodiment of the present application is implemented.
[0319] In a further optional implementation, the embodiment of the present application also provides a computer program, including computer execution instructions, which, when executed (for example, when the computer execution instructions are executed by a processor), implement the design method of the bump layout provided in the embodiment of the present application.
[0320] The above describes multiple implementation schemes provided by the embodiments of the present application. The various optional methods introduced in each implementation scheme can be combined and cross-referenced with each other without conflict, thereby extending a variety of possible implementation schemes, which can all be considered as implementation schemes disclosed and open in the embodiments of the present application.
[0321] Although the embodiments of the present application are disclosed above, the present application is not limited thereto. Any person skilled in the art may make various changes and modifications without departing from the spirit and scope of the present application. Therefore, the scope of protection of the present application shall be subject to the scope defined by the claims.
Claims
1. A method for designing a bump layout, characterized in that: include: Get multiple source Pin points and multiple candidate Bump points; Determine a weight data structure based at least on the connection attributes between the source Pin points and the candidate Bump points, wherein the weight data structure includes at least the weights corresponding to the respective connections between the plurality of source Pin points and the plurality of candidate Bump points, and the weights corresponding to the connections represent the connection quality reflected by the connection attributes of the connections; Based on the weight data structure, determine the weight result of the connection and the target matching scheme corresponding to the maximum connection quality, wherein the target matching scheme includes candidate Bump points matched by each source Pin point; The candidate Bump points matched by each source Pin point in the target matching solution are determined as the target Bump points corresponding to each source Pin point, and the layout position of the target Bump is obtained.
2. The method according to claim 1, characterized in that The determining of the weight data structure based at least on the connection attribute between the source Pin point and the candidate Bump point includes: Based on the connection attributes of each connection between each source Pin point and each candidate Bump point, a weight corresponding to each connection is assigned to construct a weight data structure; And, based on the connection constraint condition, the weight data structure is updated, and the connection constraint condition is used to constrain the connection relationship between the source Pin point and the candidate Bump point.
3. The method according to claim 2, characterized in that The step of assigning a value to a weight corresponding to each connection based on the connection attribute of each connection between each source Pin point and each candidate Bump point to construct a weight data structure includes: For each source Pin point in the source Pin point set, based on the connection attribute of each connection between the source Pin point and each candidate Bump point, a weight corresponding to each connection between the source Pin point and each Bump point is assigned to form a weight group for each source Pin point; And, for each candidate bump point in the candidate bump point set, based on the connection attribute of each connection between the candidate bump point and each source pin point, a weight corresponding to each connection between the candidate bump point and each source pin point is assigned to form a weight group for each candidate bump point; Based on the weight group of each source Pin point and the weight group of each candidate Bump point, a weight data structure is constructed.
4. The method according to claim 3, characterized in that The connection constraint condition includes: a connection quantity constraint condition; the connection quantity constraint condition is used to define the connection quantity between the source Pin point and the candidate Bump point.
5. The method according to claim 4, characterized in that The updating of the weight data structure based on the connection constraint condition includes: Determine the connection requirements for each source pin point and the connection limits for each candidate bump point; For source Pin points that require connection to multiple Bump points, based on the number of Bump points that the source Pin point requires connection to, copy the weight group corresponding to the source Pin point in the weight data structure so that the number of weight groups corresponding to the source Pin point corresponds to the number of Bump points that require connection; For candidate bump points whose connection restrictions allow connection to multiple pin points, based on the number of pin points allowed to be connected to the candidate bump points, the weight groups corresponding to the candidate bump points are copied in the weight data structure so that the number of weight groups corresponding to the candidate bump points corresponds to the number of pin points allowed to be connected.
6. The method according to claim 5, characterized in that The number of candidate Bump points matched by each source Pin point in the target matching solution corresponds to the connection requirements of each source Pin point.
7. The method according to claim 3, characterized in that The connection constraint condition includes: a connection priority constraint condition; the connection priority constraint condition is used to define the priority connection and the prohibited connection between the source Pin point and the candidate Bump point.
8. The method according to claim 7, characterized in that The updating of the weight data structure based on the connection constraint condition includes: Based on the connection priority constraint, determine the priority connection and prohibited connection between the source Pin point and the candidate Bump point; In the weight data structure, the weight corresponding to the priority connection is combined with the preset priority connection coefficient to update the weight corresponding to the priority connection so that the possibility of the priority connection being selected increases; And, the weight corresponding to the forbidden connection is combined with a preset forbidden connection coefficient to update the weight corresponding to the forbidden connection, so that the possibility of the forbidden connection being selected is reduced.
9. The method according to claim 8, characterized in that The weight of the connection is negatively correlated with the connection quality; the preset priority connection coefficient is smaller than the preset forbidden connection coefficient, and the preset priority connection coefficient approaches 0, and the preset forbidden connection coefficient is selected from a preset exponential interval.
10. The method according to any one of claims 3 to 9, characterized in that: The weight data structure is a weight matrix, the rows of the weight matrix correspond to source Pin points, the columns of the weight matrix correspond to candidate Bump points, the elements contained in a row of the weight matrix are a weight group corresponding to a source Pin point, and the elements contained in a column of the weight matrix are a weight group corresponding to a candidate Bump point.
11. The method according to any one of claims 1 to 9, characterized in that: The weight of the connection is negatively correlated with the connection quality; the target matching scheme is the matching scheme with the smallest sum of weights.
12. The method according to claim 11, characterized in that The connection attribute of the connection includes at least one of the following: The connection distance of the connection, where the connection distance is positively correlated with the connection weight and negatively correlated with the connection quality; The signal integrity of the connection, where the signal integrity of the connection is negatively correlated with the weight of the connection, and the signal integrity of the connection is positively correlated with the quality of the connection; The power consumption of the connection, wherein the power consumption of the connection is positively correlated with the weight of the connection, and the power consumption of the connection is negatively correlated with the quality of the connection.
13. The method according to claim 1, characterized in that The method of determining the connection weight result and the target matching scheme corresponding to the connection quality maximization based on the weight data structure includes: Based on the weight data structure, the equal subgraph is initialized to obtain the initial equal subgraph; wherein the initial equal subgraph includes the source Pin point vertices corresponding to each source Pin point in the equal subgraph, the candidate Bump point vertices corresponding to each candidate Bump point in the equal subgraph, and the initial equal connection, and the initial equal connection is the connection corresponding to the maximum connection quality of the source Pin point corresponding to each source Pin point vertex; Starting from the initial equal subgraph, the equal subgraph is continuously adjusted until each source Pin point vertex has a unique matching candidate Bump point vertex in the final equal subgraph, wherein the candidate Bump point corresponding to the candidate Bump point vertex that uniquely matches the source Pin point vertex is: the matching result of the source Pin point corresponding to the source Pin point vertex; Based on the matching results of the source Pin points, a corresponding target matching solution is formed to maximize the connection quality.
14. The method according to claim 13, characterized in that Initializing the equal subgraph based on the weight data structure to obtain the initial equal subgraph includes: Based on the weight data structure, multiple source Pin point vertices and multiple candidate Bump point vertices are determined, wherein the number of source Pin point vertices corresponding to a source Pin point corresponds to the connection requirement of the source Pin point, and the number of candidate Bump point vertices corresponding to a candidate Bump point corresponds to the number of Pin points allowed to be connected to the candidate Bump point; Based on the connection quality maximization and weight data structure, initialize the top label for each source Pin point vertex and each candidate Bump point vertex, where the top label initialized for the source Pin point vertex is: the weight corresponding to the connection with the maximum connection quality of the source Pin point vertex; Based on the initialized top marks of each source Pin point vertex and each candidate Bump point vertex, determine the initial equal connection, where the weight of the equal connection is equal to the sum of the top marks of the source Pin point vertex and the candidate Bump point vertex corresponding to the equal connection; Based on multiple source Pin point vertices, multiple candidate Bump point vertices, and initial equal connections, an initial equal subgraph is formed.
15. The method according to claim 14, characterized in that The step of determining a plurality of source Pin point vertices and a plurality of candidate Bump point vertices based on the weight data structure includes: For a source Pin point that needs to connect multiple Bump points, multiple source Pin point vertices corresponding to the source Pin point are determined based on multiple weight groups of the source Pin point in the weight data structure; And, for a candidate Bump point that allows connecting multiple Pin points, multiple candidate Bump point vertices corresponding to the candidate Bump point are determined based on multiple weight groups of the candidate Bump point in the weight data structure.
16. The method according to claim 14, characterized in that The weight of the connection is negatively correlated with the connection quality; the top mark of the source Pin point vertex initialized is specifically: the minimum weight in the connection of the source Pin point corresponding to the source Pin point vertex; the top mark of the candidate Bump point vertex initialized is 0.
17. The method according to any one of claims 13 to 16, characterized in that: Starting from the initial equal subgraph, the equal subgraph is continuously adjusted until each source Pin point vertex has a unique matching candidate Bump point vertex in the final equal subgraph, including: Starting from the initial equal subgraph, find the augmenting path of the unmatched source Pin point vertex in the equal subgraph, and increase the matching relationship of the source Pin point vertex by flipping the augmenting path, wherein an augmenting path starts from an unmatched source Pin point vertex, along the equal connection of the equal subgraph and through alternating unmatched connections and matched connections, to reach an unmatched candidate Bump point vertex, the matched connection is a matched equal connection, and the unmatched connection is an unmatched equal connection; Furthermore, if there are source Pin point vertices in the equal subgraph for which no augmenting path has been found, the source Pin point vertices and candidate Bump point vertices on the augmenting path are top-marked adjusted based on the minimum adjustment amount of the connection quality to expand the equal subgraph until all source Pin point vertices have found augmenting paths in the equal subgraph and have been matched.
18. The method according to claim 17, characterized in that Starting from the initial equal subgraph, searching for the augmenting path of the unmatched source Pin point vertices in the equal subgraph, and increasing the matching relationship of the source Pin point vertices by flipping the augmenting path includes: Determine a current equal subgraph, where the current equal subgraph is an initial equal subgraph, or an equal subgraph that has undergone at least one top mark adjustment; In the current equal subgraph, along the equal connection of the current equal subgraph, try to find an augmenting path for each unmatched source Pin vertex; For the augmented path found, the matching state of the equal connection on the augmented path is flipped to increase the matching relationship between the source Pin point vertex and the candidate Bump point vertex.
19. The method according to claim 18, characterized in that If there are source Pin point vertices in the equal subgraph that have not found an augmenting path, the source Pin point vertices and the candidate Bump point vertices on the augmenting path are adjusted based on the minimum adjustment amount of the connection quality to expand the equal subgraph until all source Pin point vertices find augmenting paths in the equal subgraph and have been matched, including: Determine whether there are unmatched source Pin points where no augmenting path can be found; If not, determine the candidate Bump point vertices that uniquely match each source Pin point vertex; If so, based on the minimum adjustment amount of the connection quality, adjust the top marks of the source Pin point vertices and the candidate Bump point vertices on the augmenting path to introduce new equal connections and obtain a new equal subgraph. The new equal subgraph is used as the new current equal subgraph to continue searching for augmenting paths for the source Pin point vertices that have not been matched and perform flipping operations until all source Pin point vertices have found augmenting paths in the equal subgraph and have been matched.
20. The method according to claim 19, characterized in that The minimum adjustment amount based on the connection quality, adjusting the top marks of the source Pin point vertex and the candidate Bump point vertex on the augmented path includes: For each connection that is not on the augmenting path, the sum of the top marks of the source Pin point vertex and the candidate Bump point vertex corresponding to the connection is subtracted from the weight of the connection to obtain the missing amount of each connection that does not meet the equality condition; The minimum value of the missing amount of each connection is determined as the minimum adjustment amount of the connection quality; Based on the minimum adjustment amount, the minimum adjustment amount is added to the top mark of the vertex of the source Pin point on the augmenting path, and the minimum adjustment amount is subtracted from the top mark of the vertex of the candidate Bump point on the augmenting path.
21. The method according to claim 1, characterized in that The obtaining of multiple candidate Bump points includes: If the candidate bump locations are not determined, based on the bump design rules, the bump is fully laid out within the bump layout range to maximize the number of candidate bump locations.
22. A bump layout design device, characterized in that: include: Data preparation module, used to obtain multiple source Pin points and multiple candidate Bump points; A weight data structure determination module, configured to determine a weight data structure based at least on the connection attributes between the source Pin points and the candidate Bump points, wherein the weight data structure includes at least the weights corresponding to the respective connections between the plurality of source Pin points and the plurality of candidate Bump points, and the weights corresponding to the connections represent the connection quality reflected by the connection attributes of the connections; A matching optimization solution module is used to determine the weight result of the connection and the target matching solution corresponding to the maximum connection quality based on the weight data structure, and the target matching solution includes candidate Bump points matched by each source Pin point; The layout result confirmation module is used to determine the candidate Bump points matched by each source Pin point in the target matching solution as the target Bump points corresponding to each source Pin point, and obtain the layout position of the target Bump.
23. A computer device, characterized in that: It comprises at least one memory and at least one processor, wherein the memory stores computer-executable instructions, and the processor calls the computer-executable instructions stored in the memory to execute the bump layout design method as described in any one of claims 1-21.
24. A storage medium, characterized in that The storage medium stores computer-executable instructions, and when the computer-executable instructions are executed, the bump layout design method according to any one of claims 1 to 21 is implemented.
25. A computer program, characterized in that It comprises computer execution instructions, and when the computer execution instructions are executed, the design method of the bump layout as described in any one of claims 1-21 is implemented.