System-on-chip route setting method and related device

By grid processing and path weight searching of the wiring space of system-level chips, the routes between modules are automatically determined, which solves the problem that route settings rely on manual work in the existing technology, and realizes efficient and automated route placement.

CN119067061BActive Publication Date: 2025-03-25SMARTER SILICON (SHANGHAI) TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411557714.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-01
Publication Date
2025-03-25
Estimated Expiration
2044-11-01

AI Technical Summary

Technical Problem

The lack of tools for routing between modules in system-level chips in the prior art, resulting in route construction mainly relies on the manual work of engineers, and efficient and high-standard route setting cannot be achieved.

Method used

By meshing the wiring space of the system-level chip, the initial and end nodes corresponding to the starting point and end point modules are determined, and path searches are performed in the available nodes in the wiring space based on the weight between the nodes, and the route between the initial and end nodes is automatically determined.

Benefits of technology

The automatic placement of routes in system-level chips is realized, the efficiency and quality of route settings are improved, and the need for manual intervention is reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119067061B_ABST
    Figure CN119067061B_ABST
Patent Text Reader

Abstract

The present application discloses a route setting method and related devices for a system-level chip, which relate to the field of chips and are used to set a pipeline path between at least two modules of the system-level chip. The route setting method comprises: gridding the wiring space of the system-level chip to obtain a plurality of grids, with one grid as a node; determining an initial node corresponding to a starting point module and an end node corresponding to an end point module in the route to be set; performing a path search in available nodes in the wiring space according to the weight of each node between the initial node and the end node, and determining a route between the initial node and the end node, wherein the route passes through at least one node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of chips, and in particular to a route setting method for a system-level chip and related devices. Background Art

[0002] In large-scale SOC (System-on-a-Chip) implementations, there are many modules such as subsystems / IPs. Subsystems and subsystems, as well as subsystems and chips, need to exchange information. When the distance between two subsystems is greater than the physical distance that can be covered in a clock cycle, the designer needs to insert a corresponding route (such as a pipeline path) between the two groups of ports (interfaces) to allow the signal to be transmitted from the starting subsystem / module / IP to the end subsystem / module / IP in clock cycles.

[0003] In the prior art, there is no tool for placing routes between modules in the SOC chip. The construction of the routes mainly relies on the manual work of engineers, and it is impossible to achieve efficient and high-standard route setting in the SOC. Summary of the invention

[0004] A first aspect of the present application provides a route setting method for a system-on-chip, which is used to set a pipeline path between at least two modules of the system-on-chip, and the route setting method includes:

[0005] Gridding the wiring space of the system-level chip to obtain a plurality of grids, where each grid is used as a node;

[0006] Determine the initial node corresponding to the starting point module and the end node corresponding to the end point module in the route to be set;

[0007] A path search is performed in available nodes in a routing space according to the weights of each node between the initial node and the end node to determine a route between the initial node and the end node, wherein the route passes through at least one node.

[0008] In a possible implementation, performing a path search in available nodes in a routing space according to the weights of each node between the initial node and the end node to determine a route between the initial node and the end node includes:

[0009] Determining weights of available adjacent nodes of a first node, the first node comprising an initial node and at least one node between the initial node and an end node in the routing space;

[0010] According to the weight of each available adjacent node, searching among the available adjacent nodes of the first node to determine the target node, the priority of the target node is higher than the priority of the non-target nodes among the available adjacent nodes, and the priority of the node corresponds to the weight;

[0011] Taking the target node as a new first node, returning to the step of searching among the available adjacent nodes of the first node according to the weights of the available adjacent nodes to determine the target node, until the target node is an end node;

[0012] A route between the initial node and the end node is determined according to the initial node and the end node, and at least one target node between the initial node and the end node.

[0013] In a possible implementation, determining the weight of each available neighboring node of the first node includes:

[0014] Obtaining status information of each neighboring node of the first node;

[0015] Characterizing that the adjacent node is in an available state based on the state information of the adjacent node, and determining the weight of the adjacent node in the available state;

[0016] The adjacent node is characterized as being in an unavailable state based on the state information of the adjacent node, and the adjacent node in the unavailable state is discarded.

[0017] In a possible implementation, after determining the route between the initial node and the end node according to the initial node and the end node, and at least one target node between the initial node and the end node, the method further includes:

[0018] The status of each node included in the route between the initial node and the end node is changed from an available status to an unavailable status.

[0019] In a possible implementation, determining the weight of each available neighboring node of the first node includes:

[0020] Determining a congestion cost corresponding to a first neighboring node according to a congestion state of a location of a first neighboring node, wherein the first neighboring node is any one of available neighboring nodes of the first node;

[0021] The weight of the first neighboring node is determined according to the congestion cost corresponding to the first neighboring node.

[0022] In a possible implementation, determining the weight of each available neighboring node of the first node further includes:

[0023] Determine a distance cost corresponding to the first neighboring node according to the distances between the first neighboring node and the initial node and the end node respectively, where the first neighboring node is any one of the available neighboring nodes of the first node;

[0024] The weight of the first neighboring node is determined according to the distance cost and the congestion cost corresponding to the first neighboring node.

[0025] In a possible implementation, determining the distance cost corresponding to the first adjacent node according to the distances between the first adjacent node and the initial node and the end node respectively includes:

[0026] Determine a first distance cost corresponding to the first neighboring node according to a first distance between the first neighboring node and the initial node, wherein the first distance is related to the number of nodes between the first neighboring node and the initial node;

[0027] Determine a target path among at least two predicted paths predicted between a first adjacent node and an end node, wherein a distance between the first adjacent node and the end node in the target path is smaller than a distance between the first adjacent node and the end node in other paths, and a number of direction changes in the target path is smaller than a number of direction changes in other paths;

[0028] Determine a second distance cost corresponding to the first adjacent node according to the number of direction changes corresponding to the target path and the distance between the first adjacent node and the end node in the target path;

[0029] The distance cost of the first neighboring node is determined according to the first distance cost and the second distance cost.

[0030] In a possible implementation, before determining the congestion cost corresponding to the first neighboring node according to the congestion state of the location where the first neighboring node is located, the method further includes:

[0031] Determining a position of the first adjacent node in the wiring space;

[0032] Based on the available space in the area where the location is located, determine the congestion state of the location where the first neighboring node is located.

[0033] In a possible implementation, after performing a path search in available nodes in a routing space according to the weights of each node between the initial node and the end node to determine the route between the initial node and the end node, the method further includes:

[0034] Based on the driving distance of the signal repeater, at least one signal repeater is inserted in the route between the initial node and the end node, and the signal repeater is used to perform driving enhancement processing on the signal transmitted in the route.

[0035] A second aspect of the present application provides a route setting device for a system-on-chip, which is used to set a pipeline path between at least two modules of the system-on-chip, and the route setting device includes:

[0036] A grid processing module, used for gridding the wiring space of the system-level chip to obtain a plurality of grids, where one grid is used as a node;

[0037] A node determination module, used to determine the initial node corresponding to the starting point module and the end node corresponding to the end point module in the route to be set;

