Signal routing adjustment method based on non-critical path, electronic device and medium

By obtaining the FPGA channel of the critical path in the FPGA system, rewinding the non-critical path and optimizing the signal winding path, the problem that signal winding in the prior art cannot meet the system timing performance, and the system performance designed by users is improved.

CN118245433BActive Publication Date: 2025-04-18SHANGHAI UNIVISTA IND SOFTWARE GRP CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202410452411.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-04-16
Publication Date
2025-04-18
Estimated Expiration
2044-04-16

AI Technical Summary

Technical Problem

In the prior art, the timing-driven winding process is based on the shortest path, resulting in some signals being unable to meet the system timing performance, thereby reducing the system performance designed by the user.

Method used

By obtaining the FPGA channel containing critical paths in the FPGA system, rewinding the non-critical paths to free up space, and optimizing the signal winding path according to time margin and time division multiplexing until the preset target system performance is met.

Benefits of technology

Through local signal winding optimization, the system performance designed by the user is improved, ensuring that the signal transmission delay meets the optimal timing performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118245433B_ABST
    Figure CN118245433B_ABST
Patent Text Reader

Abstract

The present invention relates to the field of computer technology, and in particular to a signal routing adjustment method based on non-critical paths, an electronic device and a medium. The method first obtains FPGA channels containing critical paths in an FPGA system and sorts them in descending order according to the number of critical paths contained therein, then rewinds the non-critical paths in the FPGA channels containing the critical paths to release space for the critical paths in the FPGA channels containing the critical paths, and receives the rewound routing information when confirming that the system performance corresponding to the routing information is better than that before the rewinding, thereby improving the system performance designed by a user through the optimization of local signal routing based on non-critical paths in the FPGA system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer technology, and in particular to a signal routing adjustment method based on a non-critical path, an electronic device and a medium. Background Art

[0002] In a prototype verification system or hardware simulation system composed of multiple Field-Programmable Gate Arrays (FPGAs), it is necessary to find the best path for the user design signal across the FPGA connection to minimize the signal transmission delay and meet the best timing performance of the user design.

[0003] In the prior art, the timing-driven routing process is usually based on the shortest path routing, and uses the average time division multiplexing ratio (TDR) allocation method to construct the signal routing result. However, due to the large number of signals, different signals may have different delay requirements. The existing signal routing method will cause some signals to fail to meet the system timing performance, thereby reducing the system performance designed by the user. Therefore, how to adjust the signal routing to improve the system performance designed by the user has become a technical problem that needs to be solved urgently. Summary of the invention

[0004] The object of the present invention is to provide a signal routing adjustment method based on a non-critical path, an electronic device and a medium, thereby improving the system performance designed by a user.

[0005] According to a first aspect of the present invention, a signal routing adjustment method based on a non-critical path is provided, comprising:

[0006] Step S1, obtain the FPGA channel {A1, A2, ..., A m ,...,A M}, where A m is the mth FPGA channel containing a critical path, where m ranges from 1 to M, and M is the total number of FPGA channels containing a critical path in the FPGA system. The critical path is the path for transmitting a signal with the worst delay margin, and the FPGA channel is a channel between two FPGAs connected by a cable in the FPGA system. A1, A2, ..., A m ,...,A M Sort by the number of critical paths included from large to small;

[0007] Step S2, set m=1, and execute step S3;

[0008] Step S3:m The non-critical paths in the sequence are arranged in descending order according to the time margin, and the to-be-processed signals {U1 m ,U2 m ,...,U b m ,...,U B m}, where U b is the signal to be processed corresponding to the bth non-critical path, and the value range of b is 1 to B;

[0009] Step S4: for each U b m Select a rewind path;

[0010] Step S5: Set the U b m The winding path is clear and follows each U b m The corresponding rewinding path is for each U b m Rewinding the wire and generating the winding information after rewinding;

[0011] Step S6: determine whether the system performance corresponding to the winding information after rewinding is better than the system performance corresponding to the winding information before rewinding. If so, accept the winding information after this rewinding.

[0012] According to a second aspect of the present invention, there is provided an electronic device, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being configured to execute the method described in the first aspect of the present invention.

