Automated routing system and automated routing method thereof
Patent Information
- Application Number
- TW114107873
- Authority / Receiving Office
- TW · TW
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-03-04
- Publication Date
- 2026-09-16
- Estimated Expiration
- 2045-03-03
AI Technical Summary
Traditional automatic routing systems fail to consider the directionality of connectors, leading to routing failures, additional modifications, and increased design costs and time due to non-conforming routing paths.
An automatic routing system that generates simulated traces by setting start and end points with specific directions, ensuring the starting and ending segments align with these directions, and incorporates obstacle avoidance and relay points to optimize the routing process.
Ensures that generated traces adhere to design requirements, reducing errors, improving efficiency, and enhancing the reliability and accuracy of PCB and integrated circuit layouts.
Smart Images

Figure TWG2TA001075524_001 
Figure TWG2TA001075524_002 
Figure TWG2TA001075524_003
Abstract
Description
[Technical Field]
[0001] This invention relates to an automatic wiring system and an automatic wiring method thereof, and more particularly to an automatic wiring system and method that takes into account the wiring directionality of the start and end points. [Previous Technology]
[0002] An automatic routing system is an intelligent technology that can automatically generate connection lines between various components in electronic circuit design. Based on circuit diagrams, this system uses advanced algorithms to automatically calculate and generate the optimal connection paths. This technology not only significantly reduces the workload of engineers manually routing circuits and improves design efficiency, but also significantly reduces the incidence of design errors.
[0003] Traditional automatic routing systems typically consider factors such as line length and width when generating routing paths to obtain the optimal routing solution. However, this method often ignores the directionality of the lines. In practical applications, many electronic components, especially connectors, have specific access direction requirements. If the automatically generated routing path does not conform to these directions, it will lead to routing failure, or require additional modifications, or even rerouting, which will undoubtedly increase design costs and time. [Summary of the Invention]
[0004] An embodiment of the present invention discloses an automatic routing method, which includes setting a start point and an end point; executing a program through a processor to set a first direction and a second direction; and the processor executing the program to generate a simulated trace from the start point to the end point. The starting segment of the simulated trace is connected to the start point and extends from the start point toward the first direction, while the ending segment of the simulated trace is connected to the end point and extends from the end point toward the second direction.
[0005] One embodiment of the present invention discloses an automatic routing system including a processor and a memory device. The memory device is coupled to the processor and stores programs and design information. The design information includes a start point, an end point, a first direction, and a second direction. The processor executes the program to generate a simulated route from the start point to the end point. The starting segment of the simulated route is connected to the start point and extends from the start point in the first direction, while the ending segment of the simulated route is connected to the end point and extends from the end point in the second direction.
Implementation Method
[0006] Figure 1 is a functional block diagram of an automatic routing system 10 according to an embodiment of the present invention. Figure 2 is a schematic diagram of the simulated trace 80 generated by the automatic routing system 10 in Figure 1. The automatic routing system 10 efficiently and accurately generates simulated traces that meet design requirements for application in printed circuit board (PCB) design, integrated circuit layout, and other fields. The automatic routing system 10 includes a processor 20 and a memory device 30. The memory device 30 is coupled to the processor 20 and stores all necessary data for the operation of the automatic routing system 10, including a program 40 and design information 50. The processor 20 is the core of the system, responsible for executing the program 40 to perform routing algorithm calculations and generating simulated traces 80 according to the design information 50. The program 40 may include, but is not limited to, routing algorithms and data structures. The design information 50 may include, but is not limited to, a start point 52, an end point 54, a first direction 56, and a second direction 58. Design information 50 may also include other design constraints, such as: line width W, structural information 62, obstacle information 64, number of turns, relay points, number of layers, spacing, avoidance areas, etc., to ensure that the simulated routing 80 conforms to the design rules.
[0007] The memory device 30 may be random access memory (RAM) or non-volatile memory, wherein the random access memory may be dynamic random access memory (DRAM) or static random access memory (SRAM), and the non-volatile memory may be flash memory, programmable ROM (PROM), erasable programmable ROM (EPROM), or electrically erasable programmable ROM (EEPROM), etc.
[0008] In this embodiment, processor 20 executes program 40 to generate a simulated trace 80 from start point 52 to end point 54. The starting segment 82 of the simulated trace 80 is connected to start point 52 and extends from start point 52 in a first direction 56, while the ending segment 84 of the simulated trace 80 is connected to end point 54 and extends from end point 54 in a second direction 58. Therefore, the automatic routing system 10 can ensure that the generated simulated trace 80 strictly follows the first direction 56 and the second direction 58. This strict control over the directionality of the traces allows the simulated trace 80 generated by the automatic routing system 10 to perfectly adapt to the orientation of the connectors located at start point 52 and end point 54. To more intuitively illustrate the advantages of the automatic routing system 10, in addition to the simulated trace 80 that meets the design requirements, Figure 2 also shows two traces 90 and 92 that do not meet the design requirements. The first direction of trace 90 is opposite to the Y-axis and does not conform to the first direction 56, while the second direction of trace 92 is in the same direction as the Y-axis and does not conform to the second direction 58. Both of these scenarios violate design specifications, causing traces 90 and 92 to fail to meet the requirements for the first direction 56 and the second direction 58. However, through program 40 executed by processor 20, automatic routing system 10 automatically excludes these non-compliant traces 90 and 92. Automatic routing system 10 evaluates all possible traces based on the first direction 56 and the second direction 58 in design information 50 and filters out those traces that strictly adhere to the directional constraints. This automated filtering process ensures that the final generated simulated trace 80 meets the design requirements.
[0009] Figure 3 is a schematic diagram of another simulated trace 80 generated by the automatic routing system 10 of Figure 1 according to another embodiment of the present invention. This embodiment further considers obstacles that may be encountered during the routing process, thereby improving the flexibility and reliability of the routing. In this embodiment, in addition to including the start point 52, end point 54, first direction 56, and second direction 58, the design information 50 also includes information 64 of obstacles 36. The information 64 of obstacles 36 describes in detail the position, size, and other information of all obstacles in the routing space, and this information can be in various forms, such as: coordinates (e.g., the coordinates of the four vertices of obstacle 36), dimensions (e.g., the length and width of the obstacle), and the shape of obstacle 36 (e.g., rectangle, circle, etc.). The program 40 executed by the processor 20 will make full use of the information 64 of obstacles 36 to strictly avoid the simulated trace 80 from overlapping with any obstacle 36 when generating the simulated trace 80. Program 40 employs an efficient collision detection algorithm to check each generated trace segment, ensuring that the simulated trace 80 does not intersect with any obstacle 36, thus allowing the simulated trace 80 to bypass the obstacle 36. By taking the obstacle 36 into account, the automatic routing system 10 can find feasible traces in complex routing environments, improving the success rate of routing. Furthermore, by avoiding overlap between the simulated trace 80 and the obstacle 36, the automatic routing system 10 can reduce routing errors and improve product reliability.
[0010] In one embodiment of the present invention, the design information 50 further includes information about relay point 38. The information about relay point 38 includes its coordinate position in the wiring space. The program 40 executed by the processor 20 forces the simulated trace 80 to pass through relay point 38 based on the relay point 38 information in the design information 50. Although this embodiment uses one relay point 38 for illustration, the design information 50 may include information about multiple relay points 38, causing the simulated trace 80 to pass through these relay points 38. The introduced relay points 38 allow designers to have more precise control over the wiring path, improving wiring flexibility. Furthermore, in certain specific application scenarios, it may be necessary for the simulated trace 80 to pass through certain specific points; the function of the relay point 38 can meet these requirements.
[0011] Figure 4 is a schematic diagram of another simulated trace 80 generated by the automatic routing system 10 of Figure 1 according to another embodiment of the present invention. In this embodiment, the processor 20 establishes a routing space 70 with multiple voxels 72 by executing program 40, and the orientation of this routing space 70 can be represented by the X-axis, Y-axis and Z-axis. Each voxel 72 can be, for example, a cube with a length, width and height of 1 mm, but the present invention is not limited thereto. Furthermore, the size of the voxel 72 is not fixed, and the automatic routing system 10 can adjust the size of the voxel 72 according to design requirements. For example, in a high-density routing area, the automatic routing system 10 can use smaller voxels 72 to improve routing accuracy. During the generation of the simulated trace 80, the program 40 executed by the processor 20 restricts the start point 52, the end point 54 and the simulated trace 80 to be within the aforementioned routing space 70. Furthermore, in this embodiment, the program 40 executed by the processor 20 also ensures that the generated simulated trace 80 conforms to the specifications regarding the start point 52, end point 54, first direction 56, and second direction 58 in the design information 50. That is, the starting segment 82 of the simulated trace 80 is connected to the start point 52 and extends from the start point 52 towards the first direction 56, while the ending segment 84 of the simulated trace 80 is connected to the end point 54 and extends from the end point 54 towards the second direction 58. This design not only improves the routing accuracy but also ensures that the directionality of the simulated trace 80 fully conforms to the design specifications, avoiding the problem of inconsistent directionality in traditional automatic routing systems, thereby improving the reliability and accuracy of the overall design.
[0012] In one embodiment of the present invention, the design information 50 includes, in addition to the start point 52, end point 54, first direction 56, and second direction 58, a line width W. The program 40 executed by the processor 20 generates a simulated trace 80 based on the line width W. Specifically, the program 40 calculates the number of voxels 72 occupied by the simulated trace 80 in the routing space 70 based on the line width W, and ensures that the voxels 72 occupied by the simulated trace 80 do not conflict with other components or traces, and ensures that the width of the simulated trace 80 remains consistent to meet design requirements. By strictly controlling the line width W of the simulated trace 80, the automatic routing system 10 can improve routing accuracy, reduce routing errors, and improve signal integrity and reduce signal attenuation through reasonable line width design.
[0013] In one embodiment of the present invention, by executing program 40 through processor 20, automatic routing system 10 can use the voxels 72 occupied by the structure 32 of the circuit board and / or body within the routing space 70 as information 62 of the structure 32, and record the information 62 of the structure 32 in memory device 30. Subsequently, program 40 executed by processor 20 generates a simulated trace 80 adjacent to structure 32 based on the information 62 of structure 32. Specifically, in the process of generating simulated trace 80, automatic routing system 10 can directly determine whether the voxels 72 occupied by simulated trace 80 are adjacent to the voxels 72 occupied by structure 32. This method effectively avoids the situation where simulated trace 80 is suspended due to not being adjacent to structure 32, ensuring that simulated trace 80 and structure 32 remain closely attached, thus improving the stability and reliability of the routing. Therefore, automatic routing system 10 can accurately record and determine the voxels 72 occupied by structure 32, and generate simulated traces 80 adjacent to structure 32 based on these voxels 72. This not only significantly improves the accuracy of wiring, but also effectively reduces design problems that may be caused by suspended wiring, thereby improving the efficiency and quality of the overall design.
[0014] In one embodiment of the present invention, the automatic routing system 10 records in detail the voxels 72 occupied by all obstacles 36 within the routing space 70 and stores this information in the memory device 30. When the processor 20 executes the program 40, it first reads the relevant information of these obstacles 36 from the memory device 30 and performs layout planning for the simulated routing 80 according to the line width W. By continuously comparing the voxels 72 occupied by the simulated routing 80 with the voxels 72 occupied by the obstacles 36, the program 40 can effectively make the simulated routing 80 bypass the obstacles 36, ensuring the integrity of the routing. This design accurately records the position of each obstacle 36 in the routing space 70, allowing the program 40 to flexibly bypass these obstacles 36 without affecting the layout of other components. At the same time, the automatic routing system 10 can also find an optimal routing path according to design requirements, which not only effectively reduces the occurrence rate of routing errors but also significantly improves the reliability of the product. Because the automatic routing system 10 can accurately identify and record the location of obstacles 36, and because the program 40 takes these obstacles 36 into account when planning the simulated wiring 80, the entire process becomes more intelligent and efficient. This means that during the wiring process, wiring overlap or conflict caused by obstacles 36 can be avoided, thereby improving the stability and reliability of the entire automatic routing system 10 and greatly optimizing the design process and production efficiency of electronic products.
[0015] In one embodiment of the present invention, the automatic routing system 10 executes a highly optimized program 40 through the processor 20 to generate multiple candidate simulated traces within the routing space 70. Each candidate simulated trace strictly follows design specifications, with its starting segment necessarily connected to the starting point 52 and extending along a specified first direction 56, and its ending segment necessarily connected to the ending point 54 and extending along a second direction 58. To ensure the integrity of the routing, all candidate simulated traces cleverly bypass various obstacles 36 within the routing space, including components, vias, and restricted areas. This design allows the simulated traces to extend smoothly and compactly during the generation process, thereby ensuring the reliability of the traces. Among the numerous candidate simulated traces, in order to select the optimal solution, the program 40 precisely calculates the number of turns for each candidate simulated trace. Fewer turns indicate a smoother and more compact trace layout, which also means a shorter trace length and lower signal attenuation. Therefore, the program 40 prioritizes the candidate simulated trace with the fewest turns as the final simulated trace 80. In another embodiment of the invention, program 40 selects the simulated trace 80 based on the length of each candidate simulated trace. For example, if two candidate simulated traces have the same number of turns, program 40 selects the candidate simulated trace with the shorter length as the final simulated trace 80. This not only ensures the smoothness and compactness of the trace but also effectively reduces signal attenuation, further improving the quality and reliability of the wiring. Through this multi-faceted optimization strategy, the automatic routing system 10 can significantly improve the efficiency and accuracy of wiring design, reduce errors in the design process, and enhance the overall performance and reliability of the product.
[0016] In one embodiment of the present invention, in order to meet the requirements of the circuit design, the program 40 executed by the processor 20 can use the A* path search algorithm, and select the simulated route 80 by using the following evaluation function f(x), and adding the minimum number of turns and the requirement that the path should be adjacent to the structure to the function g(x). f(x) = g(x) + h(x)
[0017] Where f(x) represents the overall cost of node x (e.g., relay point 38 mentioned above), g(x) is the distance from the starting point 52 to node x, and h(x) is the estimated distance from node x to the ending point 54. Program 40 can use Manhattan distance to calculate this estimated distance. The function g(x) can be expressed as: g(x) = D(pstart, x) + wturnsNturns(x) + wfloatingNfloating(x)
[0018] Where pstart is the starting point 52, D(pstart, x) is the distance from starting point 52 to node x, Nturns(x) is the number of turns on the path from starting point 52 to node x, Nfloating(x) is the number of floating nodes on the path from starting point 52 to node x, wturns is the weight controlling the turning loss, and wfloating is the weight controlling the floating loss. Both wturns and wfloating are greater than zero. The number of floating nodes, Nfloating(x), represents the number of nodes on the candidate simulated path that fail to closely adhere to structure 32. Furthermore, the above function h(x) can be expressed as: h(x) = D(x, pend)
[0019] Where, pend is the endpoint 54, and D(x, pend) is the distance from node x to endpoint 54.
[0020] The program 40 executed by the processor 20 calculates the value of the function f(x) corresponding to each candidate simulated trace, compares the value of the function f(x) corresponding to each candidate simulated trace, and selects the candidate simulated trace with the smallest value of the corresponding function f(x) as the final simulated trace 80.
[0021] Figure 5 is a flowchart of an automatic routing method 200 according to an embodiment of the present invention. The automatic routing system 10 implements the automatic routing method 200 by executing program 40 through processor 20. The automatic routing method 200 includes the following steps:
[0022] Step S210: Set the starting point 52 and the ending point 54 to clearly define the coordinate positions of the starting point 52 and the ending point 54;
[0023] Step S220: Set the first direction 56 and the second direction 58; and
[0024] Step S230: Generate a simulated trace 80 from the starting point 52 to the ending point 54. The starting segment 82 of the simulated trace 80 is connected to the starting point 52 and extends from the starting point 52 in the first direction 56, while the ending segment 84 of the simulated trace 80 is connected to the ending point 54 and extends from the ending point 54 in the second direction 58.
[0025] This invention introduces the concepts of a first direction at the starting point and a second direction at the ending point during the routing process, ensuring that the generated simulated traces strictly adhere to these directional requirements. This makes the generated routing paths more consistent with actual routing needs, reduces routing errors, and improves routing efficiency and reliability. The above description is merely a preferred embodiment of this invention. All equivalent variations and modifications made within the scope of the claims of this invention should be considered within the scope of this invention. [Simplified Explanation of the Diagram]
[0026] Figure 1 is a functional block diagram of an automatic routing system according to an embodiment of the present invention. Figure 2 is a schematic diagram of simulated routing generated by the automatic routing system of Figure 1. Figure 3 is a schematic diagram of another simulated routing generated by the automatic routing system of Figure 1. Figure 4 is a schematic diagram of another simulated routing generated by the automatic routing system of Figure 1. Figure 5 is a flowchart of an automatic routing method according to an embodiment of the present invention.
Claims
1. An automatic wiring method, comprising: A program is executed by a processor to set a starting point and an ending point; The processor executes the program to set a first direction and a second direction; The processor executes the program to record the voxels occupied by at least one obstacle in a wiring space; and the processor executes the program to generate a simulated trace from the start point to the end point based on a line width, wherein a starting segment of the simulated trace is connected to the start point and extends from the start point in a first direction, a terminal segment of the simulated trace is connected to the end point and extends from the end point in a second direction, and the voxels of the simulated trace do not overlap with the voxels occupied by the at least one obstacle in the wiring space.
2. The automatic routing method as described in claim 1, further comprising: The processor executes the program to establish the wiring space in multiple voxels; The processor executes the program to restrict the start point, the end point, and the simulated trace to be within the wiring space.
3. The automatic routing method as described in claim 2, further comprising: The processor executes the program to record the voxels occupied by a structure within the wiring space; The processor executes the program to place the analog trace adjacent to the structure based on the voxel occupied by the structure within the wiring space.
4. The automatic routing method as described in claim 1, wherein the processor executes the program to generate the simulated trace from the start point to the end point based on the trace width, comprising: The processor executes the program to generate multiple candidate simulated routes, wherein each candidate simulated route bypasses the at least one obstacle, a starting segment of each candidate simulated route is connected to the starting point and extends from the starting point in the first direction, and a terminal segment of each candidate simulated route is connected to the ending point and extends from the ending point in the second direction; and selects the simulated route from the candidate simulated routes based on the number of turns of each candidate simulated route.
5. The automatic routing method as described in claim 4, wherein the selected simulated route is the one with the fewest turns among the candidate simulated routes.
6. The automatic routing method as described in claim 1, further comprising: The processor executes the program to set at least one relay point in the cabling space; The processor executes the program to make the simulated trace pass through the at least one relay point.
7. The automatic routing method as described in claim 1, wherein the processor executes the program to generate the simulated trace from the start point to the end point based on the line width, comprising: The processor executes the program to generate multiple candidate simulated traces, wherein a starting segment of each candidate simulated trace is connected to the starting point and extends from the starting point toward the first direction, and a terminal segment of each candidate simulated trace is connected to the ending point and extends from the ending point toward the second direction; and the processor executes the program to select the simulated trace from the candidate simulated traces based on the length of each candidate simulated trace.
8. An automatic wiring system, comprising: One processor; The processor also includes a memory device coupled to the processor, wherein the memory device stores a program and design information, the design information including a starting point, an ending point, a first direction, a second direction, and a line width; wherein the processor executes the program to record the voxels occupied by at least one obstacle in a wiring space in the memory device, and generates a simulated trace from the starting point to the ending point based on the line width, wherein a starting segment of the simulated trace is connected to the starting point and extends from the starting point toward the first direction, a ending segment of the simulated trace is connected to the ending point and extends from the ending point toward the second direction, and the voxels of the simulated trace do not overlap with the voxels occupied by the at least one obstacle in the wiring space.
9. The automatic routing system as claimed in claim 8, wherein the processor executes the program to establish the routing space using multiple voxels and restrict the start point, the end point, and the simulated trace to be within the routing space.
10. The automatic routing system of claim 9, wherein the processor executes the program to record the voxels occupied by a structure in the routing space in the memory device, and to make the simulated trace adjacent to the structure based on the voxels occupied by the structure in the routing space.
11. The automatic cabling system of claim 8, wherein the processor executes the program to generate a plurality of candidate simulated routes, wherein each candidate simulated route bypasses the at least one obstacle, a starting segment of each candidate simulated route is connected to the starting point and extends from the starting point toward the first direction, and a terminal segment of each candidate simulated route is connected to the terminal point and extends from the terminal point toward the second direction; and wherein the processor executes the program to select the simulated route from the candidate simulated routes based on the number of turns of each candidate simulated route.
12. The automatic routing system as claimed in claim 11, wherein the selected simulated route is the one with the fewest turns among the candidate simulated routes.
13. The automatic cabling system as claimed in claim 8, wherein the processor executes the program to set at least one trunk point in the cabling space and to make the simulated cabling pass through the at least one trunk point.
14. The automatic routing system of claim 8, wherein the processor executes the program to generate a plurality of candidate simulated routes, wherein a starting segment of each candidate simulated route is connected to the starting point and extends from the starting point toward the first direction, and a terminal segment of each candidate simulated route is connected to the terminal point and extends from the terminal point toward the second direction; and wherein the processor executes the program to select the simulated route from the candidate simulated routes based on the length of each candidate simulated route.
