Bus routing method based on golden bit and hanan grid update

By using the GoldenBit and Hanan grid update bus routing method, dynamically optimizing the priority of Hanan grid edges and using the A* algorithm, the low bus routing success rate in PCB design is solved, achieving more efficient routing path optimization.

CN115169279BActive Publication Date: 2026-05-22GUANGZHOU GUILUN ELECTRONIC TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GUANGZHOU GUILUN ELECTRONIC TECH CO LTD
Filing Date
2022-08-04
Publication Date
2026-05-22

Smart Images

  • Figure CN115169279B_ABST
    Figure CN115169279B_ABST
Patent Text Reader

Abstract

The application discloses a bus wiring method based on GoldenBit and Hanan grid updating, which comprises the following steps: firstly, generating the GoldenBit topology path of each component, and then wiring other pin feet; then, before each wiring, performing dynamic Hanan grid updating; for each edge of the Hanan grid, according to whether it is a segment and a line extended from a component, the edge is divided into different priorities; finally, according to the different priorities, adjusting the wiring path, finding the shortest path while ensuring that the topology path is as same as the last path as possible, so as to complete the bus wiring.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of automation technology for physical design of very large-scale integrated circuits (VLSI), specifically to a bus routing method based on GoldenBit and Hanan mesh updates. Background Technology

[0002] As semiconductor technology enters the nanoscale era and electronic systems continue to grow in scale, the difficulty of PCB bus routing is also increasing. This is because it requires routing the same optimal topology path for all bits on the bus while avoiding obstacles. (See attached manual.) Figure 1 A bus with the same topology is described. Bus routing is also one of the most time-consuming and challenging steps in PCB design, as it requires consideration of component congestion and length limitations on the board.

[0003] Due to new challenges in bus routing, current automated bus routing technologies may be insufficient to meet the requirements of modern PCB design, and manual routing still relies heavily on existing methods. Hanan meshes are a good mapping method for describing the adjacency relationships of routing areas in VLSI automated design. However, current technologies only generate a Hanan mesh once based on component locations and then perform routing selection, without considering the characteristics of PCB routing, such as routing sequence and bus topology. The routing results do not meet industry requirements, with low routing completion rates, and need improvement. Therefore, it is hoped that Hanan meshes can be further improved to develop a bus routing method that optimizes routing sequence and topology, meeting the current needs of automated routing in industry. Summary of the Invention

[0004] To address the shortcomings and deficiencies of existing technologies, this invention proposes a bus routing method based on GoldenBit and Hanan grid updates. The Hanan grid is improved by introducing a Hanan grid update method, which enables the routing path to find the shortest path to the target pin while satisfying the condition of having the same topology path as much as possible by using the priority information of Hanan grid edges.

[0005] First, a GoldenBit topology path is generated for each component, and then routing is performed on the other pins. Then, before each routing step, a dynamic Hanan mesh update is performed. For each edge of the Hanan mesh, different priorities are assigned based on whether it originates from a segment or component extension. Finally, the routing paths are adjusted according to these priorities, finding the shortest path while ensuring that the topology path is as similar as possible to the previous path, thus completing the bus routing.

[0006] The key points of the technical solution are as follows: (1) Determine GoldenBit based on the intersection of the line generated by the midpoint of the PCB board and the component with the component; (2) Dynamically update the Hanan grid, store the segments of the completed routing path, add them to the new Hanan grid graph, and set different priorities for each edge of the generated Hanan grid according to the different composition of the edge; (3) Use the A* algorithm to make it select the path to be taken according to the priority, so as to find the optimal routing path while making the topology of the current path as similar as possible to the previous path.

[0007] Experimental results show that the algorithm can optimize the wiring sequence and topology, and significantly improve the routing success rate.

[0008] To achieve the above objectives, the present invention adopts the following technical solution:

[0009] A bus routing method based on GoldenBit and Hanan mesh updates, characterized by the following steps:

[0010] Step S1: Construct the initial Hanan mesh, and generate the GoldenBit path for each component based on the midpoint of the PCB board and the midpoint of the component;

[0011] Step S2: Adjust the GoldenBit path generated in step S1;

[0012] Step S3: Add the successfully routed bit paths to the next Hanan mesh generation and set the priority of the edges of the Hanan mesh cells;

[0013] Step S4: First, use breadth-first search to find the grid where the segment of the previous path is located, and then use the A* algorithm to select the path according to the priority of the grid edges;

[0014] Step S5: Adjust the wiring path generated in step S4.

[0015] Furthermore, step S1 specifically includes the following steps:

[0016] Step S11: Construct an initial Hanan mesh from the boundaries of the component and the PCB board, and find the coordinates of the midpoint of the PCB board and the current component;

[0017] Step S12: Under the guidance of step S11, connect the two midpoints to obtain a line segment;

[0018] Step S13: Perform a crossover experiment and a fast repulsion experiment on each edge of the current component and the line segment to determine which edge intersects the line segment. If none of the edges of the component intersect the line segment, skip this component and select the next component according to the component priority to return to step S11.

[0019] Step S14: Guided by step S13, if the edge intersects with this line segment, use the vector method to solve for the coordinates of the intersection point, and then find the pin closest to this intersection point;

[0020] Step S15: Under the guidance of step S14, use the A* algorithm to find a shortest path for this pin; specifically, set the midpoint of each Hanan grid cell as a traversable node in the A* algorithm process, thereby finding a shortest path as the GoldenBit of the current component.

[0021] Furthermore, step S2 specifically includes the following steps:

[0022] Step S21: Adjust the first and last segments of the bit path; first, add two segments, namely the segment from the starting pin to the midpoint of its grid and the segment from the ending pin to the midpoint of its grid; then, based on the edge of the component where the pin is located, determine whether the direction of the first and last segments is horizontal or vertical, and adjust the coordinates of the first and last segments accordingly.

[0023] Step S22: Based on the direction of segment 2 of GoldenBit, count the number of pins passed from the starting pin of GoldenBit to this edge boundary of the component;

[0024] Step S23: Guided by step S22, calculate the reserved distance W, which will be the length of segment 1.

[0025] W(N p ) = N p ·CW+U (1)

[0026] In the formula, N p This indicates the number of pins counted; CW represents the sum of the spacing and line width specified for this layer; U represents the spacing requirements added by the user.

[0027] Step S24: Determine whether GoldenBit is composed of three or more segments; if so, determine whether it can form a rectangle; if it can form a rectangle, count the number of pins on the component boundary within the rectangle.

[0028] Step S25: Under the guidance of step S24, calculate the reserved distance as the reserved distance from the third segment to the current component;

[0029] Step S26: Adjust the wiring path of GoldenBit according to the node information of the path and the guidance of steps S23 and S25.

[0030] Furthermore, step S3 specifically includes the following steps:

[0031] Step S31: Denote the segments of the currently successfully routed bits as set S = (V, H), where V represents the vertical segment and H represents the horizontal segment;

[0032] Step S32: Extend the segments in set S as edges until they encounter other components or segments in set S;

[0033] Step S33: Based on the different composition of the mesh edges, divide them into 5 cases and set their priority from high to low, namely: segment, edge extending from segment, component boundary, edge extending from component boundary, and edge of PCB board.

[0034] Furthermore, step S4 specifically includes the following steps:

[0035] Step S41: For the current pin, first use breadth-first search, and stop when an edge of a Hanan grid is formed by a segment of the previous path;

[0036] Step S42: Using the A* algorithm, select the next grid to traverse based on the grid composition.

[0037] Furthermore, step S5 specifically includes the following:

[0038] Traverse the four edges of the current grid. According to the guidance of step S33, move the line segments in the current grid to the corresponding edge according to the priority of the grid edge, and keep the specified spacing. If the highest priority of the current grid edge is the boundary of the component, it is also necessary to determine whether there are pins that need to be routed on this component boundary. If so, skip and recursively move to the next priority.

[0039] This invention and its preferred embodiments propose a scheme for generating GoldenBit and updating the Hanan grid, which can find the shortest path while maintaining the same topological path to the greatest extent. The test examples show that the algorithm proposed in this invention can quickly obtain a good result. Attached Figure Description

[0040] Figure 1 The accompanying drawings, which are part of the background art of the present invention, show a bus with the same topology, consisting of 3 bits.

[0041] Figure 2 This is a flowchart of a method according to an embodiment of the present invention.

[0042] Figure 3 The present invention provides two scenarios for constructing GoldenBit, where (a) is the case where both the midpoint of the PCB board and the midpoint of the component are within the current component, and (b) is the case where the line segment connecting the midpoints of the two successfully intersects with the boundary of the component.

[0043] Figure 4 This is an example diagram of the reserved spacing in an embodiment of the present invention.

[0044] Figure 5 This is an example diagram of segments used when constructing a new Hanan mesh in an embodiment of the present invention, where solid lines represent segments to be added to the next Hanan mesh construction, and dashed lines represent segments previously deleted.

