IP Library Granted Patent US 8,806,412
Granted Patent B1
US 8,806,412 · App. 14/028,145 · Granted Aug 12, 2014

Statistical optimization in place-and-route

Inventors: Yu-Cheng Wang (Cupertino, CA); Wei-Shen Wang (Taipei, TW)
Assignee: Atoptech, 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 8,806,412
App. No.
14/028,145
Granted
Aug 12, 2014
Kind
B1
Abstract

Place-and-route (P&R) includes maintaining a set of local arrival time information and local required time information associated with a circuit layout; determining a candidate fix on a critical path in the circuit layout; statistically determining, using one or more computer processors, a set of one or more adjusted local slacks associated with a region affected by the candidate fix; and in the event that the set of one or more adjusted local slacks indicates that the candidate fix results in a timing improvement, accepting the candidate fix.

Claims (100)

1. A place-and-route (P&R) method, comprising:

maintaining a set of local arrival time information and local required time information associated with a circuit layout;

determining a candidate fix on a critical path in the circuit layout;

determining a first circuit portion that is affected by the candidate fix, wherein the first circuit portion that is affected by the candidate fix includes at least a portion of a fan-out path that fans out from the candidate fix, or at least a portion of an unconnected path that is unconnected to the critical path and whose timing is affected by the candidate fix;

statistically determining, using one or more computer processors, a set of one or more adjusted local slacks associated with the first circuit portion affected by the candidate fix; and

in the event that the set of one or more adjusted local slacks indicates that the candidate fix results in a timing improvement in the first circuit portion, accepting the candidate fix and updating a set of local arrival time information and local required time information associated with a second circuit portion affected by the candidate fix.

2. The method of claim 1 , further comprising identifying the critical path.

3. The method of claim 1 , wherein the second circuit portion is greater than the first circuit portion.

4. The method of claim 1 , wherein:

the critical path is a first critical path;

the candidate fix is a first candidate fix; and

the method further comprises, in the event that the set of one or more adjusted local slacks indicates that the first candidate fix results in the timing improvement in the first circuit portion:

identifying a second critical path based on the updated set of local arrival times and local required times associated with the second circuit portion; and

determining a second candidate fix on the second critical path.

5. The method of claim 1 , wherein statistically determining the set of one or more adjusted local slacks associated with the first circuit portion affected by the candidate fix includes selecting, at a fanout location, a fanout path among a plurality of fanout paths to compute the set of one or more adjusted local slacks.

6. The method of claim 5 , wherein the selected fanout path results in a least local statistical slack among the fanout paths at the fanout location.

7. The method of claim 1 , wherein an adjusted local slack is statistically determined based at least in part on an expected slack and a variance of the slack.

8. The method of claim 1 , wherein an adjusted local slack is statistically determined based at least in part on a mean slack, a variance of launch clock data, a variance of capture clock, and a variance of Clock Re-convergence Pessimism Removal (CRPR) time.

9. The method of claim 1 , wherein the candidate fix on the critical path includes a logical fix on the critical path.

10. The method of claim 1 , wherein the candidate fix on the critical path includes a logical fix on the critical path, the logical fix on the critical path includes: changing the size of a cell, adding one or more buffers, replacing a cell with a different cell with greater driving strength, or local area logic resynthesis.

11. A place-and-route (P&R) method, comprising:

maintaining a set of local arrival time information and local required time information associated with a circuit layout;

determining a candidate fix on a critical path in the circuit layout;

statistically determining, using one or more computer processors, a set of one or more adjusted local slacks associated with a circuit portion affected by the candidate fix; and

in the event that the set of one or more adjusted local slacks indicates that the candidate fix results in a timing improvement, accepting the candidate fix; wherein

an adjusted local slack (slack) is statistically determined according to:

slack= E (slack)− n _sigma*sqrt(Var(slack)), wherein:

E(slack) corresponds to a mean slack;

n_sigma corresponds to a configurable value; and

