A method, system, device, and storage medium for solving ICG timing convergence.

CN116341437BActive Publication Date: 2026-09-01SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310182998.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-02-24
Publication Date
2026-09-01
Estimated Expiration
2043-02-24

AI Technical Summary

Technical Problem

因而在出现setup violation(建立时间违例)的ICG path(路径)上,比较多见的就是因为ICG和sink Register的clock之间存在较多逻辑或者物理上距离较远,从而导致偏差较大而发生setup violation

Benefits of technology

[0015] The present invention has the following beneficial technical effects: it rationally plans the number of ICG units and their final placement based on the location of the registers, and balances the distance from the ICG units to each register as much as possible to reduce clock deviation, thereby reducing or eliminating setup time violations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116341437B_ABST
    Figure CN116341437B_ABST
Patent Text Reader

Abstract

This invention provides a method, system, device, and storage medium for solving ICG timing convergence. The method includes: initially determining a first number of ICG units to be copied based on a threshold of the total fan-out number of an ICG unit and the fan-out number of each ICG unit; generating a first number of random points to divide registers into a first number of groups, and calculating a first number of new approximate center point coordinates based on the coordinates of all registers in each group; dividing registers again into a first number of groups based on the new approximate center point coordinates and calculating a first number of new approximate center point coordinates again, until the latest approximate center point coordinates are the same as the previous result, and using the latest approximate center point coordinates as the placement position of the copied ICG units; and copying the first number of ICG units in response to all registers being less than or equal to the nearest latest approximate center point coordinates being less than or equal to a distance threshold.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of chip design, and more specifically, to a method, system, apparatus, and storage medium for solving ICG timing convergence. Background Technology

[0002] The pursuit of low-power design stems from the ever-expanding functionality of chips. The continuously increasing operating frequencies, along with the resulting high power consumption and heat generation, are increasingly impacting the overall performance of devices. In principle, power consumption is equivalent to energy, referring to the energy consumed per unit of time. Chip power consumption is mainly divided into static power consumption and dynamic power consumption. Dynamic power consumption is primarily caused by signal flips. In chips, the most frequently flipping signal is the clock signal. Data in Register1 at the beginning of the timing path, after a series of operations, is captured by Register2 under the action of the clock signal CLK, completing a data transfer. However, in practice, the following situation may occur: the data transferred from Register1 is the same as the data currently stored in Register2. That is, the data in Register2 does not need to be flipped to ensure functional correctness, but CLK still flips once to refresh the data in Register2. While this situation does not cause any functional problems, it represents a significant waste of power. Therefore, during the circuit design and logic synthesis stages, designers and EDA (Electronic Design Automation) tools will manually or automatically insert a series of clock gating cells according to the chip's function and the actual data changes, so as to ensure that the signal will only flip when the data changes. However, clock gating cells can be composed of AND gates or OR gates, and using these two will produce glitch problems. Therefore, ICG (Integrated Clock Gating) is currently used.

[0003] ICG setup timing inherently involves clock skew, the magnitude of which depends entirely on the distance between the ICG and the sink register. Therefore, in ICG paths where setup violations occur, a significant logical or physical distance between the ICG and sink register clocks often leads to large skew and setup violations. To address this, EDA tools provide commands to tighten ICG timing constraints, forcing the tool to optimize these paths, such as the `set_clock_gating_check` command. However, setting clock gating checks is cumbersome and hinders timing signoff, easily overlooking points requiring gating checks and causing glitches. Furthermore, when the same ICG cell controls many timing units or their distribution is uneven, it can lead to excessively long ICG cell connections. Summary of the Invention

[0004] In view of this, the purpose of this invention is to provide a method, system, computer device and computer-readable storage medium for solving ICG timing convergence. This invention rationally plans the number of ICG cell copies and the final placement position according to the placement position of the registers, and balances the distance from the ICG cell to each register as much as possible to reduce the clock deviation value, thereby reducing or eliminating setup time violations.

