A wiring scheme determination method and device, electronic equipment and storage medium

By synchronously advancing cabling objects by unit length and merging overlapping objects, the problem of difficulty in determining cabling schemes is solved, achieving horizontal and vertical balance and timing optimization of cabling, and improving the efficiency and balance of cabling scheme determination.

CN113987995BActive Publication Date: 2026-04-24SHENZHEN HONGXIN MICRO NANO TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SHENZHEN HONGXIN MICRO NANO TECH CO LTD
Filing Date
2021-10-28
Publication Date
2026-04-24

AI Technical Summary

Technical Problem

In existing technologies, it is difficult to determine the cabling scheme, especially in complex designs where it is difficult to find a suitable balance position to place intermediate nodes, resulting in cabling resource squeezing and timing convergence difficulties.

Method used

By acquiring the data to be routed, the routing object is advanced synchronously in units of length until it overlaps with another object or exceeds the range of the configuration file. The target scheme is selected according to the control strategy of the configuration file, the overlapping objects are merged, and this process is repeated until the routing endpoint is determined, using a horizontal and vertical balanced routing method.

Benefits of technology

It enables rapid determination of routing schemes, improves routing balance, and helps with timing optimization and convergence, especially in multimode and multi-angle analysis where it performs better.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113987995B_ABST
    Figure CN113987995B_ABST
Patent Text Reader

Abstract

The application provides a wiring scheme determination method and device, electronic equipment and storage medium, and relates to the technical field of integrated circuit wiring. First, obtain wiring data, wherein the wiring data includes a plurality of wiring objects and a configuration file, and each wiring object includes position information. Each wiring object is synchronously pushed by a unit length until it overlaps with another wiring object or exceeds the range of the configuration file. Each pushing scheme is used as an alternative scheme. A target scheme is selected from the alternative scheme according to a control strategy in the configuration file. Two wiring objects that overlap in the target scheme are merged into a new wiring object. The step of pushing each wiring object by a unit length is repeatedly executed until a wiring endpoint is determined to determine a wiring scheme. The wiring scheme includes a wiring endpoint and a wiring path. The application can quickly determine a wiring scheme and has better balance.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of integrated circuit wiring technology, and more specifically, to a wiring scheme determination method, apparatus, electronic device, and storage medium. Background Technology

[0002] Wire routing is a crucial part of integrated circuit back-end design, its task being to connect all equivalent nodes in a chip via metal interconnects. Given node locations and connection relationships, wire routing algorithms must determine the network topology and specific routing segments while satisfying certain constraints (such as design rules and routing resources), and, based on what is feasible for routing, pursue optimization objectives (such as minimizing bus length and maximizing timing relaxation). For multi-pin networks, wire routing algorithms typically incorporate additional intermediate nodes; carefully placed intermediate nodes can often increase the common routing portion of the net, thereby reducing the overall net length.

[0003] As designs become more complex, layout blocking blocks and macrocells further squeeze routing resources, making it increasingly difficult to find suitable balanced locations for intermediate nodes.

[0004] In summary, existing technologies suffer from the problem of difficulty in determining wiring schemes. Summary of the Invention

[0005] The purpose of this application is to provide a method, apparatus, electronic device and storage medium for determining a wiring scheme, so as to solve the problem that it is difficult to determine a wiring scheme in the prior art.

[0006] To achieve the above objectives, the technical solutions adopted in the embodiments of this application are as follows:

[0007] In a first aspect, embodiments of this application provide a method for determining a wiring scheme, the method comprising:

[0008] Obtain the data to be wired, wherein the data to be wired includes multiple wiring objects and configuration files, and each wiring object includes location information;

[0009] For each cabling object, advance synchronously by unit length until it overlaps with another cabling object or exceeds the range of the configuration file, and treat each advancement scheme as an alternative scheme;

[0010] Based on the control strategy in the configuration file, a target solution is selected from the alternative solutions, and overlapping wiring objects in the target solution are merged into a new wiring object;

[0011] Repeat the step of advancing each wiring object by unit length until the wiring endpoint is determined, thereby determining the wiring scheme, wherein the wiring scheme includes the wiring endpoint and the wiring path.

[0012] Optionally, the step of advancing each wiring object by unit length includes:

[0013] For each of the wiring objects, advance along both the horizontal and vertical directions by unit length;

[0014] The step of considering each propulsion scheme as an alternative includes:

[0015] The plan that advances laterally is considered the first alternative, and the plan that advances longitudinally is considered the second alternative.

[0016] Optionally, after the step of merging overlapping wiring objects in the target scheme into a new wiring object, the method further includes:

[0017] Delete overlapping wiring pairs in the target scheme;

