IP Library Granted Patent US 7,222,318
Granted Patent B2
US 7,222,318 · App. 10/627,933 · Granted May 22, 2007

Circuit optimization for minimum path timing violations

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,222,318
App. No.
10/627,933
Granted
May 22, 2007
Kind
B2
Abstract

A method is provided to optimize delay insertions for reducing timing violations. The method includes inserting a buffer between a driver and a receiver in a timing path and placing the buffer either inside or outside a bounding box that encloses the driver and the receiver. The placement of the buffer inside or outside the bounding box creates the appropriate effective loading on the buffer to generates the required minimum delay to avoid timing violations.

Claims (49)

1. A method for selecting nodes in a electronic circuit to be optimized, comprising:

examining each node according to a minimum path slack and a maximum path slack associated with the node; and

putting nodes into a plurality of criticality bins according to the minimum path slacks and maximum path slacks associated with the nodes, wherein each criticality bin is defined by a range of minimum path slacks or a range of maximum path slacks.

2. The method of claim 1 , wherein said plurality of criticality bins comprises:

a first criticality bin for nodes with critical minimum path slacks and non-critical maximum path slacks;

a second criticality bin for nodes with sub-critical minimum path slacks and non-critical maximum path slacks;

a third criticality bin for nodes with critical minimum path slacks and sub-critical maximum path slacks;

a fourth criticality bin for nodes with sub-critical minimum paths slacks and sub-critical maximum path slacks;

a fifth criticality bin for nodes with critical minimum path slacks and critical maximum path slacks; and

a sixth criticality bin for nodes with sub-critical minimum path slacks and critical maximum path slacks.

3. The method of claim 2 , wherein:

said critical minimum path slacks include minimum path slacks less than a first minimum slack;

said sub-critical minimum path slacks include minimum path slacks greater than said first minimum slack and less than a second minimum slack;

said non-critical minimum path slacks include minimum path slacks greater than said second minimum slack;

said critical maximum path slacks include maximum path slacks less than a first maximum slack;

said sub-critical maximum path slacks include maximum path slacks greater than said first maximum slack and less than a second maximum slack; and

said non-critical maximum path slacks include maximum slacks greater than said second maximum slack.

4. The method of claim 3 , wherein:

the first minimum slack is 0;

the second minimum slack is 100 picoseconds;

the first maximum slack is 0; and

the second maximum slack is 100 picoseconds.

5. The method of claim 1 , further comprising:

selecting a criticality bin from said plurality of criticality bins; and

putting nodes in said selected criticality bin into a number of a plurality of slack bins divided between a first minimum path slack and a second minimum path slack.

6. The method of claim 5 , wherein the first minimum path slack is the most negative minimum path slack of the nodes in said criticality bin and the second minimum path slack is 0.

7. The method of claim 5 , further comprising:

putting nodes into a plurality of level bins, wherein each level bin is defined by a range of node levels in timing paths;

selecting a slack bin from said plurality of slack bins; and

putting nodes in said selected slack bin into said plurality of level bins according to their associated node levels in timing paths.

8. The method of claim 7 , further comprising:

selecting a node; and

optimizing said node to remove a timing violation.

9. The method of claim 8 , wherein said optimizing said node comprises:

determining a required delay between a driver and a receiver;

selecting a buffer to be inserted between said driver and said receiver;

determining an input transition time to said buffer from said driver;

determining a desired effective load on said buffer that causes said buffer to generate said required delay under said input transition time;

determining a desired effective length of a wire that generates said desired effective load;

determining a length of a conductor between said driver and said receiver inside a bounding box that encloses said driver and said receiver;

determining a maximum effective load generated by said length of a conductor, if said desired effective load is less than or equal to said maximum effective load, inserting said buffer at a point inside said bounding box; and

if said desired effective load is greater than said maximum effective load, inserting said buffer at a point outside said bounding box.

10. The method of claim 8 , further comprising:

performing an incremental analysis to re-determine minimum and maximum path slacks of nodes affected by said optimization; and

again putting said nodes in said plurality of level bins according to their node levels in timing paths.

11. The method of claim 10 , further comprising:

reducing said number of a plurality of slack bins by one;

again putting said nodes into said plurality of slack bins.

12. The method of claim 11 , further comprising again putting said nodes in said plurality of criticality bins.

Assignments (11)
MERGER Recorded Sep 2, 2020
From: APACHE DESIGN, INC.
To: ANSYS, INC.
Reel/Frame 053674/0176 →
CHANGE OF NAME Recorded Jan 9, 2012
From: APACHE DESIGN SOLUTIONS, INC.
To: APACHE DESIGN, INC.
Reel/Frame 027500/0127 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2011
From: SEQUENCE DESIGN, INC.
To: APACHE DESIGN SOLUTIONS, INC.
Reel/Frame 026015/0111 →
RELEASE Recorded Sep 22, 2009
From: SILICON VALLEY BANK
To: SEQUENCE DESIGN, INC.
Reel/Frame 023263/0476 →
RELEASE Recorded Sep 22, 2009
From: SILICON VALLEY BANK
To: SEQUENCE DESIGN, INC.
Reel/Frame 023263/0489 →
RELEASE OF SECURITY INTEREST Recorded Sep 9, 2009
From: FOCUS VENTURES II, LP
To: SEQUENCE DESIGN, INC.
Reel/Frame 023196/0932 →
RELEASE OF SECURITY INTEREST Recorded Sep 9, 2009
From: FOCUS VENTURES II, LP
To: SEQUENCE DESIGN, INC.
Reel/Frame 023196/0907 →
SECURITY AGREEMENT Recorded Mar 18, 2009
From: SEQUENCE DESIGN, INC.
To: FOCUS VENTURES II, LP
Reel/Frame 022416/0026 →
SECURITY AGREEMENT Recorded Jul 8, 2008
From: SEQUENCE DESIGN, INC.
To: SILICON VALLEY BANK
Reel/Frame 021205/0667 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 6, 2008
From: SEQUENCE DESIGN, INC.
To: FOCUS VENTURES II, LP
Reel/Frame 021194/0156 →
SECURITY AGREEMENT Recorded Dec 23, 2004
From: SEQUENCE DESIGN, INC.
To: SILICON VALLEY BANK
Reel/Frame 016087/0906 →