IP Library Granted Patent US 6,910,197
Granted Patent B2
US 6,910,197 · App. 10/600,740 · Granted Jun 21, 2005

System for optimizing buffers in integrated circuit design timing fixes

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 6,910,197
App. No.
10/600,740
Granted
Jun 21, 2005
Kind
B2
Abstract

A method for optimizing buffers in an integrated circuit design. The method includes identifying paths and nodes within the integrated circuit design, determining node overlap within the integrated circuit design, calculating possible solutions for addressing timing violations within the integrated circuit design, choosing a solution for addressing timing violations, inserting buffers at particular nodes of the integrated circuit design, and repeating the calculated possible solutions wherein choosing a solution and inserting buffers at particular nodes to address timing violations are within the integrated circuit design.

Claims (78)

1. A method for optimizing buffers in an integrated circuit design comprising:

identifying paths and nodes within the integrated circuit design;

determining node overlap within the integrated circuit design;

calculating possible solutions for addressing timing violations within the integrated circuit design;

choosing a solution for addressing timing violations, the choosing a solution being based upon fixing a plurality of timing violations based upon various input criteria;

inserting buffers at particular nodes of the integrated circuit design; and,

repeating the calculating possible solutions, the choosing a solution and the inserting buffers at particular nodes to address timing violations within the integrated circuit design; and wherein

the various input criteria include a median approach, the median approach including calculating a nominal number of fixes for addressing timing violations from the calculating possible solutions and then selecting an approach for addressing timing violations which fixes more than the nominal number of fixes.

2. The method for optimizing buffers in an integrated circuit design of claim 1 wherein

the repeating continues until a previous maximum number of violations have been addressed.

3. The method for optimizing buffers in an integrated circuit design of claim 2 wherein

after the repeating, there are orphan timing violations remaining to be addressed; and, further comprising

inserting buffers at particular locations to address the orphan timing violations.

4. The method for optimizing buffers in an integrated circuit design of claim 1 further comprising:

identifying buffers from a list of potential buffers available to insert into the integrated circuit design; and

choosing a subset of the buffers from the list as buffers for inserting at the particular nodes of the integrated circuit.

5. The method for optimizing buffers in an integrated circuit design of claim 4 wherein:

factors used in choosing a subset of the buffers from the list as buffers include a first order delay characteristic of the buffer, a maximum time slack characteristic of the buffer, and a drive strength characteristic of the buffer.

6. A method for optimizing buffers in an integrated circuit design comprising:

identifying paths and nodes within the integrated circuit design;

determining node overlap within the integrated circuit design;

calculating possible solutions for addressing timing violations within the integrated circuit design;

choosing a solution for addressing timing violations, the choosing a solution being based upon fixing a plurality of timing violations based upon various input criteria;

inserting buffers at particular nodes of the integrated circuit design; and,

repeating the calculating possible solutions, the choosing a solution and the inserting buffers at particular nodes to address timing violations within the integrated circuit design; and wherein

the various input criteria include an acquisitive approach, the acquisitive approach including determining which solution from the calculating possible solutions fixes a greatest number of timing violations and then selecting an approach for addressing timing violations which fixes the greatest number of timing violations.

7. An apparatus for optimizing buffers in an integrated circuit design comprising:

means for identifying paths and nodes within the integrated circuit design;

means for determining node overlap within the integrated circuit design;

means for calculating possible solutions for addressing timing violations within the integrated circuit design;

means for choosing a solution for addressing timing violations, the choosing a solution being based upon fixing a plurality of timing violations based upon various input criteria;

means for inserting buffers at particular nodes of the integrated circuit design; and,

means for repeating the calculating possible solutions, the choosing a solution and the inserting buffers at particular nodes to address timing violations within the integrated circuit design; and wherein

the various input criteria include a median approach, the median approach including calculating a nominal number of fixes for addressing timing violations from the calculating possible solutions and then selecting an approach for addressing timing violations which fixes more than the nominal number of fixes.

8. The apparatus for optimizing buffers in an integrated circuit design of claim 7 wherein

the repeating continues until a previous maximum number of violations have been addressed.

9. The apparatus for optimizing buffers in an integrated circuit design of claim 8 wherein

after the repeating, there are orphan timing violations remaining to be addressed; and, further comprising

means for inserting buffers at particular locations to address the orphan timing violations.

