Publication number | US7480881 B2 |

Publication type | Grant |

Application number | US 11/465,662 |

Publication date | Jan 20, 2009 |

Filing date | Aug 18, 2006 |

Priority date | Aug 18, 2006 |

Fee status | Paid |

Also published as | US20080046848 |

Publication number | 11465662, 465662, US 7480881 B2, US 7480881B2, US-B2-7480881, US7480881 B2, US7480881B2 |

Inventors | Alexander Tetelbaum, Ruben Molina, Subodh Bhike |

Original Assignee | Lsi Logic Corporation |

Export Citation | BiBTeX, EndNote, RefMan |

Patent Citations (2), Non-Patent Citations (1), Referenced by (13), Classifications (4), Legal Events (7) | |

External Links: USPTO, USPTO Assignment, Espacenet | |

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 Y**2**. 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**; and

generating as output the path slack calculated for the setup timing check and for the hold timing check.

2. The method of claim 1 further comprising calculating T_CP from the formula (1−Y**1**)*(min**1**_wc+min**3**_wc), where min**1**_wc is a minimum worst case delay for a common path segment, and min**3**_wc is a minimum worst case incremental capture path delay.

3. The method of claim 2 further comprising calculating T_LP from the formula (max**1**_wc+max**2**_wc), where max**1**_wc is a maximum worst case delay for a common path segment, and max**2**_wc is a maximum worst case incremental launch path delay.

4. The method of claim 3 further comprising setting T_DP equal to max**4**_wc, where max**4**_wc is a maximum worst case data path delay.

5. The method of claim 4 further comprising calculating path slack for the setup timing check from the formula (T_clk+T_CP−T_LP−T_DP).

6. The method of claim 1 further comprising calculating T_CP from the formula (min**1**_bc+min**3**_bc), where min**1**_bc is a minimum best case delay for a common path segment, and min**3**_bc is a minimum best case incremental capture path delay.

7. The method of claim 6 further comprising calculating T_LP from the formula (1+Y**1**)*(max**1**_bc+max**2**_bc), where max**1**_bc is a maximum best case delay for a common path segment, and max**2**_bc is a maximum best case incremental launch path delay.

8. The method of claim 7 further comprising calculating T_DP from the formula (1+Y**1**)*max**4**_bc, where max**4**_bc is a maximum best case data path delay.

9. The method of claim 8 further comprising calculating path slack for the setup timing check from the formula (T_clk+T_CP−T_LP−T_DP).

10. The method of claim 1 further comprising calculating T_CP from the formula (max**1**_wc+max**3**_wc), where max**1**_wc is a maximum worst case delay for a common path segment, and max**3**_wc is a maximum worst case incremental capture path delay.

11. The method of claim 10 further comprising calculating T_LP from the formula (max**1**_wc+(1−Y**2**)* min**2**_wc), where max1_wc is a maximum worst case delay for a common path segment, and min**2**_wc is a minimum worst case incremental launch path delay.

12. The method of claim 11 further comprising calculating T_DP from the formula (1−Y**1**)*min**4**_wc, where min**4**_wc is a minimum worst case data path delay.

13. The method of claim 12 further comprising calculating path slack for the hold timing check from the formula (T_LP+T_DP−T_CP).

14. The method of claim 1 further comprising calculating T_CP from the formula (min**1**_bc+(1+Y**1**)* max**3**_bc), where min**1**_wc is a minimum worst case delay for a common path segment, and max**3**_bc is a maximum best case incremental capture path delay.

15. The method of claim 14 further comprising calculating T_LP from the formula (min**1**_bc+min**2**_bc), where min**1**_bc is a minimum best case delay for a common path segment, and min**2**_bc is a minimum best case incremental launch path delay.

16. The method of claim 15 further comprising setting T_DP equal to min**4**_bc, where min**4**_bc is a minimum best case data path delay.

17. The method of claim 16 further comprising calculating path slack for the hold timing check from the formula (T_LP+T_DP−T_CP).

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**; and

generating as output the path slack calculated for the setup timing check and for the hold timing check.

19. The computer program product of claim 18 further comprising calculating T_CP from the formula (1−Y**1**)*(min**1**_wc+min**3**_wc), where min**1**_wc is a minimum worst case delay for a common path segment, and min**3**_wc is a minimum worst case incremental capture path delay.