[0038] The route determination module is used to perform a path search in the available nodes in the routing space according to the weights of each node between the initial node and the end node, and determine the route between the initial node and the end node, wherein the route passes through at least one node.

[0039] A third aspect of the present application provides a computer program product, comprising computer-readable instructions, which, when executed on an electronic device, enables the electronic device to implement the route setting method for a system-level chip according to the first aspect or any implementation of the first aspect.

[0040] A fourth aspect of the present application provides an electronic device, comprising at least one processor and a memory connected to the processor, wherein:

[0041] The memory is used to store computer programs;

[0042] The processor is used to execute the computer program so that the electronic device can implement the route setting method of the system-on-chip according to the first aspect or any implementation manner of the first aspect.

[0043] A fifth aspect of the present application provides a computer storage medium, which carries one or more computer programs. When the one or more computer programs are executed by an electronic device, the electronic device can use the route setting method of the system-level chip according to the first aspect or any implementation method of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0044] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. Throughout the accompanying drawings, the same or similar reference numerals represent the same or similar elements. It should be understood that the drawings are schematic and the originals and elements are not necessarily drawn to scale.

[0045] Figure 1 It is a flowchart of a route setting method of a system-on-chip provided in an embodiment of the present application;

[0046] Figure 2 It is a schematic diagram of the grid processing of the wiring space of the system-level chip provided in the embodiment of the present application;

[0047] Figure 3It is a schematic diagram of some areas in the system-level chip provided in an embodiment of the present application;

[0048] Figure 4 It is a flow chart of performing path search based on the weights of each node between the initial node and the end node to determine the route between the initial node and the end node provided by an embodiment of the present application;

[0049] Figure 5 It is a schematic diagram of available nodes provided in an embodiment of the present application;

[0050] Figure 6 is a schematic diagram of a process for determining the weights of each available adjacent node of a first node provided by an embodiment of the present application;

[0051] Figure 7 is another flowchart of determining the weights of each available adjacent node of a first node provided by an embodiment of the present application;

[0052] Figure 8 It is a schematic diagram of a congested area in a system-level chip provided in an embodiment of the present application;

[0053] Fig. 9 It is a schematic diagram of a process for determining the congestion state of the location of the first adjacent node provided in an embodiment of the present application;

[0054] Fig.10 This is another flow chart of determining the weights of each available adjacent node of the first node provided in an embodiment of the present application.

[0055] Fig.11 It is a flowchart of determining the distance cost corresponding to the first adjacent node according to the distances between the first adjacent node and the initial node and the end node respectively provided by the embodiment of the present application;

[0056] Fig.12 is a schematic diagram of direction change provided by an embodiment of the present application;

[0057] Fig.13 It is a partial regional schematic diagram of the system-level chip provided in the embodiment of the present application;

[0058] Fig.14 It is a flow chart of an application scenario of a route setting method of a system-on-chip provided in an embodiment of the present application;

[0059] Fig.15 It is a structural schematic diagram of a route setting device of a system-on-chip provided in an embodiment of the present application;

[0060] Fig.16 It is a structural schematic diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0061] The following describes the embodiments of the present application in conjunction with the drawings in the embodiments of the present application. The terms used in the implementation method section of the present application are only used to explain the specific embodiments of the present application, and are not intended to limit the present application.

[0062] The embodiments of the present application are described below in conjunction with the accompanying drawings. Those skilled in the art will appreciate that, with the development of technology and the emergence of new scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.

[0063] The terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and need not be used to describe a specific order or sequential order. It should be understood that the terms used in this way can be interchangeable under appropriate circumstances, which is only to describe the distinction mode adopted by the objects of the same attributes when describing in the embodiments of the present application. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, so that the process, method, system, product or equipment comprising a series of units need not be limited to those units, but may include other units that are not clearly listed or inherent to these processes, methods, products or equipment.

[0064] Figure 1 It is a flow chart of a route setting method of a system-level chip provided in an embodiment of the present application. The method is used to set a pipeline path between at least two modules of the system-level chip, and may include steps 101 to 103. These steps are described in detail below.

[0065] 101. Grid the wiring space of the system-level chip to obtain a plurality of grids, where one grid is used as a node;

[0066] Among them, multiple modules are arranged on the system-level chip, each module is arranged at a different position on the system-level chip, and there is a vacant area between each sub-module, which is the wiring space on the system-level chip for setting the pipeline path between the modules.

[0067] The wiring space in the system-level chip is gridded to obtain a plurality of grids, each of which can be used as a node, and the route is set in the wiring space based on the node.

[0068] The size of the grid can be set according to the width of the route on the system-level chip.

[0069] In a possible implementation, the grid is divided into squares.

[0070] Among them, the modules set on the system-level chip may include interface IP, subsystems and other functional modules. The module is a hardware structure set up by the system-level chip. Pipeline paths need to be set between the hardware structures to realize data interaction between the hardware structures.

[0071] Figure 2 1 is a schematic diagram of gridding processing of the wiring space of the system-level chip provided in an embodiment of the present application. In the schematic diagram, dark rectangles and dark squares are used to represent modules 201 set on the system-level chip. The blank area between the modules is the wiring space. The wiring space is gridded to obtain a plurality of grids 202. The size of each grid is the same.

[0072] Should Figure 2 In the figure, the modules are represented by regular shapes. In the specific implementation, the shapes of the modules are set according to the actual situation and are not limited thereto.

[0073] 102. Determine an initial node corresponding to a starting point module and an end node corresponding to an end point module in the route to be set;

[0074] When setting the pipeline path for the two modules, first determine the initial node corresponding to the starting point module and the end node corresponding to the end point module in the route for the two modules.

[0075] The wiring position of each module may correspond to multiple nodes, and among the multiple nodes, one is determined as the starting node / ending node for setting a pipeline path between it and the other party.

[0076] Figure 3 It is a schematic diagram of some areas in the system-level chip provided in an embodiment of the present application. In this schematic diagram, a pipeline path is set between IP 301 and subsystem 302, wherein the wiring position of IP 301 corresponds to multiple nodes 303, one of which is determined as the initial node, and the wiring position of subsystem 302 corresponds to multiple nodes 304, one of which is determined as the end node, and a route is subsequently set between the initial node and the end node. In the figure, dark colors are used to represent nodes corresponding to the wiring positions.

[0077] 103. Perform a path search in available nodes in the routing space according to the weights of each node between the initial node and the end node, and determine a route between the initial node and the end node, where the route passes through at least one node.

[0078] There are several nodes between the initial node and the end node in the wiring space, and a plurality of continuous nodes are selected from the several nodes to form a route connecting the initial node and the end node.

[0079] According to the weight of each node between the initial node and the end node, a path search is performed in available nodes to obtain the route between the initial node and the end node.

[0080] In a possible implementation, the path search in the available nodes is virtual pathfinding, specifically, pathfinding is performed based on virtual nodes in the grid obtained after gridding processing, and the global routing engine of the tool is not called.