[0018] The step of determining the wiring endpoint includes:

[0019] When there is only one remaining wiring object, the location information of the remaining wiring object is used as the location information of the wiring endpoint.

[0020] Optionally, the step of advancing each wiring object by unit length includes:

[0021] Take the position of the wiring object as the starting point, advance one unit length in both the horizontal and vertical directions, and take the position after advancement as the base point.

[0022] When the base point position does not overlap with the base point position of any other wiring object after advancement and does not exceed the range of the configuration file, the base point position is taken as the starting position, and the advancement is carried out by one unit length in both the horizontal and vertical directions until it overlaps with another wiring object or exceeds the range of the configuration file.

[0023] Optionally, the configuration file also includes routing information. After the steps of synchronously advancing each routing object by unit length until it overlaps with another routing object or exceeds the range of the configuration file, and considering each advancement scheme as an alternative, the method further includes:

[0024] If the target solution is not included in the alternative solutions, the wiring method information is changed according to the configuration file until the target solution is determined.

[0025] Optionally, the control strategy in the configuration file includes:

[0026] When the number of overlapping pairs is the same, the candidate with the shortest path is selected as the target solution; or

[0027] When path lengths are the same, the candidate with the most overlapping pairs is selected as the target solution; or

[0028] Select the candidate with the minimum path length / number of overlap pairs as the target solution; or

[0029] The candidate scheme with the minimum number of transfers / number of overlapping pairs is selected as the target scheme.

[0030] Optionally, the configuration file includes wiring boundary locations and obstacle locations, and the step of synchronously advancing each wiring object by unit length until it overlaps with another wiring object or exceeds the range of the configuration file includes:

[0031] For each wiring object, advance synchronously by unit length until the boundary position or the obstacle position is reached.

[0032] Secondly, embodiments of this application also provide a wiring scheme determination device, the device comprising:

[0033] An information acquisition unit is used to acquire data to be wired, wherein the data to be wired includes multiple wiring objects and configuration files, and each wiring object includes location information;

[0034] The data processing unit is used to synchronously advance each cabling object by unit length until it overlaps with another cabling object or exceeds the range of the configuration file, and to treat each advancement scheme as an alternative scheme.

[0035] The data processing unit is also used to select a target scheme from the alternative schemes according to the control strategy in the configuration file, and merge the overlapping wiring objects in the target scheme into a new wiring object;

[0036] The data processing unit is also used to repeatedly execute the step of advancing each wiring object by unit length until the wiring endpoint is determined, so as to determine the wiring scheme, wherein the wiring scheme includes the wiring endpoint and the wiring path.

[0037] Thirdly, embodiments of this application also provide an electronic device, including: a memory for storing one or more programs; a processor; and when the one or more programs are executed by the processor, the above-described wiring scheme determination method is implemented.

[0038] Fourthly, embodiments of this application also provide a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements the above-described wiring scheme determination method.

[0039] Compared with the prior art, this application has the following advantages:

[0040] This application provides a method, apparatus, electronic device, and storage medium for determining a routing scheme. First, routing data is acquired, including multiple routing objects and configuration files. Each routing object includes location information. Each routing object is advanced synchronously by unit length until it overlaps with another routing object or exceeds the range of the configuration file. Each advancement scheme is considered as a candidate scheme. A target scheme is selected from the candidate schemes according to the control strategy in the configuration file. Two overlapping routing objects in the target scheme are merged into a new routing object. The step of advancing each routing object by unit length is repeated until the routing endpoint is determined, thus determining the routing scheme. The routing scheme includes the routing endpoint and the routing path. On one hand, this application can quickly determine a routing scheme based on routing objects and configuration files. On the other hand, this application adopts a trial-and-error approach for each routing object, enabling the routing objects to achieve horizontal and vertical balanced routing, resulting in better balance and facilitating subsequent timing optimization and convergence.

[0041] To make the above-mentioned objectives, features and advantages of this application more apparent and understandable, preferred embodiments are described below in detail with reference to the accompanying drawings. Attached Figure Description

[0042] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of this application and should not be regarded as a limitation of the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.

[0043] Figure 1 A schematic diagram of the modules of an electronic device provided in an embodiment of this application.

[0044] Figure 2 This is a flowchart illustrating the wiring scheme determination method provided in an embodiment of this application.

[0045] Figure 3 This is a flowchart illustrating the wiring scheme determination device provided in an embodiment of this application.

[0046] In the picture:

[0047] 100 - Electronic device; 101 - Processor; 102 - Memory; 103 - Communication interface; 200 - Wiring scheme determination device; 210 - Information acquisition unit; 220 - Data processing unit. Detailed Implementation