20. The computer program product of claim 19 comprising calculating T_LP from the formula (max**1**_wc+max**2**_wc), where max**1**_wc is a maximum worst case delay for a common path segment, and max**2**_wc is a maximum worst case incremental launch path delay.

21. The computer program product of claim 20 further comprising setting T_DP equal to max**4**_wc, where max**4**_wc is a maximum worst case data path delay.

22. The computer program product of claim 21 further comprising calculating path slack for the setup timing check from the formula (T_clk+T_CP−T_LP−T_DP).

23. The computer program product of claim 18 further comprising calculating T_CP from the formula (min**1**_bc+min**3**_bc), where min**1**_bc is a minimum best case delay for a common path segment, and min**3**_bc is a minimum best case incremental capture path delay.

24. The computer program product of claim 23 further comprising calculating T_LP from the formula (1+Y**1**)*(max**1**_bc+max**2**_bc), where max**1**_bc is a maximum best case delay for a common path segment, and max**2**_bc is a maximum best case incremental launch path delay.

25. The computer program product of claim 24 further comprising calculating T_DP from the formula (1+Y**1**)*max**4**_bc, where max**4**_bc is a maximum best case data path delay.

26. The computer program product of claim 25 further comprising calculating path slack for the setup timing check from the formula (T_clk+T_CP−T_LP−T_DP).

27. The computer program product of claim 18 further comprising calculating T_CP from the formula (max**1**_wc+max**3**_wc), where max**1**_wc is a maximum worst case delay for a common path segment, and max**3**_wc is a maximum worst case incremental capture path delay.

28. The computer program product of claim 27 further comprising calculating T_LP from the formula (max**1**_wc+(1−Y**2**)*min**2**_wc), where max**1**_wc is a maximum worst case delay for a common path segment, and min**2**_wc is a minimum worst case incremental launch path delay.

29. The computer program product of claim 27 comprising calculating T_DP from the formula (1−Y**2**)* min**4**_wc, where min**4**_wc is a minimum worst case data path delay.

30. The computer program product of claim 29 further comprising calculating path slack for the hold timing check from the formula (T_LP+T_DP−T_CP).

31. The computer program product of claim 18 further comprising calculating T_CP from the formula (min**1**_bc+(1+Y**2**)*max**3**_bc), where min**1**_wc is a minimum worst case delay for a common path segment, and max**3**_bc is a maximum best case incremental capture path delay.

32. The computer program product of claim 31 further comprising calculating T_LP from the formula (min**1**_bc+min**2**_bc), where min**1**_bc is a minimum best case delay for a common path segment, and min**2**_bc is a minimum best case incremental launch path delay.

33. The computer program product of claim 32 further comprising setting T_DP equal to min**4**_bc, where min**4**_bc is a minimum best case data path delay.

34. The computer program product of claim 33 further comprising calculating path slack for the hold timing check from the formula (T_LP+T_DP−T_CP).

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.

**100** for estimating setup and hold delays for a static analysis timing tool according to the prior art.

Step **102** is the entry point of the flow chart **100**.

In step **104**, a parasitic extraction is performed to determine cell delays and interconnect delays for each cell in the integrated circuit design.

In step **106**, the cell delay and the corresponding interconnect delay are summed to calculate a maximum and a minimum stage delay for each cell in the integrated circuit design. The stage delays are typically recorded in a standard delay format (SDF) file that is compatible with a wide variety of commercially available static timing analysis tools.

In step **108**, the delay type is selected for calculating path slack for setup time or hold time. If setup timing is selected, the method continues from step **110**. Otherwise, the method continues from step **114**.

In step **110**, the maximum stage delay value for each stage is used to estimate a maximum extreme (worst case) setup timing delay.

In step **112**, the minimum stage delay value for each stage is multiplied by (1−delay de-rating factor) to estimate a minimum (best case) setup timing delay to allow for PVT variations. The delay de-rating factor is a number less than one, for example, 0.1. The method continues from step **118**.

In step **114**, the minimum stage delay value for each stage in the clocked net is used to estimate a minimum extreme (worst case) hold timing delay.

In step **116**, the maximum stage delay value for each stage is multiplied by (1+delay de-rating factor) to estimate a maximum (best case) hold timing delay to allow for PVT variations.