[0013] According to a third aspect of the present invention, there is provided a computer-readable storage medium storing computer-executable instructions, wherein the computer instructions are used to execute the method described in the first aspect of the present invention.

[0014] Compared with the prior art, the present invention has obvious advantages and beneficial effects. By means of the above technical solution, the signal winding adjustment method based on non-critical paths, the electronic device and the medium provided by the present invention can achieve considerable technical advancement and practicality, and have wide industrial utilization value, and at least have the following beneficial effects:

[0015] The present invention first obtains FPGA channels containing critical paths in the FPGA system and sorts them in descending order according to the number of critical paths contained therein, then rewinds non-critical paths in the FPGA channels containing critical paths to release space for the critical paths in the FPGA channels containing critical paths, and receives the rewound routing information when confirming that the system performance is better than that corresponding to the routing information before rewinding, thereby improving the system performance designed by the user through the local signal routing optimization based on non-critical paths in the FPGA system. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0017] Figure 1 A flow chart of a signal routing adjustment method based on a non-critical path provided in an embodiment of the present invention. DETAILED DESCRIPTION

[0018] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.

[0019] An embodiment of the present invention provides a signal routing adjustment method based on a non-critical path, comprising:

[0020] Step S1, obtain the FPGA channel {A1, A2, ..., A m ,...,A M}, where A m is the mth FPGA channel containing a critical path, where m ranges from 1 to M, and M is the total number of FPGA channels containing a critical path in the FPGA system. The critical path is the path for transmitting a signal with the worst delay margin, and the FPGA channel is a channel between two FPGAs connected by a cable in the FPGA system. A1, A2, ..., A m ,...,A M Sort by the number of critical paths included from largest to smallest.

[0021] The delay margin of the signal is the difference between the preset delay of the signal and the actual delay of the signal.

[0022] Step S2, set m=1, and execute step S3;

[0023] Step S3: m The non-critical paths in the sequence are arranged in descending order according to the time margin, and the to-be-processed signals {U1 m ,U2 m ,...,U b m ,...,U B m}, where U b is the signal to be processed corresponding to the bth non-critical path, and the value range of b is 1 to B.

[0024] B can be a specific value set. It can also be a value obtained based on a preset ratio. As an example, in step S3, B=V×h(m), V is the preset ratio value, h(m) is A m The total number of non-critical paths in the FPGA channel. Non-critical paths are other paths in the FPGA channel except the critical path. m The to-be-processed signals corresponding to the top B non-critical paths may be signals corresponding to all the top B non-critical paths, or may be signals corresponding to some of the top B non-critical paths.

[0025] Step S4: for each U b m Select a rewind path.

[0026] It should be noted that by b m Selecting the reroute path for rerouting can free up space for the critical path in the FPGA channel containing the critical path, thereby potentially optimizing system performance.

[0027] Step S5: Set the U b m The winding path is clear and follows each U b m The corresponding rewinding path is for each U b m Rewind the wire and generate the winding information after rewinding.

[0028] Step S6: determine whether the system performance corresponding to the winding information after rewinding is better than the system performance corresponding to the winding information before rewinding. If so, accept the winding information after this rewinding.

[0029] It should be noted that the system performance after rewinding is not necessarily better than the system performance before rewinding. Therefore, in step S6, it is further determined whether the system performance corresponding to the winding information after rewinding is better than the system performance corresponding to the winding information before rewinding. Only when it is determined that the system performance corresponding to the winding information after rewinding is better than the system performance corresponding to the winding information before rewinding, the winding information after this rewinding is finally accepted to achieve signal routing optimization of the FPGA system.