[0005] Based on the above objectives, one aspect of the present invention provides a method for solving ICG timing convergence, comprising the following steps: initially determining a first number of ICG units to be replicated based on a threshold of the total fan-out number of an ICG unit and the fan-out number of each ICG unit; generating a first number of random points to divide the registers into a first number of groups, and calculating a first number of new approximate center point coordinates based on the coordinates of all registers in each group; dividing the registers again into a first number of groups based on the new approximate center point coordinates and calculating a first number of new approximate center point coordinates again, until the latest approximate center point coordinates are the same as the previous result, and using the latest approximate center point coordinates as the placement position of the replicated ICG units; and replicating the first number of ICG units in response to all registers being less than or equal to the nearest latest approximate center point coordinates being less than or equal to a distance threshold.

[0006] In some implementations, the method further includes: in response to the existence of a register having a distance greater than the latest approximate center point coordinates, determining the number of ICG units to be copied based on the distance and the first quantity.

[0007] In some implementations, determining the number of ICG units to be copied based on the distance and the first quantity includes: determining the number of ICG units to be copied in groups where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold, and obtaining a second quantity based on the number and the number of groups where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold; and adding the first quantity and the second quantity to obtain the number of ICG units to be copied.

[0008] In some implementations, determining the number of ICG units to be copied in the group where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold, and obtaining a second quantity based on the number and the number of groups where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold, includes: dividing the distance by the distance threshold and rounding up to obtain the number of ICG units to be copied in the group where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold; subtracting one from the number to obtain the result and multiplying it by the number of groups where the distance from the approximate center point coordinates to the register is greater than the distance threshold to obtain the second quantity.

[0009] In some implementations, the preliminary determination of the first number of ICG units to be copied based on the total fan-out number of an ICG unit and a threshold for the fan-out number of each ICG unit includes: multiplying the maximum number of registers that can be driven by the L1 cache under different processes by the number of cache levels added to enable the EDA tool between the ICG unit and the registers it controls to obtain the threshold for the fan-out number of each ICG unit; and dividing the total fan-out number of the ICG unit by the threshold for the fan-out number of each ICG unit to obtain the first number.

[0010] In some implementations, generating a first number of random points to divide the registers into a first number of groups includes: calculating the distance from each register to each random point, and assigning the register to the group corresponding to the nearest random point.

[0011] In some implementations, calculating a first number of new approximate center point coordinates based on the coordinates of all registers in each group includes: summing the x and y coordinates of all registers in each group and dividing by the number of registers in the group to obtain the approximate center point coordinates of the group.

[0012] In another aspect, this invention provides a system for resolving ICG timing convergence, comprising: a calculation module configured to initially determine a first number of ICG units to be replicated based on a threshold of the total fan-out number of an ICG unit and the fan-out number of each ICG unit; a grouping module configured to generate a first number of random points to divide the registers into a first number of groups, and calculate a first number of new approximate center point coordinates based on the coordinates of all registers in each group; an iteration module configured to divide the registers into a first number of groups again based on the new approximate center point coordinates and calculate a first number of new approximate center point coordinates again, until the latest approximate center point coordinates are the same as the previous result, and use the latest approximate center point coordinates as the placement position of the replicated ICG units; and an execution module configured to replicate the first number of ICG units in response to all registers being less than or equal to the nearest latest approximate center point coordinates being less than or equal to a distance threshold.

[0013] In another aspect of the present invention, a computer device is provided, comprising: at least one processor; and a memory storing computer instructions executable on the processor, the instructions, when executed by the processor, implementing the steps of the method described above.

[0014] In another aspect, the present invention provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the above-described method steps.

[0015] The present invention has the following beneficial technical effects: it rationally plans the number of ICG units and their final placement based on the location of the registers, and balances the distance from the ICG units to each register as much as possible to reduce clock deviation, thereby reducing or eliminating setup time violations. Attached Figure Description

[0016] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other embodiments can be obtained based on these drawings without creative effort.

[0017] Figure 1 A schematic diagram illustrating an embodiment of the method for solving ICG timing convergence provided by the present invention;

[0018] Figure 2 A schematic diagram illustrating an embodiment of the present invention for determining the placement position of an ICG.

[0019] Figure 3A schematic diagram illustrating an embodiment of the system for solving ICG timing convergence provided by the present invention;

[0020] Figure 4 A schematic diagram of the hardware structure of an embodiment of a computer device for solving ICG timing convergence provided by the present invention;

[0021] Figure 5 This is a schematic diagram of an embodiment of a computer storage medium for solving ICG timing convergence provided by the present invention. Detailed Implementation

[0022] To make the objectives, technical solutions, and advantages of the present invention clearer, the embodiments of the present invention will be further described in detail below with reference to specific examples and the accompanying drawings.

[0023] It should be noted that all uses of "first" and "second" in the embodiments of the present invention are for the purpose of distinguishing two entities or parameters with the same name but different names. It is clear that "first" and "second" are only for the convenience of expression and should not be construed as limiting the embodiments of the present invention. Subsequent embodiments will not explain this in detail.

[0024] In a first aspect, an embodiment of a method for solving ICG timing convergence is proposed. Figure 1 The diagram shown is a schematic representation of an embodiment of the method for solving ICG timing convergence provided by the present invention. Figure 1 As shown, the embodiments of the present invention include the following steps:

[0025] S1. Based on the total fan-out number of an ICG unit and the threshold of the fan-out number of each ICG unit, the first number of ICG units to be replicated is initially determined.

[0026] S2. Generate a first number of random points to divide the registers into a first number of groups, and calculate the coordinates of a first number of new approximate center points based on the coordinates of all registers in each group;

[0027] S3. Based on the new approximate center point coordinates, divide the register into a first number of groups again and calculate a first number of new approximate center point coordinates again, until the latest approximate center point coordinates are the same as the previous result. Use the latest approximate center point coordinates as the placement position of the copied ICG unit; and

[0028] S4. In response to all registers being less than or equal to the nearest approximate center point coordinates, copy the first number of ICG units.

[0029] This invention primarily addresses a method for improving or eliminating setup violations when replicating ICG cells and rationally planning the number and placement of replicated ICG cells. The invention focuses on two key aspects: rationally specifying the number of replicated ICG cells and determining the placement of the replicated ICG cells.

[0030] The initial number of ICG units to be replicated is determined based on the total fan-out number of an ICG unit and a threshold for the fan-out number of each ICG unit.

[0031] In some implementations, the preliminary determination of the first number of ICG cells to be replicated based on the total fan-out number of an ICG cell and a threshold for the fan-out number of each ICG cell includes: multiplying the maximum number of registers that the L1 cache can drive under different processes by the number of cache levels added by the EDA tool between the ICG cell and the registers it controls to obtain the threshold for the fan-out number of each ICG cell; and dividing the total fan-out number of the ICG cell by the threshold for the fan-out number of each ICG cell to obtain the first number. Assuming the total fan-out number of an ICG cell is N, and this cell is replicated such that the fan-out number of each ICG cell is less than or equal to P (due to different factors such as process technology, the maximum number of registers that the L1 cache can drive is a, and the EDA tool adds b levels of cache between the ICG cell and the registers it controls, then P = a * b), the preliminary number of ICG cells to be replicated is Q = N / P. In this embodiment of the invention, the first number is Q.

[0032] Generate a first number of random points to divide the registers into a first number of groups, and calculate a first number of new approximate center point coordinates based on the coordinates of all registers in each group.

[0033] Figure 2 This is a schematic diagram of an embodiment of the invention for determining the placement position of an ICG, in conjunction with... Figure 2 The embodiments of the present invention will be described. Assume the registers are distributed as follows: Figure 2 As shown in (a), a small black dot represents a register, which is now divided into Q groups (assuming Q = 3).

[0034] In some implementations, generating a first number of random points to divide the registers into a first number of groups includes: calculating the distance from each register to each random point, and assigning the register to the group corresponding to the nearest random point. For example... Figure 2 As shown in (b), three points are randomly generated (a pentagram in the diagram represents a random point), and the distance from all Registers to each point is calculated, which is the straight-line distance between the two points. Figure 2As shown in (c), the Register is assigned to the group corresponding to the nearest random point, and then all Registers are divided into three groups.