[0045] Figure 6 This is an example diagram of the Hanan mesh configuration in an embodiment of the present invention.

[0046] Figure 7 This is an example diagram of the wiring path without adjustment in an embodiment of the present invention. Detailed Implementation

[0047] To make the features and advantages of this patent more apparent and understandable, specific embodiments are provided below for detailed explanation:

[0048] It should be noted that the following detailed descriptions are illustrative and intended to provide further explanation of this application. Unless otherwise specified, all technical and scientific terms used in this specification have the same meaning as commonly understood by one of ordinary skill in the art to which this application pertains.

[0049] It should be noted that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the exemplary embodiments according to this application. As used herein, the singular form is intended to include the plural form as well, unless the context clearly indicates otherwise. Furthermore, it should be understood that when the terms "comprising" and / or "including" are used in this specification, they indicate the presence of features, steps, operations, devices, components, and / or combinations thereof.

[0050] like Figure 2 As shown, this embodiment provides a bus routing method based on GoldenBit and Hanan mesh updates, including the following steps:

[0051] Step S1: Construct the initial Hanan mesh, and generate the GoldenBit path for each component based on the midpoint of the PCB board and the midpoint of the component;

[0052] Step S2: Adjust the GoldenBit path generated in step S1;

[0053] Step S3: Add the successfully routed bit paths to the next Hanan mesh generation and set the priority of the edges of the Hanan mesh cells;

[0054] Step S4: First, use breadth-first search to find the grid where the segment of the previous path is located, and then use the A* algorithm to select the path according to the priority of the grid edges;

[0055] Step S5: Adjust the wiring path generated in step S4.

[0056] In this embodiment, step S1, namely Figure 2 The sections on "Constructing the Initial Hanan Graph" and "Constructing GoldenBit" specifically include the following steps:

[0057] Step S11: Construct an initial Hanan mesh from the boundaries of the component and the PCB board, and find the midpoint coordinates of the PCB board and the current component.

[0058] In this embodiment, the PCB board and components are all rectangular in shape, and the midpoint coordinates are obtained based on their lower left and upper right corner coordinates.

[0059] Step S12: Under the guidance of step S11, connect the two midpoints to obtain a line segment.

[0060] Step S13: Perform a crossover experiment and a fast repulsion experiment on each edge of the current component and this line segment to determine which edge intersects with this line segment. If none of the component's edges intersect with this line segment, such as... Figure 3 As shown in (a), the midpoint of the PCB board and the midpoint of component 1 are both within the component, making it impossible to establish a midpoint with the component boundary. When this occurs, the component is skipped, and the next component is selected based on its priority to continue the above steps. In this embodiment, the component priority is determined by the number of pins on the component or by a user-defined priority; more pins result in higher priority.

[0061] Step S14: Guided by step S13, if the edge intersects this line segment, such as Figure 3 As shown in (b), the line segment formed by the midpoint of the PCB board and the midpoint of the component intersects with the boundary of the component. The coordinates of the intersection point are solved using the vector method, and then the pin closest to this intersection point is found.

[0062] Step S15: Guided by step S14, use the A* algorithm to find a shortest path for this pin, and set the midpoint of each Hanan grid cell as a traversable node in the A* algorithm process to find a shortest path as the GoldenBit of the current component.

[0063] In this embodiment, step S2, namely Figure 2 The "GoldenBit Adjustment" section includes the following steps:

[0064] Step S21: The first stage of adjustment mainly involves adjusting the first and last segments of the bit path. First, two segments are added: one from the starting pin to the midpoint of its grid, and another from the ending pin to the midpoint of its grid. Then, based on the edge of the component containing the pin, the direction of the first and last segments is determined to be horizontal or vertical, and their coordinates are adjusted accordingly. For example, if the pin is on the left or right boundary of the component, the direction of its first segment will be horizontal; otherwise, it will be vertical.

[0065] Step S22: Second stage adjustment. Based on the direction of segment 2 of GoldenBit, count the number of pins passed from the starting pin of GoldenBit to the boundary of this component. Figure 4 As shown, the direction of segment 2 is from right to left. So, starting from the current pin, calculate the number of pins that pass through to the left boundary of the component.

[0066] Step S23: Guided by step S22, calculate the reserved distance W as the length of segment 1, such as... Figure 4 The reserved distance 'a' is shown in the figure; the reserved distance 'W' is calculated as follows:

[0067] W(N p ) = N p ·CW+U (1)