10. The apparatus for optimizing buffers in an integrated circuit design of claim 7 further comprising:

means for identifying buffers from a list of potential buffers available to insert into the integrated circuit design; and

means for choosing a subset of the buffers from the list as buffers for inserting at the particular nodes of the integrated circuit.

11. The apparatus for optimizing buffers in an integrated circuit design of claim 10 wherein:

factors used in choosing a subset of the buffers from the list as buffers include a first order delay characteristic of the buffer, a maximum time slack characteristic of the buffer, and a drive strength characteristic of the buffer.

12. An apparatus for optimizing buffers in an integrated circuit design comprising:

means for identifying paths and nodes within the integrated circuit design;

means for determining node overlap within the integrated circuit design;

means for calculating possible solutions for addressing timing violations within the integrated circuit design;

means for choosing a solution for addressing timing violations, the choosing a solution being based upon fixing a plurality of timing violations based upon various input criteria;

means for inserting buffers at particular nodes of the integrated circuit design; and,

means for repeating the calculating possible solutions, the choosing a solution and the inserting buffers at particular nodes to address timing violations within the integrated circuit design; and wherein

the various input criteria include an acquisitive approach, the acquisitive approach including determining which solution from the calculating possible solutions fixes a greatest number of timing violations and then selecting an approach for addressing timing violations which fixes the greatest number of timing violations.

13. A system for optimizing buffers in an integrated circuit design comprising:

an identifying module, the identifying module identifying paths and nodes within the integrated circuit design;

a determining module, the determining module determining node overlap within the integrated circuit design;

a calculating module, the calculating module calculating possible solutions for addressing timing violations within the integrated circuit design;

a choosing module, the choosing module choosing a solution for addressing timing violations, the choosing a solution being based upon fixing a plurality of timing violations based upon various input criteria;

an inserting module, the inserting module inserting buffers at particular nodes of the integrated circuit design; and,

a repeating module, the repeating module repeating the calculating possible solutions, the choosing a solution and the inserting buffers at particular nodes to address timing violations within the integrated circuit design; and wherein

the various input criteria include a median approach, the median approach including calculating a nominal number of fixes from the calculating possible solutions for addressing timing violations and then selecting an approach for addressing timing violations which fixes more than the nominal number of fixes.

14. The system for optimizing buffers in an integrated circuit design of claim 13 wherein

the repeating continues until a previous maximum number of violations have been addressed.

15. The system for optimizing buffers in an integrated circuit design of claim 14 wherein

after the repeating, there are orphan timing violations remaining to be addressed; and, further comprising

an orphan inserting module, the orphan inserting module inserting buffers at particular locations to address the orphan timing violations.

16. The system for optimizing buffers in an integrated circuit design of claim 7 further comprising:

an identifying module, the identifying module identifying buffers from a list of potential buffers available to insert into the integrated circuit design; and

a subset choosing module, the subset choosing module choosing a subset of the buffers from the list as buffers for inserting at the particular nodes of the integrated circuit.

17. The system for optimizing buffers in an integrated circuit design of claim 16 wherein:

factors used in choosing a subset of the buffers from the list as buffers include a first order delay characteristic of the buffer, a maximum time slack characteristic of the buffer, and a drive strength characteristic of the buffer.

18. A system for optimizing buffers in an integrated circuit design comprising:

an identifying module, the identifying module identifying paths and nodes within the integrated circuit design;

a determining module, the determining module determining node overlap within the integrated circuit design;

a calculating module, the calculating module calculating possible solutions for addressing timing violations within the integrated circuit design;

a choosing module, the choosing module choosing a solution for addressing timing violations, the choosing a solution being based upon fixing a plurality of timing violations based upon various input criteria;

an inserting module, the inserting module inserting buffers at particular nodes of the integrated circuit design; and,

a repeating module, the repeating module repeating the calculating possible solutions, the choosing a solution and the inserting buffers at particular nodes to address timing violations within the integrated circuit design; and wherein,

the various input criteria include an acquisitive approach, the acquisitive approach including determining which solution from the calculating possible solutions fixes a greatest number of timing violations and then selecting an approach for addressing timing violations which fixes the greatest number of timing violations.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 12, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037278/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2003
From: NAIR, UMESH
To: SUN MICROSYSTEMS, INC.
Reel/Frame 014224/0393 →