IP Library Granted Patent US 7,861,199
Granted Patent B2
US 7,861,199 · App. 11/870,672 · Granted Dec 28, 2010

Method and apparatus for incrementally computing criticality and yield gradient

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,861,199
App. No.
11/870,672
Granted
Dec 28, 2010
Kind
B2
Abstract

In one embodiment, the invention is a method and apparatus for incrementally computing criticality and yield gradient. One embodiment of a method for computing a diagnostic metric for a circuit includes modeling the circuit as a timing graph, determining a chip slack for the circuit, determining a slack of at least one diagnostic entity, and computing a diagnostic metric relating to the diagnostic entity(ies) from the chip slack and the slack of the diagnostic entity(ies).

Claims (47)

1. A method for computing a diagnostic metric for a circuit, the method comprising:

modeling the circuit as a timing graph;

determining a chip slack for the circuit;

determining a slack of at least one of a plurality of diagnostic entities in the circuit; and

computing a diagnostic metric relating to the at least one of the plurality of diagnostic entities directly from the chip slack and the slack of the at least one of the plurality of diagnostic entities,

wherein at least one of: the modeling, the determining the chip slack, the determining the slack of the at least one of the plurality of diagnostic entities, and the computing is performed using a processor.

2. The method of claim 1 , wherein the diagnostic metric is criticality.

3. The method of claim 2 , wherein the criticality comprises a node criticality.

4. The method of claim 2 , wherein the criticality comprises an edge criticality.

5. The method of claim 2 , wherein the criticality comprises a path criticality.

6. The method of claim 2 , wherein the computing comprises:

calculating a probability that the slack of the at least one of the plurality of diagnostic entities is greater than or equal to the chip slack.

7. The method of claim 2 , wherein the computing comprises:

calculating a complement slack for the at least one of the plurality of diagnostic entities; and

calculating a probability that the slack of the at least one of the plurality of diagnostic entities is greater than the complement slack of the at least one of the plurality of diagnostic entities.

8. The method of claim 1 , wherein the computing is performed in substantially constant time.

9. The method of claim 1 , wherein the computing comprises:

differentiating the chip slack with respect to a slack of the at least one of the plurality of diagnostic entities to obtain a yield gradient of the at least one of the plurality of diagnostic entities.

10. The method of claim 1 , wherein the chip slack and the slack of the at least one of the plurality of diagnostic entities is obtained by incremental timing.

11. The method of claim 1 , wherein the computing is performed in accordance with statistical static timing analysis.

12. The method of claim 11 , wherein the statistical static timing analysis is used to compute at least one of: arrival times and required arrival times for the plurality of diagnostic entities, as represented in the timing graph.

13. A non-transient computer readable storage medium containing an executable program for computing a diagnostic metric for a circuit, where the program performs steps of:

modeling the circuit as a timing graph;

determining a chip slack for the circuit;

determining a slack of at least one of a plurality of diagnostic entities in the circuit; and

computing a diagnostic metric relating to the at least one of the plurality of diagnostic entities directly from the chip slack and the slack of the at least one of the plurality of diagnostic entities.

14. The non-transient computer readable storage medium of claim 13 , wherein the diagnostic metric is criticality.

15. The non-transient computer readable storage medium of claim 14 , wherein the computing comprises:

calculating a probability that the slack of the at least one of the plurality of diagnostic entities is greater than or equal to the chip slack.

16. The non-transient computer readable storage medium of claim 14 , wherein the computing comprises:

calculating a complement slack for the at least one of the plurality of diagnostic entities; and

calculating a probability that the slack of the at least one of the plurality of diagnostic entities is greater than the complement slack of the at least one of the plurality of diagnostic entities.

17. The non-transient computer readable storage medium of claim 13 , wherein the computing comprises:

differentiating the chip slack with respect to a slack of the at least one of the plurality of diagnostic entities to obtain a yield gradient of the at least one of the plurality of diagnostic entities.

18. The non-transient computer readable storage medium of claim 13 , wherein the computing is performed in accordance with statistical static timing analysis.

19. Apparatus for computing a diagnostic metric for a circuit comprising a plurality of diagnostic entities, the apparatus comprising:

means for modeling the circuit as a timing graph;

means for determining a chip slack for the circuit;

means for determining a slack of at least one of a plurality of diagnostic entities in the circuit; and

means for computing a diagnostic metric relating to the at least one of the plurality of diagnostic entities directly from the chip slack and the slack of the at least one of the plurality of diagnostic entities.

20. A method for computing a diagnostic metric for a diagnostic entity in a circuit, where the diagnostic metric is based on one or more values for statistical timing results relating to a plurality of diagnostic entities in the circuit, the method comprising:

receiving a diagnostic query after one or more changes are made to the circuit, the diagnostic query relating to the diagnostic entity, where the diagnostic entity has been changed since a last time the diagnostic metric was computed; and

incrementally re-computing the diagnostic metric using one or more updated statistical timing result values obtained by updating only those of the one or more values that related to those of the plurality of diagnostic entities that have changed since the last time the diagnostic metric was computed,

wherein at least one of: the receiving and the computing is performed using a processor.

21. A non-transient computer readable storage medium containing an executable program for computing a diagnostic metric for a diagnostic entity in a circuit, where the diagnostic metric is based on one or more values for statistical timing results relating to a plurality of diagnostic entities in the circuit, where the program performs steps of:

receiving a diagnostic query after one or more changes are made to the circuit, the diagnostic query relating to the diagnostic entity, where the diagnostic entity has been changed since a last time the diagnostic metric was computed; and

incrementally re-computing the diagnostic metric using one or more updated statistical timing result values obtained by updating only those of the one or more values that related to those of the plurality of diagnostic entities that have changed since the last time the diagnostic metric was computed.

Assignments (3)
MERGER AND CHANGE OF NAME Recorded Jun 16, 2021
From: MENTOR GRAPHICS CORPORATION; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 056597/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2013
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: MENTOR GRAPHICS CORPORATION
Reel/Frame 029733/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2007
From: VISWESWARIAH, CHANDRAMOULI; XIONG, JINJUN; ZOLOTOV, VLADIMIR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020070/0772 →