Weight-based H-type clock tree trunk node coordinate selection method and device

Through the weight-based H-tree clock tree backbone node coordinate selection method, the number of grid registers is used as the weight value to optimize the backbone node coordinates, solving the problem of increasing chip area and power consumption in the traditional H-tree clock tree, achieving more balanced clock tree load distribution and lower buffer usage.

CN120449809APending Publication Date: 2025-08-08SOPHGO TECH LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510375507.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-27
Publication Date
2025-08-08

AI Technical Summary

Technical Problem

In traditional H-tree clock tree design, more buffers are needed to drive heavier branches, resulting in increased chip area and power consumption.

Method used

Through the weight-based H-clock tree backbone node coordinate selection method, the number of registers in the grid is used as the weight value to optimize the backbone node coordinate calculation, so that the number of registers assigned to the grid each backbone node contains is similar, and the use of buffers with heavier load branches is reduced.

Benefits of technology

Reduces the power consumption and area of the chip, achieves a more balanced clock tree load distribution, and reduces the use of non-essential buffers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120449809A_ABST
    Figure CN120449809A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of integrated circuit clock tree design, and particularly discloses a weight-based H-type clock tree trunk node coordinate selection method and device. According to the method, the number of the registers in the grid is used as the weight value of the grid, and the coordinates of the trunk nodes are calculated according to the grid weight, so that the number of the registers contained in the grid allocated to each trunk node is similar, the load of each trunk node is ensured to be similar, and therefore, more buffers are not needed to drive branches with heavy loads, and the load of each trunk node is reduced. And unnecessary buffers are reduced, so that the power consumption and the area of the chip are reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of integrated circuit clock tree design, and in particular to a weight-based H-type clock tree trunk node coordinate selection method and device. Background Art

[0002] The H-tree clock tree is a clock network distribution structure used in integrated circuit design. The primary purpose of this structure is to achieve uniform distribution of clock signals across the chip, thereby minimizing clock skew. In theory, an H-tree clock network can even achieve zero clock skew. An H-tree network chip is an integrated circuit that uses an H-tree (H-shaped clock tree) structure to distribute clock signals. The H-tree clock tree boasts low clock skew, a simple structure, and symmetry. However, in traditional H-tree designs, more buffers may be required to drive heavily loaded branches, increasing the area and power consumption of the H-tree network chip. Therefore, optimizing the selection of H-tree clock tree trunk nodes and reducing the power consumption and area of H-tree network chips has become a pressing issue. Summary of the Invention

[0003] The present application provides a weight-based H-tree clock tree trunk node coordinate selection method and device to optimize the selection of H-tree clock tree trunk nodes and reduce the power consumption and area of H-tree network chips.

[0004] In a first aspect, the present application provides a weight-based H-type clock tree trunk node coordinate selection method, the method comprising:

[0005] Obtaining register positions, a total number of registers, and a grid point position of at least one grid to be allocated, and determining the number of registers contained in each grid to be allocated based on the register positions and the grid point positions of each grid to be allocated, and using the number of registers as a weight value of each grid to be allocated;

[0006] Determining, based on the number of registers contained in each of the to-be-allocated grids, the total number of registers, and the preset number of initial backbone nodes, the position of each initial backbone node and a grid set corresponding to each initial backbone node, wherein the grid set includes at least one of the to-be-allocated grids;

[0007] Based on a first preset coordinate calculation formula and a weight value of each of the to-be-assigned grids in the grid set, respectively adjusting the positions of the initial backbone nodes to obtain coordinates of each initial backbone node;

[0008] Allocating each of the to-be-allocated grids based on each of the initial backbone nodes to obtain a first allocation result, and verifying the coordinates of each of the initial backbone nodes based on the first allocation result;

[0009] When the coordinates of the initial backbone node pass the verification, the initial backbone node is determined to be the target backbone node.

[0010] In a second aspect, the present application further provides a weight-based H-type clock tree trunk node coordinate selection device, the device comprising:

[0011] a weight value obtaining module, configured to obtain a register position, a total number of registers, and a grid point position of at least one grid to be allocated, and determine the number of registers contained in each grid to be allocated based on the register position and the grid point position of each grid to be allocated, and use the number of registers as a weight value of each grid to be allocated;

[0012] an initial backbone node determination module, configured to determine the position of each initial backbone node and a grid set corresponding to each initial backbone node based on the number of registers contained in each grid to be allocated, the total number of registers, and a preset number of initial backbone nodes, wherein the grid set includes at least one grid to be allocated;

[0013] A backbone node coordinate obtaining module, configured to adjust the positions of the initial backbone nodes based on a first preset coordinate calculation formula and a weight value of each of the to-be-assigned grids in the grid set, to obtain the coordinates of each initial backbone node;

[0014] A backbone node coordinate verification module, configured to allocate each of the to-be-allocated grids based on each of the initial backbone nodes, obtain a first allocation result, and verify the coordinates of each of the initial backbone nodes based on the first allocation result;

