IP Library Granted Patent US 8,347,250
Granted Patent B2
US 8,347,250 · App. 12/975,668 · Granted Jan 1, 2013

Method and apparatus for addressing and improving holds in logic networks

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 8,347,250
App. No.
12/975,668
Granted
Jan 1, 2013
Kind
B2
Abstract

A method and apparatus for modifying a synchronous logic network so that the hold slack calculated at all pins is greater than or equal to a user-specified threshold, with the condition that the setup slack at any pin does not become negative or smaller than a user-specified margin. The result is an improved design which is less likely to fail due to a hold time violation. The method and apparatus introduce a limited number of logic cells which helps keep power consumption and design size to a minimum.

Claims (45)

1. A method on an apparatus for improving hold slack in a logic network comprising:

a processor of the apparatus performing static timing analysis to determine a setup slack and a hold slack for each pin in the logic network;

the processor determining a critical network based on the hold slack for each pin in the logic network;

the processor calculating a critical congestion for each pin in the critical network;

the processor grouping pins into pin classes where pins with a same hold slack are grouped in a same pin class;

the processor ranking each pin in the same pin class based on the critical congestion of the pin, wherein a pin having a highest critical congestion is ranked highest;

the processor tagging the highest ranked pin as an insertion point; and

the processor inserting a delay cell at the insertion point.

2. The method of claim 1 , wherein the critical network is defined by the hold slack for each pin in the logic network that is less than a user-specified threshold.

3. The method of claim 1 , further comprising:

the processor calculating a general congestion for each pin in the logic network.

4. The method claim 3 , wherein the general congestion for each pin is used to break a tie between pins with the same critical congestion.

5. The method of claim 4 , wherein the pin having a lowest general congestion is ranked highest.

6. The method of claim 1 , further comprising:

the processor determining whether each ranked pin has been previously tagged.

7. The method of claim 6 , wherein determining comprises:

the processor determining whether each ranked pin has been previously tagged and for each ranked pin determined to not have been previously tagged, inserting a delay cell.

8. The method of claim 1 , further comprising repeating the steps of performing, determining, calculating, grouping, ranking, tagging and inserting until no further pin is tagged as an insertion point.

9. The method of claim 1 , wherein calculating critical congestion is performed by levelization.

10. The method of claim 1 , wherein calculating critical congestion is performed by topological sorting.

11. The method of claim 1 , wherein calculating critical congestion is performed by depth first search.

12. An apparatus for improving hold slack in a logic network comprising:

a static timing analyzer configured to perform static timing analysis and output a setup slack and a hold slack for each pin in the logic network; and

a processor configured to:

determine a critical network based on the hold slack for each pin in the logic network;

calculate a critical congestion for each pin in the critical network;

group pins into pin classes where pins with a same hold slack are grouped in a same pin class;

rank each pin in the same pin class based on the critical congestion of the pin, wherein a pin having a highest critical congestion is ranked highest;

tag the highest ranked pin as an insertion point; and

insert a delay cell at the insertion point.

13. The apparatus of claim 12 , wherein the critical network is defined by the hold slack for each pin in the logic network that is less than a user-specified threshold.

14. The apparatus of claim 12 , wherein the processor is further configured to calculate a general congestion for each pin in the logic network.

15. The apparatus of claim 14 , wherein the general congestion for each pin is used to break a tie between pins with the same critical congestion.

16. The apparatus of claim 15 , wherein the pin having the lowest general congestion is ranked highest.

17. The apparatus of claim 12 , wherein the processor is further configured to determine whether each pin has been previously tagged.

18. The apparatus of claim 17 , wherein the processor is further configured to insert a delay cell when the ranked pin has not previously been tagged.

19. A non-transitory computer-readable storage medium storing a set of instructions for execution by one or more processors to perform hold slack improvement, the set of instructions comprising:

a static timing analysis segment for performing static timing analysis to determine a setup slack and a hold slack for each pin in the logic network;

a critical network segment for determining a critical network based on the hold slack for each pin in the logic network;

a critical congestion segment for calculating critical congestion for each pin in the critical network;

a grouping segment for grouping pins into pin classes where pins with a same hold slack are grouped in a same pin class;

a ranking segment for ranking each pin in the same pin class based on the critical congestion of the pin, wherein a pin having a highest critical congestion is ranked highest;

a tagging segment for tagging the highest ranked pin as an insertion point; and

an inserting segment for inserting a delay cell at the insertion point.

20. The non-transitory computer-readable storage medium according to claim 19 , wherein the set of instructions are hardware description language (HDL) instructions used for the manufacture of a device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2024
From: ADVANCED MICRO DEVICES, INC.
To: ONESTA IP, LLC
Reel/Frame 069381/0951 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2011
From: GONZALEZ, GEORGE A.; HANNAN, PETE J.; MCGEE, WILLIAM A.; PALISETTI, VASANT; VENKATACHAR, ASHOK
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 025963/0230 →