[0068] In the formula, N p This indicates the number of pins counted; CW represents the sum of the spacing and line width specified for this layer; U represents the spacing requirements added by the user.

[0069] Step S24: Determine if GoldenBit consists of three or more segments. If so, determine if a rectangle can be formed. Figure 4 As shown, the first three segments can form a rectangle, and this rectangle surrounds several boundary segments of the component. Then, the number of pins on the component boundary within the rectangle is counted.

[0070] Step S25: Guided by step S24, calculate the reserved distance as the reserved distance from the third segment to the current component, such as... Figure 4 The reserved distance b is shown in the figure.

[0071] Step S26: Adjust the wiring path of GoldenBit according to the node information of the path and the guidance of steps S23 and S25.

[0072] In this embodiment, step S3, namely Figure 2 The "Constructing a New Hanan Graph" section includes the following steps:

[0073] Step S31: Denote the segments of the currently successfully routed bits as set S = (V, H), where V represents the segments in the vertical direction and H represents the segments in the horizontal direction.

[0074] In this embodiment, if the topology path of the currently successfully routed bit is the same as the topology path of the previous bit, and the components where the starting pin and the ending pin are located are the same, then the segment related to the previous bit path in set S is deleted, such as... Figure 5 As shown, dashed paths represent segments deleted from set S during this process, while solid lines represent segments in set S that need to be added to the next process of constructing a new Hanan graph.

[0075] Step S32: Similar to components, the segments in set S are also extended as edges until they encounter other components or segments in set S.

[0076] Step S33: As Figure 6 As shown, based on the different composition of the grid edges, they are divided into 5 cases, and their priorities are set from high to low: segment, edge extending from segment, component boundary, edge extending from component boundary, and edge of PCB board.

[0077] In this embodiment, step S4, namely Figure 2 The section on "Using Breadth-First Search and A* Algorithm" includes the following:

[0078] Step S41: For the current pin, first use breadth-first search, and stop when an edge of a Hanan grid is formed by a segment of the previous path.

[0079] Step S42: Using the A* algorithm, select the next grid to traverse based on the grid structure. The A* algorithm is defined as follows:

[0080] f(H)=P(H)+β(g(H)+h(H)) (2)

[0081] Where f(H) represents the cost function from the initial grid to the destination grid via grid H, g(H) represents the cost from the initial grid to grid H, h(H) represents the estimated cost from grid H to the destination grid, and P(H) is the priority of grid H, defined in this step as follows:

[0082]

[0083] in, It is the number of edges of grid H that are composed of segments of the previous bit path; It is the number of edges in grid H that are formed by extending from the segments of the previous bit path; α s and α ds Then, α represents the corresponding weight.s It is much greater than α ds And, when or When β is not zero, its value is 0; when and When both are 0, P(H) is set to 0, and β is 1.

[0084] like Figure 7 As shown, for the current pin, a breadth-first search is first used to find a Hanan grid whose edge is formed by a segment of the previous bit path. Then, using this grid as the starting point, the A* algorithm is applied. For any Hanan grid encountered during the process, if an edge is formed by a segment of the previous bit path or an edge extended from a segment of the previous bit path, the value of β is equal to 0. For inflection points, since inflection points have more edges extended from segments of the previous bit path than other grids, according to the formula for calculating P(H), their value of f(H) is smaller, so it can be guaranteed that it is the next node to be traversed. After reaching grid z, none of the traversable grids will have edges formed by segments of the previous bit path or extensions of segments. At this time, the value of β is 1, and the value of P(H) is 0. The A* algorithm is continued to find the shortest path while ensuring that the topology is as similar as possible.

[0085] In this embodiment, step S5, namely Figure 2 The "Wiring Path Adjustment" section includes the following steps:

[0086] Step S51: Complete the first stage of adjustment according to the guidance in step S21.

[0087] Step S52: The second stage of adjustment involves traversing the four edges of the current grid. Following the guidance of step S33, the line segments in the current grid are moved to the corresponding edges according to the priority of the grid edges, while maintaining the specified spacing. If the highest priority of the current grid edge is the boundary of the component, it is also necessary to determine whether there are pins that need to be routed on this component boundary. If so, skip it and recursively move to the next priority.

[0088] The above description is merely a preferred embodiment of the present invention and is not intended to limit the invention in any other way. Any person skilled in the art may make changes or modifications to the above-disclosed technical content to create equivalent embodiments. However, any simple modifications, equivalent changes, and modifications made to the above embodiments based on the technical essence of the present invention without departing from the scope of the present invention shall still fall within the protection scope of the present invention.