[0035] In some implementations, calculating a first number of new approximate center point coordinates based on the coordinates of all registers in each group includes: summing the x and y coordinates of all registers in each group and dividing by the number of registers in the group to obtain the approximate center point coordinates of the group. For example... Figure 2 As shown in (d), the x and y coordinates of all Registers in the three groups are added together and divided by the number of Registers in the group to obtain the coordinates of the three new approximate center points (a pentagram in the figure represents a new approximate center point).

[0036] Based on the new approximate center point coordinates, the registers are divided into a first number of groups, and a first number of new approximate center point coordinates are calculated again, until the latest approximate center point coordinates are the same as the previous result. The latest approximate center point coordinates are then used as the placement position for the copied ICG cell. The distance of each register from each center is recalculated, and each register is assigned to the group with its nearest center point, forming three new groups of registers. The approximate center point coordinates are then recalculated. If the recalculated approximate center point coordinates are the same as the previous result, the final approximate center point coordinates are obtained. If they are different, the above steps are repeated until the results are the same. These approximate center point coordinates are then the placement position for the copied ICG cell.

[0037] In response to all registers being less than or equal to the latest approximate center point coordinates, the first number of ICG cells are copied. If the approximate center point coordinates obtained from the distances of the three new sets of Registers are all less than or equal to 400um, the number of ICG cells to be copied, Q = 3, is obtained.

[0038] In some implementations, the method further includes: in response to the existence of a register having a distance greater than the latest approximate center point coordinates, determining the number of ICG units to be copied based on the distance and the first quantity.

[0039] In some implementations, determining the number of ICG units to be copied based on the distance and the first quantity includes: determining the number of ICG units to be copied in groups where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold, and obtaining a second quantity based on the number and the number of groups where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold; and adding the first quantity and the second quantity to obtain the number of ICG units to be copied.

[0040] In some implementations, determining the number of ICG units to be copied in the group where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold, and obtaining a second quantity based on the number and the number of groups where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold, includes: dividing the distance by the distance threshold and rounding up to obtain the number of ICG units to be copied in the group where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold; subtracting one from the number to obtain the result and multiplying it by the number of groups where the distance from the approximate center point coordinates to the register is greater than the distance threshold to obtain the second quantity.

[0041] If, in a certain group, the distance from the replicated ICG cell to a certain register is greater than 400µs (engineering experience shows that when the distance from the ICG cell to all control registers does not exceed 400µs, the skew value during CTS can be less than or equal to 200ps, which is more conducive to timing convergence), divide this value by 400µs to obtain the value c (if it is a decimal, take the smallest integer greater than this decimal). This value is the value of the randomly selected point in this group region. Repeat the above steps to obtain the position of the ICG cell to be placed in this region. Therefore, the final number of ICG cells to be replicated is obtained.

[0042]

[0043] Where N is the total fan-out of the original ICG cell; a is the maximum number of Registers that the first-level buffer can drive under different processes; b is the number of buffer levels added by the EDA tool between the ICG cell and the Register it controls; n is the number of groups whose approximate center point coordinates are more than 400um away from a certain Register; and c is the number of ICGs to be copied in the groups whose approximate center point coordinates are more than 400um away from a certain Register.

[0044] This invention provides a reasonable specification for the number of ICG cells replicated for different processes, and determines the placement of the replicated cells through the above calculation process. This balances the distance from the ICG cell to each Register as much as possible, allowing the Clock Net to connect directly to the Register with the shortest distance, saving routing resources. Furthermore, placing the ICG in the center as much as possible, with the Registers evenly distributed around it, makes the Clock Tree easier to balance, reducing skew values ​​and facilitating timing convergence.

[0045] It should be noted that the steps in each embodiment of the above-described method for solving ICG timing convergence can be interleaved, substituted, added, or deleted. Therefore, these reasonable permutations and combinations should also fall within the protection scope of this invention for solving ICG timing convergence, and the protection scope of this invention should not be limited to the embodiments.

