US 7480881 B2 Abstract A method and computer program for static timing analysis includes receiving as input minimum and maximum stage delays for two corners of an integrated circuit design. A path slack for a setup timing check is calculated from the minimum and maximum stage delays as a function of net clock cycle interval T_clk, launch path delay T_LP, capture path delay T_CP, data path delay T_DP, and a first delay de-rating factor Y
1. A path slack for a hold timing check is calculated from the minimum and maximum stage delays as a function of the launch path delay T_LP, the capture path delay T_CP, the data path delay T_DP, and a second delay de-rating factor Y2. The path slack calculated for the setup timing check and for the hold timing check is generated as output.Claims(34) 1. A method of static timing analysis comprising steps of:
receiving as input minimum and maximum stage delays for two corners of an integrated circuit design;
calculating path slack for a setup timing check from the minimum and maximum stage delays as a function of net clock cycle interval T_clk, launch path delay T_LP, capture path delay T_CP, data path delay T_DP, and a first delay de-rating factor Y
1;calculating path slack for a hold timing check from the minimum and maximum stage delays as a function of the launch path delay T_LP, the capture path delay T_CP, the data path delay T_DP, and a second delay de-rating factor Y
2; andgenerating as output the path slack calculated for the setup timing check and for the hold timing check.
2. The method of
1)*(min1_wc+min3_wc), where min1_wc is a minimum worst case delay for a common path segment, and min3_wc is a minimum worst case incremental capture path delay.3. The method of
1_wc+max2_wc), where max1_wc is a maximum worst case delay for a common path segment, and max2_wc is a maximum worst case incremental launch path delay.4. The method of
4_wc, where max4_wc is a maximum worst case data path delay.5. The method of
6. The method of
1_bc+min3_bc), where min1_bc is a minimum best case delay for a common path segment, and min3_bc is a minimum best case incremental capture path delay.7. The method of
1)*(max1_bc+max2_bc), where max1_bc is a maximum best case delay for a common path segment, and max2_bc is a maximum best case incremental launch path delay.8. The method of
1)*max4_bc, where max4_bc is a maximum best case data path delay.9. The method of
10. The method of
1_wc+max3_wc), where max1_wc is a maximum worst case delay for a common path segment, and max3_wc is a maximum worst case incremental capture path delay.11. The method of
1_wc+(1−Y2)* min2_wc), where max1_wc is a maximum worst case delay for a common path segment, and min2_wc is a minimum worst case incremental launch path delay.12. The method of
1)*min4_wc, where min4_wc is a minimum worst case data path delay.13. The method of
14. The method of
1_bc+(1+Y1)* max3_bc), where min1_wc is a minimum worst case delay for a common path segment, and max3_bc is a maximum best case incremental capture path delay.15. The method of
1_bc+min2_bc), where min1_bc is a minimum best case delay for a common path segment, and min2_bc is a minimum best case incremental launch path delay.16. The method of
4_bc, where min4_bc is a minimum best case data path delay.17. The method of
18. A computer program product for optimizing register transfer level code for an integrated circuit design comprising a medium for embodying a computer program for input to a computer and a computer program embodied in the medium for causing the computer to perform steps of:
receiving as input minimum and maximum stage delays for two corners of an integrated circuit design;
calculating path slack for a setup timing check from the minimum and maximum stage delays as a function of net clock cycle interval T_clk, launch path delay T_LP, capture path delay T_CP, data path delay T_DP, and a first delay de-rating factor Y
1;calculating path slack for a hold timing check from the minimum and maximum stage delays as a function of the launch path delay T_LP, the capture path delay T_CP, the data path delay T_DP, and a second delay de-rating factor Y
2; andgenerating as output the path slack calculated for the setup timing check and for the hold timing check.
19. The computer program product of
1)*(min1_wc+min3_wc), where min1_wc is a minimum worst case delay for a common path segment, and min3_wc is a minimum worst case incremental capture path delay.20. The computer program product of
1_wc+max2_wc), where max1_wc is a maximum worst case delay for a common path segment, and max2_wc is a maximum worst case incremental launch path delay.21. The computer program product of
4_wc, where max4_wc is a maximum worst case data path delay.22. The computer program product of
23. The computer program product of
1_bc+min3_bc), where min1_bc is a minimum best case delay for a common path segment, and min3_bc is a minimum best case incremental capture path delay.24. The computer program product of
1)*(max1_bc+max2_bc), where max1_bc is a maximum best case delay for a common path segment, and max2_bc is a maximum best case incremental launch path delay.25. The computer program product of
1)*max4_bc, where max4_bc is a maximum best case data path delay.26. The computer program product of
27. The computer program product of
1_wc+max3_wc), where max1_wc is a maximum worst case delay for a common path segment, and max3_wc is a maximum worst case incremental capture path delay.28. The computer program product of
1_wc+(1−Y2)*min2_wc), where max1_wc is a maximum worst case delay for a common path segment, and min2_wc is a minimum worst case incremental launch path delay.29. The computer program product of
2)* min4_wc, where min4_wc is a minimum worst case data path delay.30. The computer program product of
31. The computer program product of
1_bc+(1+Y2)*max3_bc), where min1_wc is a minimum worst case delay for a common path segment, and max3_bc is a maximum best case incremental capture path delay.32. The computer program product of
1_bc+min2_bc), where min1_bc is a minimum best case delay for a common path segment, and min2_bc is a minimum best case incremental launch path delay.33. The computer program product of
4_bc, where min4_bc is a minimum best case data path delay.34. The computer program product of
Description 1. Field of the Invention The present invention is directed to integrated circuit design software used in the manufacture of integrated circuits. More specifically, but without limitation thereto, the present invention is directed to a method of static timing analysis of an integrated circuit design. 2. Description of Related Art In a typical design flow used in the manufacture of integrated circuits, timing closure is performed for the integrated circuit design using a static timing analysis (STA) tool to find timing critical paths. A path is timing critical, for example, if it has a timing slack that is less than some positive limit, that is, the propagation delay of the path may not meet setup or hold time specifications due to cell delay, interconnect delay, and crosstalk delay. In one aspect of the present invention, a method includes steps of: receiving as input minimum and maximum stage delays for two corners of an integrated circuit design; calculating path slack for a setup timing check from the minimum and maximum stage delays as a function of net clock cycle interval T_clk, launch path delay T_LP, capture path delay T_CP, data path delay T_DP, and a first delay de-rating factor Y1; calculating path slack for a hold timing check from the minimum and maximum stage delays as a function of the launch path delay T_LP, the capture path delay T_CP, the data path delay T_DP, and a second delay de-rating factor Y2; and generating as output the path slack calculated for the setup timing check and for the hold timing check. In another aspect of the present invention, a computer program product for estimating a total path delay in an integrated circuit design includes: a medium for embodying a computer program for input to a computer; and a computer program embodied in the medium for causing the computer to perform steps of: receiving as input minimum and maximum stage delays for two corners of an integrated circuit design; calculating path slack for a setup timing check from the minimum and maximum stage delays as a function of net clock cycle interval T_clk, launch path delay T_LP, capture path delay T_CP, data path delay T_DP, and a first delay de-rating factor Y1; calculating path slack for a hold timing check from the minimum and maximum stage delays as a function of the launch path delay T_LP, the capture path delay T_CP, the data path delay T_DP, and a second delay de-rating factor Y2; and The present invention is illustrated by way of example and not limitation in the accompanying figures, in which like references indicate similar elements throughout the several views of the drawings, and in which: Elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some elements in the figures may be exaggerated relative to other elements to point out distinctive features in the illustrated embodiments of the present invention. In several methods used for static timing analysis of integrated circuit designs, estimated values for setup and hold delays in clocked nets are adjusted, or de-rated, to account for process, voltage, and temperature (PVT) variations to ensure that the integrated circuit will perform within specifications. To avoid de-rating the estimated setup and hold delay values by an unrealistically high amount, a technique referred to as clock re-convergence pessimism reduction (CRPR) may be used to moderate the effect of de-rating. Step In step In step In step In step In step In step In step In step In step Step The method illustrated in Another disadvantage of the method of A further disadvantage of the method of The problems described above are advantageously avoided by the method of static timing analysis described below. In one embodiment, a method of static timing analysis includes steps of: receiving as input minimum and maximum stage delays for two corners of an integrated circuit design; calculating path slack for a setup timing check from the minimum and maximum stage delays as a function of net clock cycle interval T_clk, launch path delay T_LP, capture path delay T_CP, data path delay T_DP, and a first delay de-rating factor Y1; calculating path slack for a hold timing check from the minimum and maximum stage delays as a function of the launch path delay T_LP, the capture path delay T_CP, the data path delay T_DP, and a second delay de-rating factor Y2; and In A selected set of operating conditions for an integrated circuit design is called a corner. For each corner pair, for example, worst case (WC) and best case (BC), design parasitic values are extracted to perform a delay analysis. As a result, a pair of minimum and maximum worst case delays (min_wc, max_wc) is obtained for each stage (cell delay plus interconnect delay) for the worst case corner and a pair of minimum and maximum best case delays (min_bc, max_bc) is obtained for each stage for the best case corner. The maximum worst case max_wc is the extreme (maximum) value of stage delay for the worst case operating conditions, the worst case PVT variations, and worst case crosstalk slowdown. The minimum best case min_bc is the extreme (minimum) value of stage delay for best case operating conditions, the worst case PVT variations, and crosstalk speed up. Also, min_wc stage delay takes into account worst case speed up crosstalk variation (or any other clock-dependent variation, also called fast variations, but does not include possible speed-up due to PVT variations, also called permanent or slow variations. Consequently, if there are no fast variations, then min_wc=max_wc. Likewise, max_bc stage delay takes into account worst case slow-down crosstalk variation (or any other clock-dependent or fast variation, but does not include possible slow-down due to PVT variations, that is, permanent or slow variations. If there are no fast variations, then max_bc=min_bc. Thus, the delays min_wc and max_bc are subject to additional de-rating during setup and hold checks to take into account PVT or slow variations. The common clock path P The launch clock path P The capture clock path P The data path P The overall launch clock path P The overall capture clock path P For convenience, the following symbols are used to simplify the notation: T_L is the delay of the launch clock at the CP input of the launch flip-flop T_C is the delay of the capture clock at the CP input of the capture flip-flop T_DP is the delay along the data path P T_clk is the clock period; Y is a delay de-rating factor, for example, 0.1, that accounts for PVT variations. Some path delays are increased by Y or decreased by Y depending on operating conditions and type of timing check. In various embodiments contemplated within the scope of the appended claims, a first delay de-rating factor Y1 may be used for setup timing checks and a second de-rating factor Y2 may be used for hold timing checks. In general, the values of Y1 and Y2 are the same; however, the values of Y1 and Y2 may differ to suit specific applications. YMi=1−Yi is a de-rating multiplier to reduce delay, for example, for minimum delays for a worst case setup timing check; and YPi=1+Yi is a de-rating multiplier to increase delay, for example, for maximum delays for a best case hold timing check. Typically, a parasitic extraction and timing checks are performed for two corners. A corner is a selected set of operating conditions for an integrated circuit design, for example, worst case and best case. Setup and hold timing checks are then performed for the two corners. Other corner pairs, for example, worst case and typical case, absolute minimum voltage and absolute maximum voltage, and so on, may be used to practice various embodiments within the scope of the appended claims. For worst case, when the maximum stage delay value is an extreme maximum value (including PVT variations) during a setup timing check, the minimum delay value is calculated without taking into account PVT variations. Consequently, the minimum delay value is a subject to YM de-rating (reduction). For best case, when the minimum stage delay value is an extreme minimum value (including PVT variations) during a hold timing check, the maximum delay value is calculated without taking into account PVT variations. Consequently, the maximum delay value is a subject to YP de-rating (increase). Clock re-convergence pessimism is a result of a difference in delay along the common path P A difference in delay between the capture path P Crosstalk delay is an induced change in the delay of a victim net that is dynamic in nature, depending on the timing windows of aggressor nets and the victim net. Due to crosstalk delay, each stage or path delay has a pair of delays (min, max). The difference between the maximum and minimum delays is called the delta delay. In a setup timing check, crosstalk slows down the launch path P Zero Cycle Checks are timing checks in which the same clock edge drives the launch flip-flop Non-zero Cycle Checks are timing checks in which different clock edges drive the launch flip-flop Due to the dynamic nature of delta delays, different criteria are used to remove CRPR from static timing analysis. In the SDF based signoff flow of Step In step In step In step In step Step For setup timing checks, the launch path delay T_LP, the capture path delay T_CP, and the data path delay T_DP may be calculated as described below for Step In step In step In step In step Step Step In step In step In step In step Step Step In step In step In step In step Step Step In step In step In step In step Step As may be appreciated from Although the method illustrated by the flowchart descriptions above is described and shown with reference to specific steps performed in a specific order, these steps may be combined, sub-divided, or reordered without departing from the scope of the claims. Unless specifically indicated herein, the order and grouping of steps is not a limitation of the present invention. The flow chart described above may also be implemented by instructions for being performed on a computer. The instructions may be embodied in a disk, a CD-ROM, and other computer readable media according to well known computer programming techniques. In another embodiment, a computer program product for estimating a total path delay in an integrated circuit design includes: a medium for embodying a computer program for input to a computer; and a computer program embodied in the medium for causing the computer to perform steps of: receiving as input minimum and maximum stage delays for two corners of an integrated circuit design; While the invention herein disclosed has been described by means of specific embodiments and applications thereof, numerous modifications and variations could be made thereto by those skilled in the art without departing from the scope of the invention set forth in the following claims. The specific embodiments and applications thereof described above are for illustrative purposes only and do not preclude modifications and variations that may be made within the scope of the following claims. Patent Citations
Non-Patent Citations
Referenced by
Classifications
Legal Events
Rotate |