[0089] This patent is not limited to the above-described preferred embodiments. Anyone can derive other bus routing methods based on GoldenBit and Hanan mesh updates under the guidance of this patent. All equivalent changes and modifications made within the scope of this patent application shall fall within the scope of this patent.

Claims

1. A bus routing method based on GoldenBit and Hanan mesh updates, characterized in that, Includes the following steps: Step S1: Construct the initial Hanan mesh and generate the GoldenBit path for each component based on the PCB board midpoint and component midpoint; Step S2: Adjust the GoldenBit path generated in step S1: Step S21: Adjust the first and last segments of the GoldenBit path; first, add two segments, namely the segment from the starting pin to the midpoint of its grid and the segment from the ending pin to the midpoint of its grid; then, based on the edge of the component where the pin is located, determine whether the direction of the first and last segments is horizontal or vertical, and adjust the coordinates of the first and last segments accordingly. Step S22: Based on the direction of segment 2 of GoldenBit, count the number of pins passed from the starting pin of GoldenBit to this edge boundary of the component; Step S23: Guided by step S22, calculate the reserved distance W, which will be the length of segment 1. (1) In the formula, This indicates the number of pins counted. CW represents the sum of the spacing and line width specified for this layer; U represents the spacing requirements added by the user. Step S24: Determine whether GoldenBit is composed of three or more segments; if so, determine whether it can form a rectangle; if it can form a rectangle, count the number of pins on the component boundary within the rectangle. Step S25: Under the guidance of step S24, calculate the reserved distance as the reserved distance from segment 3 to the current component; Step S26: Adjust the wiring path of GoldenBit according to the node information of the path and the guidance of steps S23 and S25. Step S3: Add the successfully routed GoldenBit path to the next Hanan mesh generation, and set the priority of the edges of the Hanan mesh cells; Step S4: First, use breadth-first search to find the grid where the segment of the previously successfully wired GoldenBit path is located, and then use the A* algorithm to select the path according to the priority of the grid edges; Step S5: Adjust the wiring path generated in step S4.

2. The bus routing method based on GoldenBit and Hanan mesh updates according to claim 1, characterized in that: Step S1 specifically includes the following steps: Step S11: Construct an initial Hanan mesh from the boundaries of the component and the PCB board, and find the coordinates of the midpoint of the PCB board and the current component; Step S12: Under the guidance of step S11, connect the two midpoints to obtain a line segment; Step S13: Perform a crossover experiment and a fast repulsion experiment on each edge of the current component and the line segment to determine which edge intersects the line segment. If none of the edges of the component intersect the line segment, skip this component and select the next component according to the component priority to return to step S11. Step S14: Guided by step S13, if the edge intersects with the line segment, use the vector method to solve for the coordinates of the intersection point, and then find the pin closest to this intersection point; Step S15: Under the guidance of step S14, use the A* algorithm to find a shortest path for this pin; specifically, set the midpoint of each Hanan grid cell as a traversable node in the A* algorithm process, thereby finding a shortest path as the GoldenBit of the current component.

3. The bus routing method based on GoldenBit and Hanan mesh updates according to claim 1, characterized in that: Step S3 specifically includes the following steps: Step S31: Record the segments of the currently successfully routed bits as a set. Where V represents the vertical segment and H represents the horizontal segment; Step S32: Extend the segments in set S as edges until they encounter other components or segments in set S; Step S33: Based on the different composition of the mesh edges, divide them into 5 cases and set their priority from high to low, namely: segment, edge extending from segment, component boundary, edge extending from component boundary, and edge of PCB board.

4. The bus routing method based on GoldenBit and Hanan mesh updates according to claim 1, characterized in that: Step S4 specifically includes the following steps: Step S41: For the current pin, first use breadth-first search, and stop when an edge of a Hanan grid is formed by a segment of the previously successfully routed GoldenBit path; Step S42: Using the A* algorithm, select the next grid to traverse based on the grid composition.

5. The bus routing method based on GoldenBit and Hanan mesh updates according to claim 3, characterized in that: Step S5 specifically includes the following: Traverse the four edges of the current grid. According to the guidance of step S33, move the line segments in the current grid to the corresponding edge according to the priority of the grid edge, and keep the specified spacing. If the highest priority of the current grid edge is the boundary of the component, it is also necessary to determine whether there are pins that need to be routed on this component boundary. If so, skip and recursively move to the next priority.