[0081] In a possible implementation, a node determined as a component of the route can be used as a reference, and its available adjacent nodes are searched to determine a node that can be a component of the route, and then the node is used as a reference to continue searching, thereby realizing a path search in the available nodes in the rewiring space. Figure 4 This process is described in detail in .

[0082] In this embodiment, when setting a pipeline path between two modules of the system-level chip, the wiring space of the system-level chip is gridded to obtain a plurality of grids, with one grid being a node; first, the initial node corresponding to the starting point module and the end node corresponding to the end point module are determined, and then a path search is performed in the available nodes of the wiring space according to the weights of each node between the initial node and the end node to determine the route between the initial node and the end node, and the route passes through at least one node. By performing an automatic path search in the available nodes of the wiring space, the route is automatically placed without the need for manual placement by the designer, thereby improving the efficiency of setting the route in the system-level chip.

[0083] Figure 4 The present application provides an embodiment of a process flow diagram for performing a path search based on the weights of each node between the initial node and the end node to determine the route between the initial node and the end node, which may include steps 401 to 404, and these steps are described in detail below.

[0084] 401. Determine weights of each available adjacent node of a first node, where the first node includes an initial node and at least one node between the initial node and the end node in the routing space;

[0085] In the path search process, a determined node is used as the reference, and the available adjacent nodes around it are searched and determined to be adjacent nodes in the path, and multiple nodes are determined in sequence until the determined adjacent node is the end node.

[0086] In this embodiment, the first node is taken as an example for description. The first node may be an initial node or any node between the initial node and the end node in the wiring space.

[0087] The available adjacent nodes of the first node are first determined, and then the weights of the available adjacent nodes are determined.

[0088] The available adjacent nodes of the first node are nodes that are adjacent to the first node and can be occupied. The adjacent node means that an edge overlaps between the node and the first node; the able to be occupied node means that the node is not occupied by other arranged routes.

[0089] In a possible implementation, when determining the weight of each available neighboring node of the first node, it may be selected whether to determine the weight based on the state of the available neighboring node, and then Figure 6 The process of determining the weights of available neighboring nodes is described in detail in .

[0090] In a possible implementation, the weights of the available neighboring nodes of the first node may be determined based on the congestion status of the location where the node is located. Figure 7 The process of determining the weights of available neighboring nodes is described in detail in .

[0091] In a possible implementation, the weight of each available neighboring node of the first node may be determined based on the distance cost and congestion cost of the available neighboring node. Fig.10 The process of determining the weights of available neighboring nodes is described in detail in .

[0092] 402. According to the weights of the available adjacent nodes, search among the available adjacent nodes of the first node to determine a target node, wherein the priority of the target node is higher than the priority of the non-target nodes among the available adjacent nodes, and the priority of the node corresponds to the weight;

[0093] After the weights of the available adjacent nodes are determined, the available adjacent nodes are searched according to the weights to determine an available adjacent node with the highest priority as the target node.

[0094] Among them, the priority of each node corresponds to the weight. The larger the weight, the higher the priority.

[0095] If there is only one available adjacent node for the first node, no search is required, and the only available adjacent node is directly determined as the target node.

[0096] Figure 5 is a schematic diagram of available nodes provided by an embodiment of the present application, which shows that AI has a total of 9 nodes, and the 9 nodes are arranged in 3 rows and 3 columns. Among them, the first node is E, and the adjacent nodes of the first node are node B, node D, node F and node H. In this schematic diagram, black indicates that the adjacent node is unavailable, and gray indicates that the adjacent node is available. Among them, the Figure 5In (a), the node B is black and is the previous node of the first node. Node B determines the node E as its target node through searching, and determines one of the nodes D, F and H as the target node of the first node. Figure 5 In (b), the node D is black and is the previous node of the first node. Node D determines the node E as its target node through searching, and determines one of the nodes B, F, and H as the target node of the first node. Figure 5 In (c), the nodes B and D are black. The node B is unavailable as the previous node of the first node E, and the node D is occupied by the route that has been arranged, so it is unavailable. A target node is determined between the nodes F and H as the target node of the first node. Figure 5 In (d), the nodes B, D and H are black, the node B is unavailable as the previous node of the first node E, and the nodes D and H are occupied by the arranged routes and are therefore unavailable. The node F is directly determined as the target node of the first node.

[0097] 403. The target node is used as a new first node, and the step of searching among the available adjacent nodes of the first node according to the weights of the available adjacent nodes to determine the target node is returned to execution until the target node is an end node;

[0098] Among them, after determining the target node corresponding to the first node, the target node is used as the new first node, and the search continues among the available adjacent nodes of the new first node to determine its target node. The process is executed in a loop until the determined target node is the end node to complete the search process.

[0099] In one possible implementation, starting from the initial node, traverse the adjacent nodes of the initial node, traverse the available adjacent nodes of the traversed nodes in turn, and gradually expand outward to the end node. Since there are clear initial nodes and end nodes, the search range can be narrowed down according to the breadth optimization algorithm.

[0100] In one possible implementation, if a first node cannot find a target node, the target nodes determined between the first node and the initial node are deleted, and a route to the end node cannot be established through the initial node and the target nodes between the initial node and the first node.

[0101] 404. Determine a route between the initial node and the end node according to the initial node and the end node, and at least one target node between the initial node and the end node.

[0102] After a plurality of target nodes between the initial node and the end node are determined, a route between the initial node and the end node through the plurality of target nodes is determined.

[0103] Among them, when each first node determines the target node, the first node is recorded as the parent node of the target node. After the search is completed, the end node, the target node and the initial node can be connected in sequence by gradually tracing the parent node, so as to determine the route between the initial node and the end node.

[0104] In this embodiment, the weights of each available adjacent node of the first node are determined, and the first node includes an initial node and at least one node between the initial node and the end node in the wiring space; based on the weights of each available adjacent node, a search is performed among each available adjacent node of the first node to determine a target node, and the priority of the target node is higher than the priority of non-target nodes among each available adjacent node, and the priority of the node corresponds to the weight; the target node is used as a new first node, and the step of searching among each available adjacent node of the first node to determine the target node is returned to execute until the target node is the end node; based on the initial node and the end node, and at least one target node between the initial node and the end node, a route between the initial node and the end node is determined, and each target node between the initial node and the end node is obtained by searching one by one from the initial node, and a route including the initial node, the target node and the end node is determined, thereby realizing the process of automatic path search.

[0105] Figure 6 It is a flowchart of determining the weights of each available adjacent node of a first node provided by an embodiment of the present application, which may include steps 601 to 603, and these steps are described in detail below.

[0106] 601. Obtain status information of each neighboring node of a first node;

[0107] Herein, state information is set for each node in the wiring space.

[0108] The status information of each node may include an available state and an unavailable state. The available state indicates that the node can be used, and the unavailable state indicates that the node cannot be used.

[0109] 602. Determine the weight of the neighboring node in the available state based on the state information of the neighboring node indicating that the neighboring node is in the available state;

[0110] If it is determined that the state information of a certain neighboring node indicates that it is in an available state, the weight of the neighboring node may be determined.