[0048] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. The components of the embodiments of this application described and shown in the accompanying drawings can generally be arranged and designed in various different configurations.

[0049] Therefore, the following detailed description of the embodiments of this application provided in the accompanying drawings is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of the application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.

[0050] It should be noted that similar reference numerals and letters in the following figures indicate similar items; therefore, once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures. Furthermore, in the description of this application, the terms "first," "second," etc., are used only to distinguish descriptions and should not be construed as indicating or implying relative importance.

[0051] The following detailed description of some embodiments of this application is provided in conjunction with the accompanying drawings. Unless otherwise specified, the following embodiments and features can be combined with each other.

[0052] As described in the background section, existing technologies suffer from difficulties in determining routing schemes. For example, some special routing tasks, such as clock tree routing, impose additional requirements on network balance on top of the ordinary routing problem. A clock routing problem consists of a root node (i.e., the endpoint) and s-1 clock sinks, requiring that the time delay difference of the time signal from the root node to all sinks be minimized. A clock tree with zero time delay difference is called a zero-delay tree. Typically, routing algorithms estimate the delay based on the wire length and determine the positions of intermediate nodes from top to bottom or bottom to top to construct the clock tree.

[0053] The routing algorithm not only needs to determine the location and length of the routing trace, but also the metal layer on which the trace segment is located. Typically, a metal layer only accommodates traces in the same direction (horizontal or vertical), with adjacent non-co-directional trace segments connected by vias. Considering the inconsistencies in electrical parameters across different metal layers, the time delay estimated based on the trace length often deviates from the actual situation. Furthermore, due to disturbances caused by environmental and process conditions, this deviation is often difficult to estimate accurately. With the continuous increase in clock signal frequency and the increasing prevalence of multi-mode and multi-angle analysis, the challenges posed by time delay to timing convergence are becoming increasingly severe. Simultaneously, as designs become more complex, placement blocking blocks and macrocells further squeeze routing resources, making it increasingly difficult to find suitable balanced locations for intermediate nodes.

[0054] In view of this, this application provides a method for determining a wiring scheme, which determines the wiring scheme of all wiring objects by synchronously advancing the wiring objects by unit length.

[0055] It should be noted that the wiring scheme determination method provided in this application is applied to electronic devices; please refer to [link / reference]. Figure 1 The electronic device 100 may include a memory 102, a processor 101, and a communication interface 103, which are electrically connected directly or indirectly to each other to enable data transmission or interaction. For example, these components may be electrically connected to each other via one or more communication buses or signal lines.

[0056] The memory 102 can be used to store software programs and modules, such as the program instructions or modules corresponding to the positioning device provided in the embodiments of this application. The processor 101 executes the software programs and modules stored in the memory 102 to perform various functional applications and data processing, thereby executing the steps of the positioning method provided in the embodiments of this application. The communication interface 103 can be used to communicate with other node devices for signaling or data.

[0057] The memory 102 may be, but is not limited to, random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.

[0058] The processor 101 can be an integrated circuit chip with signal processing capabilities. The processor 101 can be a general-purpose processor 101, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.

[0059] Understandable. Figure 1 The structure shown is for illustrative purposes only; the electronic device 100 may also include components that are more advanced than those shown. Figure 1 The more or fewer components shown, or having the same Figure 1 The different configurations shown. Figure 1 The components shown can be implemented using hardware, software, or a combination thereof.

[0060] The following is an exemplary description of the wiring scheme determination method provided in this application:

[0061] As an optional implementation, please refer to Figure 2 The method for determining the cabling scheme provided in this application includes:

[0062] S102, Obtain the data to be wired, wherein the data to be wired includes multiple wiring objects and configuration files, and each wiring object includes location information.

[0063] S104, advance each cabling object synchronously by unit length until it overlaps with another cabling object or exceeds the range of the configuration file, and treat each advancement scheme as an alternative.

[0064] S106, Select a target solution from the alternative solutions according to the control strategy in the configuration file, and merge the overlapping wiring objects in the target solution into a new wiring object.

[0065] S108, Repeat the step of advancing each wiring object by unit length until the wiring endpoint is determined, so as to determine the wiring scheme, wherein the wiring scheme includes the wiring endpoint and the wiring path.

[0066] This application employs a horizontally and vertically balanced winding method to achieve synchronous advancement per unit length. The wire mesh is composed of a series of wiring segments of equal length and direction. Because wiring segments with the same direction can be arranged on the same metal layer, the time delay caused by the inconsistency of the electrical parameters of the metal wiring layer can be well controlled in actual chips. This is particularly beneficial for timing optimization and convergence in multimode and multi-angle analysis.

