CN119312764A - Automated physical implementation method and system for four-level structured low-skew clock tree - Google Patents
Automated physical implementation method and system for four-level structured low-skew clock tree Download PDFInfo
- Publication number
- CN119312764A CN119312764A CN202411855949.XA CN202411855949A CN119312764A CN 119312764 A CN119312764 A CN 119312764A CN 202411855949 A CN202411855949 A CN 202411855949A CN 119312764 A CN119312764 A CN 119312764A
- Authority
- CN
- China
- Prior art keywords
- point
- clock
- points
- valve
- column
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000001360 synchronised effect Effects 0.000 claims abstract description 7
- 239000002184 metal Substances 0.000 claims description 42
- 229910052751 metal Inorganic materials 0.000 claims description 42
- 230000005484 gravity Effects 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 14
- XDDAORKBJWWYJS-UHFFFAOYSA-N glyphosate Chemical compound OC(=O)CNCP(O)(O)=O XDDAORKBJWWYJS-UHFFFAOYSA-N 0.000 claims description 9
- 238000004088 simulation Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 150000002739 metals Chemical class 0.000 description 11
- 230000015572 biosynthetic process Effects 0.000 description 7
- 238000003786 synthesis reaction Methods 0.000 description 7
- 101100129590 Schizosaccharomyces pombe (strain 972 / ATCC 24843) mcp5 gene Proteins 0.000 description 6
- 101100152304 Caenorhabditis elegans tap-1 gene Proteins 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004804 winding Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
The invention discloses an automatic physical realization method and system of a four-level structured low-skew clock tree, which are applied to the technical fields of chip design and EDA, and the method comprises the steps that S101, preliminary positions and quantity of valve points at the tail end of a synchronous clock are determined; the method comprises the steps of S102, configuring basic constraint of a clock tree, S103, symmetrically growing a first-stage clock trunk, S104, symmetrically growing a second-stage clock trunk, S105, symmetrically growing a third-stage clock trunk, S106, and generating a multi-valve point balance sub-tree, so that balanced connection of terminal valve points to clock leaf nodes and global time sequence satisfaction are realized. The invention can greatly reduce the designed clock skew under the oversized condition.
Description
Technical Field
The invention mainly relates to the technical field of clock trees, in particular to an automatic physical realization method and system of a four-level structured low-skew clock tree.
Background
In the physical design of integrated circuit modules or full chips, a Clock tree is grown between Clock input signals and each sequential logic Clock end to drive and realize sequential convergence, and the process of growing the Clock tree is commonly called Clock tree synthesis (Clock TREE SYNTHESIS, CTS). In early clock tree synthesis, the clock tree structure is relatively easy to achieve zero clock skew due to the small circuit scale, simple clock structure and clear hierarchy. Along with the continuous increase of design complexity, circuit functions are diversified, clock structures are more and more complex, clock tree synthesis is difficult to achieve zero clock skew, and the current clock tree synthesis algorithm mainly comprises three steps of cluster analysis and realization, global delay balance and actual physical wiring of clock lines in the actual implementation process, so that the wiring delay and clock skew targets constrained by global delay are realized.
In the existing clock tree comprehensive algorithm, the clock tree structure has a plurality of types such as balanced tree, H-tree, mesh and the like. The balanced tree is the most basic clock structure, and has the defects of larger clock deflection under large-scale design, mesh design is favorable for obtaining smaller clock deflection, a large amount of manual design and simulation work are often needed, the degree of automation is low, and the flexibility and the structural characteristics of the H-tree are moderate and are widely used. However, for oversized designs with short side dimensions up to thousands or even twenty-thousand microns, the H-tree may also exhibit clock skew exceeding 50ps, with larger clock skew potentially resulting in settling time and hold timing being difficult to converge.
Disclosure of Invention
Aiming at the technical problems in the prior art, the invention provides an automatic physical realization method and system for a four-stage structured low-skew clock tree for reducing clock skew.
In order to solve the technical problems, the technical scheme provided by the invention is as follows:
an automated physical implementation method of a four-level structured low-skew clock tree, comprising the steps of:
S101, determining preliminary positions and the number of the valve points at the tail end of the synchronous clock, namely determining the preliminary positions and the number N of the valve points at the tail end of the synchronous clock according to the layout shape and the macro module position and the rule of row and column regularity;
S102, configuring basic constraint of a clock tree, namely selecting a pre-designed strong driving inverter or buffer as a clock unit of a first-second-stage valve point and a first-third-stage symmetrical structure clock trunk, selecting the inverter/buffer as a clock unit of a tail-end valve point, selecting the clock inverter and the clock buffer as clock units of a multi-valve point balance sub-tree, selecting the uppermost two layers of metals in a target process as long-distance interconnection lines of the first-third-stage symmetrical structure clock trunk, selecting the rest metals as interconnection lines of the multi-valve point balance sub-tree, configuring a value range of clock jump, calculating and configuring the maximum driving distance L_max of the strong driving clock unit through simulation according to the clock jump requirement, and configuring the maximum fan-out fanout _max of the multi-valve point balance sub-tree;
S103, symmetrically growing a first-stage clock trunk, namely calculating the accurate positions of all the tail end valve tap3rd points according to the initial positions of all the tail end valve tap3rd points and combining the characteristics of a power grid structure, calculating the accurate positions of the left and right first-stage valve tap1st points, symmetrically growing the first-stage clock trunk by taking clock input as a starting point, and symmetrically connecting the clock input with the two first-stage valve tap1st points;
S104, symmetrically growing a second-stage clock trunk, namely calculating the accurate position of a second-stage valve tap2nd point corresponding to each row by combining the structural characteristics of a power grid aiming at the tap3rd point of each row of end valves, symmetrically growing the second-stage clock trunk by taking the tap1st point on the left as a starting point, so that all the tap2nd points on the left are respectively and symmetrically connected with the tap1st point on the left;
S105, symmetrically growing a third-stage clock trunk, namely, for a first column of tail end valve tap3rd points, starting from a corresponding tap2nd point, symmetrically growing the third-stage clock trunk up and down so as to connect the first column of tail end valve tap3rd points with the corresponding tap2nd point, and then, for each other column of tail end valve points, copying the third-stage clock trunk of the first column and translating the third-stage clock trunk to a corresponding position, and after modifying a unit name and a line name, connecting the tail end valve point of the corresponding column with the corresponding tap2nd point up and down symmetrically;
And S106, generating a multi-valve point balance sub-tree, namely completing automatic balance sub-tree generation by taking the tail end valve tap3rd point as a final valve point, so as to realize balance connection of the tail end valve point to a clock leaf node and global time sequence satisfaction.
Preferably, in step S103, calculating the accurate positions of all the end valve tap3rd points according to the initial positions of all the end valve tap3rd points and in combination with the power grid structure characteristics includes the steps of:
s1031a, obtaining a space_top of the two layers of the highest metals of the power grid, wherein the starting point of the two layers of the highest metals of the power grid in the horizontal direction is x0_top, and the starting point of the two layers of the power grid in the vertical direction is y0_top;
S1032a, for the i-th end valve point, its initial coordinates are (x3rd_i_init, y3rd_i_init), and its exact position is calculated as follows:
x3rd_i_ic=round((x3rd_i_init–x0_top)/(2×Space_top))×2×Space_top+x0_top;
y3rd_i_ic=round((y3rd_i_init–y0_top)/(2×Space_top))×2×Space_top+y0_top;
Wherein the method comprises the steps of ;
S1033a, for the accurate position (x3rd_i_ic, y3rd_i_ic) of the ith end valve point, judging whether to overlap with the macro module positions nearby each other, if so, searching the final accurate position (x3rd_i_c, y3rd_i_c) in the diagonal mode according to the sequence of (1, 1), (1, -1), (-1, -1) and (-1, 1);
s1034a, if i is less than N, i is increased by 1, and the process returns to S1032a, and if i is equal to N, the final accurate position calculation of all end valve points is completed, ending the current step.
Preferably, in step S103, the accurate positions of the points of the left and right first-stage valves tap1st are calculated, and then the first-stage clock trunk is grown symmetrically with the clock input as the starting point, and the clock input and the two first-stage valves tap1st are connected in a point-symmetrical manner, which includes the steps of:
s1301b, obtaining the barycentric coordinates of the layout, namely obtaining barycentric coordinates (x_fp, y_fp) of the layout according to the shape of the layout;
S1302b, calculating the x initial coordinate of the 1st point of the first-stage valve tap at the left, wherein the column number of the end valve points is Nc, if Nc is a multiple of 2, namely Nc=2k is satisfied, and the center of gravity of the end valve points in the x direction is calculated by 1~k columns at the left As the x-coordinate of the left tap1st point, if nc=2k—1, the center of gravity x1st_c { k } -fp of the kth column end valve point in the x-direction is calculated first, and if x1st_c { k } -fp < = x_fp, the center of gravity of the k column end valve point in the x-direction is calculated as the left column end valve point in the x-directionAs the x-coordinate of the left tap1st, if nc=2k-1 and x1st_c { k } -fp > x_fp, the center of gravity in the x-direction at the end valve point of the left k-1 columnX-coordinate as left tap1 st;
S1303b, calculating an x initial coordinate of a first-stage valve tap1st point on the right, wherein if Nc=2k, the center of gravity x1st_r_fp of the tail end valve point of the k+1-2k column on the right in the x direction is taken as the x coordinate of the tap1st point on the right; if a dummy end valve point is supplemented between a kth column and a k+1th column, and the right k column and the left k column can be in a translation relation, the dummy valve point of the column is called a ky column, and the barycenter x1st_r_fp of the right ky column and the k+1th-2k-1 column in the x direction is taken as the x coordinate of the right tap1st point, if a dummy end valve point is supplemented after 2k-1, and the right k column and the left k column can be in a left-right mirror image relation, the dummy valve point of the column is called a ny column, and the barycenter x1_r_fp of the right k+1th column and the k-2th column in the x direction is taken as the x coordinate of the right tap1st point, and the barycenter x1st_r_fp of the k+2k-1 st in the x direction is taken as the x coordinate of the right tap1st point, and the left tap1 st_fp is updated at the same time;
S1304b, determining the y initial coordinates of the two tap1st points, wherein the number of the tail end valve point lines is Nr, and if Nr is a multiple of 2, the method meets the following conditions Y_fp is taken as the y coordinate y1st_fp of the two tap1st ifThen by the firstAdding an offset delta y to the y coordinate value of the row end valve point to serve as y coordinates y1st_fp of the two tap1st, wherein the offset delta y is even times of the space_top of the two layers of metal at the highest of the power grid;
s1305b, calculating to obtain the accurate coordinates of the tap1st points of the two first-stage valves according to the characteristics of the power grid, wherein the calculation formula is as follows:
y1st_fp_c=round((y1st_fp_c–y0_top)/(2×Space_top)-6)×2×Space_top+y0_top;
;
x1st_r_fp_c=round((x1st_r_fp–x0_top)/(2×Space_top))×2×Space_top+x0_top;
Wherein round function represents rounding;
S1306b, calculating the actual Manhattan distance L1st of the clock input to the two first-stage valve points, wherein the position of the clock input is recorded as (x_ckin, y_ckin), and the x coordinate x1st_mean of the center points of the left tap1st and the right tap1st is calculated first; Calculating Manhattan distance L0 of clock input to two tap1st central points, wherein L0= |x1st_mean-x_ckin|+|y1st_fp-y_ckin|, the distances from the two tap1st central points to the respective central points are equal, the distances are recorded as L1, and the requirements are met Finally, obtaining the actual Manhattan distance L1st=L0+L1 of the clock input to the two first-stage valve points;
s1307b, calculating the number of clock units required by the first-stage clock backbone, namely firstly rounding L_max to space_top to obtain L_max_std= rounddown (L_max/space_top) multiplied by space_top; then calculate num1 st_0= rounddown (L0/l_max_std), then clock input to place num1st_0 clock units between two tap1st center points, then manhattan distance between the num1st_0 clock units from two tap1st center points is L0 end=l 0-num1st_0×l_max_std, then calculate num1 st_1= rounddown (L1- (l_max_std-l0_end)/2), if L1< num1st_1×l_max_std, then distance between the center point and left/right tap1st clock units is rounddown (L1/(num 1st_1×space_top)) ×space_top, otherwise the distance is still l_max_std, where roundup represents rounding up and rounddown represents rounding down;
S1308b, the growth of the first-stage clock trunk is completed, namely the number num1st of all clock units of the first-stage clock trunk is calculated, num1 st=num 1st_0+2×num1st_1 is met, num1st clock units are placed according to the calculated distance relation and connected with the highest two-layer metal according to the logic relation, and the wound highest two-layer metal is set to be fixed and unchanged in attribute.
Preferably, in step S1303b, the x-coordinate of the left tap1st is updated by observing the symmetry of the left and right sides, if a dummy end valve point is added before the 1st row to make the left k row end valve point and the right k row in a translational relationship, the dummy valve point is called the 0y row, and the center of gravity of the left 0y row and 1~k-1 row end valve point in the x-direction is usedAs the x coordinate of the left tap1st point, if a dummy end valve point is added between the k-1 th column and the k-th column to enable the left k-th column and the right k-th column to present a left-right mirror image relationship, the dummy valve point of the column is called the ky column, and the center of gravity of the dummy end valve point of the left column 1~k-1 and the ky column in the x direction is adoptedAs the x-coordinate of the left tap1st point.
Preferably, in step S104, for each column of end valve tap3rd points, in combination with the power grid structure characteristics, calculating the precise position of one second stage valve tap2nd point corresponding to each column includes the steps of:
s1041a, calculating the y coordinates of all tap2nd according to the y coordinates of the tap1st point, if Nr is a multiple of 2, namely, the requirement is satisfied Then by the firstLine and thThe y-coordinate mean of the end-of-line valve points is taken as the y-coordinates of all tanp nd, and the calculation formula is y2nd_fp_c=If Nr is not a multiple of 2, thenThen by the firstThe y-coordinate mean value of the end-of-line valve point plus an offset deltay 2 is calculated as y-coordinates of all tanp nd, with the formula y2nd_fp_c =+Δy2, wherein Δy2 is an even multiple of the space_top of the two layers of metal at the top of the power grid;
S1042a, for the j-th column of end valve tap3rd points, calculating the x initial coordinate x2nd_j_ic of the tap2nd point corresponding to the column, where x2nd_j_ic=x3rd_j_c+6x2xSpace_top; ;
S1043a, for the jth tap2nd point, searching for a final accurate position in a manner of double space_top to the left/right if its initial position overlaps with the macroblock position in its vicinity, denoted as (x2nd_j_c, y2nd_j_c);
S1044a, if j is less than Nc, j is incremented by 1 and returns to step S1042b, if j is equal to Nc, the calculation of the exact position of all second stage end valve points is complete, ending the present step.
Preferably, in step S104, the second stage clock trunk is grown symmetrically with the tap1st point on the left side as a starting point, so that the step of symmetrically connecting all the tap2nd points on the left side with the tap1st point on the left side includes the steps of:
S1041b, the number of the second-stage valve tap2nd points on the left is recorded as If (3)Cannot be expressed as a power of 2, then the least number of dummy valve points are added to the leftmost side so that;
S1042b, the number of points of the left second stage valve tap2nd is as followsOr (b)Then the center point of the n, n+1 th clock from left to right is selected as the bifurcation point of the left branch of the second-stage clock trunk, and the left side of the bifurcation point is recorded asWherein,;
S1043b, calculating the left first stage valve point to the leftThe furthest distance L2nd_max of the second stage valve points, wherein;
S1044b, estimating left first stage valve point to first stage valve pointThe number of clock units between the second stage valve points num2nd_0, satisfying num2 nd_0= roundup (l2nd_max/l_max_std+m/2);
s1045b according to left side The positions of the common clock unit and other clock units between the left first-stage valve point and the left second-stage valve point are calculated by the position relation of the second-stage valve points and the symmetry constraint of the second-stage clock trunk, the clock units are symmetrically arranged and connected by the highest two-layer metal according to the logic relation, and the wound highest two-layer metal is set as fixed and unchanged attribute.
Preferably, in step S105, for the first column end valve tap3rd point, the third stage clock trunk is grown up and down symmetrically with its corresponding tap2nd point as a starting point, so as to connect the first column end valve tap3rd point with its corresponding tap2nd point, which includes the steps of:
S1051, dividing a first row of end valves tap3rd with total number of Nr into an upper part and a lower part according to the position of a first tap2nd, wherein the number of the lower part is Nr_dn;
S1052, if nr_dn satisfies nr_dn=2nr or nr_dn=2nr+1, then selecting the center point of both of the Nr, nr+1 end valve points from bottom to top as the branching point of the lower branch of the third-stage clock trunk, where the left side of the branching point is denoted as (x3rd_nb_0, y3rd_nb_0), x3rd_nb_0=x2nd_1_c, y3rd_nb_0= (x3rd_ { Nr } c+x3rd_ { nr+1 }/-c)/2;
S1053, calculating the furthest distance L3rd_max from the 1 st second stage valve tap2nd point to the end valve point at the lowest side of column 1, l3rd_max= |y2nd_ 1_c-y3rd_nb_0|+|y3rd/u y3rd_nb_0 i++ y3rd u;
S1054, estimating the number of clock units num3rd_0 between the 1 st second stage valve point and the lowest end valve point in the 1 st column, satisfying num3 rd_0= roundup (l3 rd_max/l_max_std+mr/2);
s1055, calculating the positions of a public clock unit and other clock units between the 1 st second-stage valve tap2nd point and each lower end valve point according to the position relation of all the lower end valve tap3rd points of the 1 st column and the symmetry constraint of a third-stage clock trunk, wherein the clock units are symmetrically arranged and connected by the highest two-layer metal according to the logic relation, and the wound highest two-layer metal is set as fixed and unchanged attribute;
S1056, for all terminal tap3rd points on the 1 st column, according to the up-down symmetrical relation, the position of the upper corresponding clock unit is obtained in a mirror image mode according to the position of the 1 st column third-stage clock unit, the clock unit is placed, then according to the logical connection relation between the 1 st tap2nd point and all terminal tap3rd points on the 1 st column, the highest two layers of metals are connected, and the wound highest two layers of metals are set to be fixed and unchanged in attribute.
The invention also discloses an automatic physical implementation system of the four-level structured low-skew clock tree, which comprises a memory and a processor which are connected with each other, wherein the memory is stored with a computer program which executes the steps of the method when being executed by the processor.
Compared with the prior art, the invention has the advantages that:
The invention intervenes for the synthesis of the clock tree in the process of layout and wiring of the oversized design, and realizes the automatic generation of the highly symmetrical clock trunk layout and winding and multi-valve point clock subtrees facing the oversized design, thereby reducing the clock deflection under the oversized design to below 20ps through a non-mesh structure.
Drawings
FIG. 1 is a flow chart of an embodiment of a physical implementation method of the present invention.
FIG. 2 is a schematic diagram of the distribution of the first stage, second stage valve points and end valve points in an embodiment of the present invention.
Fig. 3 is a schematic structural diagram of a first stage clock trunk according to an embodiment of the present invention.
Fig. 4 is a schematic diagram of a second-stage clock trunk grown under tap1stA according to an embodiment of the present invention.
Fig. 5 is a schematic diagram of a third stage clock trunk grown under tap2nd1 according to an embodiment of the present invention.
Detailed Description
The invention is further described below with reference to the drawings and specific examples.
As shown in fig. 1, the method for automatically and physically implementing the four-stage structured low-skew clock tree according to the embodiment of the invention includes the following steps:
S101, determining initial positions and the number of the end valve points of the synchronous clock according to the shape of a layout floorplan and the positions of macro modules and the relative regularity of rows and columns after completing layout floorplan and power supply planning for oversized design, and determining the number of the initial positions of the end valve points of the synchronous clock to be 20 as shown in figure 2;
S102, configuring basic constraint of a clock tree, namely selecting a pre-designed strong driving buffer CKBUFFXX under a target process as a clock unit of a first-second-stage valve point and a first-third-stage symmetrical structure clock trunk, selecting a certain buffer CKBUFFX as a clock unit of a tail end valve point, selecting a clock inverter and a clock buffer in a commercial library of the target process as clock units of a multi-valve point balance subtree, selecting the two uppermost layers of metals in the target process as long-distance interconnection lines of the first-third-stage symmetrical structure clock trunk, selecting the rest of metal layers as interconnection lines of the multi-valve point balance subtree, configuring a value range of clock jump (slow), performing simulation calculation through a simulation under the target process according to the slow requirement, configuring the maximum driving distance L_max of the strong driving clock unit to be 1000um so as to ensure that the slow requirement is met, and configuring the maximum fan-out fanout _max of the multi-valve point balance subtree to be 32;
S103, symmetrically growing a first-stage clock trunk, namely calculating the accurate positions of all 20 tail end valve tap3rd points according to the initial positions of all tail end valve tap3rd points and combining the characteristics of a power grid structure, calculating the accurate positions of tap1st points tap1st A and tap1stB of left and right first-stage valves, symmetrically growing the first-stage clock trunk by taking clock input as a starting point, and symmetrically connecting the clock input with tap1st A and tap1 stB;
S104, symmetrically growing a second-stage clock trunk, namely, calculating the accurate position of a second-stage valve tap2nd point corresponding to each column by combining the structural characteristics of a power grid aiming at the tap3rd point of each column, symmetrically growing the second-stage clock trunk by taking the tap1st point tap1st A on the left as a starting point, so that all the tap2nd points on the left are respectively and symmetrically connected with the tap1st point tap1st A on the left;
S105, symmetrically growing a third-stage clock trunk, namely, for a first column of tail end valve tap3rd points, starting from a corresponding tap2nd point, symmetrically growing the third-stage clock trunk up and down so as to connect the first column of tail end valve tap3rd points with the corresponding tap2nd point, and then, for each other column of tail end valve points, copying the third-stage clock trunk of the first column and translating the third-stage clock trunk to a corresponding position, and after modifying a unit name and a line name, connecting the tail end valve point of the corresponding column with the corresponding tap2nd point up and down symmetrically;
and S106, generating a multi-valve point balance sub-tree, namely using a terminal valve tap3rd point as a final valve point, and completing automatic balance sub-tree generation by using a commercial/open-source layout and wiring tool, so as to realize balance connection of the terminal valve point to a clock leaf node and global time sequence satisfaction.
The method is applied to the technical fields of chip design and EDA, and comprises the steps of determining preliminary positions and quantity of end valve points, configuring basic constraint of a clock tree, symmetrically growing a first-stage clock trunk, symmetrically growing a second-stage clock trunk, symmetrically growing a third-stage clock trunk, and finally finishing generation of a balance subtree of multiple valve points, so that clock deflection of the design is greatly reduced under oversized size.
In this embodiment, in step S103, according to the preliminary positions of all the end valve tap3rd points and in combination with the power grid structure characteristics, calculating the accurate positions of all the 20 end valve tap3rd points includes the steps of:
S1031a, obtaining the interval between the highest two layers of metal of the power grid, namely space_top, and obtaining the starting point of the M9 metal in the horizontal (or x) direction of the highest two layers of metal of the power grid as x0_top and the starting point of the M9 metal in the vertical (or y) direction as y0_top;
S1032a, for the i-th end valve point (i e [1,20 ]), its initial coordinates are (x3rd_i_init, y3rd_i_init), and its preliminary accurate position is calculated as follows:
x3rd_i_ic=round((x3rd_i_init–x0_top)/(2×Space_top))×2×Space_top+x0_top;
y3rd_i_ic=round((y3rd_i_init–y0_top)/(2×Space_top))×2×Space_top+y0_top;
S1033a, judging whether the accurate positions (x3rd_i_ic, y3rd_i_ic) of the ith end valve point overlap with the positions of macro blocks nearby each other, if so, searching the final accurate positions (x3rd_i_c, y3rd_i_c) according to the (1, 1), (1, -1), (-1, -1) and (1, 1) in a diagonal mode, wherein the final accurate positions are marked as (x3rd_i_c, y3rd_i_c), and in the embodiment, the overlapping condition does not occur, so that the position of the ith end valve point is unchanged after the step is implemented;
S1034 a, if i is less than 20, i is increased by 1, and the process returns to S1032, and if i is equal to 20, the calculation of the accurate positions of all the end valve points is completed, ending the present step.
In this embodiment, in step S103, the accurate positions of the left and right first-stage valves tap1st points tap1stA and tap1stB are calculated, then the first-stage clock trunk is grown symmetrically with the clock input as the starting point, and the clock input and tap1stA and tap1stB are connected symmetrically, which specifically includes the steps of:
S1031b, obtaining barycentric coordinates (x_fp, y_fp) of the layout floorplan according to the shape of the layout floorplan;
S1032b, calculating the x initial coordinates of the first stage valve tap1st point tap1st A on the left, wherein the number of columns of end valve points is Nc=5, as shown in FIG. 2, satisfying Nc=2k-1, wherein k=3, then calculating the center of gravity x1st_c3_fp of the end valve point on the 3 rd column in the x direction first, and if the center of gravity x1st_c3_fp < = x_fp is satisfied, then calculating the center of gravity of the end valve point on the 3 left column in the x direction first The x-coordinate as the left tap1st point tap1 stA;
S1033b, calculating an x initial coordinate of a first-stage valve tap1st point tap1stB on the right, wherein since Nc=2k-1, k=3, and x1st_c3_fp < =x_fp, by observing symmetry on the left and right sides, finding that a dummy end valve point is supplemented between the 3 rd column and the 4 th column (the dummy valve point is a clock unit which is not driven by any load and is only used for balancing), and enabling the 3 rd column end valve point on the right to be in a translation relationship with the 3 rd column, the dummy valve point on the right is called ky column, and a center of gravity x1st_r_fp of the 3 rd column end valve point on the right and the 4 th to 5 th column end valve point in the x direction is taken as an x coordinate of a tap1st point tap1stB on the right;
s1034b, determining the y initial coordinates of two tap1st points tap1st A and tap1stB, wherein the number of terminal valve point lines in the embodiment is Nr=4 as shown in FIG. 2, so as to satisfy the following conditions WhereinThen taking y_fp as the y coordinates y1st_fp of the two tap1st points tap1st A and tap1 stB;
S1035b, calculating to obtain the accurate coordinates of the tap1st point tap1st A and tap1stB of the two first-stage valves according to the characteristics of the power grid, wherein the calculation formula is as follows:
y1st_fp_c=round((y1st_fp_c–y0_top)/(2×Space_top)-6)×2×Space_top+y0_top;
;
x1st_r_fp_c=round((x1st_r_fp–x0_top)/(2×Space_top))×2×Space_top+x0_top;
Wherein round function represents rounding;
S1036b, calculating the actual Manhattan distance L1st of the clock input to the two first stage valve points, wherein the position of the clock input is recorded as (x_ckin, y_ckin), and the x coordinate x1st_mean of the center points of the left and right tap1st points tap1st A and tap1stB is calculated first Calculating Manhattan distance L0 of clock input to two tap1st central points, wherein L0= |x1st_mean-x_ckin|+|y1st_fp-y_ckin|, the distances from the two tap1st central points to the respective central points are equal, the distances are recorded as L1, and the requirements are metFinally, obtaining the actual Manhattan distance L1st=L0+L1 of the clock input to the two first-stage valve points;
S1037b, calculating the number of clock units required by the first-stage clock backbone, namely, firstly rounding L_max to space_top to obtain L_max_std= rounddown (L_max/space_top) multiplied by space_top;
Then, calculating num1 st_0= rounddown (L0/L_max_std), and inputting the clock to a position between two tap1st center points, wherein num1st_0 clock units need to be placed, and the Manhattan distance between the number of the clock units of num1st_0 and the two tap1st center points is L0 end=L0-num 1st_0 multiplied by L_max_std;
Then calculate num1 st_1= rounddown (l1- (l_max_std-l0_end)/2), if l1< num1st_1×l_max_std, then the distance between the center point and the left/right tap1st between num1st_1 clock units is rounddown (L1/(num 1st_1×space_top)) ×space_top, otherwise the distance is still l_max_std, where roundup represents an upward rounding and rounddown represents a downward rounding;
S1038b, completing the growth of the first-stage clock trunk, namely calculating the total number of clock units num1st of the first-stage clock trunk, satisfying num1 st=num 1st_0+2×num1st_1, in the embodiment, num1st_0 is equal to 5, and num1st_1 is equal to 3, so that the total number of clock units num1st of the first-stage clock trunk is equal to 11, placing the num1st clock units according to the calculated distance relation, connecting the two layers of metal at the highest, as shown in FIG. 3, and setting the wound two layers of metal at the highest as fixed and unchanged attributes.
In this embodiment, in step S104, for each row of end valve tap3rd points, in combination with the power grid structure feature, calculating the accurate position of one second stage valve tap2nd point corresponding to each row includes the steps of:
s1041a, calculating y coordinates of all tap2nd based on y coordinates of tap1st point as shown in FIG. 2, since Nr satisfies Then by the firstLine and thThe y-coordinate mean of the end-of-line valve points is taken as the y-coordinates of all tanp nd, and the calculation formula is y2nd_fp_c=;
S1042a, for the j-th row of end valve tap3rd points (j E [1, nc ]), calculating the x initial coordinate x2nd_j_ic of the tap2nd point corresponding to the row, wherein x2nd_j_ic=x3rd_j_c+6x2xSpace_top;
S1043a, for the jth tap2nd point, searching for a final accurate position in a manner of double space_top to the left/right if its initial position overlaps with the macroblock position in its vicinity, denoted as (x2nd_j_c, y2nd_j_c);
s1044a, if j is less than Nc, j is increased by 1, and the process returns to S1042a, and if j is equal to Nc, the calculation of the accurate positions of all second-stage end valve points is completed, ending the current step.
In this embodiment, in step S104, the second-stage clock trunk is grown symmetrically with the tap1st point tap1stA on the left as the starting point, so that symmetrically connecting all the tap2nd points on the left with the tap1st point tap1stA on the left includes:
S1041b, the number of the second-stage valve tap2nd points on the left is recorded as As shown in fig. 2, the present invention,Cannot be expressed as a power of 2, then the least number of dummy valve points (dummy valve points refer to clock units which are not driven by any load and are only used for balancing) are added to the leftmost side, so thatWhere m=2;
s1042b, the number of points of the left second stage valve tap2nd is as follows Then the center point of the n, n+1 th clock from left to right is selected as the bifurcation point of the left branch of the second-stage clock trunk, and the left side of the bifurcation point is recorded asWherein,;
S1043b, calculating the left first stage valve point to the leftThe furthest distance L2nd_max of the second stage valve points, wherein;
S1044b, estimating left first stage valve point to first stage valve pointThe number of clock units between the second stage valve points num2nd_0, satisfying num2 nd_0= roundup (l2nd_max/l_max_std+m/2);
s1045b according to left side The positions of the common clock unit and other clock units between the left first-stage valve point and the left second-stage valve points are calculated by the position relation of the second-stage valve points and the symmetry constraint of the second-stage clock trunk, the clock units are symmetrically arranged and connected by the highest two-layer metal according to the logic relation, the connection effect is as shown in figure 4, and finally the wound highest two-layer metal is set as fixed and unchanged attribute.
In this embodiment, in step S105, for the first row of end valve tap3rd points, the third stage clock trunk is grown up and down symmetrically with the corresponding tap2nd point as the starting point, so as to connect the first row of end valve tap3rd points with the corresponding tap2nd point, which includes the steps of:
S1051, dividing the first row of end valves tap3rd with total number of Nr into an upper part and a lower part according to the position of the first tap2nd, wherein the number of the lower part is Nr_dn;
S1052, if nr_dn satisfies nr_dn=2nr or nr_dn=2nr+1, where nr=1, then selecting the center point of both Nr and nr+1 end valve points from bottom to top as the bifurcation point of the lower branch of the third stage clock trunk, where the left side of the bifurcation point is denoted as (x3 rd_nb_0, y3rd_nb_0), x3 rd_nb_0=x2nd_1_c, y3rd_nb_0= (x3 rd_ { Nr } c+x3rd_ { nr+1 }/c)/2;
S1053, calculating the furthest distance L3rd_max from the 1 st second stage valve tap2nd point to the end valve point at the lowest side of column 1, l3rd_max= |y2nd_ 1_c-y3rd_nb_0|+|y3rd/u y3rd_nb_0 i++ y3rd u;
S1054, estimating the number of clock units num3rd_0 between the 1 st second stage valve point and the lowest end valve point in the 1 st column, satisfying num3 rd_0= roundup (l3 rd_max/l_max_std+mr/2);
S1055, calculating the positions of a common clock unit and other clock units between the 1 st second-stage valve tap2nd point and each lower end valve point according to the position relation of all the lower end valve tap3rd points of the 1 st column and the symmetry constraint of a third-stage clock trunk, symmetrically placing the clock units, connecting the highest two layers of metals according to the logic relation, and setting the wound highest two layers of metals as fixed and unchanged attributes;
S1056, for all the tail end tap3rd points on the 1 st column, according to the up-down symmetrical relation, the positions of the corresponding clock units on the 1 st column are obtained in a mirror image mode according to the positions of the third-stage clock units on the 1 st column, the clock units are placed, then the 1 st tap2nd point and all the tail end tap3rd points on the 1 st column are connected through the highest two layers of metals according to the logic connection relation between the 1 st tap2nd point and all the tail end tap3rd points on the 1 st column, as shown in fig. 5, and the wound highest two layers of metals are set to be fixed and unchanged in attribute.
The invention intervenes for the synthesis of the clock tree in the process of layout and wiring of the oversized design, and realizes the automatic generation of the highly symmetrical clock trunk layout and winding and multi-valve point clock subtrees facing the oversized design, thereby reducing the clock deflection under the oversized design to below 20ps through a non-mesh structure.
The embodiment of the invention also provides an automated physical realization system of the four-level structured low-skew clock tree, which comprises a memory and a processor which are connected with each other, wherein the memory is stored with a computer program which, when being executed by the processor, executes the steps of the method.
The above is only a preferred embodiment of the present invention, and the protection scope of the present invention is not limited to the above examples, and all technical solutions belonging to the concept of the present invention belong to the protection scope of the present invention. It should be noted that modifications and adaptations to the invention without departing from the principles thereof are intended to be within the scope of the invention as set forth in the following claims.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411855949.XA CN119312764B (en) | 2024-12-17 | 2024-12-17 | Automated physical realization method and system for four-stage structured low-skew clock tree |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411855949.XA CN119312764B (en) | 2024-12-17 | 2024-12-17 | Automated physical realization method and system for four-stage structured low-skew clock tree |
Publications (2)
Publication Number | Publication Date |
---|---|
CN119312764A true CN119312764A (en) | 2025-01-14 |
CN119312764B CN119312764B (en) | 2025-03-07 |
Family
ID=94179189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411855949.XA Active CN119312764B (en) | 2024-12-17 | 2024-12-17 | Automated physical realization method and system for four-stage structured low-skew clock tree |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN119312764B (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5726596A (en) * | 1996-03-01 | 1998-03-10 | Hewlett-Packard Company | High-performance, low-skew clocking scheme for single-phase, high-frequency global VLSI processor |
US20120110538A1 (en) * | 2010-10-28 | 2012-05-03 | National Taiwan University | Clock-tree structure and method for synthesizing the same |
CN116306471A (en) * | 2023-03-27 | 2023-06-23 | 上海亿家芯集成电路设计有限公司 | Clock tree structure and implementation method thereof |
-
2024
- 2024-12-17 CN CN202411855949.XA patent/CN119312764B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5726596A (en) * | 1996-03-01 | 1998-03-10 | Hewlett-Packard Company | High-performance, low-skew clocking scheme for single-phase, high-frequency global VLSI processor |
US20120110538A1 (en) * | 2010-10-28 | 2012-05-03 | National Taiwan University | Clock-tree structure and method for synthesizing the same |
CN116306471A (en) * | 2023-03-27 | 2023-06-23 | 上海亿家芯集成电路设计有限公司 | Clock tree structure and implementation method thereof |
Non-Patent Citations (1)
Title |
---|
韩静: "定制大驱动单元时钟树设计及应用", 《硕士电子期刊》, vol. 2024, no. 11, 15 November 2024 (2024-11-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN119312764B (en) | 2025-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dolgov et al. | 2019 cad contest: Lef/def based global routing | |
US8745565B2 (en) | Satisfying routing rules during circuit design | |
US8887117B1 (en) | Register clustering for clock network topology generation | |
CN101187958B (en) | Method and system for generating integrated electronic circuit layout pattern | |
US7795943B2 (en) | Integrated circuit device and layout design method therefor | |
CN104063559A (en) | Layout legalization method and system for distributed computing of large-scale integrated circuit | |
US5187784A (en) | Integrated circuit placement method using netlist and predetermined ordering constraints to produce a human readable integrated circuit schematic diagram | |
CN117556758B (en) | A FPGA layout and routing method for optimizing timing | |
US6651237B2 (en) | System and method for H-Tree clocking layout | |
CN113095033B (en) | Superconducting RSFQ Circuit Layout Method for Dual Clock Architecture | |
CN107967372A (en) | A kind of FPGA total arrangements legalize method | |
CN119312764B (en) | Automated physical realization method and system for four-stage structured low-skew clock tree | |
US10354037B1 (en) | Methods, systems, and computer program product for implementing an electronic design by manipulating a hierarchical structure of the electronic design | |
Li et al. | iPD: An Open-source intelligent Physical Design Toolchain | |
CN104992032A (en) | Modification method for holding time in multi-voltage domain design | |
JP5515255B2 (en) | Automatic wiring device, automatic wiring method and automatic wiring program | |
US6449756B1 (en) | Method for accurate and efficient updates of timing information logic synthesis, placement and routing for integrated circuit design | |
JP5326471B2 (en) | Clock signal supply circuit design method, information processing apparatus, and program | |
CN120106007B (en) | Clock tree synthesis method and system based on clustering | |
CN109271132B (en) | A sorting method based on machine learning model | |
US20030074643A1 (en) | Unified database system to store, combine, and manipulate clock related data for grid-based clock distribution design | |
JP4966838B2 (en) | Clock wiring processing apparatus, clock wiring processing method, and program | |
JP3433025B2 (en) | Module placement method | |
CN119886040B (en) | Clock tree comprehensive optimization method and system based on hierarchical region division and buffer insertion | |
US20240394453A1 (en) | Global placement of circuit designs using a calibrated simple timer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |