Winding method, device and storage medium for integrated circuit

By drawing paths using Manhattan equidistant lines and vertical lines based on the maximum Manhattan distance point in the integrated circuit, the problems of clock tree imbalance and increased power consumption in high-frequency clock signal design are solved, achieving more stable clock deviation and lower resistance.

CN120579511BActive Publication Date: 2025-09-26VASTAI TECH (SHANGHAI) INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511081040.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-08-04
Publication Date
2025-09-26
Estimated Expiration
2045-08-04

AI Technical Summary

Technical Problem

In the prior art, it is difficult to effectively balance the clock tree in the design of integrated circuits with high-frequency clock signals, resulting in inconsistent clock skew and increased power consumption, especially inconsistent performance under different process corners.

Method used

Using the point with the maximum Manhattan distance as the benchmark, the load point is mapped to the Manhattan equidistant line through a new geometric algorithm to ensure that the distance from the driving point to the load point is equal and the resistance is minimum. The path is drawn using the Manhattan equidistant line and the vertical line.

Benefits of technology

The power consumption problem introduced by inserting BUF and INV in the traditional method is reduced, the consistency of clock deviation is improved, and the performance is more stable under different process angles.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120579511B_ABST
    Figure CN120579511B_ABST
Patent Text Reader

Abstract

The present application provides a winding method, device and storage medium for integrated circuits. The method includes: S1, identifying the farthest load point with the largest Manhattan distance from the driving point from the multiple load points; S2, drawing a Manhattan equidistant line with a distance m from the origin in the quadrant where the farthest load point is located, and drawing a mirror image in the other three quadrants to form a square; S3: using the farthest load point and the symmetrical points of the farthest load point relative to the origin, the x-axis and the y-axis as vertices, drawing a rectangle inscribed in the square; S4: for the load points outside the rectangle, drawing a routing path; S5: for the load points inside the rectangle, drawing their routing paths. The method of the present application ensures that the distance from the driving point to the load point is equal and the resistance is minimized, which not only reduces the power consumption problem introduced by the traditional method of inserting BUF and INV to balance, but also improves the consistency of clock deviation under different process angles.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of integrated circuit design, and in particular to a winding method for a balanced clock tree of an integrated circuit. Background Art

[0002] In today's large-scale integrated circuits (ICs), clock frequencies continue to increase, with some even reaching 2GHz to 3GHz. As the core of digital systems, clock signals play a crucial role in their functional performance and stability, placing extremely high demands on their physical implementation. During IC design, it's often necessary to ensure that signals to registers maintain a balanced clock tree, meaning that clock skew should be as low as possible.

[0003] To maintain clock tree balance, the current mainstream methods include the following three:

[0004] 1. Customized balanced routing. This method has special requirements for the placement of cells.

[0005] 2. Manual routing, achieved through local detour balance, but this method cannot guarantee the minimum trace resistance.

[0006] 3. When routing with the APR tool, by default, the lines will be routed to the geometric center of all cells and then rewound. This cannot guarantee that the lines will be leveled, so the APR tool usually uses cell delay to level the clock.

[0007] Some of these methods reduce clock skew by inserting redundant units, while others reduce clock skew by using detour wires. These methods usually place requirements on the layout of the drive unit and the load unit, requiring that the geometric distance from the drive to each load be as consistent as possible.

[0008] However, both inserting redundant cells and employing circuitous routing will increase additional power consumption. Furthermore, since the clock skew of standard cells varies across process corners, using redundant cells to balance the clock tree will result in clock skew that varies across process corners. Furthermore, due to the high clock frequency and constant switching, clock power consumption accounts for a significant portion of the overall design power consumption, a significant portion of which is attributable to the standard cells added to balance the clock tree.

[0009] Therefore, it is necessary to provide a balanced clock tree routing method that overcomes the above-mentioned drawbacks. Summary of the Invention

[0010] In view of this, the present invention provides a winding method, device and storage medium for an integrated circuit, so as to solve the above-mentioned technical problems in the prior art.

[0011] According to one aspect of the present invention, a method for winding a wire for an integrated circuit is provided, wherein the method comprises the following steps:

[0012] S1: Set the driving point as the origin of the coordinate system, and identify the farthest load point with the largest Manhattan distance from the driving point from multiple load points. The Manhattan distance between the farthest load point and the driving point is m;

[0013] S2: Draw a Manhattan isometric line with a distance m from the origin in the quadrant where the farthest load point is located, and draw mirror images in the other three quadrants to form a square;

[0014] S3: Draw a rectangle inscribed in the square with the farthest load point and the symmetrical point of the farthest load point relative to the origin, the x-axis, and the x-axis as vertices;

[0015] S4: For the load point outside the rectangle, draw the first Manhattan equidistant auxiliary line from it to the square edge in the corresponding quadrant, and draw a perpendicular line from the first midpoint of the first Manhattan equidistant auxiliary line to the rectangle edge in the corresponding quadrant. The perpendicular line intersects the rectangle edge at the first intersection point. The routing path of the load point outside the rectangle is along the first Manhattan auxiliary line to the first midpoint and then along the perpendicular line to the first intersection point.

[0016] S5: For the load point located in the rectangle, draw the second Manhattan equidistant auxiliary line from it to the side of the square in the corresponding quadrant. The second Manhattan equidistant auxiliary line intersects with the side of the rectangle at the second intersection point. The second intersection point is the midpoint of the second Manhattan equidistant auxiliary line. The routing path of the load point in the rectangle is along a path parallel to the x-axis and y-axis to the second intersection point.

[0017] According to a preferred embodiment of the present application, in step S4:

[0018] If the horizontal coordinate value of the load point outside the rectangle is less than the horizontal coordinate value of the farthest load point or the vertical coordinate value is greater than the vertical coordinate value of the farthest load point, then the first Manhattan equidistant auxiliary line is parallel to the x-axis;

[0019] If the horizontal coordinate value of the load point outside the rectangle is greater than the horizontal coordinate value of the farthest load point or the vertical coordinate value is less than the vertical coordinate value of the farthest load point, then the first Manhattan equidistant auxiliary line is parallel to the y-axis.

[0020] According to a preferred embodiment of the present application, in step S5:

[0021] If the load point in the rectangle is closer to the y-axis relative to the dividing line, the second intersection point is located on the side of the rectangle parallel to the x-axis;

[0022] If the load point in the rectangle is closer to the x-axis relative to the dividing line, then the second intersection point is located on the side of the rectangle parallel to the y-axis.

[0023] Wherein, in the quadrant where the load point in the rectangle is located, the dividing line is perpendicular to the side of the square and passes through the vertex of the rectangle.

[0024] According to a preferred embodiment of the present application, in step S5:

[0025] If the load point in the rectangle is closer to the y-axis side relative to the dividing line, the routing path of the load point in the rectangle is first along the direction parallel to the x-axis to the abscissa of the second intersection point, and then along the y-axis to the ordinate of the second intersection point;

[0026] If the load point within the rectangle is close to the x-axis side relative to the dividing line, the routing path of the load point within the rectangle is first along the direction parallel to the y-axis to the ordinate of the second intersection, and then along the x-axis to the abscissa of the second intersection.

[0027] According to a preferred embodiment of the present application, in step S5:

[0028] If the load point in the rectangle is located on the dividing line, the routing path of the load point in the rectangle in the corresponding quadrant is: along the x-axis direction to the side of the rectangle parallel to the y-axis; or along the y-axis direction to the side of the rectangle parallel to the x-axis.

[0029] According to a preferred embodiment of the present application, the above method further includes executing step S4 or S5 for each load point among the multiple load points.

[0030] According to a preferred embodiment of the present application, the above method includes:

[0031] S6: Selecting, from among the first and second intersection points in each quadrant, a point corresponding to the smallest value of the horizontal coordinate and the vertical coordinate as a common point, and a line from the first and second intersection points to the driving point passes through the common point;

[0032] S7: Draw a routing path from each first intersection point and the second intersection point to the common point in each quadrant;

[0033] S8: Draw the routing path from the common point to the driving point based on the principle of the longest common path.

[0034] According to a preferred embodiment of the present application, step S7 includes:

[0035] Drawing a routing path of the common point along the x-axis and y-axis to the first intersection point or the second intersection point on the edge of the rectangle in each quadrant;

[0036] According to the principle of proximity, a routing path of other first intersection points and second intersection points is drawn along the edge of the rectangle to the first intersection point or the second intersection point connected to the common point.

[0037] According to yet another aspect of the present invention, an electronic device is provided, comprising: one or more processors and a memory, wherein the memory is used to store executable instructions; and the one or more processors are configured to implement the above method via the executable instructions.

[0038] According to yet another aspect of the present invention, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the processor executes the above method.

[0039] As can be seen from the above technical solutions, the technical solution provided by this application uses the point with the maximum Manhattan distance as the reference point and maps the remaining load points onto the Manhattan equidistance line through a new geometric algorithm, ensuring that the distance from the driver point to the load point is equal and the resistance is minimized. This not only reduces the power consumption introduced by the traditional method of inserting BUF and INV to balance, but also improves the consistency of clock skew under different process corners. BRIEF DESCRIPTION OF THE DRAWINGS