[0046] Based on the above objectives, a second aspect of this invention proposes a system for solving ICG timing convergence. For example... Figure 3 As shown, system 200 includes the following modules: a calculation module configured to initially determine a first number of ICG units to be copied based on a threshold of the total fan-out number of an ICG unit and the fan-out number of each ICG unit; a grouping module configured to generate a first number of random points to divide the registers into a first number of groups, and calculate a first number of new approximate center point coordinates based on the coordinates of all registers in each group; an iteration module configured to divide the registers into a first number of groups again based on the new approximate center point coordinates and calculate a first number of new approximate center point coordinates again, until the latest approximate center point coordinates are the same as the previous result, and use the latest approximate center point coordinates as the placement position of the copied ICG units; and an execution module configured to copy the first number of ICG units in response to all registers being less than or equal to the nearest latest approximate center point coordinates being less than or equal to a distance threshold.

[0047] In some implementations, the system further includes a quantity module configured to: determine the number of ICG units to be copied based on the distance and the first quantity in response to the existence of a register having a distance greater than the latest approximate center point coordinates.

[0048] In some implementations, the quantity module is configured to: determine the number of ICG units to be copied in groups where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold, based on the distance, and obtain a second quantity based on the number and the number of groups where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold; and add the first quantity and the second quantity to obtain the number of ICG units to be copied.

[0049] In some implementations, the quantity module is configured to: divide the distance by the distance threshold and round up to obtain the number of ICG units to be copied in the group where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold; and multiply the result of subtracting one from the number by the number of groups where the distance from the approximate center point coordinates to the register is greater than the distance threshold to obtain a second quantity.

[0050] In some implementations, the computing module is configured to: multiply the maximum number of registers that can be driven by the first-level cache under different processes by the number of cache levels added to enable the EDA tool between the ICG cell and the registers it controls to obtain a threshold for the number of fan-outs of each ICG cell; and divide the total number of fan-outs of the ICG cell by the threshold for the number of fan-outs of each ICG cell to obtain a first number.

[0051] In some implementations, the grouping module is configured to: calculate the distance from each register to each random point, and assign the register to the group corresponding to the nearest random point.

[0052] In some implementations, the grouping module is configured to: sum the x and y coordinates of all registers in each group and divide by the number of registers in the group to obtain the approximate center point coordinates of the group.

[0053] Based on the above objectives, a third aspect of the present invention provides a computer device, comprising: at least one processor; and a memory storing computer instructions executable by the processor to perform the following steps: S1, initially determining a first number of ICG units to be copied based on a threshold of the total fan-out number of an ICG unit and the fan-out number of each ICG unit; S2, generating a first number of random points to divide registers into a first number of groups, and calculating a first number of new approximate center point coordinates based on the coordinates of all registers in each group; S3, dividing registers again into a first number of groups based on the new approximate center point coordinates and calculating a first number of new approximate center point coordinates again, until the latest approximate center point coordinates are the same as the previous result, and using the latest approximate center point coordinates as the placement position of the copied ICG units; and S4, copying the first number of ICG units in response to all registers being less than or equal to the nearest latest approximate center point coordinates being less than or equal to a distance threshold.

[0054] In some implementations, the method further includes: in response to the existence of a register having a distance greater than the latest approximate center point coordinates, determining the number of ICG units to be copied based on the distance and the first quantity.

[0055] In some implementations, determining the number of ICG units to be copied based on the distance and the first quantity includes: determining the number of ICG units to be copied in groups where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold, and obtaining a second quantity based on the number and the number of groups where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold; and adding the first quantity and the second quantity to obtain the number of ICG units to be copied.

[0056] In some implementations, determining the number of ICG units to be copied in the group where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold, and obtaining a second quantity based on the number and the number of groups where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold, includes: dividing the distance by the distance threshold and rounding up to obtain the number of ICG units to be copied in the group where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold; subtracting one from the number to obtain the result and multiplying it by the number of groups where the distance from the approximate center point coordinates to the register is greater than the distance threshold to obtain the second quantity.