[0015] The target backbone node determination module is used to determine the initial backbone node as the target backbone node when the coordinates of the initial backbone node pass the verification.

[0016] In a third aspect, the present application also provides a computer device, comprising a memory and a processor; the memory is used to store a computer program; the processor is used to execute the computer program and implement the above-mentioned weight-based H-type clock tree trunk node coordinate selection method when executing the computer program.

[0017] In a fourth aspect, the present application also provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, the processor implements the weight-based H-type clock tree trunk node coordinate selection method as described above.

[0018] The present application discloses a weight-based H-type clock tree trunk node coordinate selection method and device, which obtains register positions, the total number of registers, and the grid point position of at least one grid to be allocated, and determines the number of registers contained in each grid to be allocated based on the register positions and the grid point positions of each grid to be allocated, and uses the number of registers as the weight value of each grid to be allocated; determines the position of each initial trunk node and the grid set corresponding to each initial trunk node based on the number of registers contained in each grid to be allocated, the total number of registers, and the preset number of initial trunk nodes, wherein the grid set includes at least one grid to be allocated; adjusts the position of each initial trunk node based on a first preset coordinate calculation formula and the weight value of each grid to be allocated in the grid set to obtain the coordinates of each initial trunk node; allocates each grid to be allocated based on each initial trunk node to obtain a first allocation result, and verifies the coordinates of each initial trunk node based on the first allocation result; when the coordinates of the initial trunk node pass the verification, determines the initial trunk node as the target trunk node. This application uses the number of registers in the grid as the weight value of the grid, and calculates the coordinates of the trunk nodes based on the grid weight, so that the number of registers contained in the grid allocated to each trunk node is similar, thereby ensuring that the load of each trunk node is similar. Therefore, there is no need for more buffers to drive branches with heavier loads, reducing unnecessary buffers, thereby reducing chip power consumption and area. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following is a brief introduction to the drawings required for use in the description of the embodiments. Obviously, the drawings described below are some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0020] Figure 1 This is a schematic flowchart of a weight-based H-type clock tree trunk node coordinate selection method provided in the first embodiment of the present application;

[0021] Figure 2 This is a schematic flowchart of a weight-based H-type clock tree trunk node coordinate selection method provided in the second embodiment of the present application;

[0022] Figure 3 This is a schematic flowchart of a weight-based H-type clock tree trunk node coordinate selection method provided in the third embodiment of the present application;

[0023] Figure 4This is a flowchart illustrating the calculation sequence of the accumulated number of grid registers provided in an embodiment of the present application;

[0024] Figure 5 A schematic block diagram of a weight-based H-type clock tree trunk node coordinate selection device provided in an embodiment of the present application;

[0025] Figure 6 A schematic block diagram of the structure of a computer device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0026] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0027] The flowcharts shown in the accompanying drawings are for illustrative purposes only and do not necessarily include all contents and operations / steps, nor must they be executed in the order described. For example, some operations / steps may be decomposed, combined, or partially merged, so the actual execution order may vary depending on the actual situation.

[0028] It should be understood that the terms used in this specification are only for the purpose of describing specific embodiments and are not intended to limit the present application. As used in this specification and the appended claims, the singular forms "a", "an", and "the" are intended to include the plural forms unless the context clearly indicates otherwise.

[0029] It should be further understood that the term “and / or” used in this specification and the appended claims refers to any and all possible combinations of one or more of the associated listed items, and includes these combinations.

[0030] The embodiments of the present application provide a weight-based H-type clock tree trunk node coordinate selection method and device. The weight-based H-type clock tree trunk node coordinate selection method can be applied to a server, using the number of registers in a grid as the grid weight value, and calculating the trunk node coordinates based on the grid weight, so that the number of registers contained in the grid allocated to each trunk node is similar, thereby ensuring that the load of each trunk node is similar. Therefore, no more buffers are required to drive branches with heavier loads, reducing unnecessary buffers, thereby reducing chip power consumption and area. The server can be a standalone server or a server cluster.

[0031] The following describes some embodiments of the present application in detail with reference to the accompanying drawings. In the absence of conflict, the following embodiments and features therein may be combined with each other.

[0032] See also Figure 1 , Figure 1 This is a schematic flowchart of a weight-based H-type clock tree trunk node coordinate selection method provided in an embodiment of the present application.

[0033] like Figure 1 As shown, the weight-based H-type clock tree trunk node coordinate selection method specifically includes steps S101 to S105.

[0034] S101, obtaining register positions, a total number of registers, and a grid point position of at least one grid to be allocated, and determining the number of registers contained in each grid to be allocated based on the register positions and the grid point positions of each grid to be allocated, and using the number of registers as a weight value of each grid to be allocated;

[0035] In one embodiment, the register locations and the total number of registers may be extracted from a layout database of the chip.

[0036] In this embodiment, the grid to be allocated is obtained by dividing the chip's standard unit placement area into a table according to preset grid parameters. The grid point positions of the grid to be allocated include the coordinates of the four vertices and the center point of the grid to be allocated.

[0037] Compare the register position with the grid point position of the grid to be allocated, count the number of registers in each grid to be allocated, that is, the number of registers contained in each grid to be allocated, and use the number of registers contained in each grid to be allocated as the weight value of each grid to be allocated.

[0038] Furthermore, obtaining the grid point position of the grid to be allocated includes: dividing the chip placement standard unit area into a table based on preset grid parameters to obtain at least one grid to be allocated; and calculating the grid point position of each grid to be allocated based on the size parameters of the chip placement standard unit area and the preset grid parameters.

[0039] In one embodiment, the preset grid parameters include the number of rows and columns, which can be set by the user as needed. The chip placement standard cell area is divided into a table according to the preset grid parameters to obtain at least one grid as a grid to be allocated.

[0040] The chip's standard cell area refers to a specific area on the chip reserved for placing standard cells in integrated circuit design. Standard cells typically include basic logic gates, flip-flops, and other digital functional modules.

[0041] According to the size parameters of the chip where the standard unit area can be placed and the preset grid parameters (number of rows and columns), the width and height of the grid are determined, and then the grid point position of each grid to be allocated is calculated.

[0042] In one embodiment, the grid point positions of each grid to be allocated can be stored in a two-dimensional array.

[0043] In one embodiment, the grid point positions of the grid to be allocated can be obtained by executing a pre-set calculation script.

[0044] S102: Determine the position of each initial backbone node and a grid set corresponding to each initial backbone node based on the number of registers included in each grid to be allocated, the total number of registers, and the preset number of initial backbone nodes, wherein the grid set includes at least one grid to be allocated;

[0045] In one embodiment, the total number of registers is N, and the number of initial trunk nodes is n.

[0046] The number of registers in the grid to be allocated can be accumulated from left to right in the rectangle. When an initial backbone node is set, the location is at the center of the currently accumulated grid area to be allocated, until all initial backbone nodes are set.

[0047] S103, adjusting the positions of the initial backbone nodes based on a first preset coordinate calculation formula and the weight values of the grids to be allocated in the grid set to obtain the coordinates of the initial backbone nodes;

[0048] Furthermore, the first preset coordinate calculation formula is:

[0049]

[0050] Among them, L min For the formula When L takes the minimum value, x and y are the horizontal and vertical coordinate values of the initial trunk node respectively, m is the number of grids in the grid set, x i and y i They respectively represent the horizontal coordinate value and the vertical coordinate value of the center point of the i-th grid to be allocated in the grid set.

[0051] In one embodiment, according to the different numbers of registers in each grid to be allocated in the grid set, it is necessary to fine-tune the position of the initial backbone node set in step S102 so that the backbone node is closer to the grid with a large number of registers in the grid set, thereby reducing the propagation difference of the clock signal on different paths and reducing the clock offset. Therefore, the coordinates of each initial backbone node are calculated in sequence according to the first preset coordinate calculation formula and the weight value of each grid to be allocated in the grid set. Specifically, when calculating the coordinates of the current initial backbone node, the number of grids in the grid set corresponding to the current initial backbone node and the weight value of each grid to be allocated in the grid set are substituted into the first preset coordinate calculation formula, and the x and y that minimize the L value are obtained, which are the horizontal and vertical coordinate values of the initial backbone node.

[0052] S104, allocating each of the to-be-allocated grids based on each of the initial backbone nodes to obtain a first allocation result, and verifying the coordinates of each of the initial backbone nodes based on the first allocation result;

[0053] In one embodiment, the grids to be allocated are allocated based on the Manhattan distance between each grid to be allocated and each initial backbone node. Specifically, the grid to be allocated is allocated to the initial backbone node with the shortest Manhattan distance to the grid.

[0054] The first allocation result includes at least one to-be-allocated grid to which each initial backbone node is allocated.

[0055] New trunk node coordinates are calculated based on the first allocation result, and the new trunk node coordinates are compared with the initial trunk node coordinates to determine whether the coordinates have changed, so as to verify the initial trunk node coordinates.

[0056] S105 : When the coordinates of the initial backbone node pass the verification, determine the initial backbone node as the target backbone node.

[0057] In one embodiment, if the coordinates have not changed, it indicates that the coordinates of the initial backbone node have passed verification, and the initial backbone node is determined to be the target backbone node.

[0058] In another embodiment, if the coordinates change, it indicates that the current initial trunk node is not the optimal result. At this time, iterative optimization is performed based on the new trunk node coordinates until the trunk node coordinates pass the verification and the target trunk node is obtained.

[0059] See also Figure 2 , Figure 2 This is a schematic flowchart of a weight-based H-type clock tree trunk node coordinate selection method provided in an embodiment of the present application.

[0060] like Figure 2As shown, step S104 of the weight-based H-type clock tree trunk node coordinate selection method specifically includes steps S201 to S203.

[0061] S201, allocating each of the to-be-allocated grids based on the Manhattan distance between the center point of the to-be-allocated grid and the initial backbone node to obtain a first allocation result;

[0062] S202: Calculate and obtain the coordinates of a second backbone node based on a second preset coordinate calculation formula and the first allocation result;

[0063] S203: Compare the initial trunk node coordinates with the second trunk node coordinates to verify the initial trunk node coordinates.

[0064] In one embodiment, the Manhattan distance between each to-be-assigned grid and the initial backbone node is calculated based on the coordinates of the initial backbone node. Manhattan distance refers to the distance between two points on a standard coordinate plane. In this embodiment, it refers to the distance between the center point of the to-be-assigned grid and the initial backbone node.

[0065] Each to-be-assigned mesh is assigned to the initial backbone node with the closest Manhattan distance. For example, assume there are three initial backbone nodes, A, B, and C, and one to-be-assigned mesh, G. The Manhattan distances between G and nodes A, B, and C are calculated, and G is assigned to the node with the closest Manhattan distance. After all to-be-assigned meshes are assigned, a first assignment result is obtained. This first assignment result includes at least one to-be-assigned mesh assigned to each initial backbone node.

[0066] In one embodiment, according to each initial backbone node and at least one to-be-assigned grid to which it is assigned, a second preset coordinate calculation formula is applied to calculate new backbone node coordinates, ie, second backbone node coordinates.

[0067] Furthermore, the second preset coordinate calculation formula is:

[0068]

[0069] Where h represents the number of grids to be allocated to the initial backbone node, q i represents the weight value of the i-th grid to be assigned to the initial backbone node, x i and y i They respectively represent the horizontal coordinate value and the vertical coordinate value of the center point of the i-th to-be-assigned grid assigned to the initial backbone node.

[0070] By comparing the initial trunk node coordinates with the calculated second trunk node coordinates, if the initial trunk node coordinates and the second trunk node coordinates are the same, it indicates that the initial trunk node coordinates have passed the verification; if the initial trunk node coordinates and the second trunk node coordinates are different, it indicates that the initial trunk node has failed the verification.

[0071] Furthermore, after step S203, it also includes: S2031, when the initial trunk node coordinates are different from the second trunk node coordinates, determining that the initial trunk node coordinates have not passed the verification, and setting the second trunk node at the second trunk node coordinates; S2032, based on the Manhattan distance between the second trunk node and the center of each of the grids to be allocated, allocating the grids to be allocated to obtain a second allocation result; S2033, based on the second preset coordinate calculation formula and the second allocation result, calculating the third trunk node coordinates; S2034, when the third trunk node coordinates are the same as the second trunk node coordinates, determining that the second trunk node coordinates have passed the verification, and determining the second trunk node as the target trunk node.

[0072] In one embodiment, if the coordinates of the initial backbone node fail to pass the verification, a second backbone node is set at the coordinates of the second backbone node, that is, the initial backbone node is updated to the second backbone node, and the Manhattan distance between each to-be-allocated grid and the second backbone node is recalculated according to the coordinates of the second backbone node.

[0073] The to-be-allocated grid is allocated to the node with the closest Manhattan distance to the grid until all allocations are completed, thereby obtaining a second allocation result. The second allocation result includes at least one to-be-allocated grid allocated to each second backbone node.

[0074] Based on each second trunk node and its assigned at least one unassigned grid, a second preset coordinate calculation formula is applied to calculate new trunk node coordinates, i.e., third trunk node coordinates. If the coordinates have not changed, i.e., the third trunk node coordinates are identical to the second trunk node coordinates, the second trunk node is determined as the target trunk node. If a change occurs, the process returns to steps S2031-S2033 until all trunk node coordinates have been verified, thus obtaining all target trunk nodes.

[0075] In the above embodiment, the center position of the grid is used as the calculation position, which avoids the situation where a small number of positions on the edge are too far away and affect the position of the trunk node; when iteratively optimizing the coordinates of the trunk node, optimization is performed based on the grid weight, so that changes in the register position within the same grid will not affect the coordinates of the trunk node, thereby speeding up the iteration speed and reducing chip power consumption.

[0076] See also Figure 3 , Figure 3This is a schematic flowchart of a weight-based H-type clock tree trunk node coordinate selection method provided in an embodiment of the present application.

[0077] like Figure 3 As shown, step S102 of the weight-based H-type clock tree trunk node coordinate selection method specifically includes steps S301 to S303.

[0078] S301: Generate a quantity threshold based on the total number of registers and the initial number of backbone nodes, wherein the quantity threshold = the total number of registers / the initial number of backbone nodes;

[0079] S302, accumulating the number of registers contained in the to-be-allocated grid in a preset order to obtain a cumulative number of registers;

[0080] S303. When the accumulated number of registers is greater than or equal to the quantity threshold, the center point of the target area is determined as the position of the initial trunk node, and the at least one currently accumulated grid to be allocated is divided into a grid set as the grid set corresponding to the initial trunk node, wherein the target area is an area composed of the at least one currently accumulated grid to be allocated.

