Integrated circuit wiring method, computer device and storage medium
By optimizing the initial port position information by improving the DPSO algorithm and the A-star algorithm, the problems of slow convergence speed and low efficiency in integrated circuit wiring technology are solved, and a more efficient wiring process and circuit design efficiency are achieved.
Patent Information
- Application Number
- CN202411374019.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-29
- Publication Date
- 2025-01-21
- Estimated Expiration
- 2044-09-29
AI Technical Summary
The existing integrated circuit wiring technology has problems of slow convergence speed and low efficiency, which slows down the circuit design and manufacturing progress and causes economic losses.
The improved DPSO algorithm and A-star algorithm are used to optimize the initial port position information, and the inertia weight and acceleration coefficient are updated through multiple rounds of iteration processes to improve the efficiency and convergence speed of the algorithm.
It improves the speed and efficiency of integrated circuit wiring, reduces the possibility of the algorithm falling into a local optimal solution, and enhances the ability to find the global optimal solution.
Smart Images

Figure CN119337811A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of circuit technology, and in particular to an integrated circuit wiring method, a computer device and a storage medium. Background Art
[0002] With the rapid development of engineering technology in electronics, integration and systematization, circuit design has entered a new era. High-speed circuit design has become the mainstream of electronic engineering technology development. Therefore, the requirements for analog integrated circuit design are getting higher and higher. The quality of analog integrated circuit design has a great impact on its anti-interference ability. Therefore, when designing analog integrated circuits, the basic principles of analog integrated circuit design must be followed, and the requirements of anti-interference design must be met to ensure that the circuit achieves the best performance.
[0003] Routing is an important part of the field of Electronic Design Automation (EDA), especially in analog integrated circuit layout design. Different analog integrated circuits have different circuit layout requirements while implementing different functions, but they all need to solve the problem of efficiency. The current integrated circuit routing technology has problems such as slow convergence speed and low efficiency, which slows down the progress of circuit design and manufacturing and causes economic losses. Summary of the invention
[0004] In view of the technical problems of slow convergence speed and low efficiency in current integrated circuit wiring technology, the present invention aims to provide an integrated circuit wiring method, a computer device and a storage medium.
[0005] In one aspect, an embodiment of the present invention includes an integrated circuit wiring method, the integrated circuit wiring method comprising the following steps:
[0006] Obtaining initial port position information of circuit components;
[0007] Using an improved DPSO algorithm to process each of the initial port position information to obtain first optimized port position information; wherein the inertia weight used by the improved DPSO algorithm is determined by an acceleration coefficient;
[0008] Using the A-star algorithm to process the first optimized port location information to obtain second optimized port location information;
[0009] Routing is performed according to the second optimized port position information.
[0010] Further, the using of the improved DPSO algorithm to process the initial port position information includes:
[0011] Perform multiple rounds of iterative processes;
[0012] Determine the first optimized port position information according to the group position obtained in the last round of iteration process;
[0013] During any iteration, the following steps are performed:
[0014] Acquire the group position and group physical fitness; wherein, when the current iteration process is the first iteration process, the group position is determined by the initial port position information, and the group physical fitness is determined by initialization; when the current iteration process is not the first iteration process, the group position and the group physical fitness are updated from the previous iteration process;
[0015] The acceleration coefficient and the inertia weight are updated; wherein, when the current iteration process is the first iteration process, the acceleration coefficient and the inertia weight are determined by initialization, and when the current iteration process is not the first iteration process, the acceleration coefficient and the inertia weight are updated by the previous iteration process;
[0016] updating the group position and the group physical fitness according to the updated acceleration coefficient and the inertia weight;
[0017] Determine whether the iteration stop condition is met;
[0018] When it is determined that the iteration stop condition is met, the iteration process is stopped, otherwise, the next iteration process is executed.
[0019] Further, the acceleration coefficient includes a first acceleration coefficient and a second acceleration coefficient, and the updating of the acceleration coefficient and the inertia weight includes:
[0020] According to the formula
[0021]
[0022] C=c1+c2
[0023]
[0024] Perform calculations;
[0025] Among them, c 1_start is the first acceleration coefficient before updating, c1 is the first acceleration coefficient after updating, and c 2_start is the second acceleration coefficient before updating, c2 is the second acceleration coefficient after updating, w is the inertia weight after updating, c 1_end is the final value of the first acceleration factor, c 2_end is the final value of the second acceleration factor, max iterations is the maximum number of iterations, and eval is determined by the number of iterations corresponding to this iteration process.
[0026] Further, updating the group position and the group physical fitness according to the updated acceleration coefficient and the inertia weight includes:
[0027] According to the updated acceleration coefficient and the inertia weight, the inertia speed, the individual optimal speed and the group optimal speed are updated;
[0028] The group position and the group physical fitness are updated according to the updated inertia speed, the individual optimal speed and the group optimal speed.
[0029] Further, the determining whether the iteration stop condition is satisfied includes:
[0030] Get the number of iterations corresponding to this iteration process;
[0031] Obtaining updated values of the first acceleration coefficient and the second acceleration coefficient;
[0032] When the number of iterated rounds reaches a maximum number of iterated rounds, the first acceleration coefficient reaches a first final value, or the second acceleration coefficient reaches a second final value, it is determined that the iteration stop condition is met.
[0033] Further, the using the A-star algorithm to process the first optimized port location information to obtain the second optimized port location information includes:
[0034] Determine at least one starting point location information and at least one end point location information according to the second optimized port location information;
[0035] Determine at least one path to be processed according to each of the starting point location information and each of the end point location information;
[0036] Acquire at least one intersection point between the paths to be processed;
[0037] Traversing each of the intersections, for any of the traversed intersections, when it is detected that the Manhattan distance between the intersection and an adjacent intersection on the same path to be processed is greater than a distance threshold, obtaining a midpoint between the intersection and the adjacent intersection, and setting the midpoint as a new intersection;
[0038] Obtaining directions corresponding to the respective intersections;
[0039] The position and direction of each of the intersections are used as the second optimized port position information.
[0040] Further, the obtaining of directions corresponding to the intersections includes:
[0041] For any of the intersections, when the intersection is not the middle point, the starting distance and the end distance corresponding to the intersection are obtained, the target endpoint is determined according to the maximum value between the starting distance and the end distance, and the direction formed by the intersection and the target endpoint is determined as the direction corresponding to each of the intersections; wherein the starting distance is the Manhattan distance between the intersection and the starting position information of the path to be processed, and the end distance is the Manhattan distance between the intersection and the end position information of the path to be processed;
[0042] When the intersection is the middle point, the directions of the intersection and the path to be processed are determined as the directions corresponding to the intersections.
[0043] Further, performing wiring according to the second optimized port position information includes:
[0044] For any of the paths to be processed, a corresponding routing path is generated; the routing path starts from the starting point position information corresponding to the path to be processed, passes through the intersections corresponding to the path to be processed in sequence, and reaches the end point position information corresponding to the path to be processed, and the direction of the routing path passing through the intersections is the same as the direction corresponding to the intersections;
[0045] The wiring is performed according to the wiring path.
[0046] On the other hand, an embodiment of the present invention further includes a computer device including a memory and a processor, wherein the memory is used to store at least one program, and the processor is used to load at least one program to execute the integrated circuit wiring method in the embodiment.
[0047] On the other hand, an embodiment of the present invention further includes a computer-readable storage medium storing a program executable by a processor. When the program executable by the processor is executed by the processor, it is used to execute the integrated circuit wiring method in the embodiment.
[0048] The beneficial effects of the present invention are as follows: in the integrated circuit wiring method in the embodiment, the inertia weight in the improved DPSO algorithm used is determined by the acceleration coefficient used by the improved DPSO algorithm, thereby introducing more objectives and constraints, so that the inertia weight can be converged together with the acceleration coefficient through iteration, and the convergence speed of the inertia weight itself and the overall convergence speed of the improved DPSO algorithm can be enhanced, thereby improving the efficiency of the algorithm, which is conducive to speeding up the wiring speed, improving the circuit design efficiency, and reducing the possibility of the improved DPSO algorithm falling into a local optimal solution, which is conducive to the improved DPSO algorithm finding a global optimal solution. BRIEF DESCRIPTION OF THE DRAWINGS
[0049] Figure 1 A schematic diagram of the steps of the integrated circuit wiring method in the embodiment;
[0050] Figure 2 A schematic diagram of the port positions in coordinate form in the embodiment;
[0051] Figure 3 A schematic diagram of the port positions in a graphical form in an embodiment;
[0052] Figure 4 A schematic diagram of a transverse path and a longitudinal path in an embodiment;
[0053] Figure 5 Schematic diagram of the wiring result in the embodiment. DETAILED DESCRIPTION
[0054] In this embodiment, refer to Figure 1 , the integrated circuit wiring method comprises the following steps:
[0055] S1. Obtaining the initial port position information of the circuit device;
[0056] S2. Use the improved DPSO algorithm to process the initial port position information to obtain the first optimized port position information;
[0057] S3. Use the A-star algorithm to process the first optimized port location information to obtain the second optimized port location information;
[0058] S4. Perform wiring according to the second optimized port position information.
[0059] Steps S1-S4 may be executed by a computer, and specifically may be executed by EDA software running on the computer.
[0060] In step S1, after the selection of circuit components and topological connection are completed by EDA, at least one circuit component (specifically, a resistor, a capacitor, an inductor, a diode, a transistor, etc.) and a plurality of ports (also referred to as pins) will be formed. The positions of these ports need to be further arranged through steps S2-S4, and each of them has a corresponding initial position before executing steps S2-S4. For example, Figure 2 As shown, it contains multiple coordinates, each of which describes the initial position of the port of the circuit device, so as to obtain the initial port position information in step S1, that is, each initial port position information represents the initial state (before executing steps S2-S4) Figure 2 The coordinates in describe the locations of the ports of the circuit devices.
[0061] For example, you can Figure 2 The coordinates in the graph are Figure 3Among the multiple blocks shown in , each block corresponds to a port of the circuit device, and the position of the block represents the geometric position of the port in the circuit. When in the initial state, the position of each block is represented by a corresponding initial port position information.
[0062] In step S2, the improved DPSO (Discrete Particle Swarm Optimization) algorithm is used to process the initial port position information.
[0063] In this embodiment, the inertia weight used by the improved DPSO algorithm used in step S2 is determined by the acceleration coefficient used by the improved DPSO algorithm. For example, in the improved DPSO algorithm, when iterating the inertia weight, a new inertia weight is calculated according to the acceleration coefficient used by the improved DPSO algorithm.
[0064] By using the improved DPSO algorithm to process each initial port position information in step S2, each initial port position information is optimized. Specifically, the content of each initial port position information (corresponding port position coordinates) may have changed, thereby corresponding to a new position (coordinate), i.e., the first optimized port position information in step S2.
[0065] In this embodiment, each initial port position information is optimized by the improved DPSO algorithm to obtain a corresponding first optimized port position information. Specifically for each initial port position information, the position coordinates represented by the corresponding first optimized port position information may or may not have changed with the position coordinates represented by itself, but the position coordinate combination described by all the first optimized port position information is likely to have changed relative to the position coordinate combination described by all the initial port position information, which is the optimization result of the improved DPSO algorithm.
[0066] Similarly, in step S3, each first optimized port location information is processed using the A star algorithm, and each first optimized port location information is optimized. In this embodiment, each first optimized port location information is optimized by the A star algorithm to obtain a corresponding second optimized port location information. Each second optimized port location information obtained after optimization forms a new position coordinate combination.
[0067] In step S4, the second optimized port position information obtained in step S3 is used as the position coordinates of the ports (pins) in the circuit device, and the ports (pins) are connected according to the topological connection relationship between the ports (pins) in the circuit device, thereby realizing the wiring of the circuit.
[0068] In this embodiment, the principle of steps S1-S4 is that if the inertia weight that is independent of the acceleration coefficient is used in the improved DPSO algorithm, for example, by formula
[0069]
[0070] Iterate the inertia weight (where w represents the updated inertia weight, w start represents the inertia weight before update, w end Indicates the final value of the inertia weight, max iterations Expressed as the maximum number of iterations, eval is related to the number of iterations), then the convergence speed of the inertia weight w is relatively fixed, and it cannot be converged together with the acceleration coefficient by iterating, so the efficiency of the algorithm is low; when executing steps S1-S4 for integrated circuit wiring, since the inertia weight in the improved DPSO algorithm used is determined by the acceleration coefficient used by the same algorithm (i.e., the improved DPSO algorithm), it is equivalent to setting a coupling relationship between the inertia weight and the acceleration coefficient within the improved DPSO algorithm, thereby introducing more objectives and constraints. Therefore, the inertia weight can be converged together with the acceleration coefficient by iterating, and the convergence speed of the inertia weight itself and the overall convergence speed of the improved DPSO algorithm can be enhanced, thereby improving the efficiency of the algorithm, which is conducive to speeding up the wiring speed and improving the circuit design efficiency. The introduction of more objectives and constraints is also conducive to reducing the possibility of the improved DPSO algorithm falling into a local optimal solution, which is conducive to the improved DPSO algorithm finding a global optimal solution.
[0071] In this embodiment, when executing step S2, that is, using the improved DPSO algorithm to process each initial port position information, the following steps may be specifically performed:
[0072] S201. Execute multiple rounds of iteration process;
[0073] S202. Determine the first optimized port position information according to the group position obtained in the last round of iteration process.
[0074] In step S201, the principle of each round of iteration is similar, and one round of iteration is used as an example for explanation. In any round of iteration, the following steps are performed:
[0075] S20101. Obtain group position and group physical fitness;
[0076] S20102. Update the acceleration coefficient and inertia weight;
[0077] S20103. Update the group position and group physical fitness according to the updated acceleration coefficient and inertia weight;
[0078] S20104. Determine whether the iteration stop condition is met;
[0079] S20105. When it is determined that the iteration stop condition is met, stop executing the iteration process, otherwise, execute the next round of iteration process.
[0080] The above steps S20101-S20105 are steps executed in a specific round of iterative process. In this embodiment, this round of iterative process is referred to as "this round of iterative process".
[0081] The idea of improving the DPSO algorithm is to regard each port (pin) as a discrete particle and optimize the position of the discrete particles through iteration.
[0082] In step S20101, if this round of iteration is the first round of iteration, the group position gbest can be determined based on the initial port position information. position , initialize and generate group physical fitness gbest fitness If the current iteration process is not the first iteration process, that is, the iteration process after the first iteration process, then the group position gbest updated by the previous iteration process is used in step S20101 of the current iteration process. position and group physical fitness gbest fitness .
[0083] In step S20102, if this round of iteration process is the first round of iteration process, then the acceleration coefficient and inertia weight w are initialized and generated. In this embodiment, two acceleration coefficients are used, namely the first acceleration coefficient c1 and the second acceleration coefficient c2; if this round of iteration process is not the first round of iteration process, that is, the iteration process after the first round of iteration process, then in step S20102 of this round of iteration process, the first acceleration coefficient c1, the second acceleration coefficient c2 and the inertia weight W updated in the previous round of iteration process are used.
[0084] For example, if this round of iteration is the first round of iteration, then when executing step S20102, the value of the first acceleration coefficient c1 can be initialized to c 1_start =0.9, the value of the second acceleration coefficient c2 is initialized to c 2_start =0.4, then according to the formula
[0085] C=c1+c2
[0086] Calculate the sum C of the first acceleration coefficient c1 and the second acceleration coefficient c2, and then use the formula
[0087]
[0088] The inertia weight w is calculated. Since the first acceleration coefficient c1 and the second acceleration coefficient c2 are both generated by initialization, the inertia weight w obtained by calculation is also equivalent to that generated by initialization.
[0089] If the current iteration process is not the first iteration process, then when executing step S20102, the first acceleration coefficient obtained after the previous iteration process is updated (or initialized) is obtained (which becomes the C in the current iteration process). 1_start ) and the second acceleration factor (which becomes C in this round of iterations) 2_start ), and then according to the formula
[0090]
[0091] Calculate the first acceleration coefficient c1 updated in this round of iteration, and then use the formula
[0092]
[0093] The second acceleration coefficient c2 updated in this round of iteration is calculated according to the formula
[0094] C=c1+c2
[0095] Calculate the sum C of the updated first acceleration coefficient c1 and the updated second acceleration coefficient c2, and then use the formula
[0096]
[0097] The updated inertia weight w is calculated.
[0098] In the above formula, c 1_end is the final value of the first acceleration coefficient, c 2_end is the final value of the second acceleration factor, max iterations is the maximum number of iterations, c 1_end 、c 2_end and max iterations They are all fixed values, and can be taken as c 1_end =0.2, c 2_end =0.9, max iterations =500. eval is determined by the number of iterations corresponding to this iteration process, specifically, the number of iterations plus 1. For example, if this iteration process is the 5th iteration process, then the number of iterations is 4, that is, the eval used in this iteration process is 5.
[0099] After executing step S20102, step S20103 is then executed. In step S20103, the group position gbest is updated according to the first acceleration coefficient c1, the second acceleration coefficient c2 and the inertia weight w updated in this round of iteration process.position and group physical fitness gbest fitness .
[0100] Specifically, in step S20103, the inertia speed w can be updated by random perturbation according to the updated first acceleration coefficient c1, the second acceleration coefficient c2 and the inertia weight w. velocity 、Individual optimal speed pbest velocity and group optimal speed gbest velocity , according to the updated inertial velocity w velocity 、Individual optimal speed pbest velocity and group optimal speed gbest velocity , update group position gbest position and group physical fitness gbest fitness .
[0101] Inertia speed w velocity Indicates the inertial direction of discrete particles, determined by 0 or 1, and the inertial velocity w velocity 0 means vertical connection first and then horizontal connection, inertia speed w velocity 1 means horizontal connection first and then vertical connection. Therefore, when executing step S20103, the inertial speed w velocity The update process is as follows: compare the random number generated by Python with the inertia weight w. If the random number is smaller than the inertia weight w, then the inertia speed w velocity The direction remains unchanged; otherwise, if the random number is greater than or equal to the inertia weight w, the inertia speed w velocity Change to the other direction, that is, from 0 to 1 or from 1 to 0.
[0102] When executing step S20103, the individual optimal speed pbest velocity The specific update process is: compare the random number with the first acceleration coefficient c1. If the random number is greater than the first acceleration coefficient c1, the inertia speed w is selected. velocity The direction of the individual optimal speed pbest velocity On the contrary, if the random number is less than or equal to the first acceleration coefficient c1, the newly generated random number is compared with the first acceleration coefficient c1. If the newly generated random number is greater than the first acceleration coefficient c1, the group position gbest is selected. position The direction of [i][j][2] is taken as the individual optimal speed pbest velocity If the random number is less than or equal to the first acceleration coefficient c1, the inertia speed w is selected. velocity The direction of the individual optimal speed pbest velocity direction.
[0103] When executing step S20103, the group optimal speed gbest velocity The specific update process is as follows: if the group position gbest position If None, then the optimal speed pbest is used. velocity The optimal speed for the group is gbest velocity Assign value; if the group position is gbest position If it is not empty, the individual optimal speed pbest velocity In the same way (for example, the value of the first acceleration coefficient c1 becomes the same as the second acceleration coefficient c2, the individual position pbest position [i][j][2] becomes the group position gbest position [i][j][2] are the same) to iterate, that is, to absorb the individual optimal speed pbest with a certain probability velocity is the group optimal speed gbest velocity Otherwise, keep the original group optimal speed gbest velocity constant.
[0104] When executing step S20103, the group position gbest position and group physical fitness gbest fitness The specific update process is as follows: for multiple discrete particles, obtain their individual positions pbest position , use the minimum spanning tree method prim to connect, and obtain the connection order of each point net data; obtain the Manhattan distance between any two discrete particles according to the net data, traverse all particles, and add up the Manhattan distance between each particle and the adjacent particles to obtain the distance sum multiplied by a coefficient α as the particle body fitness, in this embodiment α=0.02; obtain the current position particle of any discrete particle according to the net data, specifically, the current position particle of any discrete particle can be calculated as follows: obtain the connection relationship between this discrete particle and other discrete particles according to the net data (if another discrete particle is first vertically connected to this discrete particle and then horizontally connected, then the connection relationship between the other discrete particle and this discrete particle is 0, if another discrete particle is first horizontally connected to this discrete particle and then vertically connected, then the connection relationship between the other discrete particle and this discrete particle is 1), and then add up all the connection relationships corresponding to this discrete particle to obtain the current position particle of this discrete particle;
[0105] After calculating the particle fitness and the current position particle, if the group fitness gbest fitnessIf it is greater than the particle fitness, then the group fitness gbest fitness Update to particle body fitness and group position gbest position Update to the particle's current position particle, otherwise keep the group's physical energy gbest fitness and group position gbest position unchanged; for any discrete particle, if its individual body energy pbest fitness If it is greater than the particle's physical fitness, then its individual physical fitness pbest fitness Updated to particle body fitness and its individual position pbest position Update to the particle's current position particle, otherwise keep the individual physical energy pbest fitness and individual position pbest position constant.
[0106] After executing S20103, eval itself increases by 1, that is, eval=eval+1.
[0107] In step S20104, it is determined whether the iteration stop condition of this round of iteration process is met. Specifically, the iteration stop condition can be set as "(1) the number of iterations eval reaches the maximum number of iterations max iterations ; (2) The updated first acceleration coefficient c1 reaches the first final value c 1_end ; (3) The second acceleration coefficient c2 reaches the second final value c 2_end , at least one of the above three conditions is met".
[0108] When it is detected that the iteration stop condition is met, the iteration process is stopped in step S20105, that is, the next round of iteration process is no longer executed, and this round of iteration process is the last round of iteration process; if the iteration stop condition is not met, the execution of this round of iteration process is terminated and the next round of iteration process is started, that is, a new round of steps S20101-S20105 is started.
[0109] After executing the last round S20101-S20105, the group position gbest is obtained position is a distribution of a set of position coordinates, which represents the new position of each port (pin) after the position coordinates are optimized. Therefore, in step S202, according to the group position gbest obtained in the last round of iteration process position , determine the first optimized port location information.
[0110] In this embodiment, when executing step S3, that is, using the A-star algorithm to process the first optimized port location information to obtain the second optimized port location information, the following steps may be specifically performed:
[0111] S301. According to the second optimized port location information, determine at least one starting point location information and at least one end point location information;
[0112] S302. Determine at least one path to be processed according to the starting point location information and the end point location information;
[0113] S303. Obtain at least one intersection point between each path to be processed;
[0114] S304. Traverse each intersection, for any traversed intersection, when it is detected that the Manhattan distance between the intersection and another intersection on the same path to be processed is greater than the distance threshold, obtain the middle point between the intersection and the other intersection, and set the middle point as the new intersection;
[0115] S305. Obtain the directions corresponding to each intersection;
[0116] S306. Use the position and direction of each intersection as the second optimized port position information.
[0117] In step S301, at least one second optimized port position information is determined as the starting position information and at least one second optimized port position information is determined as the end position information from the port coordinates represented by the second optimized port position information. The starting position information indicates the starting point of the wiring, and the end position information indicates the end point of the wiring. The starting position information and the end position information can be determined by the EDA task.
[0118] When executing step S302, the following steps may be specifically performed:
[0119] S30201. Add the starting point location information and the ending point location information to the open list.
[0120] S30202. Repeat the following process:
[0121] (1) Starting point: traverse the open list and find the starting point location information with the smallest F value (F = G + H, G is the actual moving distance, H is the estimated moving distance), and use it as the current node to be processed;
[0122] (2) Path finding: Divide the path area (the area to be routed) into multiple squares so that each second optimized port location information is divided into a corresponding square. Take the square where the node to be processed is located as the central square, and find the square with the smallest F value among the eight adjacent squares of the central square. The found square is used as the new node.
[0123] (3) Storage: Store the new node in the close list;
[0124] (4) Termination: If the new node stored in the close list is not the end point location information, then jump back to step (2) and continue to search for new nodes; if the new node stored in the close list is the end point location information, then establish a path, starting from the starting point location information determined in step (1) in the same round of steps (1)-(4), passing through at least one "new node" determined in step (2), and reaching the end point location information;
[0125] (5) Save the path: Save the path obtained in step (4) as the path to be processed.
[0126] Before executing step S303, the path to be processed may be classified into a horizontal path or a vertical path, and then optimized according to the classification.
[0127] Specifically, refer to Figure 4 For each path to be processed, the following judgment process can be performed: obtain the starting point position information and the end point position information of the path to be processed. If the horizontal coordinate of the starting point position information is equal to the horizontal coordinate of the end point position information, then the path to be processed is classified as a horizontal path; if the vertical coordinate of the starting point position information is equal to the vertical coordinate of the end point position information, then the path to be processed is classified as a vertical path; if the above situation is not met, then the path to be processed is neither a horizontal path nor a vertical path.
[0128] For a path to be processed that is a horizontal path or a vertical path, obstacles appearing in the path to be processed may be corrected by increasing a screening distance between the starting point position information and the end point position information of the path to be processed.
[0129] In step S303, all the paths to be processed are compared in pairs to determine the intersection formed by any two paths to be processed. A1 and the terminal position information p A2 ), path B to be processed (the corresponding starting point location information is p B1 and the terminal position information p B2) and the path to be processed C (the corresponding starting point location information is p C1 and the terminal position information p C2 ), where the path A to be processed and the path B to be processed form an intersection point p CROSS1 , the path A to be processed and the path C to be processed form an intersection point p CROSS2 .
[0130] In step S304, each intersection is traversed. For example, the intersection p is obtained by step S303. CROSS1 and p CROSS2 , traverse to the intersection point p CROSS1 , since the intersection point p CROSS1 The intersection point p with other intersection points CROSS2 Belong to the same path to be processed (path to be processed A), so the intersection point p is detected CROSS1 With the intersection point p CROSS2 The Manhattan distance between them is CROSS1 With the intersection point p CROSS2 If the Manhattan distance between them is less than or equal to the distance threshold, the operation of finding a new intersection point is not performed; in this embodiment, it is assumed that the intersection point p CROSS1 With the intersection point p CROSS2 If the Manhattan distance between them is greater than the distance threshold, then the intersection point p is obtained. CROSS1 With the intersection point p CROSS2 The middle point p middle (Specifically, it can be at the intersection point p on the path A to be processed CROSS1 With the intersection point p CROSS2 The middle point p middle Mark the new intersection.
[0131] In step S305, the directions corresponding to the intersections are obtained. CROSS1 With p CROSS2 For such intersection points that are not midpoints, obtain the starting point distance and the end point distance corresponding to the intersection point; specifically, take the intersection point p CROSS1 For example, since the intersection point p CROSS1 It is located on both the path A and the path B to be processed, so the intersection point p CROSS1 The corresponding starting point distance, including the intersection point p CROSS1 The starting point position information of the path A to be processed is p A1 The Manhattan distance between them and the starting point location information of the path B to be processed is p B1 The Manhattan distance between the intersection points p CROSS1 The corresponding end point distance, including the intersection point p CROSS1 The end point position information of the path A to be processed is pA2 The Manhattan distance between them and the end point location information of the path B to be processed is p B2 The Manhattan distance between them; assuming that the intersection point p CROSS1 The starting point position information of the path A to be processed is p A1 The Manhattan distance between them is the maximum value among the above multiple Manhattan distances, so the starting point location information of the path A to be processed is p A1 The intersection point p CROSS1 The target endpoint of the intersection point p CROSS1 With the target endpoint p A1 The direction formed (specifically, it can be the direction determined on the path A to be processed, that is, from the target endpoint p A1 Point to intersection point p CROSS1 ), determined as the intersection point p CROSS1 The corresponding direction.
[0132] In step S305, for p middle For such an intersection that is an intermediate point, the direction of the intersection and the path to be processed is determined as the direction corresponding to the intersection. middle On the path A to be processed, the intersection point p middle The corresponding direction is from the starting point position information of the path A to be processed to p A1 Point to the end point position information p A2 direction.
[0133] Step S305 is performed for each intersection, thereby obtaining the direction of each intersection. In step S306, the position and direction of an intersection constitute the second optimized port position information of the intersection.
[0134] In this embodiment, when executing step S4, that is, the step of performing wiring according to the second optimized port location information, the following steps may be specifically performed:
[0135] S401. For any path to be processed, generate a corresponding routing path;
[0136] S402. Perform wiring according to the wiring path.
[0137] In step S401, taking the path A to be processed as an example, the path A to be processed includes the starting point position information p A1 , intersection point p CROSS1 , intersection point p middle , intersection point p CROSS2 and the terminal position information p A2 etc., from the starting point position information p A1 Start along the intersection point p CROSS1 The corresponding direction passes through the intersection point p CROSS1, then along the intersection point p middle The corresponding direction passes through the intersection point p middle , and then along the intersection point p CROSS2 The corresponding direction passes through the intersection point p CROSS2 , and finally reach the destination position information p A2 , the above traces form a wiring path.
[0138] In step S402, according to the wiring path generated in step S401, the direction of the wire connecting the corresponding two ports (pins) is determined, so as to realize wiring. In this embodiment, a wiring result schematic diagram is obtained by executing steps S401-S402.
[0139] In this embodiment, by executing steps S301-S306, the intersection points in each path to be processed can be determined and the intersection points can be optimized, so that when executing steps S401-S402, in addition to being able to determine the directions of the starting and ending parts of the path to be processed based on the starting point position information and the end point position information of the path to be processed, the direction of the middle part of the path to be processed can also be determined based on the intersection points of the path to be processed, which is conducive to the standardization of the directions of each path to be processed and reduces the possibility of obstacles caused by conflicts between different paths.
[0140] A computer program for executing the integrated circuit wiring method in this embodiment can be written and written into a computer device or a storage medium. When the computer program is read out and run, the integrated circuit wiring method in this embodiment is executed, thereby achieving the same technical effect as the integrated circuit wiring method in the embodiment.
[0141] It should be noted that, unless otherwise specified, when a feature is referred to as being "fixed" or "connected" to another feature, it may be directly fixed or connected to the other feature, or it may be indirectly fixed or connected to the other feature. In addition, the descriptions of up, down, left, right, etc. used in the present disclosure are only relative to the relative positional relationship of the components of the present disclosure in the accompanying drawings. The singular forms of "a", "" and "the" used in the present disclosure are also intended to include the plural forms, unless the context clearly indicates other meanings. In addition, unless otherwise defined, all technical and scientific terms used in this embodiment have the same meaning as those generally understood by those skilled in the art. The terms used in the specification of this embodiment are only for describing specific embodiments and are not intended to limit the present invention. The term "and / or" used in this embodiment includes any combination of one or more related listed items.
[0142] It should be understood that, although the term first, second, third etc. may be adopted to describe various elements in the present disclosure, these elements should not be limited to these terms. These terms are only used to distinguish the same type of elements from each other. For example, without departing from the scope of the present disclosure, the first element may also be referred to as the second element, and similarly, the second element may also be referred to as the first element. The use of any and all examples or exemplary language ("for example", "such as" etc.) provided by the present embodiment is only intended to better illustrate embodiments of the present invention, and unless otherwise required, the scope of the present invention will not be limited.
[0143] It should be appreciated that embodiments of the present invention may be implemented or enforced by computer hardware, a combination of hardware and software, or by computer instructions stored in a non-transitory computer-readable memory. The method may be implemented in a computer program using standard programming techniques - including a non-transitory computer-readable storage medium configured with a computer program, wherein the storage medium so configured causes the computer to operate in a specific and predefined manner - according to the methods and drawings described in the specific embodiments. Each program may be implemented in a high-level procedural or object-oriented programming language to communicate with a computer system. However, if desired, the program may be implemented in assembly or machine language. In any case, the language may be a compiled or interpreted language. In addition, the program may be run on a programmed dedicated integrated circuit for this purpose.
[0144] In addition, the operations of the process described in this embodiment may be performed in any suitable order, unless otherwise indicated in this embodiment or otherwise clearly contradicted by the context. The process described in this embodiment (or variations and / or combinations thereof) may be performed under the control of one or more computer systems configured with executable instructions, and may be implemented as a code (e.g., executable instructions, one or more computer programs, or one or more applications) executed on one or more processors in common, by hardware or a combination thereof. A computer program includes a plurality of instructions that may be executed by one or more processors.
[0145] Further, the method can be implemented in any type of computing platform that is operably connected to a suitable computer, including but not limited to a personal computer, a minicomputer, a mainframe, a workstation, a network or distributed computing environment, a separate or integrated computer platform, or in communication with a charged particle tool or other imaging device, etc. Various aspects of the present invention can be implemented in machine-readable code stored on a non-transitory storage medium or device, whether removable or integrated into a computing platform, such as a hard disk, an optical read and / or write storage medium, a RAM, a ROM, etc., so that it can be read by a programmable computer, and when the storage medium or device is read by the computer, it can be used to configure and operate the computer to perform the process described herein. In addition, the machine-readable code, or part thereof, can be transmitted via a wired or wireless network. When such media includes instructions or programs that implement the above steps in conjunction with a microprocessor or other data processor, the invention of this embodiment includes these and other different types of non-transitory computer-readable storage media. When programmed according to the methods and techniques of the present invention, the present invention also includes the computer itself.
[0146] The computer program can be applied to input data to perform the functions of the present embodiment, thereby converting the input data to generate output data stored in a non-volatile memory. The output information can also be applied to one or more output devices such as a display. In a preferred embodiment of the present invention, the converted data represents a physical and tangible object, including a specific visual depiction of the physical and tangible object produced on the display.
[0147] The above are only preferred embodiments of the present invention. The present invention is not limited to the above embodiments. As long as the technical effects of the present invention are achieved by the same means, any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present invention shall be included in the scope of protection of the present invention. Within the scope of protection of the present invention, its technical solutions and / or implementation methods may have various modifications and changes.
Claims
1. An integrated circuit wiring method, characterized in that: The integrated circuit wiring method comprises: Obtaining initial port position information of circuit components; Using an improved DPSO algorithm to process each of the initial port position information to obtain first optimized port position information; wherein the inertia weight used by the improved DPSO algorithm is determined by an acceleration coefficient; Using the A-star algorithm to process the first optimized port location information to obtain second optimized port location information; Routing is performed according to the second optimized port position information.
2. The integrated circuit wiring method according to claim 1, characterized in that: The using of the improved DPSO algorithm to process the initial port position information includes: Perform multiple rounds of iterative processes; Determine the first optimized port position information according to the group position obtained in the last round of iteration process; During any iteration, the following steps are performed: Acquire the group position and group physical fitness; wherein, when the current iteration process is the first iteration process, the group position is determined by the initial port position information, and the group physical fitness is determined by initialization; when the current iteration process is not the first iteration process, the group position and the group physical fitness are updated from the previous iteration process; The acceleration coefficient and the inertia weight are updated; wherein, when the current iteration process is the first iteration process, the acceleration coefficient and the inertia weight are determined by initialization, and when the current iteration process is not the first iteration process, the acceleration coefficient and the inertia weight are updated by the previous iteration process; updating the group position and the group physical fitness according to the updated acceleration coefficient and the inertia weight; Determine whether the iteration stop condition is met; When it is determined that the iteration stop condition is met, the iteration process is stopped, otherwise, the next iteration process is executed.
3. The integrated circuit wiring method according to claim 2, characterized in that: The acceleration coefficient includes a first acceleration coefficient and a second acceleration coefficient, and the updating of the acceleration coefficient and the inertia weight includes: According to the formula C=c1+c2 Perform calculations; Among them, c 1_start is the first acceleration coefficient before updating, c1 is the first acceleration coefficient after updating, and c 2_start is the second acceleration coefficient before updating, c2 is the second acceleration coefficient after updating, w is the inertia weight after updating, c 1_end is the final value of the first acceleration factor, c 2_end is the final value of the second acceleration factor, max iterations is the maximum number of iterations, and eval is determined by the number of iterations corresponding to this iteration process.
4. The integrated circuit wiring method according to claim 2, characterized in that: The updating of the group position and the group physical fitness according to the updated acceleration coefficient and the inertia weight comprises: According to the updated acceleration coefficient and the inertia weight, the inertia speed, the individual optimal speed and the group optimal speed are updated; The group position and the group physical fitness are updated according to the updated inertia speed, the individual optimal speed and the group optimal speed.
5. The integrated circuit wiring method according to claim 3, characterized in that: The determining whether the iteration stop condition is met includes: Get the number of iterations corresponding to this iteration process; Obtaining updated values of the first acceleration coefficient and the second acceleration coefficient; When the number of iterated rounds reaches a maximum number of iterated rounds, the first acceleration coefficient reaches a first final value, or the second acceleration coefficient reaches a second final value, it is determined that the iteration stop condition is met.
6. The integrated circuit wiring method according to any one of claims 1 to 5, characterized in that: The using the A-star algorithm to process the first optimized port location information to obtain the second optimized port location information includes: Determine at least one starting point location information and at least one end point location information according to the second optimized port location information; Determine at least one path to be processed according to each of the starting point location information and each of the end point location information; Acquire at least one intersection point between the paths to be processed; Traversing each of the intersections, for any of the traversed intersections, when it is detected that the Manhattan distance between the intersection and an adjacent intersection on the same path to be processed is greater than a distance threshold, obtaining a midpoint between the intersection and the adjacent intersection, and setting the midpoint as a new intersection; Obtaining directions corresponding to the respective intersections; The position and direction of each of the intersections are used as the second optimized port position information.
7. The integrated circuit wiring method according to claim 6, characterized in that: The obtaining of directions corresponding to the intersections includes: For any of the intersections, when the intersection is not the middle point, the starting distance and the end distance corresponding to the intersection are obtained, the target endpoint is determined according to the maximum value between the starting distance and the end distance, and the direction formed by the intersection and the target endpoint is determined as the direction corresponding to each of the intersections; wherein the starting distance is the Manhattan distance between the intersection and the starting position information of the path to be processed, and the end distance is the Manhattan distance between the intersection and the end position information of the path to be processed; When the intersection is the middle point, the directions of the intersection and the path to be processed are determined as the directions corresponding to the intersections.
8. The integrated circuit wiring method according to claim 6, characterized in that: The performing wiring according to the second optimized port position information includes: For any of the paths to be processed, a corresponding routing path is generated; the routing path starts from the starting point position information corresponding to the path to be processed, passes through the intersections corresponding to the path to be processed in sequence, and reaches the end point position information corresponding to the path to be processed, and the direction of the routing path passing through the intersections is the same as the direction corresponding to the intersections; The wiring is performed according to the wiring path.
9. A computer device, characterized in that: The invention comprises a memory and a processor, wherein the memory is used to store at least one program, and the processor is used to load at least one program to execute the integrated circuit wiring method according to any one of claims 1 to 8.
10. A computer-readable storage medium storing a program executable by a processor, characterized in that: The program executable by the processor is used to execute the integrated circuit wiring method according to any one of claims 1 to 8 when executed by the processor.
Citation Information
Patent Citations
X structure Steiner minimum tree construction method based on dynamic particle swarm optimization
CN116108795A
Optimization method of A star algorithm in PCB wiring environment based on dynamic weight
CN117787190A
Integrated circuit wiring method, system, equipment and medium
CN117787193A
Method of physical design for integrated circuit
US20010018758A1