[0067] It should be noted that the wiring objects provided in this application refer to multiple starting points of wiring. For example, in a 10*10 inch circuit board, the points requiring wiring include points A(0,0), B(0,1), C(1,1), and D(1,0). Points A, B, C, and D are all wiring objects, and each wiring object has corresponding position information. This application uses coordinates to represent the position information of the wiring objects. When locating the position information, the coordinate axes can be set as needed. For example, the center of the circuit board can be used as the origin of the coordinate axes, or the endpoints of the circuit board can be used as the origin of the coordinate axes; no limitation is made here.

[0068] The configuration file can include system-preset data and user-defined data. For example, the system-preset data can include the size of the circuit board, the location and size of obstacles, and the wiring layer. The circuit board generally consists of multiple layers, and each wiring layer can be wired separately. At the same time, each wiring layer has a certain size, and the wiring area cannot exceed this area. Obstacles represent areas that cannot be reached during wiring. For example, if electronic components are located in this area, the wiring must bypass the obstacle.

[0069] User settings include routing methods, such as whether to use straight or non-straight routing. Non-straight routing includes whether to use loop segments, whether to use broken lines to update the routing scheme, and whether to accept unbalanced routing schemes.

[0070] Of course, in some implementations, the preset data and the user-defined data can be set separately, that is, the configuration file only contains the relevant parameters set by the user, and the preset data is stored in other databases.

[0071] After obtaining the cabling data, each cabling object can be advanced synchronously by unit length until it overlaps with another cabling object or exceeds the range of the configuration file, and each advancement scheme can be used as an alternative scheme.

[0072] For example, if the wiring objects include X(0,0) and Y(2,0), then when X(0,0) moves one unit length to the right and Y(2,0) moves one unit length to the left, both objects X and Y can move to the position (1,0) and overlap at this position. This can be considered as an alternative solution.

[0073] Understandably, after this advancement method, multiple alternative solutions can be obtained. Then, according to the selection strategy given in the configuration file, the superior solution is selected as the target solution from the alternative solutions, and one or more routing object pairs in the target solution are merged into a new routing object. It should be noted that the routing object pair mentioned in this application refers to two routing objects that can overlap after advancement. For example, if object X and object Y can both be advanced to the position (1,0) to overlap, then object X and object Y form a routing object pair.

[0074] It should also be noted that, as one implementation method, the control strategies in the configuration file include, but are not limited to:

[0075] The first approach is to select the candidate with the shortest path as the target solution when the number of overlapping pairs is the same.

[0076] The second approach is to select the candidate with the most overlapping pairs as the target solution when the path lengths are the same.

[0077] The third approach is to select the candidate with the minimum path length / number of overlapping pairs as the target solution.

[0078] The fourth option is to select the candidate with the minimum number of transfers / number of overlapping pairs as the target option.

[0079] For example, if routing objects X and Y overlap during the routing process, and this alternative route involves two routing steps; and if routing objects X and Z also overlap during the routing process, and this alternative route involves three routing steps, assuming the shortest path selection strategy is used, then when determining the target route, the alternative route including routing objects X and Y will be selected as the target route to minimize the path of the newly determined routing objects. The process of advancing each routing object by unit length is then repeated until a routing scheme is determined.

[0080] As one implementation method, the steps in S104 include:

[0081] S1041, advance each of the wiring objects in both the horizontal and vertical directions by unit length.

[0082] The steps for considering each advancement plan as an alternative include:

[0083] S1042, the plan that advances laterally is the first alternative, and the plan that advances longitudinally is the second alternative.

[0084] Understandably, the lateral advancement described in this application can point to the left or right, and the vertical advancement can point to the up or down. By treating all lateral advancement schemes as first alternatives and all vertical advancement schemes as second alternatives, the data can be classified, facilitating the determination of the target scheme.

[0085] In one alternative implementation, after merging the two routing objects in the target scheme into a new routing object, the method further includes:

[0086] Delete the two wiring objects in the target solution;

[0087] The steps to determine the endpoint of the wiring include:

[0088] When there is only one remaining cabling object, the location information of the remaining cabling object is used as the location information of the cabling endpoint.

[0089] In other words, the routing scheme is determined iteratively, with each iteration reducing the number of routing objects until only one object remains. The location of this single object is the midpoint of the routing path. This process determines the routing scheme, which includes the routing endpoint and the routing path.