[0081] In one embodiment, the total number of registers is N, and the number of initial trunk nodes is n.

[0082] The number of registers in the grid to be allocated can be accumulated from left to right in the rectangle. When setting an initial node position at the center of the currently accumulated grid to be allocated, it will continue until all initial backbone nodes are set.

[0083] For example, Figure 4 As shown, the number of registers in the grid to be allocated is accumulated in the order of ①→②→③→④→⑤→⑥→⑦→⑧→⑨ until all initial backbone nodes are set.

[0084] If the sum of the register counts of grids ①, ②, ③, and ④ to be allocated is greater than or equal to the threshold, the area formed by the currently accumulated grids ①, ②, ③, and ④ to be allocated is used as the target area. The center point of the target area (i.e., the intersection between grids ① to ④) is used as the location of the initial backbone node. Grids ①, ②, ③, and ④ to be allocated are then divided into the grid set corresponding to this initial backbone node. The number of registers in the grids to be allocated and the initial backbone node settings are continued in order until all initial backbone nodes are set.

[0085] If the sum of the register counts of grids ② to be allocated is greater than or equal to the threshold (i.e., the sum of the register counts of grids ① and ② to be allocated is greater than or equal to the threshold), the area formed by the currently accumulated grids ① and ② to be allocated is used as the target area, the center point of the target area is used as the location of an initial backbone node, and grids ① and ② to be allocated are divided into the grid set corresponding to the initial backbone node. Continue to accumulate the register counts of grids ③ and ④ to be allocated in sequence. If the sum of the register counts of grids ③ and ④ to be allocated is greater than or equal to the threshold, the area formed by the currently accumulated grids ③ and ④ to be allocated is used as the target area, the center point of the target area is used as the location of an initial backbone node, and grids ③ and ④ to be allocated are divided into the grid set corresponding to the initial backbone node.

[0086] It is understandable that when the number of grids to be allocated exceeds 9, the calculation order is analogically based on the above order.

[0087] In the above embodiment, by ensuring that each initial backbone node is responsible for a similar number of Registers can achieve balanced distribution of clock tree load, thereby reducing the additional power consumption caused by overload of some nodes.

[0088] See also Figure 5 , Figure 5 This is a schematic block diagram of an embodiment of the present application providing a weighted H-type clock tree trunk node coordinate selection device, which is used to perform the aforementioned weighted H-type clock tree trunk node coordinate selection method. The weighted H-type clock tree trunk node coordinate selection device can be configured on a server.

[0089] like Figure 5 As shown, the weight-based H-type clock tree trunk node coordinate selection device 400 includes:

[0090] The weight value obtaining module 401 is configured to obtain a register position, a total number of registers, and a grid point position of at least one grid to be allocated, and determine the number of registers contained in each grid to be allocated based on the register position and the grid point position of each grid to be allocated, and use the number of registers as a weight value for each grid to be allocated;

[0091] An initial backbone node determination module 402 is configured to determine the location of each initial backbone node and a grid set corresponding to each initial backbone node based on the number of registers contained in each grid to be allocated, the total number of registers, and a preset number of initial backbone nodes, wherein the grid set includes at least one grid to be allocated;

[0092] A backbone node coordinate obtaining module 403 is configured to adjust the positions of the initial backbone nodes based on a first preset coordinate calculation formula and a weight value of each of the to-be-assigned grids in the grid set to obtain the coordinates of each initial backbone node;

[0093] A backbone node coordinate verification module 404 is configured to allocate each of the to-be-allocated grids based on each of the initial backbone nodes to obtain a first allocation result, and verify the coordinates of each of the initial backbone nodes based on the first allocation result;

[0094] The target backbone node determination module 405 is configured to determine the initial backbone node as the target backbone node when the coordinates of the initial backbone node pass verification.

[0095] Furthermore, the backbone node coordinate verification module 404 includes:

[0096] an allocation result obtaining unit, configured to allocate each of the to-be-allocated grids based on the Manhattan distance between the center point of the to-be-allocated grid and the initial backbone node, to obtain a first allocation result;

[0097] A coordinate obtaining unit, configured to calculate and obtain the coordinates of the second backbone node based on a second preset coordinate calculation formula and the first allocation result;

[0098] The coordinate comparison unit is used to compare the initial backbone node coordinates with the second backbone node coordinates to verify the initial backbone node coordinates.

[0099] Furthermore, the second preset coordinate calculation formula is:

[0100]

[0101] Where h represents the number of grids to be allocated to the initial backbone node, q i represents the weight value of the i-th grid to be assigned to the initial backbone node, x i and y i They respectively represent the horizontal coordinate value and the vertical coordinate value of the center point of the i-th to-be-assigned grid assigned to the initial backbone node.

[0102] Furthermore, the backbone node coordinate verification module 404 further includes:

[0103] a node setting unit, configured to, when the coordinates of the initial trunk node are different from the coordinates of the second trunk node, determine that the coordinates of the initial trunk node have failed verification, and set a second trunk node at the coordinates of the second trunk node;

[0104] an allocation result obtaining unit, configured to allocate the to-be-allocated grids based on the Manhattan distance between the second backbone node and the center of each of the to-be-allocated grids, to obtain a second allocation result;

[0105] A coordinate obtaining unit, configured to calculate and obtain the coordinates of a third backbone node based on the second preset coordinate calculation formula and the second allocation result;

[0106] The node determination unit is used to determine that the coordinates of the second backbone node pass the verification when the coordinates of the third backbone node are the same as the coordinates of the second backbone node, and determine the second backbone node as the target backbone node.

[0107] Furthermore, the initial backbone node determination module 402 includes:

[0108] a quantity threshold generating unit, configured to generate a quantity threshold based on the total number of registers and the initial number of backbone nodes, wherein the quantity threshold = the total number of registers / the initial number of backbone nodes;

[0109] A quantity accumulation unit, configured to accumulate the number of registers contained in the to-be-allocated grid in a preset order to obtain a cumulative number of registers;

[0110] A node and grid set determination unit is configured to, when the accumulated number of the registers is greater than or equal to the quantity threshold, determine the center point of the target area as the position of the initial trunk node, and divide the currently accumulated at least one grid to be allocated into a grid set as the grid set corresponding to the initial trunk node, wherein the target area is an area composed of the currently accumulated at least one grid to be allocated.

[0111] Furthermore, the first preset coordinate calculation formula is:

[0112]

[0113] Among them, L min For the formula When L takes the minimum value, x and y are the horizontal and vertical coordinate values of the initial trunk node respectively, m is the number of grids in the grid set, x i and y i They respectively represent the horizontal coordinate value and the vertical coordinate value of the center point of the i-th grid to be allocated in the grid set.

[0114] Furthermore, the weight value obtaining module 401 includes:

[0115] A table division unit is used to divide the chip placement standard unit area into tables based on preset grid parameters to obtain at least one grid to be allocated;

[0116] A grid point position calculation unit is used to calculate the grid point position of each grid to be allocated based on the size parameters of the standard unit area where the chip can be placed and the preset grid parameters.

[0117] It should be noted that those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the above-described devices and modules can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0118] The above-mentioned device can be realized in the form of a computer program. The computer program can be used in Figure 6 Runs on the computer equipment shown.

[0119] See also Figure 6 , Figure 6 1 is a schematic block diagram of a computer device provided in an embodiment of the present application. The computer device may be a server.

[0120] See Figure 6 The computer device includes a processor, a memory, and a network interface connected through a system bus, wherein the memory may include a non-volatile storage medium and an internal memory.

[0121] The non-volatile storage medium can store an operating system and a computer program. The computer program includes program instructions, which, when executed, can enable a processor to execute any weight-based H-type clock tree trunk node coordinate selection method.

[0122] The processor is used to provide computing and control capabilities and support the operation of the entire computer equipment.

[0123] The internal memory provides an environment for the operation of the computer program in the non-volatile storage medium. When the computer program is executed by the processor, the processor can execute any weight-based H-type clock tree trunk node coordinate selection method.

[0124] The network interface is used for network communication, such as sending assigned tasks, etc. Those skilled in the art will understand that Figure 6 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different component arrangement.

[0125] It should be understood that the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc.

[0126] In one embodiment, the processor is configured to execute a computer program stored in the memory to implement the following steps:

[0127] Obtaining register positions, a total number of registers, and a grid point position of at least one grid to be allocated, and determining the number of registers contained in each grid to be allocated based on the register positions and the grid point positions of each grid to be allocated, and using the number of registers as a weight value of each grid to be allocated;

[0128] Determining, based on the number of registers contained in each of the to-be-allocated grids, the total number of registers, and the preset number of initial backbone nodes, the position of each initial backbone node and a grid set corresponding to each initial backbone node, wherein the grid set includes at least one of the to-be-allocated grids;

[0129] Based on a first preset coordinate calculation formula and a weight value of each of the to-be-assigned grids in the grid set, respectively adjusting the positions of the initial backbone nodes to obtain coordinates of each initial backbone node;

[0130] Allocating each of the to-be-allocated grids based on each of the initial backbone nodes to obtain a first allocation result, and verifying the coordinates of each of the initial backbone nodes based on the first allocation result;

[0131] When the coordinates of the initial backbone node pass the verification, the initial backbone node is determined to be the target backbone node.

[0132] In one embodiment, when allocating each of the to-be-allocated grids based on each of the initial backbone nodes to obtain a first allocation result, and verifying the coordinates of each of the initial backbone nodes based on the first allocation result, the processor is configured to implement:

[0133] Allocating each of the to-be-allocated grids based on the Manhattan distance between the center point of the to-be-allocated grid and the initial backbone node to obtain a first allocation result;