[0111] In a possible implementation, the weight of the neighboring node may be determined based on the congestion cost of the neighboring node. Figure 7 This process is described in detail in .

[0112] In a possible implementation, the weight of the neighboring node may be determined based on the congestion cost and distance cost of the neighboring node. Fig.10 This process is described in detail in .

[0113] If the node is in an available state, it indicates that the node is not occupied by other set routes.

[0114] In a possible implementation, the node being occupied by other set routes includes: the node is a node included in the set route, and the node is a node within the spacing range of the set route.

[0115] As an example, the production process of the system-level chip requires that the wiring rule adopted for each layer of wiring is one width and twice spacing, or twice width and twice spacing, where the width is the route width, and the spacing is the interval between any two routes. The multiple can be based on the size of the node, one times can be represented by one node, and twice can be represented by a combination of two adjacent nodes.

[0116] 603. Based on the state information of the neighboring node, it is indicated that the neighboring node is in an unavailable state, and the neighboring node in the unavailable state is discarded.

[0117] If it is determined that the status information of a neighboring node indicates that it is in an unavailable state, then the neighboring node cannot be selected as the target node, and the neighboring node is discarded, and there is no need to determine the weight of the neighboring node in the unavailable state.

[0118] In a possible implementation, the entire system-level chip can be spatially gridded, and the nodes in the area occupied by the module are also set to an unavailable state, and the initial states of other nodes not occupied by the module are all set to an available state. When setting a route, if a node is occupied by a set route, the state of the node is changed from an available state to an unavailable state.

[0119] In a possible implementation, after the route between the initial node and the end node is determined, the status of each node included in the route between the initial node and the end node is modified from an available state to an unavailable state. When other routes are subsequently arranged on the system-level chip, the nodes on the route arranged this time are unavailable.

[0120] In a possible implementation, after the route between the initial node and the end node, the state of each node in the route can be modified, and the state of the nodes in the interval area of ​​the route can be modified to an unavailable state.

[0121] In a possible implementation, after determining the target node of any first node, the state of the target node may be modified to an unavailable state, and after determining the route between the initial node and the end node, the state of the nodes in the interval area of ​​the route may be modified to an unavailable state.

[0122] In this embodiment, the state information of each adjacent node of the first node is obtained; based on the state information of the adjacent node, the adjacent node is characterized as being in an available state, and the weight of the adjacent node in the available state is determined; based on the state information of the adjacent node, the adjacent node is characterized as being in an unavailable state, and the adjacent node in the unavailable state is discarded, and the state information of each node is set, and based on the state information of the adjacent node being in an available state, the weight of the adjacent node is further determined, so as to determine the target node among the adjacent nodes in the available state according to the weight. Based on the state information of the adjacent node being in an unavailable state, the adjacent node in the unavailable state is discarded, realizing the process of starting from the initial node, sequentially traversing the available adjacent nodes, and gradually expanding to the end node.

[0123] Figure 7 It is another flowchart diagram of determining the weights of each available adjacent node of the first node provided in an embodiment of the present application, which may include steps 701 to 702, and these steps are described in detail below.

[0124] 701. Determine a congestion cost corresponding to a first neighboring node according to a congestion state of a location of a first neighboring node, where the first neighboring node is any one of available neighboring nodes of the first node.

[0125] The congestion status of each adjacent node is determined, so as to determine the congestion cost according to the congestion status of the adjacent node.

[0126] The value of the congestion cost may correspond to the congestion state. If the node is located in a high congestion area, the corresponding congestion cost is large; if the node is located in a low congestion area, the corresponding congestion cost is small.

[0127] The congestion cost can be calculated by multiplying a fixed value by a weight. The weight can be obtained from a two-dimensional weight table, in which large values ​​correspond to congested areas and small values ​​correspond to non-congested areas. When determining the congestion cost of a node, if the location of the node belongs to a high congestion area, a large value belonging to high congestion is selected in the two-dimensional weight table; if the location of the node belongs to a low congestion area, a small value belonging to low congestion is selected in the two-dimensional weight table.

[0128] The congestion state of the location of the first neighboring node can be determined based on the available space in the area where the first neighboring node is located. Fig. 9The process of determining the congestion state is described in .

[0129] 702. Determine a weight of the first neighboring node according to the congestion cost corresponding to the first neighboring node.

[0130] After the congestion cost of the first neighboring node is determined, its weight is determined according to the congestion cost.

[0131] The greater the congestion cost of the first neighboring node, the more congested its location is. Therefore, the first neighboring node is less likely to be selected as the target node.

[0132] Correspondingly, a weight is assigned to the neighboring node according to its corresponding congestion cost. The value of the weight is opposite to that of the congestion cost. The larger the congestion cost, the smaller the weight of the neighboring node and the lower the probability of the neighboring node being selected as the target node.

[0133] Figure 8 Schematic diagram of a congested area in a system-level chip provided in an embodiment of the present application. The system-level chip is provided with multiple modules, and the wiring space between the modules is gridded to obtain a plurality of nodes. Figure 8 In the figure, a route is set from module 801 to module 802. The possible locations of the route include 803-807, where locations 803 and 806 are high congestion locations, and locations 804, 805, and 807 are low congestion locations. In the diagram, dark colors represent high congestion, and light colors represent low congestion. Figure 8 (a) indicates the determination of the congested areas in the system-level chip. Figure 8 (b) shows selecting a node at a low congestion location to implement determining a route 808 between an initial node and an end node.

[0134] In this embodiment, the congestion cost corresponding to the first adjacent node is determined according to the congestion status of the location of the first adjacent node; the weight of the first adjacent node is determined according to the congestion cost corresponding to the first adjacent node, and the congestion cost of each available adjacent node is determined based on the congestion status of the location of the node, and then the weight is determined. It can be determined whether the node can be selected as the target node based on the congestion status of the location of the node. In the process of determining the route from the initial node to the end node, the congestion status of the intermediate nodes is taken into account, thereby avoiding a more congested wiring method and improving the signal quality in the system-level chip after the final wiring is completed.

[0135] Fig. 9 It is a flowchart of determining the congestion state of the location of the first adjacent node provided in an embodiment of the present application, which may include steps 901 to 902. These steps are described in detail below.

[0136] 901. Determine a position of the first adjacent node in the wiring space;

[0137] When determining the congestion state of the location of the first adjacent node, first determine its location in the wiring space, and then determine its congestion state according to the environment of the location.

[0138] The position of a node in the wiring space can be represented by the coordinates of the node.

[0139] In a possible implementation, after the gridding process in the system-on-chip, the lower left corner of the system-on-chip is the origin, the row number of the node is the horizontal coordinate, and the column number of the node is the vertical coordinate.

[0140] 902. Determine a congestion state of the location of the first neighboring node based on available space in the area where the location is located.

[0141] After the position of the first adjacent node in the wiring space is determined, the available space in the area where the position is located is determined.

[0142] The area where the position is located can be an area surrounded by two or more adjacent modules. Figure 8 Positions 803-807.