[0030] As an embodiment, in step S3, if A m There are multiple signals corresponding to the first B non-critical paths in the transmission back and forth, and multiple non-critical paths in the first B are on the same timing path, forming a Z-shaped signal. Then in {U1 m ,U2 m ,...,U b m ,...,U B m Only the first signal corresponding to the Z-shaped signal is stored in {U1}. The signals other than the first signal in the Z-shaped signal are not in {U1 m ,U2 m ,...,U b m ,...,U B m If all the signals corresponding to the non-critical paths corresponding to the Z-shaped signal are rewound during rewinding, the delay change from the perspective of the timing path will be multiple of the number of signals, which may cause excessive rewinding and fail to achieve the best effect. Therefore, for multiple signals of the Z-shaped signal on the same timing path, only in {U1 m ,U2 m ,...,U b m ,...,U B m The first signal corresponding to the Z-shaped signal is stored in}, so that only one of the signals is rewound as the target signal in one iteration, and the optimization is performed step by step to avoid excessive one-time delay changes.

[0031] As an embodiment, step S4 includes:

[0032] Step S41: Get U b m The corresponding candidate rewind path {UL1 mb ,UL2 mb ,...,UL a mb ,...,UL J(mb) mb}, among which, UL amb For U b m The corresponding a-th candidate rewinding path, a ranges from 1 to J(mb), J(mb) is U b m The total number of corresponding candidate rewind paths.

[0033] It should be noted that when the combined values ​​corresponding to m and b are different, the value of J(mb) may also be different.

[0034] Step S42: Get U b m Each corresponding UL a mb The corresponding predicted delay D4 a mb .

[0035] Step S43: b m The corresponding minimum D4 a mb Corresponding UL a mb Determined as U b m The corresponding rewind path.

[0036] It should be noted that if there are multiple predicted delays D4 corresponding to candidate rewind paths a mb If the path length factor is considered, multiple predicted delays D4 a mb Among the minimum rewinding paths, the candidate rewinding path with the shortest path is determined as U b m As an example, in step S43, if U b m The corresponding minimum D4 a mb If there are multiple paths, the smallest D4 with the shorter path will be selected. a mb Corresponding UL a mb Determined as U b m The corresponding rewind path.

[0037] As an example, UL a mb ={UL11 amb ,UL12 amb ,...,UL1 r amb ,...,UL1 g(amb)amb ,UL21 amb ,UL22 amb ,...,UL2 t amb ,...,UL2 [g(amb)-1] amb}, among which, UL1 r amb For S k m At UL a mb The rth FPGA channel passed through, r ranges from 1 to g(amb), g(amb) is UL a mb The total number of FPGA channels in UL2 t amb For UL2 t amb The value of t ranges from 1 to [g(amb)-1], where [g(amb)-1] is the value of UL a mb The total number of FPGAs passed through, it should be noted that UL21 amb Located at UL11 amb and UL12 amb Between, UL22 amb Located at UL12 amb and UL13 amb Between, ..., UL2 [g(amb)-1] amb Located at UL1 [g(amb)-1] amb and UL1 g(amb) amb The step S42 comprises:

[0038] Step S421: Obtain the current FPGA system U b m Corresponding time division multiplexing rate TDR b m .

[0039] Step S422: Obtain UL1 r amb The FPGA channel is connected to the TDR b m Time Division Multiplexing Rate (TDR) of the closest cable r amb .

[0040] It should be noted that since the rewound path is a non-critical path, it is necessary to release space for the critical path and to ensure that the delay of the rewound non-critical path is not greatly affected. Therefore, it is necessary to obtain UL1r amb The FPGA channel is connected to the TDR b m Time Division Multiplexing Rate (TDR) of the closest cable r amb .

[0041] Step S423: Based on the preset time division multiplexing mapping table and TDR r amb Get every UL1 r amb The corresponding delay value D5 r amb The time division multiplexing mapping table stores a mapping relationship between time division multiplexing rate and delay value.

[0042] It should be noted that the time division multiplexing mapping table stores the mapping relationship between the time division multiplexing rate and the delay value. r amb Find the corresponding delay value D5 r amb .

[0043] Step S424: Based on D5 r amb ,UL a mb The total number of FPGAs in the UL a mb The corresponding predicted delay D4 a mb :

[0044]

[0045] Wherein, β is the preset routing cost through FPGA.

[0046] As an embodiment, in step S6, if the system performance corresponding to the winding information after rewinding is not better than the system performance corresponding to the winding information before rewinding, the FPGA system is restored to the state before rewinding, and it is determined whether m is less than M. If so, m=m+1 is set, and the process returns to step S3. If m=M, the process ends. It can be understood that if based on the current A m When the corresponding rewind information cannot optimize system performance, the next A mContinue to rewind based on non-critical paths. It should be noted that if the worst delay margin corresponding to the rewinding information decreases and / or the number of critical paths decreases, it can be determined that the system performance corresponding to the rewinding information is better than the system performance corresponding to the rewinding information before rewinding. If the worst delay margin corresponding to the rewinding information does not decrease and the number of critical paths does not decrease, it is determined that the system performance corresponding to the rewinding information is not better than the system performance corresponding to the rewinding information before rewinding.

[0047] As an embodiment, in step S6, after accepting the winding information after this rewinding, it is determined whether the system performance corresponding to the winding information after the rewinding meets the preset target system performance. If so, the process is terminated; if not, the process returns to execute step S1 until the preset target system performance is met, or there is no other optimization space.

[0048] As an embodiment, after receiving the winding information after the current rewinding, the step S6 executes:

[0049] Step S7: After the rewinding, perform TDM distribution on the signal between every two interconnected FPGAs.

[0050] In the step S7, the existing TDM allocation method can be used to implement the method, or the following method can be used to implement the method.

[0051] In the step S7, the existing TDM allocation method can be used for implementation, or the following two methods can be used for implementation.

[0052] Method 1:

[0053] The step S7 comprises:

[0054] Step S71, perform average TDM distribution on the signals between every two interconnected FPGAs. If all signals meet the preset timing requirements, the winding information in the current FPGA system is determined as the target winding information. Otherwise, adjust the TDM distribution of the signals between the interconnected FPGAs so that all signals meet the preset timing requirements.

[0055] Method 2:

[0056] Method 2 provides a signal TDM distribution method based on FPGA, including:

[0057] Step S701: Acquire a signal set {E1, E2, ..., E s ,...,E S ,E S+1 ,E S+2 ,...,E w ,...,EW}, where E s is the sth signal between the first FPGA and the second FPGA, the value range of s is 1 to S, and S is the number of positive signals between the first FPGA and the second FPGA; E w is the wth signal between the first FPGA and the second FPGA, the value range of w is S+1 to W, and W is the sum of the number of forward signals and reverse signals between the first FPGA and the second FPGA; E s The upper limit of the delay between the first FPGA and the second FPGA is D s , D1>D2,...,>D s ,...,>D S ; E w The upper limit of the delay between the first FPGA and the second FPGA is D w , D S+1 >D S+2 >,...,>D w ,...,>D W .

[0058] Among them, the first FPGA and the second FPGA can be any two FPGAs in the FPGA system that are interconnected by cables and have signal transmission. The signal between the first FPGA and the second FPGA refers to the signal transmitted through the cable between the first FPGA and the second FPGA. It should be noted that the forward signal refers to the signal transmitted from the first FPGA to the second FPGA, and the reverse signal refers to the signal transmitted from the second FPGA to the first FPGA. There may be both forward signals and reverse signals between the first FPGA and the second FPGA, or there may be only forward signals, that is, there are bidirectional signals. The existence of only forward signals is equivalent to a special case of the existence of bidirectional signals, and is also applicable to the method described in the embodiment of the present invention. The delay upper limit refers to the maximum delay of the signal passing through the first FPGA and the second FPGA. Through D1>D2,...,>D s ,...,>D S and D S+1 >D S+2 >,...,>D w ,...,>D W It can be seen that E1, E2, ..., E s ,...,E S ,E S+1 ,E S+2 ,...,E w ,...,E W The forward signal and the reverse signal are sorted in descending order according to the delay upper limit, and the forward signal is generally arranged before the reverse signal.

[0059] Step S702: Obtain E s The optimal TDR value corresponding to the case where there are f1 cables and s signals between the first FPGA and the second FPGA is TDR(s,f1), where the value range of f1 is 1 to F, and F is the total number of cables between the first FPGA and the second FPGA.

[0060] It should be noted that, by obtaining the optimal TDR value corresponding to each combination of f1 and s in step S702, it can be understood that TDR (s, f1) may exist or may not exist.

[0061] Step S703: Obtain E w The optimal TDR value corresponding to the case where there are f2 cables and w signals between the first FPGA and the second FPGA is TDR(w,f2), where the value range of f2 is 2 to F, and the same cable can only transmit signals in the same direction.

[0062] It should be noted that, by obtaining the optimal TDR value corresponding to each combination of f2 and w in step S703, it can be understood that TDR (w, f2) may exist or may not exist.

[0063] Step S704: If TDR (W, F) exists, determine the signal TDM allocation between the first FPGA and the second FPGA based on all TDR (s, f1) and TDR (w, f2).

[0064] It should be noted that if TDR(W,F) exists, it means that the W signals between the first FPGA and the second FPGA can be successfully TDM distributed on F cables. If it does not exist, it means that the W signals between the first FPGA and the second FPGA cannot be successfully TDM distributed on F cables. In this case, a corresponding prompt message can be generated, and the design can be adjusted and TDM distribution can be performed again by the method of embodiment 2 of the present invention.

[0065] As an embodiment, step S701 includes:

[0066] Step S7011, obtaining initial winding information in the FPGA system.

[0067] Step S7012: Generate a time margin (Slack) for each signal based on the initial routing information.

[0068] Step S7013, obtain the delay between the first FPGA and the second FPGA of each signal passing between the first FPGA and the second FPGA, and determine the sum of the delay between the first FPGA and the second FPGA of each signal passing between the first FPGA and the second FPGA and the time margin corresponding to the signal as the delay upper limit of the signal.

[0069] Step S7014: Sort the signals between the first FPGA and the second FPGA according to the direction of each signal passing between the first FPGA and the second FPGA and the upper limit of the delay of each signal, and generate {E1, E2, ..., E s ,...,E S ,E S+1 ,E S+2 ,...,E w ,...,E W}.

[0070] It is understandable that by D1>D2,...,>D s ,...,>D S and D S+1 >D S+2 >,...,>D w ,...,>D W sorting, generating {E1,E2,...,E s ,...,E S ,E S+1 ,E S+2 ,...,E w ,...,E W}.

[0071] As an embodiment, the step S702 includes:

[0072] Step S7021, set s=1, f1=1, and execute step S7022.

[0073] Step S7022: Based on the preset time division multiplexing mapping table, determine in ascending order whether the corresponding delay is less than or equal to D according to the TDR value. s If so, set TDR(s,f1) to the value of the current TDR and execute step S7023. The time division multiplexing mapping table stores the mapping relationship between the time division multiplexing rate and the delay value. Otherwise, set TDR(s,f1) to empty and execute step S7024.

[0074] It should be noted that step S7022 determines the situation where there is only one cable for allocation. The delay corresponding to the TDR value allocated to the signal must be less than or equal to the upper limit of the signal delay in order to successfully allocate. The smaller the TDR value, the smaller the delay. Therefore, when there is only one cable, the first available TDR value obtained in the order of TDR values ​​from small to large is the optimal TDR value.

[0075] Step S7023, determine whether s is less than S, if so, set s=s+1, return to execute step S7022, otherwise, execute step S7024.

[0076] Step S7024, determine whether f1 is less than F, if so, set s=1, f1=f1+1, and execute step S7025, otherwise, execute step S703.

[0077] Step S7025: Based on the preset time division multiplexing mapping table, determine in ascending order whether the corresponding delay is less than or equal to D according to the TDR value. s If so, determine whether TDR(s-TDR0,f1-1) is empty, TDR0 is the value of the currently judged TDR, if it is not empty, set TDR(s,f1) to the value of the currently judged TDR, and execute step S7023, otherwise, set TDR(s,f1) to empty, and execute step S7024.

[0078] It should be noted that step S7025 obtains the TDR value of two or more cables. In this case, it is also necessary to satisfy that the number of allocated cables cannot exceed the current maximum number of cables. Therefore, it is necessary to simultaneously satisfy that TDR(s-TDR0,f1-1) is not empty, that is, s-TDR0 signals can be successfully allocated on f1-1 cables.

[0079] It should be noted that when there is only a forward signal between the first FPGA and the second FPGA, all possible TDR values ​​can be obtained through steps S7021-S7025. When there is a reverse signal between the first FPGA and the second FPGA, it is necessary to further perform step S703 to obtain all possible TDR values ​​corresponding to the reverse signal. When TDR (s, f1) does not have a TDR value that meets the conditions, the corresponding setting is empty.

[0080] As an embodiment, step S703 includes:

[0081] Step S7031, set w=S+1, f2=2, and execute step S7032.

[0082] It should be noted that the same cable can only transmit signals in one direction. Therefore, when there is a bidirectional signal between the first FPGA and the second FPGA, the forward signal needs to occupy at least one cable. Therefore, the value of f2 should start from 2.

[0083] Step S7032: Based on the preset time division multiplexing mapping table, determine in ascending order whether the corresponding delay is less than or equal to D according to the TDR value. w If so, TDR(w,f2) is set to the value of the current judgment TDR, and step S7033 is executed. The time division multiplexing mapping table stores the mapping relationship between the time division multiplexing rate and the delay value. Otherwise, TDR(w,f2) is set to empty, and step S7034 is executed.

[0084] It should be noted that step S7032 determines the situation where there is only one cable for allocation. The delay corresponding to the TDR value allocated to the signal must be less than or equal to the upper limit of the signal delay in order to successfully allocate. The smaller the TDR value, the smaller the delay. Therefore, when there is only one cable, the first available TDR value obtained in the order of TDR values ​​from small to large is the optimal TDR value.

[0085] Step S7033, determine whether w is less than W, if so, set w=w+1, return to execute step S7032, otherwise, execute step S7034.

[0086] Step S7034, determine whether f2 is less than F, if so, set w=S+1, f2=f2+1, and execute step S7035, otherwise, execute step S704.

[0087] Step S7035: Based on the preset time division multiplexing mapping table, determine in order from small to large the corresponding delay whether it is less than or equal to D w , if so, execute step S7036, otherwise, execute step S7034.

[0088] Step S7036: determine whether (w-TDR0)≥S+1 is satisfied. If so, execute step S7037; otherwise, execute step S7038.

[0089] Step S7037, determine whether TDR (w-TDR0, f2-1) is empty, TDR0 is the value of the currently judged TDR, if it is not empty, set TDR (w, f2) to the value of the currently judged TDR, and execute step S7033, otherwise, set TDR (w, f2) to empty, and execute step S7034.

[0090] Step S7038: Determine whether TDR(S, f2 - 1) is empty. If it is not empty, set TDR(w, f2) to the currently judged TDR value and execute Step S7033. Otherwise, set TDR(w, f2) to be empty and execute Step S7034.

[0091] It should be noted that if (w - TDR0) ≥ S + 1, it indicates that the (w - TDR0)th signal is also a reverse signal. Otherwise, it is a forward signal. Since only one signal can be transmitted on the same cable, the forward signal and the reverse signal cannot be allocated on the same cable. Therefore, when (w - TDR0) < S + 1, the boundary value adjacent to the reverse signal, that is, the (S + 1)th signal, should be taken for judgment instead of the (w - TDR0)th signal. When there is no TDR value that meets the conditions in TDR(w, f2), it is correspondingly set to be empty.

[0092] As an embodiment, Step S704 includes:

[0093] Step S7041: If TDR(W, F) is not empty, set the cable number XL to be allocated as F, and the signal termination number ZL to be allocated as W.

[0094] It should be noted that if TDR(W, F) is not empty, it indicates that the W signals between the first FPGA and the second FPGA can be allocated on F cables.

[0095] Step S7042: Set the TDR value of the XLth cable between the first FPGA and the second FPGA to TDR(ZL, XL).

[0096] Among them, the optimal TDR value of the XLth cable between the first FPGA and the second FPGA is TDR(ZL, XL). Therefore, directly set the TDR value of the XLth cable between the first FPGA and the second FPGA to TDR(ZL, XL). This indicates that at this time, the XLth cable can accommodate at most TDR(ZL, XL) signals.

[0097] Step S7043: Determine whether ZL - TDR(ZL, XL) is greater than or equal to S. If it is, execute Step S7045. Otherwise, execute Step S7044.

[0098] It should be noted that when ZL - TDR(ZL, XL) is greater than or equal to S, it indicates that all the signals to be allocated are reverse signals at this time. Therefore, directly execute Step S7045. When ZL - TDR(ZL, XL) is less than S, it may occur that the starting signal to be allocated is a forward signal and the terminating signal to be allocated is a reverse signal. However, since only one direction of signal can be allocated on the same cable, further judgment is required and Step S7044 is executed.

[0099] Step S7044: If ZL > S, then execute Step S7046; otherwise, execute Step S7045.

[0100] It should be noted that when ZL > S and ZL - TDR(ZL, XL) < S, it indicates that the to-be-allocated start signal is a positive signal and the to-be-allocated end signal is a negative signal. Therefore, through Step S7046, the to-be-allocated start signal needs to be set as the (S + 1)-th signal to ensure that only signals in the same direction are allocated on the same cable.

[0101] Step S7045: Set the to-be-allocated start signal number YL = ZL - TDR(ZL, XL) + 1, and allocate signals E YL to E ZL on the XL-th cable, and then execute Step S7047.

[0102] Step S7046: Set YL = S + 1, and allocate signals E YL to E ZL on the XL-th cable, and then execute Step S7047.

[0103] Step S7047: If YL - 1 = 1, then end the process; otherwise, set XL = XL - 1, ZL = YL - 1, and return to execute Step S7042.

[0104] It should be noted that through Steps S7041 - S7047, the TDR values corresponding to all signals and the cable numbers to which they are allocated can be determined. It can be understood that in the embodiments of the present invention, the cables are numbered in the order of 1, 2, 3..., F. In addition, after the TDM allocation is completed, all the cables in the first FPGA and the second FPGA may be occupied, or there may be remaining unoccupied cables.

[0105] Through the TDM allocation method provided in Method 2, an optimal TDM allocation can be achieved for the signals between any two FPGAs, further improving the system performance.

[0106] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the technical field to which this invention belongs. The terms used in the description of the present invention herein are only for the purpose of describing specific embodiments and are not intended to limit the present invention.

[0107] It should be noted that some exemplary embodiments are described as processes or methods depicted as flow charts. Although the flow charts describe the steps as sequential processes, many of the steps can be implemented in parallel, concurrently or simultaneously. In addition, the order of the steps can be rearranged. The process can be terminated when its operation is completed, but it can also have additional steps not included in the accompanying drawings. The process can correspond to a method, function, procedure, subroutine, subprogram, etc.

[0108] An embodiment of the present invention also provides an electronic device, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are configured to execute the method described in the embodiment of the present invention.

[0109] The embodiment of the present invention further provides a computer-readable storage medium storing computer-executable instructions, wherein the computer instructions are used to execute the method described in the embodiment of the present invention.

[0110] The embodiment of the present invention first obtains FPGA channels containing critical paths in the FPGA system and sorts them in descending order according to the number of critical paths contained therein, then rewinds non-critical paths in the FPGA channels containing critical paths to release space for the critical paths in the FPGA channels containing critical paths, and receives the rewound routing information when confirming that the system performance is better than that corresponding to the routing information before rewinding, thereby improving the system performance designed by the user through the local signal routing optimization based on non-critical paths in the FPGA system.

[0111] The above description is only a preferred embodiment of the present invention and does not limit the present invention in any form. Although the present invention has been disclosed as a preferred embodiment as above, it is not used to limit the present invention. Any technician familiar with this profession can make some changes or modifications to equivalent embodiments of equivalent changes using the technical contents disclosed above without departing from the scope of the technical solution of the present invention. However, any simple modification, equivalent change and modification made to the above embodiments based on the technical essence of the present invention without departing from the content of the technical solution of the present invention still falls within the scope of the technical solution of the present invention.

Claims

1. A signal routing adjustment method based on a non-critical path, characterized in that: include: Step S1, obtain the FPGA channel {A1, A2, ..., A m ,...,A M }, where A m is the mth FPGA channel containing a critical path, where m ranges from 1 to M, and M is the total number of FPGA channels containing a critical path in the FPGA system. The critical path is the path for transmitting a signal with the worst delay margin, and the FPGA channel is a channel between two FPGAs connected by a cable in the FPGA system. A1, A2, ..., A m ,...,A M Sort by the number of critical paths included from large to small; Step S2, set m=1, and execute step S3; Step S3: m The non-critical paths in the sequence are arranged in descending order according to the time margin, and the to-be-processed signals {U1 m ,U2 m ,...,U b m ,...,U B m }, where U b m is the signal to be processed corresponding to the bth non-critical path, and the value range of b is 1 to B; Step S4: for each U b m Select a rewind path; Step S41: Get U b m The corresponding candidate rewind path {UL1 mb ,UL2 mb ,...,UL a mb ,...,UL J(mb) mb }, among which, UL a mb For U b m The corresponding a-th candidate rewinding path, a ranges from 1 to J(mb), J(mb) is U b m The total number of corresponding candidate rewind paths; Step S42: Get U b m Each corresponding UL a mb The corresponding predicted delay D4 a mb ; Step S43: b m The corresponding minimum D4 a mb Corresponding UL a mb Determined as U b m The corresponding rewind path; Step S5: Set the U b m The winding path is clear and follows each U b m The corresponding rewinding path is for each U b m Rewinding the wire and generating the winding information after rewinding; Step S6: determine whether the system performance corresponding to the winding information after rewinding is better than the system performance corresponding to the winding information before rewinding. If so, accept the winding information after this rewinding.

2. The method according to claim 1, characterized in that In step S3, B=V×h(m), V is a preset ratio value, and h(m) is A m The total number of non-critical paths in the FPGA channel. Non-critical paths are paths other than critical paths in the FPGA channel.

3. The method according to claim 1, characterized in that In step S43, if U b m The corresponding minimum D4 a mb If there are multiple paths, the smallest D4 with the shorter path will be selected. a mb Corresponding UL a mb Determined as U b m The corresponding rewind path.

4. The method according to claim 1, characterized in that UL a mb ={UL11 amb ,UL12 amb ,...,UL1 r amb ,...,UL1 g(amb) amb ,UL21 amb ,UL22 amb ,...,UL2 t amb ,...,UL2 [g(amb)-1] amb }, among which, UL1 r amb For U b m At UL a mb The rth FPGA channel passed through, r ranges from 1 to g(amb), g(amb) is UL a mb The total number of FPGA channels in UL2 t amb For UL2 t amb The value of t ranges from 1 to [g(amb)-1], where [g(amb)-1] is the value of UL a mb The total number of FPGAs passed through, the step S42 comprises: Step S421: Obtain the current FPGA system U b m Corresponding time division multiplexing rate TDR b m ; Step S422: Obtain UL1 r amb The FPGA channel is connected to the TDR b m Time Division Multiplexing Rate (TDR) of the closest cable r amb ; Step S423: Based on the preset time division multiplexing mapping table and TDR r amb Get every UL1 r amb The corresponding delay value D5 r amb The time division multiplexing mapping table stores a mapping relationship between time division multiplexing rate and delay value; Step S424: Based on D5 r amb ,UL a mb The total number of FPGAs in the UL a mb The corresponding predicted delay D4 a mb : Wherein, β is the preset routing cost through FPGA.

5. The method according to claim 1, characterized in that: In step S6, if the system performance corresponding to the winding information after rewinding is not better than the system performance corresponding to the winding information before rewinding, the FPGA system is restored to the state before rewinding, and it is determined whether m is less than M. If so, m=m+1 is set, and the process returns to step S3. If m=M, the process ends.

6. The method according to claim 1, characterized in that In step S6, after receiving the winding information after this rewinding, it is determined whether the system performance corresponding to the winding information after the rewinding meets the preset target system performance. If so, the process ends; if not, the process returns to step S1.

7. An electronic device, characterized in that: include: at least one processor; and, a memory communicatively coupled to the at least one processor; The memory stores instructions executable by the at least one processor, wherein the instructions are configured to execute the method according to any one of claims 1 to 6.

8. A computer-readable storage medium, characterized in that: Computer executable instructions are stored, and the computer executable instructions are used to execute the method according to any one of the preceding claims 1-6.

Citation Information

Patent Citations

  • Incrementally distributing logical wires onto physical sockets by reducing critical path delay

    CN109196498A