[0134] Calculate and obtain the coordinates of the second backbone node based on a second preset coordinate calculation formula and the first allocation result;

[0135] The initial backbone node coordinates are compared with the second backbone node coordinates to verify the initial backbone node coordinates.

[0136] In one embodiment, the second preset coordinate calculation formula is:

[0137]

[0138] Where h represents the number of grids to be allocated to the initial backbone node, q i represents the weight value of the i-th grid to be assigned to the initial backbone node, x i and y i They respectively represent the horizontal coordinate value and the vertical coordinate value of the center point of the i-th to-be-assigned grid assigned to the initial backbone node.

[0139] In one embodiment, after comparing the initial backbone node coordinates with the second backbone node coordinates to verify the initial backbone node coordinates, the processor is further configured to:

[0140] When the initial backbone node coordinates are different from the second backbone node coordinates, determining that the initial backbone node coordinates have failed verification, and setting a second backbone node at the second backbone node coordinates;

[0141] Allocating the grids to be allocated based on the Manhattan distance between the second backbone node and the center of each grid to be allocated to obtain a second allocation result;

[0142] Calculate and obtain the coordinates of the third backbone node based on the second preset coordinate calculation formula and the second allocation result;

[0143] When the coordinates of the third backbone node are the same as the coordinates of the second backbone node, it is determined that the coordinates of the second backbone node pass the verification, and the second backbone node is determined as the target backbone node.

[0144] In one embodiment, when determining the position of each initial backbone node and the grid set corresponding to each initial backbone node based on the number of registers included in each grid to be allocated, the total number of registers, and the preset number of initial backbone nodes, the processor is configured to implement:

[0145] Generate a quantity threshold based on the total number of registers and the initial number of backbone nodes, wherein the quantity threshold=the total number of registers / the initial number of backbone nodes;

[0146] Accumulating the number of registers contained in the to-be-allocated grid in a preset order to obtain a cumulative number of registers;

[0147] When the accumulated number of registers is greater than or equal to the number threshold, the center point of the target area is determined as the position of the initial trunk node, and the at least one currently accumulated grid to be allocated is divided into a grid set as the grid set corresponding to the initial trunk node, wherein the target area is an area composed of the at least one currently accumulated grid to be allocated.

[0148] In one embodiment, the first preset coordinate calculation formula is:

[0149]

[0150] Among them, L min For the formula When L takes the minimum value, x and y are the horizontal and vertical coordinate values of the initial trunk node respectively, m is the number of grids in the grid set, x i and y i They respectively represent the horizontal coordinate value and the vertical coordinate value of the center point of the i-th grid to be allocated in the grid set.

[0151] In one embodiment, when obtaining the grid point position of the grid to be allocated, the processor is configured to implement:

[0152] Based on preset grid parameters, a table is formed for the area where the chip can be placed as a standard unit to obtain at least one grid to be allocated;

[0153] Based on the size parameters of the chip's standard unit placement area and the preset grid parameters, the grid point positions of the to-be-allocated grids are calculated.

[0154] An embodiment of the present application also provides a computer-readable storage medium, which stores a computer program, and the computer program includes program instructions. The processor executes the program instructions to implement any weight-based H-type clock tree trunk node coordinate selection method provided in the embodiment of the present application.

[0155] The computer-readable storage medium may be an internal storage unit of the computer device described in the aforementioned embodiment, such as a hard disk or memory of the computer device. The computer-readable storage medium may also be an external storage device of the computer device, such as a plug-in hard disk, a smart memory card (SMC), a secure digital (SD) card, a flash memory card, etc., equipped on the computer device.

[0156] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in the present application, and such modifications or substitutions should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A weight-based H-type clock tree trunk node coordinate selection method, characterized in that: include: Obtaining register positions, a total number of registers, and a grid point position of at least one grid to be allocated, and determining the number of registers contained in each grid to be allocated based on the register positions and the grid point positions of each grid to be allocated, and using the number of registers as a weight value of each grid to be allocated; Determining, based on the number of registers contained in each of the to-be-allocated grids, the total number of registers, and the preset number of initial backbone nodes, the position of each initial backbone node and a grid set corresponding to each initial backbone node, wherein the grid set includes at least one of the to-be-allocated grids; Based on a first preset coordinate calculation formula and a weight value of each of the to-be-assigned grids in the grid set, respectively adjusting the positions of the initial backbone nodes to obtain coordinates of each initial backbone node; Allocating each of the to-be-allocated grids based on each of the initial backbone nodes to obtain a first allocation result, and verifying the coordinates of each of the initial backbone nodes based on the first allocation result; When the coordinates of the initial backbone node pass the verification, the initial backbone node is determined to be the target backbone node.