[0040] The accompanying drawings are used to provide a further understanding of the technical solution of the present invention and constitute a part of the specification. Together with the embodiments of the present invention, they are used to explain the technical solution of the present invention, but do not constitute a limitation to the technical solution of the present invention.

[0041] Figure 1 A flow chart illustrating a wiring method for an integrated circuit according to an exemplary embodiment of the present invention is shown;

[0042] Figure 2 A schematic diagram showing a driving point and a load point in a plane rectangular coordinate system in an exemplary embodiment of the present invention is shown;

[0043] Figure 3 A schematic diagram showing a load point outside a rectangular frame in the first quadrant in an exemplary embodiment of the present invention is shown;

[0044] Figure 4 A schematic diagram showing a load point within a rectangular frame in the first quadrant in an exemplary embodiment of the present invention is shown;

[0045] Figure 5 A schematic diagram showing a load point within a rectangular frame in the first quadrant in an exemplary embodiment of the present invention is shown;

[0046] Figure 6 A schematic diagram showing a wiring path from a load point to a rectangular frame in an exemplary embodiment of the present invention is shown;

[0047] Figure 7 A schematic diagram showing common points within a rectangular frame and wiring paths in an exemplary embodiment of the present invention is shown;

[0048] Figure 8A structural block diagram of an electronic device provided by an exemplary embodiment of the present invention is shown. DETAILED DESCRIPTION

[0049] Various exemplary embodiments of the present invention will be described in detail below with reference to the accompanying drawings. The description of the exemplary embodiments is merely illustrative and is not intended to limit the invention, its application, or use. The present invention can be implemented in many different forms and is not limited to the embodiments described herein. These embodiments are provided to make this disclosure thorough and complete and to fully convey the scope of the invention to those skilled in the art.

[0050] Unless explicitly stated, if the number of an element is not specifically limited, the element may be one or more. The term "plurality" means two or more, the term "based on" should be interpreted as "based at least in part on," and the terms "and / or" and "at least one of..." encompass any and all possible combinations of the listed items. Furthermore, terms such as "first," "second," and the like are for descriptive purposes only and do not indicate or imply relative importance or implicitly specify the number of the technical features being referred to.

[0051] This invention discloses a routing method for a balanced clock tree for integrated circuits. This method uses the maximum Manhattan distance point as a reference point and maps load points onto the Manhattan distance line using a novel geometric algorithm, ensuring that the distance from the drive point to all load points is equal and the resistance is minimized.

[0052] Please refer to Figures 1 to 7 , which respectively show a winding method for an integrated circuit in an exemplary embodiment of the present invention, and the positions and routing paths of a driving point and a load point in a plane rectangular coordinate system.

[0053] like Figure 1 According to one aspect of the present invention, a method for routing a balanced clock tree for an integrated circuit is provided, the method comprising the following steps:

[0054] S1: Set the driving point as the origin of the coordinate system, and identify the farthest load point with the largest Manhattan distance from the driving point from multiple load points. The Manhattan distance between the farthest load point and the driving point is m;

[0055] S2: Draw a Manhattan isometric line with a distance m from the origin in the quadrant where the farthest load point is located, and draw mirror images in the other three quadrants to form a square;

[0056] S3: Draw a rectangle inscribed in the square with the farthest load point and the symmetrical point of the farthest load point relative to the origin, the x-axis, and the x-axis as vertices;

[0057] S4: For the load point outside the rectangle, draw the first Manhattan equidistant auxiliary line from it to the square edge in the corresponding quadrant, and draw a perpendicular line from the first midpoint of the first Manhattan equidistant auxiliary line to the rectangle edge in the corresponding quadrant. The perpendicular line intersects the rectangle edge at the first intersection point. The routing path of the load point outside the rectangle is along the first Manhattan auxiliary line to the first midpoint and then along the perpendicular line to the first intersection point.

[0058] S5: For the load point located in the rectangle, draw the second Manhattan equidistant auxiliary line from it to the square edge in the corresponding quadrant. The second Manhattan equidistant auxiliary line intersects with the rectangle edge at the second intersection point. The second intersection point is the midpoint of the second Manhattan equidistant auxiliary line. The routing path of the load point in the rectangle is along a path parallel to the x-axis or y-axis to the second intersection point.