In step **118**, an optional clock re-convergence pessimism reduction may be applied. When the option is enabled, which is typically the default, the method continues from step **120**. Otherwise, the method continues from step **122**.

In step **120**, the portion of the delay that accumulates in the portion of the net clock path that is shared by the launch clock and the capture clock is removed from the maximum (worst case) setup delay and the minimum (best case) setup delay.

Step **122** is the exit point of the flow chart **100**.

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

**200** for which setup and hold timing path slack is to be calculated by a static timing analysis tool. Shown in **1** **202**, a launch clock path P**2** **204**, a launch flip-flop **206**, a capture clock path P**3** **208**, a capture flip-flop **210**, and a data path P**4** **212**.

In **202** and the launch clock path **204** to the launch flip-flop **206**. Concurrently, the net clock signal CLK is propagated over the common clock path **202** and the capture clock path **208** to the capture flip-flop **206**.

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**1** **202** in **1** **202** is equal to the sum of the stage delays. For worst case, the delay pair is (min1_wc, max1_wc) and for best case, the delay pair is (min1_bc, max1_bc).

The launch clock path P**2** **204** has N2 stages (clock buffers and clock nets) and is connected to the clock pin CP of the data launch flip-flop **206**. The total delay (min2, max2) along the launch clock path P**2** **204** is equal to the sum of the stage delays. For worst case, the delay pair is (min2_wc, max2_wc). For best case, the delay pair is (min2_bc, max2_bc).

The capture clock path P**3** **206** has N3 stages (clock buffers and clock nets) and is connected to the clock pin CP of the data capture flip-flop **210**. The total delay (min3, max3) along the capture clock path P**3** **206** is equal to the sum of the stage delays. For worst case, the delay pair is (min3_wc, max3_wc). For best case, the delay pair is (min3_bc, max3_bc).

The data path P**4** **212** has N4 stages and starts at clock pin CP of the data launch flip-flop **206** and ends at data input D of the data capture flip-flop **210**. The data path P**4** **212** has a delay T_DP={min4 OR max4}. The choice of the minimum or the maximum value of the delay T_DP depends on the type of timing check, for example, setup timing check or hold timing check.

The overall launch clock path P**2**′ is equal to the sum of the common data path P**1** and the incremental launch path P**2**. The launch path P**2**′ has a delay T_L={min1 OR max1}+{min2 OR max2}. The choice of the minimum or the maximum value of the delay T_L depends on type of timing check.

The overall capture clock path P**3**′ is equal to the sum of paths P**1** and the incremental capture path P**3**. The capture path P**3**′ has a delay T_C={min1 OR max1}+{min3 OR max3}. The choice of the minimum or the maximum value of the delay T_C depends on type of timing check.

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 **206** from the CLK signal input along the path P**2**′;

T_C is the delay of the capture clock at the CP input of the capture flip-flop **210** from the CLK signal input along the path P**3**′;

T_DP is the delay along the data path P**4** **212**;

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**1** of the launch path P**2**′ and the capture path P**3**′. Because the same path has the same delay for both the launch path P**2**′ and the capture path P**3**′, clock re-convergence pessimism introduces an error into static timing analysis and is therefore an undesired effect. Accordingly, clock re-convergence pessimism is preferably removed during static timing analysis for better accuracy.

A difference in delay between the capture path P**3**′ and the launch path P**2**′ may occur due to path-based delay de-rating, also called on-chip-variation. Other well-known causes of a difference in delay between the capture path P**3**′ and the launch path P**2**′ include min-max slew propagation, re-convergent clock paths, and the dynamic nature of crosstalk delays.

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**2**′ and the data path P**4** and speeds up the capture path P**3**′. In a hold timing check, crosstalk speeds up the launch path P**2**′ and the data path P**4** and slows down the capture path P**3**′. Excessive pessimism may be introduced in the static timing analysis due to the difference in crosstalk delay applied to the launch path P**2**′ and the capture path P**3**′.

Zero Cycle Checks are timing checks in which the same clock edge drives the launch flip-flop **206** and the capture flip-flop **210** in **1** will identically impact the clock arrival time at the launch flip-flop **206** and the capture flip-flop **210**.

Non-zero Cycle Checks are timing checks in which different clock edges drive the launch flip-flop **206** and the capture flip-flop **210**, for example, during a setup timing check. Specifically, for a setup timing check the capture flip-flop **210** (or register) is triggered by a first clock edge, and the launch flip-flop **206** (or register) is triggered by the next clock edge. Consequently, the dynamic crosstalk delay in the common path P**1** may slow down the first clock edge and speed up the next clock edge. Conversely, the dynamic crosstalk delay in the common path P**1** may speed up the first clock edge and slow down the next clock edge. Accordingly, clock re-convergence pessimism reduction is preferably not applied to setup timing checks.

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

**300** of a method of static timing analysis that correctly implements delay de-rating and clock re-convergence pessimism reduction (CRPR).

Step **302** is the entry point of the flow chart **300**.

In step **304**, minimum and maximum stage delays are received as input for a clocked net of an integrated circuit design, for example, from a standard delay format (SDF) file.

In step **306**, path slack is calculated for a setup timing check from the minimum and maximum stage delays as a function of a launch path delay T_LP, a capture path delay T_CP, a data path delay T_DP, and a first delay de-rating factor Y1.

In step **308**, path slack is calculated for a hold timing check from the minimum and maximum stage delays as a function of a net clock cycle interval T_clk, a launch path delay T_LP, a capture path delay T_CP, a data path delay T_DP, and a second delay de-rating factor Y2.

In step **310**, the path slack calculated for the setup timing check and for the hold timing check is generated as output.

Step **312** is the exit point of the flow chart **300**.

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

**400** of a method for calculating path slack for a worst case setup timing check for the flow chart of

Step **402** is the entry point of the flow chart **400**.

In step **404**, T_CP is calculated from the formula YM1*(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.

In step **406**, T_LP is calculated from the formula (max1_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.

In step **408**, T_DP is set equal to max4_wc, where max4_wc is a maximum worst case data path delay.

In step **410**, the path slack for the setup timing check is calculated from the formula (T_clk+T_CP−T_LP−T_DP).

Step **412** is the exit point of the flow chart **400**.

**500** of a method for calculating path slack for a best case setup timing check for the flow chart of

Step **502** is the entry point of the flow chart **500**.

In step **504**, T_CP is calculated from the formula (min1_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.

In step **506**, T_LP is calculated from the formula YP1*(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.

In step **508**, T_DP is calculated from the formula (YP1*max4_bc), where max4_bc is a maximum best case data path delay.

In step **510**, the path slack for the setup timing check is calculated from the formula (T_clk+T_CP−T_LP−T_DP).

Step **512** is the exit point of the flow chart **500**.

**600** of a method for calculating path slack for a worst case hold timing check for the flow chart of

Step **602** is the entry point of the flow chart **600**.

In step **604**, T_CP is calculated from the formula (max1_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.

In step **606**, T_LP is calculated from the formula (max1_wc+YM2*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.

In step **608**, T_DP is calculated from the formula (YM2*min4_wc), where min4_wc is a minimum worst case data path delay.

In step **610**, the path slack for the hold timing check is calculated from the formula (T_LP+T_DP−T_CP).

Step **612** is the exit point of the flow chart **600**.

**700** of a method for calculating path slack for a best case hold timing check for the flow chart of

Step **702** is the entry point of the flow chart **700**.

In step **704**, T_CP is calculated from the formula (min1_bc+YP2*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.

In step **706**, T_LP is calculated from the formula (min1_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.

In step **708**, T_DP is set equal to min4_bc, where min4_bc is a minimum best case data path delay.

In step **710**, the path slack for the hold timing check is calculated from the formula (T_LP+T_DP−T_CP).

Step **712** is the exit point of the flow chart **700**.

**800** of an exemplary set of path delays for worst case and best case corners for the clocked net of **800** are used to compare the path slack calculated according to the method of

**900** comparing values of worst case setup timing path slack calculated according to method of

**1000** comparing values of best case setup timing path slack calculated according to method of

**1100** comparing values of worst case hold timing path slack calculated according to method of

**1200** comparing values of best case hold timing path slack calculated according to method of

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

Cited Patent | Filing date | Publication date | Applicant | Title |
---|---|---|---|---|

US7257789 * | Dec 20, 2004 | Aug 14, 2007 | Fujitsu Limited | LSI design method |

US7406669 * | Dec 6, 2005 | Jul 29, 2008 | Lsi Corporation | Timing constraints methodology for enabling clock reconvergence pessimism removal in extracted timing models |

Non-Patent Citations

Reference | ||
---|---|---|

1 | * | M. Weber, "My Head Hurts, My Timing Stinks, and I Don't Love On-Chip Variation," Snug Boston, pp. 1-21, 2002. |

Referenced by

Citing Patent | Filing date | Publication date | Applicant | Title |
---|---|---|---|---|

US8051399 * | Nov 1, 2011 | Texas Instruments Incorporated | IC design flow incorporating optimal assumptions of power supply voltage drops at cells when performing timing analysis | |

US8171440 * | May 1, 2012 | Nec Corporation | Timing analyzing apparatus, timing analyzing method and program thereof | |

US8347250 * | Dec 22, 2010 | Jan 1, 2013 | Advanced Micro Devices, Inc. | Method and apparatus for addressing and improving holds in logic networks |

US8365115 * | Dec 3, 2009 | Jan 29, 2013 | Taiwan Semiconductor Manufacturing Company, Ltd. | System and method for performance modeling of integrated circuits |

US8407640 * | Mar 26, 2013 | Synopsys, Inc. | Sensitivity-based complex statistical modeling for random on-chip variation | |

US8806413 * | Sep 17, 2013 | Aug 12, 2014 | Texas Instruments Incorporated | Gradient AOCV methodology enabling graph-based timing closure with AOCV timing models |

US8843864 * | Aug 16, 2013 | Sep 23, 2014 | Synopsys, Inc. | Statistical corner evaluation for complex on-chip variation model |

US9189215 * | Aug 26, 2014 | Nov 17, 2015 | National Instruments Corporation | Convergence analysis of program variables |

US20090125858 * | Nov 5, 2008 | May 14, 2009 | Texas Instruments Incorporated | IC Design Flow Incorporating Optimal Assumptions of Power Supply Voltage Drops at Cells when Performing Timing Analysis |

US20100050141 * | Aug 6, 2009 | Feb 25, 2010 | Koji Kanno | Timing analyzing apparatus, timing analyzing method and program thereof |

US20100229137 * | Dec 3, 2009 | Sep 9, 2010 | Taiwan Semiconductor Manufacturing Company, Ltd. | System and Method for Performance Modeling of Integrated Circuits |

US20120072880 * | Aug 23, 2011 | Mar 22, 2012 | Jiayong Le | Sensitivity-based complex statistical modeling for random on-chip variation |

US20120167030 * | Jun 28, 2012 | Advanced Micro Devices, Inc. | Method and apparatus for addressing and improving holds in logic networks |

Classifications

U.S. Classification | 716/113 |

International Classification | G06F17/50 |

Cooperative Classification | G06F17/5031 |

European Classification | G06F17/50C3T |

Legal Events

Date | Code | Event | Description |
---|---|---|---|

Aug 18, 2006 | AS | Assignment | Owner name: LSI LOGIC CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TETELBAUM, ALEXANDER;MOLINA, RUBEN;BHIKE, SUBODH;REEL/FRAME:018142/0162;SIGNING DATES FROM 20060814 TO 20060815 |

Jun 20, 2012 | FPAY | Fee payment | Year of fee payment: 4 |

May 8, 2014 | AS | Assignment | Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AG Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LSI CORPORATION;AGERE SYSTEMS LLC;REEL/FRAME:032856/0031 Effective date: 20140506 |

Jun 6, 2014 | AS | Assignment | Owner name: LSI CORPORATION, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:LSI LOGIC CORPORATION;REEL/FRAME:033102/0270 Effective date: 20070406 |

Apr 3, 2015 | AS | Assignment | Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LSI CORPORATION;REEL/FRAME:035390/0388 Effective date: 20140814 |

Feb 2, 2016 | AS | Assignment | Owner name: AGERE SYSTEMS LLC, PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039 Effective date: 20160201 Owner name: LSI CORPORATION, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039 Effective date: 20160201 |

Feb 11, 2016 | AS | Assignment | Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001 Effective date: 20160201 |

Rotate