Var(slack) corresponds to a variance of the slack.

12. A place-and-route (P&R) method, comprising:

maintaining a set of local arrival time information and local required time information associated with a circuit layout;

determining a candidate fix on a critical path in the circuit layout;

statistically determining, using one or more computer processors, a set of one or more adjusted local slacks associated with a circuit portion affected by the candidate fix; and

in the event that the set of one or more adjusted local slacks indicates that the candidate fix results in a timing improvement, accepting the candidate fix; wherein

an adjusted local slack (slack) is statistically determined according to:

slack= E (slack)− n _sigma*sqrt(Var(launch_clock_data))− n _sigma*sqrt(Var(capture_clock)−Var(capture_crpr)).

13. A place-and-route (P&R) method, comprising:

maintaining a set of local arrival time information and local required time information associated with a circuit layout;

determining a candidate fix on a critical path in the circuit layout;

statistically determining, using one or more computer processors, a set of one or more adjusted local slacks associated with a circuit portion affected by the candidate fix; and

in the event that the set of one or more adjusted local slacks indicates that the candidate fix results in a timing improvement, accepting the candidate fix; wherein

an adjusted local slack (slack) is statistically determined according to:

slack= E (slack)− n _sigma*sqrt(Var(arrival_time_data)+Var(required_time_data))− n _sigma*sqrt(Var(launch_clock)−Var(launch_crpr))− n _sigma*sqrt(Var(capture_clock)−Var(capture_crpr)).

14. A system for place-and-route (P&R), comprising:

one or more processors configured to:

maintain a set of local arrival time information and local required time information associated with a circuit layout;

determine a candidate fix on a critical path in the circuit layout;

determine a first circuit portion that is affected by the candidate fix, wherein the first circuit portion that is affected by the candidate fix includes at least a portion of a fan-out path that fans out from the candidate fix, or at least a portion of an unconnected path that is unconnected to the critical path and whose timing is affected by the candidate fix;

statistically determine a set of one or more adjusted local slacks associated with a the first circuit portion affected by the candidate fix; and

in the event that the set of one or more adjusted local slacks indicates that the candidate fix results in a timing improvement in the first circuit portion, accept the candidate fix and update a set of local arrival time information and local required time information associated with a second circuit portion affected by the candidate fix; and

one or more memories coupled to the one or more processors and configured to provide the one or more processors with instructions.

15. The system of claim 14 , wherein the one or more processors are further configured to identify the critical path.

16. The system of claim 14 , wherein the second circuit portion is greater than the first circuit portion.

17. The system of claim 14 , wherein:

the critical path is a first critical path;

the candidate fix is a first candidate fix; and

the one or more processors are further configured to, in the event that the set of one or more adjusted local slacks indicates that the first candidate fix results in the timing improvement in the first circuit portion:

identify a second critical path based on the updated set of local arrival times and local required times associated with the second circuit portion; and

determine a second candidate fix on the second critical path.

18. The system of claim 14 , wherein to statistically determine the set of one or more adjusted local slacks associated with the first circuit portion affected by the candidate fix includes to select, at a fanout location, a fanout path among a plurality of fanout paths to compute the set of one or more adjusted local slacks.

19. The system of claim 18 , wherein the selected fanout path results in a least local statistical slack among the fanout paths at the fanout location.

20. The system of claim 14 , wherein an adjusted local slack is statistically determined based at least in part on an expected slack and a variance of the slack.

21. The system of claim 14 , wherein an adjusted local slack is statistically determined based at least in part on a mean slack, a variance of launch clock data, a variance of capture clock, and a variance of Clock Re-convergence Pessimism Removal (CRPR) time.

22. A system for place-and-route (P&R), comprising:

one or more processors configured to:

maintain a set of local arrival time information and local required time information associated with a circuit layout;

determine a candidate fix on a critical path in the circuit layout;

