FPGA routing method to solve resource conflicts by partial rerouting
By partially rewinding in FPGA wiring, the frequent dismantling and rewinding caused by resource conflicts is solved, and the wiring efficiency is improved and time-consuming is reduced. It is especially suitable for wire networks with a large number of leakage ends or a long distance from the source end.
Patent Information
- Application Number
- CN202111469893.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-03
- Publication Date
- 2025-03-18
- Estimated Expiration
- 2041-12-03
AI Technical Summary
During the FPGA wiring process, resource conflicts often occur, resulting in frequent dismantling and rewinding of the network, which is less efficient and takes longer.
Resolving resource conflicts through partial rewinding methods, the specific steps include: determining the area to be rewinded based on the wiring resource node, removing some wiring nodes in the area and retaining the rest of the parts, and rewinding the demolished part using a preset wiring algorithm.
This method reduces the number and space of leakage ends when rewinding, reduces wiring time and memory usage, and has a significant optimization effect on wire networks with large number of leakage ends or long distances from the source end.
Smart Images

Figure CN114169277B_ABST
Abstract
Description
Technical Field
[0001] The invention relates to the field of FPGA, and in particular to an FPGA wiring method for resolving resource conflicts by partially rewinding wires. Background Art
[0002] FPGA routing is the process of connecting the occupied logic units using the device's programmable interconnect resources after chip layout. When routing FPGA, it is generally necessary to abstract the programmable logic resources on the FPGA, including the interconnect resources, into a routing diagram G = (V, E). The wiring diagram has all the underlying modules, architectures, and interconnect resources. Each point n in V represents a port of a routing resource or resource module in the FPGA, and each directed edge e in E = (n 1 ,n 2 ) represents n 1 Point to n 2 The switch that the point passes through. The line network N in the user design netlist i When mapped to FPGA, the corresponding line network N i is the combination of its line network endpoints, including the source end s i And several drain terminals ij , wire network N i It can be regarded as a subset of V. Using routing algorithms such as congestion negotiation algorithms to route the network N i Implement routing, that is, find a routing tree RT composed of routing resources (line segments) on G i Can i With all the t ij All connected. Repeat the above process until all the nets have corresponding wiring trees.
[0003] In the process of routing each net, the ideal situation is to find a path with completely unoccupied resources, but in reality it is easy to find a path with completely unoccupied resources. In this case, the resources occupied by other nets can be forcibly used to obtain the routing path of this net, which will cause the same resource to be repeatedly occupied by multiple nets and form a conflict. Therefore, after routing all nets, it is usually necessary to resolve the resource conflict problem. The specific operation is to remove all the repeated or conflicting nets and reroute them. This iteration is repeated many times until no routing resource in the routing diagram is shared or occupied by more than one net, that is, there is no routing conflict.
[0004] When rewinding a wire net, the entire existing wiring tree of the wire net needs to be removed. However, in reality, only some local connections at the drain end of a wire net may have resource conflicts, while most of the others are correctly connected and conflict-free. However, the rewinding wires still need to be removed, resulting in a lot of time waste and low rewinding efficiency. Summary of the invention
[0005] In view of the above problems and technical requirements, the inventors have proposed an FPGA wiring method for resolving resource conflicts by partially rewinding the wires. The technical solution of the present invention is as follows:
[0006] An FPGA routing method for resolving resource conflicts by partially rewinding wires, the method comprising:
[0007] Based on the wiring resource nodes inside the FPGA, the preset wiring algorithm is used to implement wiring for each wire net in the user input netlist;
[0008] Traversing each to-be-processed wire net of the wiring resource node involving resource conflicts in the existing wiring tree;
[0009] Determine the corresponding area to be rewound based on the layout position of the wiring resource node with resource conflict in each line network to be processed;
[0010] For each wire network to be processed, some wiring nodes of the existing wiring tree of the wire network to be processed are removed based on the corresponding area to be rewound, and the remaining wiring tree is retained. The removed parts are rewound using a preset wiring algorithm to obtain an updated wiring tree of the wire network to be processed.
[0011] The beneficial technical effects of the present invention are:
[0012] The present application discloses an FPGA routing method for resolving resource conflicts by partially rewinding lines. The method determines the corresponding area to be rewound based on the layout position of the routing resource nodes with resource conflicts in each line network to be processed, and only removes and rewinds some routing nodes based on the area to be rewound, while keeping other parts unchanged. This can reduce the number and search space of drain terminals when rewinding the lines, and reduce routing time and memory usage on the basis of resolving resource conflicts. In particular, it can save a lot of operating time for lines with a large number of drain terminals and / or a drain terminal that is far away from a source terminal.
[0013] Furthermore, by inserting a virtual source terminal, the wiring trees of each area to be rewound can remain relatively independent. This approach allows multiple areas to be rewound to be dismantled and rewound in parallel based on multi-threading technology, further reducing the operating time of the rewinding line and improving efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 It is a flowchart of an FPGA wiring method disclosed in an embodiment of the present application.
[0015] Figure 2 It is a schematic diagram of the unit areas divided inside the FPGA and the unit areas covered by the network endpoints in the network to be processed in an example of the present application.
[0016] Figure 3 yes Figure 2 The diagram shown is a schematic diagram of the area to be rewound that is dynamically determined for the wire net to be processed.
[0017] Figure 4 is based on Figure 1 The schematic diagram of partial rewinding of the wire web to be processed is shown.
[0018] Figure 5 It is a flowchart of an FPGA wiring method that can realize parallel winding and parallel rewinding of multiple regions disclosed in another embodiment of the present application.
[0019] Figure 6 yes Figure 5 The illustrated embodiment is a schematic diagram of dividing the area covered by the wire mesh endpoints in the wire mesh into a plurality of wire mesh sub-areas.
[0020] Figure 7 It is in the picture Figure 6 The example shown is a schematic diagram showing serial wiring between the source end and the virtual source end and parallel wiring of each network sub-area after adding the virtual source end.
[0021] Figure 8 is based on Figure 7 A wiring tree is shown, and a schematic diagram of removing some wiring nodes and rewinding the wires in parallel for wire mesh sub-area 1 and wire mesh sub-area 4. DETAILED DESCRIPTION
[0022] The specific implementation of the present invention will be further described below in conjunction with the accompanying drawings.
[0023] This application discloses an FPGA wiring method for resolving resource conflicts by partially rewinding the wires. Please refer to Figure 1 , the method comprises the following steps:
[0024] Step 1: Based on the wiring resource nodes inside the FPGA, the preset wiring algorithm is used to implement wiring for each wire net in the user input netlist. This step can be performed according to the existing wiring process. The preset wiring algorithm used here can be a congestion negotiation wiring algorithm or a Lee's maze wiring algorithm, which will not be described in detail in this application.
[0025] Step 2: traverse all the nets to be processed of the routing resource nodes involved in resource conflicts in the existing routing tree. In one embodiment, the nets to be processed are all the nets of the routing resource nodes involved in resource conflicts in the existing routing tree.
[0026] In another embodiment, the line net to be processed is a wiring resource node in an existing wiring tree that involves resource conflicts and contains drain terminals that meet predetermined conditions. That is, in this embodiment, the line net to be processed is not necessarily all the line nets with resource conflicts, but may only be some of the more important line nets that meet the conditions.
[0027] Typically, an embodiment provides a method for selecting a to-be-processed network from all networks with resource conflicts: when the total number of sinks contained in the network reaches a number threshold, and / or the farthest distance between all sinks (Sink) and sources (Source) in the network reaches a distance threshold, it is determined that the sinks in the network meet the predetermined conditions. That is, a network with a large number of sinks and / or a large distance between sinks and sources is selected. This is because when a network that meets these two conditions is fully rewound according to conventional practices, it often takes a long time and occupies a large amount of memory because the number of sinks that need to be searched is large and / or the space for searching is large. After the partial rewinding method of the present application is subsequently adopted, the optimization effect of time consumption and memory occupation is more obvious. For networks other than these two conditions, the time consumption and memory occupation when fully rewound according to conventional practices may be within an acceptable range, and the optimization effect is not obvious, so they can be directly processed according to conventional practices.
[0028] Step 3: Determine the corresponding area to be rewound based on the layout position of the wiring resource node with resource conflict in each line network to be processed.
[0029] (1) An embodiment provides a method in which the FPGA has been pre-divided into a plurality of unit areas, and the area ranges of the divided unit areas can be the same or different. The basis for division and the specific area size can be customized according to the actual situation. For example, each 4x4 CLB area inside the FPGA can be used as a unit area, and another example can be divided based on the clock area, etc. When determining the area to be rewound for all subsequent lines to be processed, the pre-divided unit area is used as the minimum unit to determine. Then, one or more continuous unit areas where the layout position of the wiring resource node with resource conflict in the line network to be processed is located are used as the area to be rewound corresponding to the line network to be processed.
[0030] The layout positions of all the line network endpoints in the line network to be processed cover multiple unit areas, such as Figure 2 As shown, the FPGA is divided into 16 unit areas. Taking the area size of each unit area as an example, all the line network endpoints of the line network to be processed cover 7 unit areas, namely unit areas 2, 3, 6, 7, 10, 11 and 12. Figure 2The circle in the middle represents the source end in the line network to be processed, and the square represents the drain end. In actual application, the layout position of the wiring resource node with resource conflict in the line network to be processed may only exist in one unit area, and the unit area is directly used as the area to be rewound.
[0031] Alternatively, the layout positions of the routing resource nodes with resource conflicts in the to-be-processed line net may exist in multiple unit areas, such as Figure 2 In the figure, the triangle represents the routing resource node with resource conflict. Then, there are routing resource nodes with resource conflict in both unit area 10 and unit area 11. In one case, these multiple unit areas are adjacent and continuous, then these two unit areas can be merged into the area to be rewound, for example Figure 2 In the example, unit area 10 and unit area 11 are combined into a continuous area to be rewound. In this case, the area to be rewound includes multiple unit areas. Another case is that the multiple unit areas are separated by other unit areas, such as Figure 2 This situation is satisfied when the routing resource nodes with resource conflicts are located in unit area 2 and unit area 11. In this case, it is necessary to combine the two unit areas with other unit areas to merge them into a continuous area to be rewound.
[0032] Regardless of the above situation, when the area to be rewound is a continuous area formed by merging multiple unit areas, the coverage of the area to be rewound may be too large, and there may still be problems such as a large number of leakage ends inside the area to be rewound, resulting in the optimization effect of some rewinding lines not being obvious. The present application further stipulates that if the number of leakage ends in the continuous area formed by merging multiple unit areas does not exceed a predetermined threshold, the merged continuous area will be used as the area to be rewound; if the number of leakage ends in the continuous area formed by merging multiple unit areas exceeds a predetermined threshold, only some unit areas containing wiring resource nodes with resource conflicts are selected to form the area to be rewound. The predetermined threshold is a user-defined appropriate value. For example Figure 2 If the number of drain terminals after unit area 10 and unit area 11 are combined exceeds a predetermined threshold, only unit area 10 can be selected as the area to be rewound and the conflict within unit area 11 can be temporarily ignored, or only unit area 11 can be selected as the area to be rewound and the conflict within unit area 10 can be temporarily ignored.
[0033] (2) Another embodiment provides a method that does not pre-divide the unit area, but dynamically determines the area to be rewound according to the actual situation of each line network to be processed, and determines the area with a predetermined area range and covering the layout position of the wiring resource nodes with resource conflicts in the line network to be processed as the corresponding area to be rewound. The specific size of the predetermined area range can be customized, and the number of drain terminals in the area to be rewound exceeds a predetermined threshold. And the predetermined area ranges of the areas to be rewound corresponding to different lines to be processed are the same or different. For example Figure 3 In the example, the area in the dotted box can be selected as the area to be rewound. Figure 2 The area to be rewound determined in this way does not need to be divided into an integer number of unit areas. It can be a regular area or an irregular area. Therefore, it is more flexible and can minimize the number of drain terminals in the area to be rewound on the basis of covering all routing resource nodes with resource conflicts.
[0034] Step 4: For each wire net to be processed, rip up some wiring nodes of the existing wiring tree of the wire net to be processed based on the corresponding area to be rewound, retain the remaining wiring tree, and use the preset wiring algorithm to rewind the ripped parts to obtain the updated wiring tree of the wire net to be processed.
[0035] When removing some wiring nodes based on the corresponding areas to be rewound, there are two mechanisms as follows:
[0036] The first mechanism: remove all paths in the existing wiring tree of the network to be processed that are located in the area to be rewound, and retain all paths outside the area to be rewound, that is, only the paths in the area to be rewound are removed, and the paths from the source end to the area to be rewound and the paths from the area to be rewound to other downstream drains are retained. For example, please refer to Figure 4 ,based on Figure 2 The wiring tree of the network to be processed, assuming that the area to be rewound includes unit area 10 and unit area 11, then some wiring nodes in the area to be rewound are cleared, and some wiring trees in the remaining unit areas 2, 3, 6, 7, and 12 are kept unchanged, and then only the area to be rewound is rewound. The conflict can be resolved on the basis of retaining some wiring trees.
[0037] The second mechanism: remove all paths in the area to be rewound in the existing wiring tree of the line network to be processed, as well as all paths of the downstream drain connected to the area to be rewound, that is, only retain the path from the source to the area to be rewound. The downstream drain is the drain that is connected far away from the source. This is because the wiring nodes will affect each other. After the area to be rewound is rewound, it may affect the related wiring nodes of the downstream drain, so the wires can be rewound together.
[0038] The above-mentioned practice of the present application reduces the number of drain end searches and search space during rewinding by only removing and rewinding some wiring nodes, thereby reducing wiring time and memory usage. However, considering the mutual influence between wiring nodes in different areas, the above-mentioned embodiment can only select one continuous area as the area to be rewound for processing in step 3. If the layout positions of the wiring resource nodes with resource conflicts in the to-be-processed wire network are relatively discrete, the area range of the to-be-rewound area will be larger or only some of the wiring resource nodes with resource conflicts can be processed first, while other wiring resource nodes with resource conflicts will not be processed for the time being. This situation is more likely to occur in method (1) of step 3. In order to solve this problem, the present application further optimizes the above-mentioned scheme and provides an embodiment with better implementation effect:
[0039] In this further embodiment, in step 1, instead of using the existing wiring process to implement serial wiring on the wire network, a partition wiring method is used. Please refer to Figure 5 : Divide the area covered by the endpoints of the wire net into several wire net sub-areas, each of which contains several drain terminals. The source terminal of the wire net is located in one of the wire net sub-areas. The area of each wire net sub-area and the number of wire net endpoints contained therein can be the same or different. One way to partition is to divide the area into several sub-areas based on the following example, similar to the area to be rewound. Figure 2 The FPGA shown in the figure is pre-divided into unit areas to determine, each unit area can be directly used as a wire net sub-area. Or the unit area whose wire net endpoints reach a certain threshold is used as a wire net sub-area, and multiple unit areas whose wire net endpoints do not reach a certain threshold are merged into a continuous area as a wire net sub-area, such as based on Figure 2 The network endpoint distribution structure can be directly used as a network sub-area by unit area 10, and unit areas 11 and 12 with fewer network endpoints can be merged into a network sub-area, unit areas 2 and 6 can be merged into a network sub-area, and unit areas 3 and 7 can be merged into a network sub-area. Another way to partition is, for example Figure 6 As shown, a total mesh area is first framed by the most boundary mesh endpoints, and then divided into several mesh sub-areas. The division can be based on the number of drain terminals within each mesh sub-area as a constraint, and / or the distance between drain terminals within each mesh sub-area as a constraint.
[0040] Regardless of the partitioning method used, after the partitioning is completed, several drain terminals are distributed in several wire mesh sub-areas, the source terminal is located in one of the wire mesh sub-areas covered by the drain terminal, and a virtual source terminal is added to each of the other wire mesh sub-areas covered by the drain terminal, so that each of the other wire mesh sub-areas covered by the drain terminal has a virtual source terminal. The virtual source terminal in a wire mesh sub-area is the Steiner point of the wire mesh sub-area or the input point on the adjacent switch matrix of the drain terminal closest to the source terminal in the wire mesh sub-area.
[0041] Perform serial wiring, using the preset wiring algorithm to connect the source end with the virtual source end in each wire net sub-area in turn, based on Figure 6 For the schematic diagram of the wire net sub-area shown in the figure, add the virtual source end and complete the serial wiring between the source end and the virtual source end. Figure 7 , Figure 7 The pentagonal shape in represents the virtual source end, such as Figure 7 In the example, the source end is located in the wire net sub-area 3, then virtual source ends are added in the wire net sub-areas 1, 2, and 4 respectively. Since the divided areas are limited, that is, the virtual source ends are limited, this step can be implemented in a small amount of CPU time.
[0042] Using the multi-threaded processing platform in parallel, a thread is assigned to each wire net sub-area for routing. Each thread uses the routing resources of the corresponding wire net sub-area and the preset routing algorithm to route the source end / virtual source end and each drain end in the wire net sub-area. Since the routing resources of each wire net sub-area are relatively independent, there will be no routing resource competition problem between threads when routing them globally in parallel, which can effectively avoid resource mutual exclusion waiting.
[0043] In practice, the partition wiring method of this embodiment may be used for all wire nets. Alternatively, the partition wiring method of this embodiment may be used only for wire nets whose drain ends meet the predetermined conditions, while the conventional wiring method may be used for wire nets whose drain ends do not meet the predetermined conditions. Figure 5 Taking this as an example, similarly, when the total number of drain terminals included in the line network reaches a number threshold, and / or the farthest distance between all drain terminals and source terminals in the line network reaches a distance threshold, it is determined that the drain terminals in the line network meet the predetermined condition.
[0044] After routing each network according to the method provided in this embodiment, the network to be processed is determined in the same way as in step 2 above, but the difference is that the determined network to be processed includes not only the source end and the drain end, but also the virtual source end. Correspondingly, the existing routing tree of the network to be processed does not include the path between the source end and each drain end like the traditional routing tree, but includes the path between the source end and each virtual source end, as well as the path between the source end or the virtual source end in each unit area and all the drain ends in the unit area.
[0045] Then, when determining the area to be rewound in step 3, it is different from the two methods of determining the area to be rewound in the above-mentioned embodiments. This embodiment uses a wire mesh sub-area where the layout position of the wiring resource node with resource conflict in the wire mesh to be processed is located as an area to be rewound corresponding to the wire mesh to be processed. As mentioned above, in step 3 in the above-mentioned embodiment, only one continuous area can be selected as the area to be rewound for processing, while in this embodiment, due to the addition of the virtual source terminal, the wiring tree between the source terminal / virtual source terminal and the drain terminal in each wire mesh sub-area is relatively independent of the wiring trees in other wire mesh sub-areas. Therefore, multiple independent areas to be rewound can be selected for processing without merging to form a continuous area, and this embodiment is particularly suitable for the case of multiple areas to be rewound. When there are multiple areas to be rewound, a multi-threaded processing platform is used to process the paths in each area to be rewound in parallel, and each thread removes and rewinds the paths between a source terminal or virtual source terminal in a area to be rewound and all drain terminals in the wire mesh sub-area. For example Figure 8 In FIG. 1 , a wiring resource node with resource conflicts is represented by a triangle. Both the wire mesh sub-area 1 and the wire mesh sub-area 4 contain wiring resource nodes with resource conflicts. In this embodiment, there is no need to Figure 2-3 The two wire mesh sub-areas are combined to form a rewinding area as in the embodiment shown. Instead, the two wire mesh sub-areas 1 are used as two rewinding areas, and two threads independently and in parallel perform the operation of removing wiring nodes and rewinding the two rewinding areas. Figure 5 As shown, two threads can be used to rewind the wiring nodes in the wire mesh sub-areas 1 and 3 in parallel, and the wiring trees in the remaining wire mesh sub-areas remain unchanged.
[0046] Since each wire mesh sub-area is relatively independent, this step generally directly uses the first mechanism in step 4 to remove some wiring nodes, that is, only the wiring nodes in the area to be rewound are removed. In the above process, when the number of times of removing and rewinding a path in an area to be rewound reaches the iteration threshold and still cannot resolve the conflict, a virtual source end is reselected from the area to be rewound and iterated.
[0047] When removing and rewinding the wiring nodes between the source end / virtual source end in each area to be rewound and the drain end in the same area, the path between the source end and each virtual source end remains unchanged, but there may be conflicts between the paths between the source end and each virtual source end. After resolving the conflicts in the area to be rewound, the paths between the source end and the virtual source end in conflict may be rewound and the conflicts resolved. Alternatively, if a virtual source end is reselected for some areas to be rewound in the above process, the path between the source end and the original virtual source end needs to be cleared accordingly, and the path between the rewound source end and the new virtual source end needs to be cleared. When the path between the source end and the virtual source end involves a wiring resource node with a resource conflict, or after reselecting the virtual source end, some wiring nodes between the source end and the corresponding virtual source end are removed, and the removed parts are rewound using a preset wiring algorithm.
[0048] Regardless of the solution provided by the above-mentioned embodiments, in the iterative process of rewinding the wire network based on the method provided by the present application, the existing wiring tree can be rewound according to the same rewinding mechanism in each iteration, or the existing wiring tree can be rewound according to different rewinding mechanisms in different iterative processes. Among them, when the mechanism of selecting the wire network to be processed, the mechanism of selecting the area to be rewound corresponding to the wire network to be processed, and the mechanism of removing part of the existing wiring tree based on the corresponding area to be rewound are the same in two iterative processes, it is determined that the two iterative processes are rewound according to the same rewinding mechanism, otherwise it is determined that the two iterative processes are rewound according to different rewinding mechanisms.
[0049] Among them, there are three main mechanisms for selecting the wire nets to be processed: (1) selecting all wire nets of the wiring resource nodes involved in resource conflicts in the existing wiring tree as the wire nets to be processed; (2) selecting all wire nets of the wiring resource nodes involved in resource conflicts in the existing wiring tree and whose drain terminals meet the predetermined conditions as the wire nets to be processed; (3) selecting the wiring resource nodes involved in resource conflicts in the existing wiring tree and whose drain terminals meet the predetermined conditions and the wire nets other than the wire nets used to implement the predetermined signals as the wire nets to be processed. The wire nets used to implement the predetermined signals include the wire nets used to implement at least one of the clock signal, the reset signal and the enable signal.
[0050] There are three main mechanisms for selecting the rewinding area corresponding to the line network to be processed: (1) selection based on the unit area pre-divided by FPGA; (2) dynamic selection based on the actual situation of each line network to be processed; (3) selection based on the line network sub-area determined during partition routing.
[0051] The mechanism for removing part of the existing wiring tree based on the corresponding area to be rewound includes the first mechanism and the second mechanism provided above.
[0052] A typical example is that, every several iterations, the first mechanism for selecting the nets to be processed is used to select all the nets in the existing wiring tree that involve resource conflicts and whose drain terminals meet the predetermined conditions as the nets to be processed; in the remaining iterations, the second mechanism for selecting the nets to be processed is used to select the wiring resource nodes in the existing wiring tree that involve resource conflicts and whose drain terminals meet the predetermined conditions and nets other than the nets used to implement the predetermined signals as the nets to be processed. That is, the nets used to implement the predetermined signals are only dismantled and rewound according to the above method in certain iterations, while other nets are dismantled and rewound according to the above method in each iteration.
Claims
1. An FPGA routing method for resolving resource conflicts by partially rewinding the wires, characterized in that: The method comprises: Based on the wiring resource nodes inside the FPGA, the preset wiring algorithm is used to implement wiring for each wire net in the user input netlist; Traversing each to-be-processed wire net of the wiring resource node involving resource conflicts in the existing wiring tree; Determine the corresponding area to be rewound based on the layout position of the wiring resource node with resource conflict in each line network to be processed; For each wire net to be processed, based on the corresponding area to be rewound, some wiring nodes of the existing wiring tree of the wire net to be processed are removed, the remaining wiring tree is retained, and the removed parts are rewound using a preset wiring algorithm to obtain an updated wiring tree of the wire net to be processed; A network to be processed includes a source end, several drain ends and several virtual source ends, the several drain ends are distributed in several network sub-areas, the source end is located in one of the network sub-areas covered by the drain end, and each of the other network sub-areas covered by the drain end has a virtual source end; then the existing wiring tree of the network to be processed includes the paths between the source end and each virtual source end, and the paths between the source end or the virtual source end in each network sub-area and all the drain ends in the network sub-area; then a network sub-area where the layout position of the wiring resource node with resource conflict in the network to be processed is located is used as a to-be-rewound area corresponding to the network to be processed, and a multi-threaded processing platform is used to parallelly process the paths in each to-be-rewound area, and each thread removes and rewinds the paths between a source end or a virtual source end in a to-be-rewound area and all the drain ends in the network sub-area.
2. The method according to claim 1, characterized in that The to-be-processed wire net is a wire net in an existing wiring tree that is involved in a wiring resource node with a resource conflict and includes a drain terminal that meets a predetermined condition.
3. The method according to claim 2, characterized in that When the total number of drain terminals included in the wire net reaches a number threshold, and / or the farthest distance between all drain terminals and source terminals in the wire net reaches a distance threshold, it is determined that the drain terminals in the wire net meet the predetermined condition.
4. The method according to claim 1, characterized in that: The method further includes: dividing the FPGA into a plurality of unit areas; The method of determining the corresponding area to be rewound based on the layout position of the wiring resource node with resource conflict in each line network to be processed includes: taking one or multiple continuous unit areas where the layout position of the wiring resource node with resource conflict in the line network to be processed is located as the area to be rewound corresponding to the line network to be processed.
5. The method according to claim 1, characterized in that The method of determining the corresponding area to be rewound based on the layout position of the wiring resource node having resource conflicts in each wire net to be processed includes: An area having a predetermined area range and covering the layout positions of the wiring resource nodes having resource conflicts in the processed line net is determined as the corresponding area to be rewound, and the predetermined area ranges of the areas to be rewound corresponding to different processed line nets are the same or different.
6. The method according to claim 1, characterized in that When the number of times of removing and rewinding a path in a to-be-rewound area reaches an iteration threshold, a virtual source end is reselected from the to-be-rewound area and iteration is performed.
7. The method according to claim 6, characterized in that The method further comprises: When the path between the source end and the virtual source end involves a routing resource node with resource conflicts, or when the virtual source end is reselected, some routing nodes between the source end and the corresponding virtual source end are removed, and the removed parts are rewound using a preset routing algorithm.
8. The method according to claim 1, characterized in that: The method of removing some wiring nodes of the existing wiring tree of the wire net to be processed based on the corresponding area to be rewound and retaining the remaining wiring tree includes: All paths in the existing wiring tree of the wire network to be processed that are located in the area to be rewound are removed, and all paths outside the area to be rewound are retained.
9. The method according to claim 1, characterized in that: The method of removing some wiring nodes of the existing wiring tree of the wire net to be processed based on the corresponding area to be rewound and retaining the remaining wiring tree includes: Remove all paths in the existing wiring tree of the line network to be processed that are located in the area to be rewound, as well as all paths of the downstream drain end connected to the area to be rewound, and retain the path from the source end to the area to be rewound. The downstream drain end is the drain end that is connected far away from the source end.
10. The method according to claim 1, characterized in that In the iterative process of rewinding the wire net, the existing wiring tree is rewound according to the same rewinding mechanism in each iteration, or the existing wiring tree is rewound according to different rewinding mechanisms in different iterations.
11. The method according to claim 10, characterized in that When the mechanism for selecting the wire net to be processed, the mechanism for selecting the area to be rewound corresponding to the wire net to be processed, and the mechanism for dismantling part of the existing wiring tree based on the corresponding area to be rewound are the same in two iterative processes, it is determined that the two iterative processes will rewind according to the same rewinding mechanism; otherwise, it is determined that the two iterative processes will rewind according to different rewinding mechanisms.
12. The method according to claim 11, characterized in that After every several iterations, the first mechanism of selecting the nets to be processed is adopted to select all the nets in the existing wiring tree that involve the wiring resource nodes with resource conflicts and contain drain terminals that meet the predetermined conditions as the nets to be processed; In the remaining iterations, the second mechanism for selecting the nets to be processed is used to select the wiring resource nodes in the existing wiring tree that involve resource conflicts, whose drain terminals meet predetermined conditions, and the nets other than the nets used to implement predetermined signals as the nets to be processed.
13. The method according to claim 12, characterized in that The line net for implementing the predetermined signal includes a line net for implementing at least one of a clock signal, a reset signal, and an enable signal.
Citation Information
Patent Citations
Rapid local wire disconnecting and rearranging method in global wiring
CN113255284A