[0090] For example, when there are four routing objects, A, B, C, and D, after the first round of target scheme determination, a new routing object E is determined by objects A and B, where the length of routing object E to routing objects A and B is the same; a new routing object F is determined by objects C and D, where the length of routing object F to routing objects C and D is the same. After the first iteration, new routing objects E and F are obtained, and the system automatically deletes the original routing objects A, B, C, and D, reducing the number of routing objects from four to two. Then, the next iteration continues, determining the target scheme based on the new routing objects E and F, resulting in a new routing object G, while simultaneously deleting routing objects E and F. At this point, only routing object G remains. The location information of G is used as the location information of the routing endpoint, and this is integrated with the routing path to form the final routing scheme.

[0091] Based on this, after step S102, the method further includes:

[0092] S103, determine if the number of wiring objects is greater than one. If yes, execute the step of synchronously advancing each wiring object by unit length. If no, exit.

[0093] In each iteration of the target solution, the system will determine whether the number of routing objects is greater than one, and use this as a basis to determine whether the routing endpoint has been reached.

[0094] As one implementation method, the steps in S104 include:

[0095] S1043, take the position of the wiring object as the starting position, advance one unit length in both the horizontal and vertical directions, and take the position after advancement as the base point position;

[0096] S1044, when the base point position does not overlap with the base point position of any other cabling object after advancement and does not exceed the range of the configuration file, the base point position is taken as the starting position, and the position is advanced one unit length in both the horizontal and vertical directions until it overlaps with another cabling object or exceeds the range of the configuration file.

[0097] Starting from the location of the wiring object, proceed in all directions. Taking horizontal advancement as an example, there are two alternative options: advancing one unit length to the right and advancing one unit length to the left. If the requirements are not met at this point, continue advancing forward. When advancing forward, taking the option of advancing to the right as an example, you can advance further to the right or vertically (upward or downward) until it overlaps with another wiring object or exceeds the range of the configuration file.

[0098] For example, taking a routing object a(0,0) as an example, if it is pushed to the right by one unit length, the base point position after the push is (1,0). If it does not overlap with other routing objects after the first push, a second push is required. At this time, based on the base point position (1,0), it is pushed up, down and to the right respectively to obtain new base point positions (1,1), (2,0) and (1,-1) respectively. Then, it is continued in this way until the routing objects overlap or exceed the range of the configuration file.

[0099] In one implementation, the process terminates when two overlapping routing objects are encountered during the routing process. This is because, since this application uses the shortest path as the target solution, if two overlapping routing objects are encountered, even if the process continues, the path length increases with the number of iterations. In other words, the earliest overlapping routing object will ultimately be selected as the target solution. Therefore, to reduce the system's computational load, the process terminates when two overlapping routing objects are encountered.

[0100] Furthermore, the configuration file provided in this application may include wiring boundary locations and obstacle locations. The step of synchronously advancing each wiring object by unit length until it overlaps with another wiring object or exceeds the range of the configuration file includes:

[0101] For each cabling object, advance synchronously by unit length until the boundary or obstacle position is reached.

[0102] For example, if (1,0) is in an obstacle position, and the wiring object is advancing, and reaches (1,0) after advancing one unit length, it means that the advancement has entered the obstacle position, and the advancement is not valid.

[0103] As an optional implementation, when the configuration file also includes routing information, such as user-defined routing methods, the method further includes the following steps after synchronously advancing each routing object by unit length until it overlaps with another routing object or exceeds the scope of the configuration file, and considering each advancement scheme as an alternative:

[0104] If the target solution is not included in the alternative solutions, the wiring method information is changed according to the configuration file until the target solution is determined.

[0105] If, during a certain process, a solution for overlapping routing objects cannot be determined, it means that the target solution cannot be determined horizontally or vertically. In this case, it is necessary to change the routing method, such as adding a zigzag routing method or a diagonal routing method.

[0106] It should be noted that, as one implementation, the electronic device provided in this application may include multiple databases storing different data. For example, the databases may include a cabling resource database, a cabling object database, a cabling process configuration file, a database of alternative cabling schemes, and a database of established cabling schemes.

[0107] The routing resource database contains layout information for integrated circuit designs, including the size of the design, the location and size of obstacles, and the routing layer to which they belong.

[0108] The cabling object database contains all cabling objects with undetermined cabling schemes. Each cabling object includes its initial location and possible acceptable cabling schemes, which start from the same initial location, pass through a series of cabling segments of the same length located on the same cabling layer, and reach different endpoints.

[0109] The defined cabling scheme database contains all defined cabling schemes, represented as a series of nets with different endpoints.

[0110] The cabling process configuration file is generated based on user settings. These settings include whether to use loopback segments, whether to use polylines to update the cabling scheme, and whether to accept unbalanced cabling schemes. A process for updating the alternative scheme database is generated based on these settings.

[0111] The alternative cabling scheme database is initialized from the cabling object database and updated with possible cabling schemes for each cabling object according to the cabling process configuration file. It advances all cabling schemes for cabling objects at different cabling layers, advancing one unit at a time and communicating with the cabling resource database to check the validity of the advancement (invalid if the endpoint of the cabling object enters an obstacle area or exceeds the design area). Updates stop when the database contains one or more pairs of cabling objects whose endpoints reach the same location, or when a query reveals that the advancement renders all possible cabling schemes for a certain cabling object invalid. If, during an update, at least one alternative cabling scheme database contains one or more pairs of cabling objects whose cabling schemes can be merged (i.e., their endpoints reach the same location), the alternative cabling scheme database can be used to update both the cabling object database and the established cabling scheme database. If both alternative cabling scheme databases meet the update conditions, one is selected based on a certain strategy. For cabling object pairs whose cabling schemes have been merged in the selected alternative scheme database, the corresponding cabling scheme is fixed and added to the established cabling scheme database. The original object is deleted from the cabling object database, and a new cabling object is constructed with the endpoint merging position as the initial position and added to the cabling object database. For cabling objects that cannot be merged, their schemes in the cabling object database are updated with possible cabling schemes from the alternative cabling scheme database. If neither alternative scheme database meets the update conditions, the alternative cabling scheme databases are re-initialized, and a new cabling method is selected for updating according to the cabling process configuration file.

[0112] The following example illustrates the layout information obtained after the layout is completed. The wiring area is a 10×10 square area with the origin of the coordinate system located at the center of the square. There are four clock receiving points to be wired, which are the wiring objects. The positions are (-2, 3), (2, 3), (-2, -3), and (4, -3), respectively. There are no obstacles, meaning that the layout can be carried out within the square area.

[0113] First, a global initialization is performed. Based on the location information of the four clock receiving points, the routing object database is initialized. After initialization, the database contains four objects and their initial positions, but no acceptable routing schemes yet. The routing resource database is also initialized; since there are no obstacles, only routing area information is available. Based on user settings—no loopback segments, use polylines, or accept unbalanced routing schemes—the corresponding routing process configuration file is obtained: first try using straight segments (default), then try using polylines; if unsuccessful, unbalanced routing schemes are acceptable. The current routing object database is copied to initialize the alternative routing scheme database.

[0114] After global initialization, since the wiring object database contains four objects, the first iteration begins. According to the process configuration file, the alternative solution database is updated using straight line segments, the wiring objects and their potentially accepted wiring scheme information are copied from the wiring object database, and the alternative wiring scheme database is updated.

[0115] Update the alternative solution database: Assuming the alternative solution database is updated at the horizontal routing layer, and the alternative solution database is updated at the vertical routing layer. The update process of the alternative solution database is described using the update of a cabling object with an initial position of (-2, 3) as an example:

[0116] Since there is no acceptable routing scheme for the routing object at this time, there are two routing schemes [(-2, 3), (-2-, 3)] and [(-2, 3), (-2+, 3)] as we move from the initial position to the left and right respectively.

[0117] After two advances, the endpoints of the two alternative schemes reached (-4, 3) and (0, 3) respectively. At this point, the wiring object with an initial position of (2, 3) also had a wiring scheme whose endpoint reached the position of (0, 3), thus the update of the alternative scheme database ended.

[0118] In the alternative solution database, the two routing schemes for this routing object are [(-2, 3), (-2, 3-)] and [(-2, 3), (-2, 3+)]. After three iterations, the endpoint of one routing scheme reaches (-2, 0). At the same time, the routing object with the initial position (-2, -3) also has a routing scheme whose endpoint reaches that position. There are merging routing objects, and the update ends.

[0119] Decision on acceptance / rejection: At this point, both alternative solution databases meet the update conditions, and each has a pair of wiring objects that can be merged. However, one alternative solution database has fewer progress steps than the other, so the alternative solution database with fewer progress steps is selected.

[0120] After determining the target implementation plan, update the cabling object database and the established cabling scheme database. For merged cabling object pairs, delete the original objects, add new objects, and save the cabling schemes: delete the cabling objects with initial positions (-2, 3) and (2, 3) from the cabling object database, and add the cabling object with an initial position (0, 3); add the corresponding cabling schemes [(-2, 3), (0, 3)] and [(2, 3), (0, 3)] to the established cabling scheme database.

[0121] For cabling objects that failed to be merged, update their cabling schemes: Taking an object with an initial position of (-2, -3) as an example, at this time, the object has no cabling scheme in the cabling resource database. After the update, the object in the cabling object database contains two cabling schemes [(-2, -3), (0, -3)] and [(-2, -3), (-4, -3)].