[0143] The available space in the area where the node is located in the wiring space can be represented by the number of available nodes in the area. The more available nodes there are, the lighter the congestion state of the location is; the fewer available nodes there are, the heavier the congestion state of the location is.

[0144] Among them, the available space in the area where the node is located in the wiring space can also be represented by the number of routes that can be set in the area and the number of routes that have been set, specifically, the difference between the number of settable routes and the number of set routes. The larger the difference, the lighter the congestion state of the location. Conversely, the smaller the difference, the heavier the congestion state of the location.

[0145] In this embodiment, the position of the first adjacent node in the wiring space is first determined; then, based on the available space in the area where the position is located, the congestion state of the position of the first adjacent node is determined. The congestion state of the position of a certain node is determined based on the available space, thereby realizing quantitative judgment of the congestion state and being able to accurately predict the congestion state of the position of the node.

[0146] Fig.10 It is another flowchart diagram for determining the weights of each available adjacent node of the first node provided in an embodiment of the present application, which may include steps 1001 to 1002, and these steps are described in detail below.

[0147] 1001. Determine a distance cost corresponding to a first neighboring node according to the distances between the first neighboring node and the initial node and the end node respectively, where the first neighboring node is any one of the available neighboring nodes of the first node;

[0148] The first adjacent node is any one of the available adjacent nodes of the first node.

[0149] The distance cost of the first adjacent node is determined, and the distance cost is obtained by combining the distance cost between the first adjacent node and the initial node and the distance cost between the first adjacent node and the end node.

[0150] The distance between the first adjacent node and the initial node and the distance between the first adjacent node and the end node can be represented by Manhattan distance.

[0151] The distance cost is related to the length of the distance. The longer the distance, the greater the corresponding distance cost, and the shorter the distance, the smaller the corresponding distance cost.

[0152] In a possible implementation, Dijkstra algorithm, A algorithm, etc. may be used to determine the shortest routes between the first adjacent node and the initial node and the end node, respectively, and then determine the distances between the first adjacent node and the initial node and the end node, respectively, in the route.

[0153] In a possible implementation, the distance cost between the first adjacent node and the end node is to determine the optimal target path among multiple predicted paths between the two, and the cost corresponding to the distance between the first adjacent node and the end node in the target path is subsequently Fig.11 The process of determining the distance cost corresponding to the first adjacent node is described in detail.

[0154] 1002. Determine a weight of the first neighboring node according to the distance cost and the congestion cost corresponding to the first neighboring node.

[0155] The distance cost and the congestion cost corresponding to the first neighboring node are accumulated to obtain the overall cost of the first neighboring node, and then the weight of the first neighboring node can be determined based on the overall cost.

[0156] Among them, the overall cost of the node is negatively correlated with its weight. The larger the overall cost of the first adjacent node, the smaller its weight. A route is set between the initial node and the end node with the minimum cost.

[0157] In one possible implementation, the first node has three available adjacent nodes, and the costs of determining the three available adjacent nodes are, from large to small, available adjacent node 1, available adjacent node 2, and available adjacent node 3. Then, the weight of available adjacent node 3 is the largest, the weight of available adjacent node 2 is second, and the weight of available adjacent node 1 is the smallest. The weight corresponds to the priority of the node. The larger the weight, the greater the priority. Accordingly, available adjacent node 3 is selected as the target node of the first node, and the target node is determined among the adjacent nodes of available adjacent node 3, and so on, until the available adjacent node is the end node.

[0158] The congestion cost of the first neighboring node is determined according to the congestion state of the location of the first neighboring node. The determination method can refer to the aforementioned Figure 7 Step 701 in is not described in detail here.

[0159] In this embodiment, the distance cost corresponding to the first neighboring node is determined based on the distance between the first neighboring node and the initial node and the end node respectively, and the first neighboring node is any one of the available adjacent nodes of the first node; the weight of the first neighboring node is determined based on the distance cost and congestion cost corresponding to the first neighboring node. The distance cost and congestion cost of the first neighboring node are taken into consideration, and the weight of the first neighboring node can be determined based on multiple aspects to achieve setting of a route between the initial node and the end node at the minimum cost, thereby ensuring high transmission efficiency between the initial node and the end node.

[0160] Fig.11 It is a flowchart provided by an embodiment of the present application for determining the distance cost corresponding to the first adjacent node based on the distance between the first adjacent node and the initial node and the end node respectively, which may include steps 1101 to 1104, and these steps are described in detail below.

[0161] 1101. Determine a first distance cost corresponding to the first adjacent node according to a first distance between the first adjacent node and the initial node, where the first distance is related to the number of nodes between the first adjacent node and the initial node;

[0162] Wherein, a first distance cost between the first adjacent node and the initial node and a second distance cost between the first adjacent node and the end node are determined in sequence.

[0163] Wherein, based on the first distance between the first adjacent node and the initial node, the first distance cost is determined, and the first distance is related to the number of nodes between the first adjacent node and the initial node.

[0164] In a possible implementation, the distance between the first neighboring node and the initial node may be Manhattan distance.

[0165] The more nodes there are between the first adjacent node and the initial node, the greater the first distance is, and correspondingly, the greater the distance cost is.

[0166] In a possible implementation, the distance cost between the first neighboring node and the initial node may be determined in an accumulation manner.

[0167] As an example, g(1) represents the distance cost of the initial node, g(2) represents the distance cost of the target node determined for the initial node, ..., g(n-1) represents the current first node, and g(n) represents the distance cost of the first adjacent node of the first node. The relationship between the formulas is as follows:

[0168] g(1) = initial value;

[0169] g(2) = g(1) + step value;

[0170] g(n)=g(1)+g(2)+…+g(n-1)=g(1)+(n-1)×step value.

[0171] The step value is the cost of adding each node.

[0172] As an example, the distance cost of the initial node can be set to 0 and its weight is the largest.

[0173] 1102. Determine a target path among at least two predicted paths predicted between the first adjacent node and the end node, wherein the distance between the first adjacent node and the end node in the target path is smaller than the distance between the first adjacent node and the end node in the other paths, and the number of direction changes in the target path is smaller than the number of direction changes in the other paths;

[0174] When determining the second distance between the first adjacent node and the end node, since there are several nodes between the first adjacent node and the end node, multiple paths can be formed, and an optimal one needs to be determined as the path for calculating the second distance.

[0175] The direction change refers to three adjacent nodes, and if the directions formed by two adjacent nodes in sequence are different, it is determined that a direction change occurs.

[0176] Fig.12 is a schematic diagram of direction change provided by an embodiment of the present application, wherein a plurality of nodes are shown. Fig.12 In (a), ABC does not change direction, the three nodes are arranged in sequence along the same direction, and the direction of the path to which the three nodes belong does not change; Fig.12 In (b), the nodes DE are arranged in the left-right direction, and the nodes DFD are arranged in the up-down direction. The directions of the paths to which the three nodes belong have changed.

[0177] Among them, Manhattan distance can be used as the main function to assist in increasing the cost of changing the direction of the node. If the direction of the node is changed, a certain cost will be increased. Therefore, continuously changing the direction of the node will result in a higher actual cost. Such an algorithm will not choose a path with continuous changes in direction.