[0059] In step S1 , the driving point is set as the origin of the coordinate system, and the farthest load point with the largest Manhattan distance from the driving point is identified from multiple load points. The Manhattan distance from the farthest load point to the driving point is m.

[0060] like Figure 2 As shown in the figure, in the plane rectangular coordinate system, the driving point marked as a triangle is located at the origin, and the load points marked as circles are scattered in the four quadrants of the plane rectangular coordinate system. The point with the largest sum of the absolute values ​​of the horizontal and vertical coordinates of each load point |x|+|y| (Manhattan distance from the driving point) is the red dot in the first quadrant, and the sum of its horizontal and vertical coordinates is m, which is the Manhattan distance between the load point and the driving point. Figure 2 In the figure, only the case where the farthest load point is in the first quadrant is exemplified. In actual practice, the farthest load point can be located in any quadrant.

[0061] In step S2 , a Manhattan isometric line with a distance m from the origin is drawn in the quadrant where the farthest load point is located, and mirror images are drawn in the other three quadrants to form a square.

[0062] like Figure 2 As shown, in the first quadrant, the Manhattan isometry lines with a distance of m satisfy the function x + y = m. By mirroring, Manhattan isometry lines with a distance of m can be drawn in the other three quadrants. The Manhattan isometry lines in the four quadrants can be represented by the function |x| + |y| = m. The four Manhattan isometry lines in the four quadrants form a square. Since the Manhattan distances of the other load points from the drive point are all smaller than the farthest load point, the other load points are all located inside the square.

[0063] In step S3 , a rectangle inscribed in the square is drawn with the farthest load point and the symmetrical point of the farthest load point relative to the origin, the x-axis, and the x-axis as vertices.

[0064] like Figure 2As shown in the figure, the mirror images of the farthest load point in the first quadrant fall on the Manhattan isodistance lines in the other three quadrants. Connecting the farthest load point and its mirror images in the other three quadrants forms a rectangle inscribed in the square formed by the Manhattan isodistance lines, shown by the red dashed line in the figure.

[0065] For a point inside the square, it is necessary to find its equivalent point on the Manhattan isometry line in order to determine its path to the rectangular box. Figure 2 The rectangular box in Figure 1 divides the load points into two categories: one outside the box and the other inside. The following describes the steps for determining the routing path from the load point to the rectangular box for the cases where the load point is outside the box (Case 1) and inside the box (Case 2), respectively, using steps S4 and S5.

[0066] In step S4, for the load point outside the rectangle, a first Manhattan equidistant auxiliary line is drawn from the load point to the side of the square in the corresponding quadrant, and a perpendicular line is drawn from the first midpoint of the first Manhattan equidistant auxiliary line to the side of the rectangle in the corresponding quadrant. The perpendicular line intersects the side of the rectangle at the first intersection point. The routing path of the load point outside the rectangle is along the first Manhattan auxiliary line to the first midpoint and then along the perpendicular line to the first intersection point.

[0067] Figure 3 A schematic diagram shows load points outside the rectangle in the first quadrant. Load points outside the rectangle can be divided into two categories. The first category is load points above the rectangle. These load points have a smaller horizontal coordinate than the farthest load point, but a larger vertical coordinate than the farthest load point. The second category is load points to the right of the rectangle. These load points have a larger horizontal coordinate than the farthest load point, but a smaller vertical coordinate than the farthest load point.