statistically determine a set of one or more adjusted local slacks associated with a circuit portion affected by the candidate fix; and

in the event that the set of one or more adjusted local slacks indicates that the candidate fix results in a timing improvement, accept the candidate fix; and

one or more memories coupled to the one or more processors and configured to provide the one or more processors with instructions; wherein

an adjusted local slack (slack) is statistically determined according to:

slack= E (slack)− n _sigma*sqrt(Var(slack)), wherein:

E(slack) corresponds to a mean slack;

n_sigma corresponds to a configurable value; and

Var(slack) corresponds to a variance of the slack.

23. A system for place-and-route (P&R), comprising:

one or more processors configured to:

maintain a set of local arrival time information and local required time information associated with a circuit layout;

determine a candidate fix on a critical path in the circuit layout;

statistically determine a set of one or more adjusted local slacks associated with a circuit portion affected by the candidate fix; and

in the event that the set of one or more adjusted local slacks indicates that the candidate fix results in a timing improvement, accept the candidate fix; and

one or more memories coupled to the one or more processors and configured to provide the one or more processors with instructions; wherein

an adjusted local slack (slack) is statistically determined according to:

slack= E (slack)− n _sigma*sqrt(Var(launch_clock_data))− n _sigma*sqrt(Var(capture_clock)−Var(capture_crpr)).

24. A system for place-and-route (P&R), comprising:

one or more processors configured to:

maintain a set of local arrival time information and local required time information associated with a circuit layout;

determine a candidate fix on a critical path in the circuit layout;

statistically determine a set of one or more adjusted local slacks associated with a circuit portion affected by the candidate fix; and

in the event that the set of one or more adjusted local slacks indicates that the candidate fix results in a timing improvement, accept the candidate fix; and

one or more memories coupled to the one or more processors and configured to provide the one or more processors with instructions; wherein

an adjusted local slack (slack) is statistically determined according to:

slack= E (slack)− n _sigma*sqrt(Var(arrival_time_data)+Var(required_time_data))− n _sigma*sqrt(Var(launch_clock)−Var(launch_crpr))− n _sigma*sqrt(Var(capture_clock)−Var(capture_crpr)).

25. A computer program product for place-and-route (P&R), the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

maintaining a set of local arrival time information and local required time information associated with a circuit layout;

determining a candidate fix on a critical path in the circuit layout;

determining a first circuit portion that is affected by the candidate fix, wherein the first circuit portion that is affected by the candidate fix includes at least a portion of a fan-out path that fans out from the candidate fix, or at least a portion of an unconnected path that is unconnected to the critical path and whose timing is affected by the candidate fix;

statistically determining a set of one or more adjusted local slacks associated with the first circuit portion affected by the candidate fix; and

in the event that the set of one or more adjusted local slacks indicates that the candidate fix results in a timing improvement in the first circuit portion, accepting the candidate fix and updating a set of local arrival time information and local required time information associated with a second circuit portion affected by the candidate fix.

Assignments (5)
MERGER AND CHANGE OF NAME Recorded Dec 2, 2020
From: AVATAR INTEGRATED SYSTEMS, INC.; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 054514/0076 →
RELEASE OF SECURITY INTEREST Recorded Aug 21, 2020
From: MENTOR GRAPHICS CORPORATION
To: AVATAR INTEGRATED SYSTEMS, INC.
Reel/Frame 053558/0632 →
SECURITY INTEREST Recorded Jul 16, 2020
From: AVATAR INTEGRATED SYSTEMS, INC.
To: MENTOR GRAPHICS CORPORATION
Reel/Frame 053224/0268 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2017
From: ATOPTECH, INC.
To: AVATAR INTEGRATED SYSTEMS, INC.
Reel/Frame 042751/0437 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2013
From: WANG, YU-CHENG; WANG, WEI-SHEN
To: ATOPTECH, INC.
Reel/Frame 031215/0546 →
Continuity (1)
Provisional Application 61820610 · May 7, 2013