[0122] After the first iteration, the routing object database contains three routing objects, which does not meet the termination condition, so a new iteration begins. The main process is the same as the first iteration. Taking the routing object with an initial position of (-2, -3) in the alternative solution database as an example, we can illustrate the second update of the alternative solution database.

[0123] After initialization, the object has two routing schemes: [(-2,-3),(0,-3)] and [(-2,-3),(-4,-3)]. The alternative scheme database starts from the end point of the existing routing scheme and advances the routing scheme in the vertical routing layer. Therefore, the two routing schemes will be expanded into four [(-2,-3),(0,-3),(0,-3+)], [(-2,-3),(0,-3),(0,-3-)], [(-2,-3),(-4,-3),(-4,-3+)], and [(-2,-3),(-4,-3),(-4,-3-)].

[0124] After three steps, the endpoint of one of the cabling schemes reaches (0, 0), which is [(-2, -3), (0, -3), (0, 0)], and merges with the endpoint of another cabling object, thus ending the update.

[0125] The alternative routing scheme database for this iteration also has a pair of merging routing object pairs, and only requires one step to advance, which is less costly, so the alternative routing scheme data is accepted.

[0126] After the second iteration, the routing object library contains two objects, and two new routing schemes have been added to the defined routing scheme database: [(-2,-3),(0,-3),(1,-3)] and [(4,-3),(2,-3),(1,-3)].

[0127] After the third iteration, [(1,-3),(1,0)] and [(0,3),(1,3),(1,0)] are added to the database of the established cabling schemes. The cabling resource database is left with only one object with an initial position of (1,0), and the program ends.

[0128] This invention achieves horizontally and vertically balanced routing by updating two alternative routing scheme databases, probing and advancing alternative routing schemes for the routing object at different routing layers, and selecting whether to accept the probe and which alternative scheme to accept based on a certain strategy. Compared with existing routing algorithms, the horizontally and vertically balanced routing provided in this application has better balance. In some special routing tasks, such as clock tree routing, this improved balance is beneficial to subsequent timing optimization and convergence, and is of great significance.

[0129] Furthermore, because a series of potentially acceptable routing schemes are constructed for each routing object, all routing schemes for a given routing object start from the same point, passing through a series of segments of the same length located in the same routing layer to reach different endpoints. For a given routing object database or alternative routing scheme database, the paths tracing back from all global endpoints to their corresponding initial clock receiving points are also composed of routing segments of the same length located in the same routing layer, resulting in better performance.

[0130] Based on the above implementation method, please refer to Figure 3 This application provides a wiring scheme determination device 200, which includes:

[0131] The information acquisition unit 210 is used to acquire the data to be wired, wherein the data to be wired includes multiple wiring objects and configuration files, and each wiring object includes location information.

[0132] Understandably, the above-described S102 can be executed by the information acquisition unit 210.

[0133] The data processing unit 220 is used to synchronously advance each cabling object by unit length until it overlaps with another cabling object or exceeds the range of the configuration file, and to treat each advancement scheme as an alternative scheme.

[0134] Understandably, the above-described S104 can be executed by the data processing unit 220.

[0135] The data processing unit 220 is also used to determine the shortest path between two cabling objects from the alternative schemes as the target scheme, and to merge the two cabling objects in the target scheme into a new cabling object.

[0136] Understandably, the above-described S106 can be executed by the data processing unit 220.

[0137] The data processing unit 220 is also used to repeatedly perform the step of advancing each wiring object by unit length until the wiring scheme is determined.

[0138] Understandably, the above-described S108 can be executed by the data processing unit 220.

[0139] Understandably, each of the above methods and steps can correspond to a functional module to execute the corresponding steps, which will not be elaborated here.

[0140] In summary, this application provides a method, apparatus, electronic device, and storage medium for determining a routing scheme. First, routing data is acquired, including multiple routing objects and configuration files. Each routing object includes location information. Each routing object is advanced synchronously by unit length until it overlaps with another routing object or exceeds the range of the configuration file. Each advancement scheme is considered as a candidate scheme. A target scheme is selected from the candidate schemes according to the control strategy in the configuration file. Two overlapping routing objects in the target scheme are merged into a new routing object. The step of advancing each routing object by unit length is repeated until the routing endpoint is determined, thus determining the routing scheme. The routing scheme includes the routing endpoint and the routing path. On one hand, this application can quickly determine the routing scheme based on routing objects and configuration files. On the other hand, this application adopts a trial-and-error approach for each routing object, enabling the routing objects to achieve horizontal and vertical balanced routing, resulting in better balance and facilitating subsequent timing optimization and convergence.

[0141] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