[0178] Among them, multiple predicted paths are first predicted between the first adjacent node and the end node, and the Manhattan distance between the first adjacent node and the end node in the multiple predicted paths can be determined, and the number of direction changes between the first adjacent node and the end node in the multiple predicted paths can be determined. Combining the two, a path with the smallest Manhattan distance and the smallest number of direction changes is determined.

[0179] As an example, the Manhattan distance of each predicted path is calculated, its distance cost is calculated, and then the cost of changing the direction of the nodes in each predicted path is calculated, and the one with the smallest overall cost is selected as the target path.

[0180] When determining the cost of direction change, each time a direction change occurs, a direction cost is added. When multiple direction changes occur, multiple direction costs are added.

[0181] 1103. Determine a second distance cost corresponding to the first adjacent node according to the number of direction changes corresponding to the target path and the distance between the first adjacent node and the end node in the target path;

[0182] Among them, the distance between the first adjacent node and the end node in the target path can determine the distance cost between the two, and the number of direction changes in the target path can determine the direction change cost of the path.

[0183] The second distance cost of the first adjacent node can be obtained by adding the distance cost and the direction change cost.

[0184] In one possible implementation, if the distance cost of the Manhattan distance and the direction change cost are calculated when selecting the target path, and the one with the smallest overall cost among multiple predicted paths is determined as the target path, then in this step, the overall cost determined in the aforementioned process can be directly used as the second distance cost corresponding to the first adjacent node without the need to calculate again.

[0185] 1104. Determine a distance cost of the first adjacent node according to the first distance cost and the second distance cost.

[0186] Among them, a first distance cost characterizing the path condition between the first adjacent node and the initial node and a second distance cost characterizing the path condition between the first adjacent node and the end node are determined. The first distance cost and the second distance cost are added to obtain the distance cost of the first adjacent node.

[0187] In this embodiment, a first distance cost corresponding to the first adjacent node is determined based on a first distance between the first adjacent node and the initial node, and the first distance is related to the number of nodes between the first adjacent node and the initial node; in predicting at least two predicted paths between the first adjacent node and the end node, a target path is determined, and the distance between the first adjacent node and the end node in the target path is less than the distance between the first adjacent node and the end node in other paths, and the number of direction changes in the target path is less than the number of direction changes in other paths; a second distance cost corresponding to the first adjacent node is determined based on the number of direction changes corresponding to the target path and the distance between the first adjacent node and the end node in the target path; a distance cost of the first adjacent node is determined based on the first distance cost and the second distance cost, and the distance costs of the first adjacent node and the initial node and the end node are determined respectively for the distances between the first adjacent node and the initial node and the end node, and the distance cost between the first adjacent node and the end node is based on the distance, and the cost of node change direction is increased to ensure that the direction is changed as little as possible in the subsequently determined route, thereby reducing the difficulty of route routing.

[0188] In a possible implementation, after determining the route between the initial node and the end node, a signal repeater needs to be set in the route, specifically using the following process:

[0189] Based on the driving distance of the signal repeater, at least one signal repeater is inserted in the route between the initial node and the end node, and the signal repeater is used to perform driving enhancement processing on the signal transmitted in the route.

[0190] Among them, since the transmission signal in the route will be attenuated, it is necessary to set a signal repeater in the route to drive and enhance the signal transmitted in the route.

[0191] In a possible implementation, the signal repeater may be implemented by a register.

[0192] Among them, the signal attenuation in the route can be combined with the driving distance of the signal repeater to set the signal repeater in the route, and the route can be divided into multi-level pipeline paths through the signal repeaters in the route.

[0193] In a possible implementation, an optimal driving distance of the signal repeater is obtained in advance through experiments, and the signal repeater is set according to the optimal driving distance.

[0194] As an example, the required number of signal repeaters can be calculated based on the length of the route and the driving distance of the signal repeater. During the calculation process, the number of signal repeaters is rounded up and the calculated number of signal repeaters is inserted into the route.

[0195] In a possible implementation, a signal repeater is respectively provided at a port of a starting point module and a port of a terminal module, and a signal repeater is also provided in the route.

[0196] Fig.13 1 is a partial regional schematic diagram of a system-level chip provided in an embodiment of the present application, in which a route 1303 is provided between module 1301 and module 1302. In the route 1303, signal repeaters are respectively inserted at the port position of module 1301 and at the port position of module 1302, and three signal repeaters are inserted in the route 1303 according to the driving distance of the signal repeater. In the figure, a black square is used to represent a signal repeater, and a gray color is used to represent a port.

[0197] In this embodiment, after determining the route between the initial node and the end node, based on the driving distance of the signal repeater, at least one signal repeater is inserted in the route between the initial node and the end node. The signal repeater is used to perform driving enhancement processing on the signal transmitted in the route. The signal repeater is inserted in the set route to ensure that the signal can be stably transmitted through the route.

[0198] Fig.14 It is a flowchart of an application scenario of a route setting method for a system-on-chip provided in an embodiment of the present application.

[0199] 1401. Perform grid processing on the system-level chip to obtain a plurality of nodes;

[0200] 1402. The node corresponding to the location where the module is located on the system-level chip is set to an unavailable state, and the other nodes are set to an available state;

[0201] 1403. Determine an initial node in the starting point module, and set the cost of the initial node to 0;

[0202] 1404. For each adjacent node of the initial node, determine the cost of the adjacent node in the available state, and determine the priority of each adjacent node based on the cost;

[0203] Among them, the priority of the node is determined according to its weight, and the greater the weight, the higher the priority.

[0204] Among them, the weight of each adjacent node is determined according to its corresponding cost. The greater the cost, the smaller the weight.

[0205] Among them, the cost of each node can be calculated using the following formula:

[0206] F(n)=g(n)+h(n)+k(n)

[0207] Among them, g(n) is the cost of node n from the initial node, h(n) is the cost of node n from the end node, and k(n) is the congestion cost of node n.

[0208] Among them, g(n)=g(n-1)+step value, the cost of node n from the initial node increases with its distance from the initial node.

[0209] Among them, h(n) is the Manhattan distance as the main function, which helps to increase the cost of changing the direction of the node. As the number of node direction changes increases, the cost of the node n from the end node also increases.

[0210] Among them, k(n) is the harmonic function of congestion. In high-congestion areas, high costs are required to harmonize the value of k(n), and in low-congestion areas, low costs are required to harmonize the value of k(n). Accordingly, the cost of k(n) in high-congestion areas is higher, and the cost of k(n) in low-congestion areas is lower.

[0211] Among them, the node with the smallest calculated F(n) is taken as the node with the highest priority.

[0212] 1405. According to the priorities of the adjacent nodes in each available state, select the first node with the highest priority as the next node of the initial node in the route;

[0213] 1406. Record the initial node as the parent node of the first node;

[0214] 1407. Determine, among adjacent nodes of the first node in each available state, a second node as a next node of the first node in the route;

