Statistical optimization in place-and-route
AssigneeAtoptech, Inc.
InventorsYu-Cheng Wang, Wei-Shen Wang
Life of this patent
Estimating the term…
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.
Claims25
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.
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.
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)).
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)).
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.
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.
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)).
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)).
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.
Dependencies are inferred from the claim text.