[0142] It will be apparent to those skilled in the art that this application is not limited to the details of the exemplary embodiments described above, and that this application can be implemented in other specific forms without departing from the spirit or essential characteristics of this application. Therefore, the embodiments should be considered illustrative and non-limiting in all respects, and the scope of this application is defined by the appended claims rather than the foregoing description. Thus, all variations falling within the meaning and scope of equivalents of the claims are intended to be included within this application. No reference numerals in the claims should be construed as limiting the scope of the claims.

Claims

1. A method for determining a wiring scheme, characterized in that, The method includes: Obtain the data to be wired, wherein the data to be wired includes multiple wiring objects and configuration files, and each wiring object includes location information; For each cabling object, advance synchronously by unit length until it overlaps with another cabling object or exceeds the range of the configuration file, and consider each advancement scheme as an alternative; the range of the configuration file includes cabling boundary locations or obstacle locations. Based on the control strategy in the configuration file, a target solution is selected from the alternative solutions, and overlapping wiring objects in the target solution are merged into a new wiring object; Repeat the step of advancing each wiring object by unit length until the wiring endpoint is determined, thereby determining the wiring scheme, wherein the wiring scheme includes the wiring endpoint and the wiring path; wherein the control strategy in the configuration file includes: When the number of overlapping pairs is the same, the candidate with the shortest path is selected as the target solution; or When path lengths are the same, the candidate with the most overlapping pairs is selected as the target solution; or Select the candidate with the minimum path length / number of overlapping pairs as the target solution; or The candidate scheme with the minimum value of the number of turns / number of overlapping pairs is selected as the target scheme.

2. The wiring scheme determination method as described in claim 1, characterized in that, The steps for advancing each wiring object by unit length include: For each of the wiring objects, advance along both the horizontal and vertical directions by unit length; The step of considering each propulsion scheme as an alternative includes: The plan that advances laterally is considered the first alternative, and the plan that advances longitudinally is considered the second alternative.

3. The wiring scheme determination method as described in claim 1, characterized in that, After the step of merging overlapping wiring objects in the target scheme into a new wiring object, the method further includes: Delete overlapping wiring pairs in the target scheme; The step of determining the wiring endpoint includes: When there is only one remaining wiring object, the location information of the remaining wiring object is used as the location information of the wiring endpoint.

4. The wiring scheme determination method as described in claim 1, characterized in that, The steps for advancing each wiring object by unit length include: Take the position of the wiring object as the starting point, advance one unit length in both the horizontal and vertical directions, and take the position after advancement as the base point. When the base point position does not overlap with the base point position of any other wiring object after advancement and does not exceed the range of the configuration file, the base point position is taken as the starting position, and the advancement is carried out by one unit length in both the horizontal and vertical directions until it overlaps with another wiring object or exceeds the range of the configuration file.

5. The wiring scheme determination method as described in claim 1, characterized in that, The configuration file also includes routing information. After the step of synchronously advancing each routing object by unit length until it overlaps with another routing object or exceeds the range of the configuration file, and considering each advancement scheme as an alternative scheme, the method further includes: If the target solution is not included in the alternative solutions, the wiring method information is changed according to the configuration file until the target solution is determined.

6. A wiring scheme determination device, characterized in that, The device includes: An information acquisition unit is used to acquire data to be wired, wherein the data to be wired includes multiple wiring objects and configuration files, and each wiring object includes location information; The data processing unit is used to synchronously advance each cabling object by unit length until it overlaps with another cabling object or exceeds the range of the configuration file, and to treat each advancement scheme as an alternative scheme; the range of the configuration file includes cabling boundary locations or obstacle locations. The data processing unit is further configured to select a target solution from the alternative solutions according to the control strategy in the configuration file, and merge overlapping wiring objects in the target solution into new wiring objects; wherein the control strategy in the configuration file includes: When the number of overlapping pairs is the same, the candidate with the shortest path is selected as the target solution; or When path lengths are the same, the candidate with the most overlapping pairs is selected as the target solution; or Select the candidate with the minimum path length / number of overlapping pairs as the target solution; or The candidate scheme with the minimum value of the number of turns / number of overlapping pairs is selected as the target scheme; The data processing unit is also used to repeatedly execute the step of advancing each wiring object by unit length until the wiring endpoint is determined, so as to determine the wiring scheme, wherein the wiring scheme includes the wiring endpoint and the wiring path.

7. An electronic device, characterized in that, include: Memory, used to store one or more programs; processor; When the processor executes the one or more programs, it implements the wiring scheme determination method as described in any one of claims 1-5.

8. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the wiring scheme determination method as described in any one of claims 1-5.

Citation Information

Patent Citations

  • Power distribution network single line diagram generation method and device and storage medium

    CN112685868A