[0215] The determination process may refer to 1404 .

[0216] 1408. Record the first node as the parent node of the second node, and modify the state of the first node to an unavailable state;

[0217] 1409. If node n is the end node, trace the parent nodes step by step from the end node until it reaches the initial node, and find the route from the initial node to the end node;

[0218] 1410. Insert signal repeaters on the route;

[0219] 1411. If the next node cannot be found for node m, delete node m and all nodes before it.

[0220] A method for setting a route of a system-on-chip provided by an embodiment of the present application is introduced above. A device for executing the method for setting a route of a system-on-chip will be introduced below.

[0221] Fig.15 1 is a schematic diagram of the structure of a route setting device of a system-on-chip provided in an embodiment of the present application. The route setting device is used to set a pipeline path between at least two modules of the system-on-chip. The route setting device 1500 of the system-on-chip includes:

[0222] A grid processing module 1501 is used to grid the wiring space of the system-level chip to obtain a plurality of grids, where one grid is used as a node;

[0223] A node determination module 1502 is used to determine an initial node corresponding to a starting point module and an end node corresponding to an end point module in a route to be set;

[0224] The route determination module 1503 is used to perform a path search in the available nodes in the routing space according to the weights of each node between the initial node and the end node, and determine the route between the initial node and the end node, where the route passes through at least one node.

[0225] In a possible implementation, the route determination module includes:

[0226] A weight determination unit, configured to determine a weight of each available adjacent node of a first node, the first node comprising an initial node and at least one node between the initial node and the end node in the routing space;

[0227] A search unit is used to search among the available adjacent nodes of the first node according to the weights of the available adjacent nodes to determine the target node, wherein the priority of the target node is higher than the priority of the non-target nodes among the available adjacent nodes, and the priority of the node corresponds to the weight; the target node is used as a new first node, and the step of searching among the available adjacent nodes of the first node to determine the target node is returned to be executed until the target node is an end node;

[0228] The route determination unit is used to determine a route between the initial node and the end node according to the initial node and the end node, and at least one target node between the initial node and the end node.

[0229] In a possible implementation, the weight determination unit is specifically configured to:

[0230] Obtaining status information of each neighboring node of the first node;

[0231] Characterizing that the adjacent node is in an available state based on the state information of the adjacent node, and determining the weight of the adjacent node in the available state;

[0232] The adjacent node is characterized as being in an unavailable state based on the state information of the adjacent node, and the adjacent node in the unavailable state is discarded.

[0233] In a possible implementation, the method further includes:

[0234] The node status modification module is used to modify the status of each node included in the route between the initial node and the end node from an available state to an unavailable state after the weight determination unit determines the route between the initial node and the end node based on the initial node and the end node and at least one target node between the initial node and the end node.

[0235] In a possible implementation, the weight determination unit includes:

[0236] A congestion cost determination subunit, configured to determine a congestion cost corresponding to a first neighboring node according to a congestion state of a location of the first neighboring node, the first neighboring node being any one of the available neighboring nodes of the first node;

[0237] The first weight determination subunit is used to determine the weight of the first neighboring node according to the congestion cost corresponding to the first neighboring node.

[0238] In a possible implementation, the weight determination unit includes:

[0239] A distance cost determination subunit, configured to determine a distance cost corresponding to a first neighboring node according to the distances between the first neighboring node and the initial node and the end node respectively, wherein the first neighboring node is any one of the available neighboring nodes of the first node;

[0240] The second weight determination subunit is used to determine the weight of the first neighboring node according to the distance cost and the congestion cost corresponding to the first neighboring node.

[0241] In a possible implementation, the distance cost determination subunit is specifically used to:

[0242] Determine a first distance cost corresponding to the first adjacent node according to a first distance between the first adjacent node and the initial node, where the first distance is related to the number of nodes between the first adjacent node and the initial node;

[0243] Determine a target path among at least two predicted paths predicted between the first adjacent node and the end node, wherein the distance between the first adjacent node and the end node in the target path is smaller than the distance between the first adjacent node and the end node in the other paths, and the number of direction changes in the target path is smaller than the number of direction changes in the other paths;

[0244] Determine a second distance cost corresponding to the first adjacent node according to the number of direction changes corresponding to the target path and the distance between the first adjacent node and the end node in the target path;

[0245] The distance cost of the first neighboring node is determined according to the first distance cost and the second distance cost.

[0246] In a possible implementation, the weight determination unit further includes:

[0247] A position determination subunit, configured to determine the position of the first adjacent node in the wiring space before determining the congestion cost corresponding to the first adjacent node according to the congestion state of the position of the first adjacent node;

[0248] The state determination subunit is used to determine the congestion state of the location of the first neighboring node based on the available space in the area where the location is located.

[0249] In a possible implementation, the method further includes:

[0250] The insertion module is used to insert at least one signal repeater in the route between the initial node and the end node based on the driving distance of the signal repeater, and the signal repeater is used to perform driving enhancement processing on the signal transmitted in the route.

[0251] It should be noted that for the functional explanation of the various components of the route setting device of a system-on-chip provided in the embodiment of the present application, please refer to the explanation in the aforementioned method embodiment, which will not be repeated here.

[0252] In this embodiment, when setting a pipeline path between two modules of the system-level chip, the grid processing module grids the wiring space of the system-level chip to obtain a plurality of grids, with one grid being a node; the node determination module determines the initial node corresponding to the starting point module and the end node corresponding to the end point module, and the route determination module performs a path search in the available nodes of the wiring space according to the weight of each node between the initial node and the end node to determine the route between the initial node and the end node, and the route passes through at least one node. By performing an automatic path search in the available nodes of the wiring space, the route is automatically placed without the need for manual placement by the designer, thereby improving the efficiency of setting the route in the system-level chip.

[0253] The present application also provides an electronic device in an embodiment. Fig.16 As shown, it shows a schematic diagram of the structure of an electronic device suitable for implementing the embodiment of the present application. The electronic device in the embodiment of the present application may include but is not limited to fixed terminals such as mobile phones, laptops, PDAs (personal digital assistants), PADs (tablet computers), desktop computers, etc. Fig.16The electronic device shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.

[0254] like Fig.16 As shown, the electronic device may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 1601, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1602 or a program loaded from a storage device 1608 to a random access memory (RAM) 1603. When the electronic device is powered on, various programs and data required for the operation of the electronic device are also stored in the RAM 1603. The processing device 1601, the ROM 1602, and the RAM 1603 are connected to each other via a bus 1604. An input / output (I / O) interface 1605 is also connected to the bus 1604.

[0255] Typically, the following devices may be connected to the I / O interface 1605: an input device 1606 including, for example, a touch screen, a touch pad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 1607 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 1608 including, for example, a memory card, a hard disk, etc.; and a communication device 1609. The communication device 1609 may allow the electronic device to communicate with other devices wirelessly or by wire to exchange data. Although Fig.16 An electronic device having various devices is shown, but it should be understood that it is not required to implement or possess all the devices shown. More or fewer devices may be implemented or possessed instead.

