IP Library Granted Patent US 7,913,213
Granted Patent B2
US 7,913,213 · App. 12/100,505 · Granted Mar 22, 2011

Tool and method for automatically identifying minimum timing violation corrections in an integrated circuit design

Assignee: Oracle America, Inc.
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,913,213
App. No.
12/100,505
Granted
Mar 22, 2011
Kind
B2
Abstract

A design tool for automatically identifying minimum timing violation corrections in an integrated circuit (IC) design includes program instructions executable by a processor to identify locations to add a delay along each circuit path having a minimum timing violation. The tool may also sequentially try each of a plurality of circuit changes that add the delay and to evaluate a result of each circuit change until an acceptable percentage of the minimum timing violation has been corrected. In response to each circuit change, the design tool may update an internal node report, which includes a listing of circuit nodes and a maximum timing slack available at each node, by reducing a maximum slack value of each affected node by an amount of the added delay. The design tool may generate an output report that includes a listing of the circuit changes which correct the minimum timing violations.

Claims (41)

1. A method for automatically identifying corrections for circuit paths of an integrated circuit (IC) that include minimum timing violations, the method comprising:

a design tool creating an internal node report corresponding to a received node report for the IC that includes a listing of circuit nodes and a maximum timing slack available at each of the nodes;

for each circuit path having a minimum timing violation:

the design tool identifying locations along the circuit path to change a delay;

the design tool sequentially trying at particular locations a plurality of circuit delay changes including: selected circuit delay changes that add delay including swapping a datapath gate with a gate having a longer delay, and selected circuit delay changes that reduce a clock delay including reducing a clock delay of a destination clock-delayed flip-flop, reducing a delay of an L0header component in the clock path of a datapath destination flip-flop; and removing the L0header component in the clock path of the datapath destination flip-flop in response to the reducing the delay not correcting the minimum timing violation, and evaluating a result of each circuit change until an acceptable percentage of the minimum timing violation has been corrected;

in response to each circuit change, the design tool updating the internal node report by reducing a maximum slack value of each affected node by an amount of the added delay; and

the design tool generating an output report including a listing of the circuit changes which correct the minimum timing violations.

2. The method as recited in claim 1 , further comprising the design tool receiving the timing report for the IC from a timing analyzer tool, wherein the timing report comprises a listing of circuit paths and corresponding path delay values, wherein circuit paths having the worst minimum timing violations are listed before other circuit paths.

3. The method as recited in claim 1 , further comprising the design tool receiving the node report for the IC from a timing analyzer tool.

4. The method as recited in claim 1 , further comprising the design tool generating the output report in a format executable by another design tool to automatically make netlist changes to correct the minimum timing violations.

5. The method as recited in claim 1 , wherein the plurality of circuit changes comprises swapping a datapath source flip-flop with a flip-flop having a longer clock-to-q delay.

6. The method as recited in claim 1 , wherein the plurality of circuit changes comprises inserting an additional gate into the circuit path.

7. The method as recited in claim 1 , wherein the plurality of circuit changes comprises:

swapping the datapath destination clock-delayed flip-flop with a standard flip-flop having a shorter clock delay in response to the reducing the delay not correcting the minimum timing violation.

8. The method as recited in claim 1 , further comprising the design tool assigning a score to each of the plurality of circuit changes based upon predetermined criteria and selecting one or more of the plurality of circuit changes based upon the score.

9. The method as recited in claim 8 , wherein the predetermined criteria includes: a change in area resulting from the circuit change, a change in power consumption resulting from the circuit change, and a percentage of minimum timing violations corrected resulting from the circuit change.

10. An automated integrated circuit design tool for identifying minimum timing violation corrections in circuit paths of an integrated circuit (IC), the tool comprising program instructions storable on a non-transitory computer readable storage device, and executable by a processor to:

create an internal node report corresponding to a received node report for the IC that includes a listing of circuit nodes and a maximum timing slack available at each of the nodes;

for each circuit path having a minimum timing violation:

identify locations along the circuit path to change a delay;

sequentially try at particular locations a plurality of circuit delay changes including: selected circuit delay changes that add delay including swapping a datapath gate with a gate having a longer delay, and selected circuit delay changes that reduce a clock delay including reducing a clock delay of a destination clock-delayed flip-flop reducing a delay of an L0header component in the clock path of a datapath destination flip-flop; and removing the L0header component in the clock path of the datapath destination flip-flop in response to the reducing the delay not correcting the minimum timing violation, and evaluate a result of each circuit change until an acceptable percentage of the minimum timing violation has been corrected;

in response to each circuit change, update the internal node report by reducing a maximum slack value of each affected node by an amount of the added delay; and

generate an output report including a listing of the circuit changes which correct the minimum timing violations.

11. The design tool as recited in claim 10 , wherein the program instructions when executed by the processor are further configured to generate the output report in a format executable by another design tool to automatically make netlist changes to correct the minimum timing violations.

12. The design tool as recited in claim 10 , wherein the plurality of circuit changes comprises:

swapping a datapath source flip-flop with a flip-flop having a longer clock-to-q delay;

swapping the datapath gate with a gate having a longer delay in response to the swapping of the source flip-flop not correcting the minimum timing violation.

13. The design tool as recited in claim 10 , wherein the plurality of circuit changes comprises inserting an additional gate into the circuit path.

14. The design tool as recited in claim 10 , wherein the plurality of circuit changes comprises:

swapping the datapath destination clock-delayed flip-flop with a standard flip-flop having a shorter clock delay in response to the reducing the delay not correcting the minimum timing violation.

15. The design tool as recited in claim 10 , wherein the program instructions when executed by the processor are further configured to assign a score to each of the plurality of circuit changes based upon predetermined criteria and to select one or more of the plurality of circuit changes based upon the score.

16. The design tool as recited in claim 15 , wherein the predetermined criteria includes: a change in area resulting from the circuit change, a change in power consumption resulting from the circuit change, and a percentage of minimum timing violations corrected resulting from the circuit change.

17. A system comprising:

a memory configured to store program instructions which implement an automatic integrated circuit (IC) design tool for identifying corrections for timing paths of an IC that include minimum timing violations;

a processor coupled to the memory and configured to execute the program instructions to:

create an internal node report corresponding to a received node report for the IC that includes a listing of circuit nodes and a maximum timing slack available at each of the nodes;

for each circuit path having a minimum timing violation:

identify locations along the circuit path to change a delay;

sequentially try at particular locations a plurality of circuit delay changes including: selected circuit delay changes that add delay including swapping a datapath gate with a gate having a longer delay, and selected circuit delay changes that reduce a clock delay including reducing a clock delay of a destination clock-delayed flip-flop reducing a delay of an L0header component in the clock path of a datapath destination flip-flop; and removing the L0header component in the clock path of the datapath destination flip-flop in response to the reducing the delay not correcting the minimum timing violation;

response to each circuit change, update the internal node report by reducing a maximum slack value of each affected node by an amount of the added delay; and

generate an output report including a listing of the circuit changes which correct the minimum timing violations.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0056 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2008
From: SMITH, RICHARD W.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 020782/0129 →
Continuity (1)
Related Publication 20090259979A1 · Oct 15, 2009