2. The weight-based H-type clock tree trunk node coordinate selection method according to claim 1, characterized in that: The allocating each of the to-be-allocated grids based on each of the initial backbone nodes to obtain a first allocation result, and verifying the coordinates of each of the initial backbone nodes based on the first allocation result, includes: Allocating each of the to-be-allocated grids based on the Manhattan distance between the center point of the to-be-allocated grid and the initial backbone node to obtain a first allocation result; Calculate and obtain the coordinates of the second backbone node based on a second preset coordinate calculation formula and the first allocation result; The initial backbone node coordinates are compared with the second backbone node coordinates to verify the initial backbone node coordinates.

3. The weight-based H-type clock tree trunk node coordinate selection method according to claim 2, characterized in that: The second preset coordinate calculation formula is: Where h represents the number of grids to be allocated to the initial backbone node, q i represents the weight value of the i-th grid to be assigned to the initial backbone node, x i and y i They respectively represent the horizontal coordinate value and the vertical coordinate value of the center point of the i-th to-be-assigned grid assigned to the initial backbone node.

4. The weight-based H-type clock tree trunk node coordinate selection method according to claim 2, characterized in that: After comparing the initial backbone node coordinates with the second backbone node coordinates to verify the initial backbone node coordinates, the method further includes: When the initial backbone node coordinates are different from the second backbone node coordinates, determining that the initial backbone node coordinates have failed verification, and setting a second backbone node at the second backbone node coordinates; Allocating the grids to be allocated based on the Manhattan distance between the second backbone node and the center of each grid to be allocated to obtain a second allocation result; Calculate and obtain the coordinates of the third backbone node based on the second preset coordinate calculation formula and the second allocation result; When the coordinates of the third backbone node are the same as the coordinates of the second backbone node, it is determined that the coordinates of the second backbone node pass the verification, and the second backbone node is determined as the target backbone node.

5. The weight-based H-type clock tree trunk node coordinate selection method according to claim 1, characterized in that: The determining, based on the number of registers included in each of the to-be-allocated grids, the total number of registers, and the preset number of initial backbone nodes, the position of each initial backbone node and the grid set corresponding to each initial backbone node includes: Generate a quantity threshold based on the total number of registers and the initial number of backbone nodes, wherein the quantity threshold=the total number of registers / the initial number of backbone nodes; Accumulating the number of registers contained in the to-be-allocated grid in a preset order to obtain a cumulative number of registers; When the accumulated number of registers is greater than or equal to the number threshold, the center point of the target area is determined as the position of the initial trunk node, and the at least one currently accumulated grid to be allocated is divided into a grid set as the grid set corresponding to the initial trunk node, wherein the target area is an area composed of the at least one currently accumulated grid to be allocated.

6. The weight-based H-type clock tree trunk node coordinate selection method according to claim 1, characterized in that: The first preset coordinate calculation formula is: Among them, L min For the formula When L takes the minimum value, x and y are the horizontal and vertical coordinate values of the initial trunk node respectively, m is the number of grids in the grid set, x i and y i They respectively represent the horizontal coordinate value and the vertical coordinate value of the center point of the i-th grid to be allocated in the grid set.

7. The weight-based H-type clock tree trunk node coordinate selection method according to any one of claims 1 to 6, characterized in that: The step of obtaining the grid point positions of the grid to be allocated includes: Based on preset grid parameters, a table is formed for the area where the chip can be placed as a standard unit to obtain at least one grid to be allocated; Based on the size parameters of the chip's standard unit placement area and the preset grid parameters, the grid point positions of the to-be-allocated grids are calculated.

8. A weight-based H-type clock tree trunk node coordinate selection device, characterized in that: include: a weight value obtaining module, configured to obtain a register position, a total number of registers, and a grid point position of at least one grid to be allocated, and determine the number of registers contained in each grid to be allocated based on the register position and the grid point position of each grid to be allocated, and use the number of registers as a weight value of each grid to be allocated; an initial backbone node determination module, configured to determine the position of each initial backbone node and a grid set corresponding to each initial backbone node based on the number of registers contained in each grid to be allocated, the total number of registers, and a preset number of initial backbone nodes, wherein the grid set includes at least one grid to be allocated; A backbone node coordinate obtaining module, configured to adjust the positions of the initial backbone nodes based on a first preset coordinate calculation formula and a weight value of each of the to-be-assigned grids in the grid set, to obtain the coordinates of each initial backbone node; A backbone node coordinate verification module, configured to allocate each of the to-be-allocated grids based on each of the initial backbone nodes, obtain a first allocation result, and verify the coordinates of each of the initial backbone nodes based on the first allocation result; The target backbone node determination module is used to determine the initial backbone node as the target backbone node when the coordinates of the initial backbone node pass the verification.

9. A computer device, characterized in that: The computer device includes a memory and a processor; The memory is used to store computer programs; The processor is configured to execute the computer program and implement the weight-based H-type clock tree trunk node coordinate selection method according to any one of claims 1 to 7 when executing the computer program.

10. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, which, when executed by a processor, enables the processor to implement the weight-based H-type clock tree trunk node coordinate selection method according to any one of claims 1 to 7.