[0256] An embodiment of the present application also provides a computer program product including computer-readable instructions. When the computer-readable instructions are executed on an electronic device, the electronic device implements any system-on-chip route setting method provided in the embodiment of the present application.

[0257] A computer-readable storage medium is also provided in an embodiment of the present application. The storage medium carries one or more computer programs. When the one or more computer programs are executed by an electronic device, the electronic device can implement any system-level chip route setting method provided in the embodiment of the present application.

[0258] It should also be noted that the device embodiments described above are merely schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed over multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. In addition, in the drawings of the device embodiments provided by the present application, the connection relationship between the modules indicates that there is a communication connection between them, which may be specifically implemented as one or more communication buses or signal lines.

[0259] Through the description of the above implementation mode, the technicians in the field can clearly understand that the present application can be implemented by means of software plus necessary general hardware, and of course, it can also be implemented by special hardware including special integrated circuits, special CPUs, special memories, special components, etc. In general, all functions completed by computer programs can be easily implemented by corresponding hardware, and the specific hardware structure used to implement the same function can also be various, such as analog circuits, digital circuits or special circuits. However, for the present application, software program implementation is a better implementation mode in more cases. Based on such an understanding, the technical solution of the present application is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which is stored in a readable storage medium, such as a computer floppy disk, a U disk, a mobile hard disk, a ROM, a RAM, a disk or an optical disk, etc., including a number of instructions to enable a computer device (which can be a personal computer, a training device, or a network device, etc.) to execute the method of each embodiment of the present application.

[0260] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments may be implemented in the form of a computer program product.

[0261] The computer program product includes one or more computer instructions. When the computer program instruction is loaded and executed on a computer, the process or function according to the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instruction can be stored in a computer-readable storage medium, or transmitted from a computer-readable storage medium to another computer-readable storage medium. For example, the computer instruction can be transmitted from a website site, a computer, a training device, or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, training device, or data center. The computer-readable storage medium can be any available medium that a computer can store or a data storage device such as a training device, a data center, etc. that includes one or more available media integration. The available medium can be a magnetic medium, (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive (SSD)), etc.

Claims

1. A route setting method for a system-on-chip, for setting a pipeline path between at least two modules of the system-on-chip, the route setting method comprising: Gridding the wiring space of the system-level chip to obtain a plurality of grids, where each grid is used as a node; Determine the initial node corresponding to the starting point module and the end node corresponding to the end point module in the route to be set; A path search is performed in the available nodes of the routing space according to the weights of each available node between the initial node and the end node to determine a route between the initial node and the end node, wherein the route passes through at least one node; wherein the weight of the available node is determined based on at least a congestion cost determined according to the congestion state of the location of the available node.

2. The method for setting a route of a system-on-chip according to claim 1, wherein the step of performing a path search in available nodes in a wiring space according to the weights of each node between the initial node and the end node to determine the route between the initial node and the end node comprises: Determining weights of each available adjacent node of a first node, the first node comprising an initial node and at least one node between the initial node and an end node in the routing space; each available adjacent node belongs to the available node; According to the weight of each available adjacent node, searching among the available adjacent nodes of the first node to determine the target node, the priority of the target node is higher than the priority of the non-target nodes among the available adjacent nodes, and the priority of the node corresponds to the weight; Taking the target node as a new first node, returning to the step of searching among the available adjacent nodes of the first node according to the weights of the available adjacent nodes to determine the target node, until the target node is an end node; A route between the initial node and the end node is determined according to the initial node and the end node, and at least one target node between the initial node and the end node.

3. The method for setting a route of a system-on-chip according to claim 2, wherein determining the weight of each available adjacent node of the first node comprises: Obtaining status information of each neighboring node of the first node; Characterizing that the adjacent node is in an available state based on the state information of the adjacent node, and determining the weight of the adjacent node in the available state; The adjacent node is characterized as being in an unavailable state based on the state information of the adjacent node, and the adjacent node in the unavailable state is discarded.

4. The method for setting a route of a system-on-chip according to claim 3, after determining the route between the initial node and the end node according to the initial node and the end node and at least one target node between the initial node and the end node, further comprising: The status of each node included in the route between the initial node and the end node is changed from an available status to an unavailable status.

5. The method for setting a route of a system-on-chip according to claim 1, determining the weight of each available node comprises: Determining a congestion cost corresponding to the first available node according to a congestion state of a location of the first available node, wherein the first available node is any one of the available nodes; The weight of the first available node is determined according to the congestion cost corresponding to the first available node.

6. The method for setting a route of a system-on-chip according to claim 1, wherein determining the weight of each available node further comprises: Determine a distance cost corresponding to the first available node according to the distances between the first available node and the initial node and the end node respectively, where the first available node is any one of the available nodes; The weight of the first available node is determined according to the distance cost and the congestion cost corresponding to the first available node.

7. The route setting method of the system-on-chip according to claim 6, wherein the step of determining the distance cost corresponding to the first available node according to the distances between the first available node and the initial node and the end node respectively comprises: Determine a first distance cost corresponding to the first available node according to a first distance between the first available node and the initial node, wherein the first distance is related to the number of nodes between the first available node and the initial node; Determine a target path among at least two predicted paths predicted between a first available node and an end node, wherein a distance between the first available node and the end node in the target path is smaller than a distance between the first available node and the end node in other paths, and a number of direction changes in the target path is smaller than a number of direction changes in other paths; Determine a second distance cost corresponding to the first available node according to the number of direction changes corresponding to the target path and the distance between the first available node and the end node in the target path; The distance cost of the first available node is determined according to the first distance cost and the second distance cost.

8. The route setting method of the system-on-chip according to claim 5, before determining the congestion cost corresponding to the first available node according to the congestion state of the location of the first available node, the method further comprises: Determining a position of the first available node in the wiring space; Based on the available space in the area where the location is located, a congestion state of the location where the first available node is located is determined.

9. The method for setting a route of a system-on-chip according to claim 1, wherein after performing a path search in available nodes in a wiring space according to the weights of each node between the initial node and the end node and determining the route between the initial node and the end node, the method further comprises: Based on the driving distance of the signal repeater, at least one signal repeater is inserted in the route between the initial node and the end node, and the signal repeater is used to perform driving enhancement processing on the signal transmitted in the route.

10. A route setting device for a system-on-chip, used for setting a pipeline path between at least two modules of the system-on-chip, the route setting device comprising: A grid processing module, used for gridding the wiring space of the system-level chip to obtain a plurality of grids, where one grid is used as a node; A node determination module, used to determine the initial node corresponding to the starting point module and the end node corresponding to the end point module in the route to be set; A route determination module is used to perform a path search in the available nodes in the routing space according to the weight of each available node between the initial node and the end node, and determine the route between the initial node and the end node, wherein the route passes through at least one node, wherein the weight of the available node is determined based on a congestion cost determined according to the congestion state of the location of the available node.

Citation Information

Patent Citations

  • Chip winding method and device and chip

    CN117454828A

  • Chip automatic wiring method and device and medium

    CN118333000A