[0068] for Figure 3 The load point above the rectangular box, the first Manhattan isometric auxiliary line of the load point is parallel to the x-axis and intersects with the square side (Manhattan isometric line), that is, the line segment from the load point to the blue dot. The midpoint of this line segment is the yellow dot in the figure, which becomes the first midpoint. Then draw a perpendicular line from the first midpoint to the rectangular side (red dotted box), and the intersection of the perpendicular line and the rectangular box ( Figure 3 The blue square point in the middle is called the first intersection point. At this time, the intersection point with the Manhattan equidistant line ( Figure 3 The blue dot in the middle represents the equivalent point of the load. This means the distance from the load equivalent point to the driving point is equal to the distance from the load itself to the driving point. The blue dashed line shows the Manhattan distance to the equivalent point is m. Therefore, the distance from the load point to the driving point is also m. The routing path for the load point follows the first Manhattan equidistant auxiliary line to the first midpoint, then along the perpendicular line to the edge of the rectangle. The routing from the edge of the rectangle to the driving point can be done along the edge of the rectangle to the y-axis, and then along the y-axis to the driving point.

[0069] Similarly, for Figure 3 the load point on the right side of the rectangular box in Figure 3 , the routing path from it to the rectangular side can also be determined according to the above steps. The first Manhattan equidistant auxiliary line of this load point is parallel to the x-axis and intersects the square side (Manhattan equidistant line). The routing path of this load point is along the first Manhattan equidistant auxiliary line to the first midpoint, and then along the perpendicular line to the rectangular side. The routing path from the rectangular side to the driving point can be along the rectangular side to the x-axis, and then along the x-axis to the driving point.

[0070] Combined with the above Figure 3 the shortest resistance routing for the load points outside the rectangle in the first quadrant is described. The situations in other quadrants are the same as those in the first quadrant. The shortest resistance routing for the load points outside the rectangle in the four quadrants can be obtained through the above step S4.

[0071] In step S5, for the load points inside the rectangle, draw the second Manhattan equidistant auxiliary line from it to the square side in the corresponding quadrant. The second Manhattan equidistant auxiliary line intersects the rectangular side at the second intersection point, and the second intersection point is the midpoint of the second Manhattan equidistant auxiliary line. The routing path of the load point inside the rectangle is along the path parallel to the x-axis or y-axis to the second intersection point.

[0072] Figure 4 and Figure 5 shows a schematic diagram of the load point inside the rectangle in the first quadrant. In Figure 4 and Figure 5 an orange dividing line is shown, which is perpendicular to the square side and passes through the rectangular vertex (the farthest load point). Let the coordinates of the farthest load point be (x0, y0), then the function of the orange dividing line is y = x + 2y0 - m. Through this dividing line, the load points inside the rectangle can be divided into two categories. The first category of load points is on the side closer to the y-axis relative to the dividing line, and the second category of load points is on the side closer to the x-axis relative to the dividing line.

[0073] The principle of using the function y = x + 2y0 - m as the dividing line is as follows:

[0074] Let the Manhattan distance from the load point to the driving point be n (n < m), and the function of the Manhattan equidistant line is x + y = n;

[0075] The star point is the intersection point of the Manhattan equidistant line x + y = n and the rectangular side, and its coordinates are (x0, n - m + y0). The coordinates of the midpoint between the star point and the point with the maximum Manhattan distance (the green square point in the figure) are (x0, y0 + (n - m) / 2),

[0076] The Manhattan distance from the square to the driving point: x0 + y0 + (n - m) / 2 = (m + n) / 2

[0077] Manhattan distance from the square to the load point: |y0 + (n - m) / 2 - y| + |x0 - x| = (m - n) / 2

[0078] (3) The condition for this expression to hold is x0 > x and y0 + (n - m) / 2 > y. Among them, x0 > x is guaranteed by the condition of case 2 (the load point is inside the rectangle).

[0079] (4) So as long as it is ensured that:

[0080] y < y0 + (n - m) / 2

[0081] => 2y < 2y0 + n - m

[0082] => 2y - n < 2y0 - m

[0083] => 2y - (x + y) < 2y0 - m

[0084] => y - x < 2y0 - m

[0085] => y < x + 2y0 - m (the right side of the inequality is the dividing line)

[0086] As Figure 4 and Figure 5 shown, for the side closer to the y - axis relative to the dividing line, the second Manhattan equidistant auxiliary line from it to the side of the square intersects the side of the rectangle parallel to the x - axis at the second intersection point, and the second intersection point is the mid - point of the second Manhattan equidistant auxiliary line. Figure 4 and Figure 5 The triangles A and B in are congruent, and C and D are congruent. Therefore, the routing path of this load point is to first go along the direction parallel to the x - axis to the abscissa of the second mid - point, and then go along the y - axis to the ordinate of the second mid - point. The routing path from the second mid - point to the driving point can be along the side of the rectangle to the y - axis, and then along the y - axis to the driving point.

[0087] Similarly, for the side closer to the x - axis relative to the dividing line, the second Manhattan equidistant auxiliary line from it to the side of the square intersects the side of the rectangle parallel to the y - axis at the second intersection point, and the second intersection point is the mid - point of the second Manhattan equidistant auxiliary line. Figure 4 and Figure 5 The triangles A and B in are congruent, and C and D are congruent. Therefore, the routing path of this load point is to first go along the direction parallel to the y - axis to the ordinate of the second mid - point, and then go along the x - axis to the abscissa of the second mid - point. The routing path from the second mid - point to the driving point can be along the side of the rectangle to the x - axis, and then along the x - axis to the driving point.

[0088] It should be noted that for a load point located on the dividing line within the rectangle, the second Manhattan equidistant auxiliary line from the load point to the side of the square is parallel to the x-axis or y-axis, and the midpoint of the second Manhattan auxiliary line is the second intersection with the side of the rectangle. The routing path for this load point within the corresponding quadrant is: along the x-axis to the second intersection on the side of the rectangle parallel to the y-axis; or along the y-axis to the second intersection on the side of the rectangle parallel to the x-axis. The routing path from the second intersection to the drive point can be: along the side of the rectangle to the x-axis, then along the x-axis to the drive point; or along the side of the rectangle to the y-axis, then along the y-axis to the drive point.

[0089] Combination of the above Figure 4 and Figure 5 The method for obtaining the shortest resistance path for the load point within the rectangle in the first quadrant is described. The situation in the other quadrants is the same as that in the first quadrant. Through the above step S5, the shortest resistance path for the load point within the rectangle in the four quadrants can be obtained.

[0090] Figure 6 A schematic diagram of the wiring path from the load point to the rectangular frame drawn in steps S4 and S5 is shown. The wiring path from the rectangular edge to the driving point can, for example, be along the rectangular edge to the x-axis or y-axis, and then along the x-axis or y-axis to the driving point.

[0091] According to a preferred embodiment of the present application, the wiring method for an integrated circuit may further include the following steps for drawing a wiring path from a rectangular edge to a driving point:

[0092] S6: Among the first and second intersection points in each quadrant, select the point corresponding to the smallest value of the horizontal coordinate and the vertical coordinate as the common point, and the line from the first and second intersection points to the driving point passes through the common point;

[0093] S7: Draw a routing path from each first intersection point and second intersection point to the common point in each quadrant;

[0094] S8: Draw the routing path from the common point to the driving point based on the principle of the longest common path.

[0095] In step S6, among the first and second intersection points in each quadrant, the point corresponding to the smallest abscissa and ordinate is selected as the common point, and the lines from the first and second intersection points to the driving point pass through the common point.

[0096] For example, in a certain quadrant, among the multiple first and second intersection points on the edge of a rectangle, the minimum value of the horizontal coordinate is x1 and the minimum value of the vertical coordinate is y1, then the coordinates of the common point in the quadrant are (x1, y1). Obviously, the common point is located inside the rectangle. Figure 7 As shown, the common points in each quadrant are shown by red diamond blocks.

[0097] In step S7, a routing path from each first intersection point and second intersection point to a common point is drawn in each quadrant. Step S7 may specifically include:

[0098] Drawing a routing path of the common point along the x-axis and y-axis to the first intersection point or the second intersection point on the edge of the rectangle in each quadrant;

[0099] According to the principle of proximity, a routing path of other first intersection points and second intersection points is drawn along the edge of the rectangle to the first intersection point or the second intersection point connected to the common point.

[0100] The intersection of the common point along the x-axis and the rectangle edge is the first or second intersection with the smallest horizontal coordinate value. The intersection of the common point along the y-axis and the rectangle edge is the first or second intersection with the smallest vertical coordinate value. For other first and second intersections (i.e., those that do not have the smallest horizontal or vertical coordinate values), a routing path is drawn along the rectangle edge to the first or second intersection connected to the common point (i.e., the first or second intersection with the smallest horizontal or vertical coordinate value) according to the principle of proximity.

[0101] In step S8, according to the principle of the longest common path, a routing path (main routing path) from the common point to the driving point is drawn. Figure 8 As shown, the backbone path from the common point to the driving point in the four quadrants is from each driving point along the x-axis to the y-axis, and then along the y-axis line to the driving point.

[0102] The H-tree was routed using the default routing method of the APR TOOL tool and the method according to the embodiment of the present application. The final results showed that the clock skew of the method according to the embodiment of the present application was approximately 75% smaller than the clock deviation of the default routing algorithm of the APR TOOL tool, achieving the theoretically expected effect.

[0103] In addition to the above technical solutions, the present invention also provides an electronic device, which includes one or more processors and a memory for storing executable instructions. The one or more processors are configured to implement the above method via executable instructions. The present invention also provides a computer-readable storage medium, which stores a computer program, and when the computer program is executed by the processor, the processor executes the above method. In the following part of this specification, Figure 8 To describe illustrative examples of the aforementioned electronic device and computer-readable storage medium.

[0104] Figure 8An example configuration of an electronic device 300 that can be used to implement the methods described herein is shown. The technical solutions of the present invention can also be implemented in whole or in part by electronic device 300 or similar devices / systems. Electronic device 300 can be a variety of different types of devices. Examples of electronic devices 300 include, but are not limited to, desktop computers, server computers, laptop or netbook computers, mobile devices, wearable devices, entertainment devices, televisions or other display devices, and automotive computers.

[0105] The electronic device 300 may include at least one processor 302, memory 304, communication interface(s) 309, a display device 301, other input / output (I / O) devices 310, and one or more mass storage devices 303, all capable of communicating with each other via a system bus 311 or other appropriate connections.

[0106] The processor 302 may be a single or multiple processing units, all of which may include a single or multiple computing units or multiple cores. The processor 302 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuits, and / or any device that manipulates signals based on operational instructions. Among other capabilities, the processor 302 may be configured to retrieve and execute computer-readable instructions stored in the memory 304, mass storage device 303, or other computer-readable media, such as program code of an operating system 305, application programs 306, or other programs 307.

[0107] Memory 304 and mass storage device 303 are examples of computer-readable storage media for storing instructions that are executed by processor 302 to implement the various functions described above. For example, memory 304 may generally include both volatile memory and non-volatile memory. In addition, mass storage device 303 may generally include a hard drive, a solid-state drive, removable media, including external and removable drives, memory cards, flash memory, floppy disks, optical disks, storage arrays, network attached storage, storage area networks, etc. Memory 304 and mass storage device 303 may be collectively referred to as memory or computer-readable storage media in the present invention and may be non-transitory media capable of storing computer-readable, processor-executable program instructions as computer program code that may be executed by processor 302 as a specific machine configured to implement the operations and functions described in the examples of the present invention.

[0108] A plurality of programs may be stored on the mass storage device 303. These programs include an operating system 305, one or more application programs 306, other programs 307, and program data 308, and they may be loaded into the memory 304 for execution. Examples of such applications or program modules may include, for example, computer program logic (e.g., computer program code or instructions) for implementing the following components / functions: the methods provided by the present invention (including any suitable steps of the methods) and / or other embodiments described herein.

[0109] Although Figure 7 304 of the electronic device 300, but the modular operating system 305, application programs 306, other programs 307, and program data 308, or portions thereof, may be implemented using any form of computer-readable media accessible by the electronic device 300. Here, a computer-readable medium may be any available computer-readable storage medium or communication medium accessible to a computer. Communication media include media such as communication signals for transmitting computer-readable instructions, data structures, program modules, or other data from one system to another. Communication media may include guided transmission media and wireless media capable of propagating energy waves. Computer-readable instructions, data structures, program modules, or other data may be embodied as, for example, modulated data signals in a wireless medium.

[0110] For example, computer-readable storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. For example, computer-readable storage media include, but are not limited to, volatile memory, such as random access memory (RAM, DRAM, SRAM); and non-volatile memory, such as flash memory, various read-only memories (ROM, PROM, EPROM, EEPROM), magnetic and ferromagnetic / ferroelectric memories (MRAM, FeRAM); and magnetic and optical storage devices (hard disks, magnetic tapes, CDs, DVDs); or other known media or later developed media capable of storing computer-readable information / data for use by a computer system.

[0111] One or more communication interfaces 309 are used to exchange data with other devices, such as via a network, direct connection, or the like. This communication interface can be one or more of the following: any type of network interface, wired or wireless (e.g., WLAN) interface, Wi-MAX interface, Ethernet interface, USB interface, cellular network interface, Bluetooth interface, NFC interface, or the like. Communication interface 309 can facilitate communication within a variety of network and protocol types, including wired and wireless networks, the Internet, and the like. Communication interface 309 can also provide communication with external storage devices (not shown), such as storage arrays, network-attached storage, storage area networks, and the like.

[0112] In some examples, a display device 301 such as a monitor may be included for displaying information and images to a user. Other I / O devices 310 may be devices that receive user input and provide output to the user, and may include touch / gesture input devices, cameras, keyboards, remote controls, mice, audio input / output devices, etc.

[0113] The technical solutions described in the present invention can be supported by these various configurations of the electronic device 300 and are not limited to the specific examples of the technical solutions described in the present invention. The illustrations and descriptions of the present invention in the foregoing text and the accompanying drawings are not restrictive. It is obvious to those skilled in the art that the present invention is not limited to the details of the above exemplary embodiments, and the present invention can also be implemented in other specific forms without departing from the spirit or basic characteristics of the present invention. Therefore, the scope of protection claimed by the present invention is defined by the claims rather than the above description, and all changes that fall within the meaning and scope of the equivalent elements of the claims are included in the scope of protection of the present invention.

Claims

1. A winding method for an integrated circuit, wherein the integrated circuit comprises a driving point and a plurality of load points, characterized in that: The method comprises the following steps: S1: Set the driving point as the origin of the coordinate system, and identify the farthest load point with the largest Manhattan distance from the driving point from the multiple load points, where the Manhattan distance from the farthest load point to the driving point is m; S2: Draw a Manhattan isometric line with a distance m from the origin in the quadrant where the farthest load point is located, and draw mirror images in the other three quadrants to form a square; S3: Using the farthest load point and the symmetrical points of the farthest load point relative to the origin, the x-axis, and the y-axis as vertices, draw a rectangle inscribed in the square; S4: For the load point outside the rectangle, draw a first Manhattan equidistant auxiliary line from the load point to the side of the square in the corresponding quadrant, and a perpendicular line from the first midpoint of the first Manhattan equidistant auxiliary line to the side of the rectangle in the corresponding quadrant, wherein the perpendicular line intersects the side of the rectangle at a first intersection point. The routing path of the load point outside the rectangle is to follow the first Manhattan auxiliary line to the first midpoint and then follow the perpendicular line to the first intersection point. S5: For the load point located in the rectangle, draw a second Manhattan equidistant auxiliary line from the load point to the side of the square in the corresponding quadrant, where the second Manhattan equidistant auxiliary line intersects the side of the rectangle at a second intersection point, which is the midpoint of the second Manhattan equidistant auxiliary line. The routing path of the load point in the rectangle is along a path parallel to the x-axis and the y-axis to the second intersection point. S6: Selecting, from among the first and second intersection points in each quadrant, a point corresponding to the smallest value of the horizontal coordinate and the vertical coordinate as a common point, and a line from the first and second intersection points to the driving point passes through the common point; S7: Draw a routing path from each first intersection point and the second intersection point to the common point in each quadrant; S8: Based on the principle of the longest common path, draw the routing path from the common point to the driving point. Wherein, step S7 includes: Drawing a routing path of the common point along the x-axis and y-axis to the first intersection point or the second intersection point on the edge of the rectangle in each quadrant; According to the principle of proximity, a routing path of other first intersection points and second intersection points is drawn along the edge of the rectangle to the first intersection point or the second intersection point connected to the common point.

2. The method according to claim 1, characterized in that In step S4: If the horizontal coordinate value of the load point outside the rectangle is less than the horizontal coordinate value of the farthest load point or the vertical coordinate value is greater than the vertical coordinate value of the farthest load point, then the first Manhattan equidistant auxiliary line is parallel to the x-axis; If the horizontal coordinate value of the load point outside the rectangle is greater than the horizontal coordinate value of the farthest load point or the vertical coordinate value is less than the vertical coordinate value of the farthest load point, then the first Manhattan equidistant auxiliary line is parallel to the y-axis.

3. The method according to claim 1, characterized in that In step S5: If the load point in the rectangle is closer to the y-axis relative to the dividing line, the second intersection point is located on the side of the rectangle parallel to the x-axis; If the load point in the rectangle is closer to the x-axis relative to the dividing line, then the second intersection point is located on the side of the rectangle parallel to the y-axis. Wherein, in the quadrant where the load point in the rectangle is located, the dividing line is perpendicular to the side of the square and passes through the vertex of the rectangle.

4. The method according to claim 3, characterized in that In step S5: If the load point in the rectangle is closer to the y-axis side relative to the dividing line, the routing path of the load point in the rectangle is first along the direction parallel to the x-axis to the abscissa of the second intersection point, and then along the y-axis to the ordinate of the second intersection point; If the load point within the rectangle is close to the x-axis side relative to the dividing line, the routing path of the load point within the rectangle is first along the direction parallel to the y-axis to the ordinate of the second intersection, and then along the x-axis to the abscissa of the second intersection.

5. The method according to claim 3, characterized in that In step S5: If the load point in the rectangle is located on the dividing line, the routing path of the load point in the rectangle in the corresponding quadrant is: along the x-axis direction to the side of the rectangle parallel to the y-axis; or along the y-axis direction to the side of the rectangle parallel to the x-axis.

6. The method according to claim 1, characterized in that The method further includes executing step S4 or S5 for each load point in the plurality of load points.

7. An electronic device, characterized in that: The electronic device comprises: one or more processors; a memory for storing executable instructions; The one or more processors are configured to implement the method of any one of claims 1 to 6 via the executable instructions.

8. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the processor is caused to perform the method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Joint motor applied to spherical joint of robot

    CN113098228A

  • Clock tree designing apparatus and clock tree designing method

    US20120240090A1