[0057] In some implementations, the preliminary determination of the first number of ICG units to be copied based on the total fan-out number of an ICG unit and a threshold for the fan-out number of each ICG unit includes: multiplying the maximum number of registers that can be driven by the L1 cache under different processes by the number of cache levels added to enable the EDA tool between the ICG unit and the registers it controls to obtain the threshold for the fan-out number of each ICG unit; and dividing the total fan-out number of the ICG unit by the threshold for the fan-out number of each ICG unit to obtain the first number.

[0058] In some implementations, generating a first number of random points to divide the registers into a first number of groups includes: calculating the distance from each register to each random point, and assigning the register to the group corresponding to the nearest random point.

[0059] In some implementations, calculating a first number of new approximate center point coordinates based on the coordinates of all registers in each group includes: summing the x and y coordinates of all registers in each group and dividing by the number of registers in the group to obtain the approximate center point coordinates of the group.

[0060] like Figure 4 The diagram shown is a hardware structure schematic of an embodiment of the computer device for solving ICG timing convergence provided by the present invention.

[0061] For example Figure 4 Taking the device shown as an example, the device includes a processor 301 and a memory 302.

[0062] Processor 301 and memory 302 can be connected via a bus or other means. Figure 4 Taking the example of a connection between China and Israel via a bus.

[0063] The memory 302, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules, such as the program instructions / modules corresponding to the method for solving ICG timing convergence in the embodiments of this application. The processor 301 executes various functional applications and data processing of the server by running the non-volatile software programs, instructions, and modules stored in the memory 302, thereby implementing the method for solving ICG timing convergence.

[0064] Memory 302 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created using methods for resolving ICG timing convergence, etc. Furthermore, memory 302 may include high-speed random access memory and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other non-volatile solid-state storage device. In some embodiments, memory 302 may optionally include memory remotely located relative to processor 301, and these remote memories may be connected to the local module via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.

[0065] One or more methods for resolving ICG timing convergence are stored in memory 302. When executed by processor 301, the method for resolving ICG timing convergence in any of the above method embodiments is executed.

[0066] Any embodiment of the computer device that performs the above-described method for resolving ICG timing convergence can achieve the same or similar effects as any of the aforementioned method embodiments.

[0067] The present invention also provides a computer-readable storage medium storing a computer program that, when executed by a processor, performs a method for resolving ICG timing convergence.

[0068] like Figure 5 The diagram shown is a schematic representation of an embodiment of the computer storage medium for solving ICG timing convergence provided by the present invention. Figure 5 Taking the computer storage medium shown as an example, the computer-readable storage medium 401 stores a computer program 402 that, when executed by a processor, performs the above method.

[0069] Finally, it should be noted that those skilled in the art will understand that all or part of the processes in the above embodiments can be implemented by a computer program instructing related hardware. The program for solving ICG timing convergence can be stored in a computer-readable storage medium. When executed, the program can include the processes of the embodiments of the above methods. The storage medium for the program can be a magnetic disk, optical disk, read-only memory (ROM), or random access memory (RAM), etc. The above computer program embodiments can achieve the same or similar effects as any of the corresponding foregoing method embodiments.

[0070] The above are exemplary embodiments disclosed in this invention. However, it should be noted that various changes and modifications can be made without departing from the scope of the embodiments of this invention as defined by the claims. The functions, steps, and / or actions of the methods according to the disclosed embodiments described herein do not need to be performed in any particular order. Furthermore, although the elements disclosed in the embodiments of this invention may be described or claimed individually, they may be understood as multiple unless explicitly limited to a singular number.

[0071] It should be understood that, as used herein, the singular form “a” is intended to include the plural form as well, unless the context clearly supports an exception. It should also be understood that, as used herein, “and / or” refers to any and all possible combinations of one or more of the associated listed items.

[0072] The embodiment numbers disclosed in the above embodiments of the present invention are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0073] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.

[0074] Those skilled in the art should understand that the discussion of any of the above embodiments is merely exemplary and is not intended to imply that the scope of the invention (including the claims) is limited to these examples. Within the framework of the invention, technical features of the above embodiments or different embodiments can be combined, and many other variations of different aspects of the invention exist, which are not provided in the details for the sake of brevity. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the invention should be included within the protection scope of the invention.

Claims

1. A method of resolving ICG timing convergence, the method comprising: Includes the following steps: The initial number of ICG units to be replicated is determined based on the total fan-out number of an ICG unit and the threshold of the fan-out number of each ICG unit. Generate a first number of random points to divide the registers into a first number of groups, and calculate a first number of new approximate center point coordinates based on the coordinates of all registers in each group; Based on the new approximate center point coordinates, the register is divided into a first number of groups again, and a first number of new approximate center point coordinates are calculated again, until the latest approximate center point coordinates are the same as the previous result. The latest approximate center point coordinates are then used as the placement position for the copied ICG unit; and In response to all registers being less than or equal to the distance threshold from the nearest approximate center point coordinates, the first number of ICG units are copied; In response to the existence of a register having a distance greater than the latest approximate center point coordinates, the number of ICG units to be copied is determined based on the distance and the first quantity; wherein, determining the number of ICG units to be copied based on the distance and the first quantity includes: dividing the distance by the distance threshold and rounding up to obtain the number of ICG units to be copied in the group where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold; subtracting one from the number to obtain the result and multiplying it by the number of groups where the distance from the approximate center point coordinates to the register is greater than the distance threshold to obtain a second quantity; adding the first quantity and the second quantity to obtain the number of ICG units to be copied.

2. The method according to claim 1, characterized in that, The initial determination of the first number of ICG units to be replicated based on the threshold of the total fan-out number of an ICG unit and the fan-out number of each ICG unit includes: The threshold for the fan-out number of each ICG cell is obtained by multiplying the maximum number of registers that the L1 cache can drive under different processes by the number of cache levels added between the ICG cell and the registers it controls to enable the EDA tool. The first quantity is obtained by dividing the total fan-out number of the ICG unit by the threshold of the fan-out number of each ICG unit.

3. The method according to claim 1, characterized in that, The step of generating a first number of random points to divide the register into a first number of groups includes: Calculate the distance from each register to each random point, and assign the register to the group corresponding to the nearest random point.

4. The method according to claim 3, characterized in that, The calculation of the first number of new approximate center point coordinates based on the coordinates of all registers in each group includes: The approximate center point coordinates of the group are obtained by summing the x and y coordinates of all registers in each group and dividing by the number of registers in that group.

5. A system for solving ICG timing convergence, characterized in that, include: The calculation module is configured to initially determine the first number of ICG units to be replicated based on a threshold of the total fan-out number of an ICG unit and the fan-out number of each ICG unit. The grouping module is configured to generate a first number of random points to divide the registers into a first number of groups, and calculate a first number of new approximate center point coordinates based on the coordinates of all registers in each group; The iterative module is configured to divide the register into a first number of groups again based on the new approximate center point coordinates and calculate a first number of new approximate center point coordinates again until the latest approximate center point coordinates are the same as the previous result, and use the latest approximate center point coordinates as the placement position of the copied ICG unit. as well as The execution module is configured to copy the first number of ICG units in response to all registers being less than or equal to the coordinates of the nearest approximate center point. The execution module is further configured to determine the number of ICG units to be copied based on the distance and the first quantity in response to the existence of a register having a distance greater than the latest approximate center point coordinates; wherein, determining the number of ICG units to be copied based on the distance and the first quantity includes: dividing the distance by the distance threshold and rounding up to obtain the number of ICG units to be copied in the group where the distance from the approximate center point coordinates to the nearest register is greater than the distance threshold; subtracting one from the number to obtain the result and multiplying it by the number of groups where the distance from the approximate center point coordinates to the register is greater than the distance threshold to obtain a second quantity; and adding the first quantity and the second quantity to obtain the number of ICG units to be copied.

6. A computer device, characterized in that, include: At least one processor; as well as A memory storing computer instructions executable on the processor, which, when executed by the processor, implement the steps of the method according to any one of claims 1-4.

7. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1-4.

Citation Information

Patent Citations

  • Integrated circuit device and its layout designing method

    JP2009152451A

  • Clock mesh synthesis with gated local trees and activity driven register clustering

    US20120299627A1