US5654898A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Timing-driven integrated circuit layout through device sizing
Assignee: Cascade Design Automation Corp
•
Filing: 1995-07-11
•
Granted: 1997-08-05
•
Expires: 2015-07-11
Abstract
Abstract A method and apparatus for determining the layout of an integrated circuit, in accordance with timing constraints, by means of sizing the buffers in the layout. A nominal netlist for the layout of the integrated circuit is used to determine critical paths through the circuit. The time-critical paths are determined and the instances of the buffers along the path are resized so that the time delays in the time-critical paths are either brought within the predetermined timing criteria, or no further improvement in any time-critical path is possible.
Inventors
- 👤 Bradley R. Roetcisoender
- 👤 Yongtao You
- 👤 Richard K. McGehee
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-02 13:21
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/39
Claims Analysis
Total Claims: 20
Claim 1
Independent Claim
417 words
A method for achieving timing constraints while optimizing the layout of an integrated circuit by sizing devices on the integrated circuit, the integrated circuit having an associated net list having predetermined specifications and the devices being chosen from a predetermined set of devices, each having a resistance and a capacitance, the predetermined set of devices including a minimal-sized device having a minimal area and a nominal-sized device having a nominal area that is larger than the minimal area of the minimal-sized device, the method comprising the steps of: a) replacing any minimal-sized devices in a first layout with nominal-sized devices to accommodate the capacitive load; b) generating estimated wiring capacitances associated with the net list; c) calculating delays associated with the estimated wiring capacitances; d) performing a timing analysis on the net list based on the delays associated with the estimated wiring capacitances to determine any violations of the predetermined specifications caused by the delays; e) determining weights to apply to critical nets on a critical path, the critical nets being nets on the critical path that do not meet the predetermined specifications, the critical path being the set of instances of the devices creating a logical path to a point in the circuit where a timing violation occurs; f) performing a place and routing step with the critical nets weighted to place the devices on the integrated circuit and to route paths among the devices; g) calculating delays along one of the critical nets; h) identifying the most critical improvable paths in the net list and the instances of the devices along the most critical improvable paths, the most critical improvable paths being those having the largest timing violations; i) allocating delays to instances on the most critical improvable paths so that the area added to the layout in performing step a) for the instances on the most critical improvable paths is minimized; j) generating a new layout including devices whose area has been changed after having changed the areas of instances of the devices on the critical path to meet the allocated delays; k) updating the delays of instances of the devices affected by changes in the areas of instances of the devices along the entire most critical improvable path; l) reidentifying the most critical improvable paths in the net list; m) performing the steps i)-l) until either: i) all constraints are met, or ii) no further improvement in the most critical improvable paths is possible; and n) performing a final rerouting of the layout.
Claim 2
Independent Claim
417 words
A method for achieving timing constraints while optimizing the layout of an integrated circuit by sizing devices on the integrated circuit, the integrated circuit having an associated net list having predetermined specifications and the devices being chosen from a predetermined set of devices, each having a resistance and a capacitance, the predetermined set of devices including a minimal-sized device having a minimal area and a nominal-sized device having a nominal area that is larger than the minimal area of the minimal-sized device, the method comprising the steps of: a) replacing any minimal-sized devices in a first layout with nominal-sized devices to accommodate the capacitive load; b) generating estimated wiring capacitances associated with the net list; c) calculating delays associated with the estimated wiring capacitances; d) performing a timing analysis on the net list based on the delays associated with the estimated wiring capacitances to determine any violations of the predetermined specifications caused by the delays; e) determining weights to apply to critical nets on a critical path, the critical nets being nets on the critical path that do not meet the predetermined specifications, the critical path being the set of instances of the devices creating a logical path to a point in the circuit where a timing violation occurs; f) performing a place and routing step with the critical nets weighted to place the devices on the integrated circuit and to route paths among the devices; g) calculating delays along one of the critical nets; h) identifying the most critical improvable paths in the net list and the instances of the devices along the most critical improvable paths, the most critical improvable paths being those having the largest timing violations; i) allocating delays to instances on the most critical improvable paths so that the area added to the layout in performing step a) for the instances on the most critical improvable paths is minimized; j) generating a new layout including devices whose area has been changed after having changed the areas of instances of the devices on the critical path to meet the allocated delays; k) updating the delays of instances of the devices affected by changes in the areas of instances of the devices along the entire most critical improvable path; l) reidentifying the most critical improvable paths in the net list; m) performing the steps i)-l) until either: i) all constraints are met, or ii) no further improvement in the most critical improvable paths is possible; and n) performing a final rerouting of the layout.
Claim 3
Dependent Claim
28 words
The method of claim 1 wherein step i) further comprises allocating the delays based on the resistances and capacitances of the instances on the most critical improvable paths.
Claim 4
Dependent Claim
29 words
The method of claim 2 wherein the resistances and capacitances of the instances on the most critical improvable paths are functions of the width and length of the instances.
Claim 5
Dependent Claim
10 words
The method of claim 2 wherein the devices are buffers.
Claim 6
Dependent Claim
10 words
The method of claim 1 wherein the devices are buffers.
Claim 7
Independent Claim
351 words
A method for achieving timing constraints while optimizing the layout of an integrated circuit by sizing devices on the integrated circuit, the integrated circuit having an associated net list having predetermined specifications and the devices being chosen from a predetermined set of devices, each device having a resistance, a capacitance, an area and at least one output transistor, the method comprising the steps of: a) generating estimated wiring capacitances associated with the net list; b) calculating delays associated with the estimated wiring capacitances; c) performing a timing analysis on the net list based on the delays associated with the estimated wiring capacitances to determine any violations of the predetermined specifications caused by the delays; d) determining weights to apply to critical nets on a critical path, the critical nets being nets on the critical path that do not meet the predetermined specifications, the critical path being the set of instances of the devices creating a logical path to a point in the circuit where a timing violation occurs; e) performing a place and routing step with the critical nets weighted to place the devices on the integrated circuit and to route paths among the devices; f) calculating delays along one of the critical nets; g) identifying the most critical improvable paths in the net list and the instances of the devices along the most critical improvable paths, the most critical improvable paths being those having the largest timing violations; h) allocating delays to instances on the most critical improvable paths; i) generating a new layout, including substituting devices on the critical paths with other devices in the predetermined set that have different areas in order to meet the delays allocated in step h); j) updating the delays of instances affected by the changes in the areas of the devices along the entire most critical improvable path; k) reidentifying the most critical improvable paths in the net list; l) performing the steps h)-k) until either: I) all constraints are met, or ii) no further improvement in the most critical improvable paths is possible; and m) performing a final rerouting of the layout.
Claim 8
Independent Claim
351 words
A method for achieving timing constraints while optimizing the layout of an integrated circuit by sizing devices on the integrated circuit, the integrated circuit having an associated net list having predetermined specifications and the devices being chosen from a predetermined set of devices, each device having a resistance, a capacitance, an area and at least one output transistor, the method comprising the steps of: a) generating estimated wiring capacitances associated with the net list; b) calculating delays associated with the estimated wiring capacitances; c) performing a timing analysis on the net list based on the delays associated with the estimated wiring capacitances to determine any violations of the predetermined specifications caused by the delays; d) determining weights to apply to critical nets on a critical path, the critical nets being nets on the critical path that do not meet the predetermined specifications, the critical path being the set of instances of the devices creating a logical path to a point in the circuit where a timing violation occurs; e) performing a place and routing step with the critical nets weighted to place the devices on the integrated circuit and to route paths among the devices; f) calculating delays along one of the critical nets; g) identifying the most critical improvable paths in the net list and the instances of the devices along the most critical improvable paths, the most critical improvable paths being those having the largest timing violations; h) allocating delays to instances on the most critical improvable paths; i) generating a new layout, including substituting devices on the critical paths with other devices in the predetermined set that have different areas in order to meet the delays allocated in step h); j) updating the delays of instances affected by the changes in the areas of the devices along the entire most critical improvable path; k) reidentifying the most critical improvable paths in the net list; l) performing the steps h)-k) until either: I) all constraints are met, or ii) no further improvement in the most critical improvable paths is possible; and m) performing a final rerouting of the layout.
Claim 9
Dependent Claim
28 words
The method of claim 6 wherein step h) further comprises allocating the delays based on the resistances and capacitances of the instances on the most critical improvable paths.
Claim 10
Dependent Claim
33 words
The method of claim 7 wherein the resistances and capacitances of the instances on the most critical improvable paths are functions of the width and length of the output transistors of the instances.
Claim 11
Dependent Claim
10 words
The method of claim 7 wherein the devices are buffers.
Claim 12
Dependent Claim
10 words
The method of claim 6 wherein the devices are buffers.
Claim 13
Independent Claim
446 words
A method for achieving timing constraints while optimizing the layout of an integrated circuit by sizing devices on the integrated circuit, the integrated circuit having an associated net list having predetermined specifications and the devices being chosen from a predetermined set of devices, each device having a resistance, a capacitance, an area and at least one output transistor, the set including a minimal-sized device having a minimal area and a nominal-sized device having a nominal area that is larger than the minimal area of the minimal-sized device, the method comprising the steps of: a) performing a first place and routing step on the net list using minimal-sized devices chosen from the predetermined set of devices, thereby producing a first layout; b) determining the capacitive load on the minimal-sized devices in the first layout; c) replacing the minimal-sized devices in the first layout with nominal -sized devices to accommodate the capacitive load; d) generating estimated wiring capacitances associated with the net list; e) calculating delays associated with the estimated wiring capacitances; f) performing a timing analysis on the net list based on the delays associated with the estimated wiring capacitances to determine any violations of the predetermined specifications caused by the delays; g) determining weights to apply to critical nets on a critical path, the critical nets being nets on the critical path that do not meet the predetermined specifications, the critical path being the set of instances of the devices creating a logical path to a point in the circuit where a timing violation occurs; h) performing a second place and routing step with the critical nets weighted; i) calculating delays along one of the critical nets; j) identifying the most critical improvable paths in the net list and the instances of the devices along the most critical improvable paths, the most critical improvable paths being those having the largest timing violations; k) allocating delays to instances on the most critical improvable paths so that the area added to the layout in performing step c) for the instances on the most critical improvable paths is minimized; l) generating a new layout including devices whose size has been changed after having changed the areas of instances of the devices on the critical path to meet the allocated delays; m) updating the delays of instances affected by changes in the areas of instances of the devices along the entire most critical improvable path; n) reidentifying the most critical improvable paths in the net list; o) performing the steps k)-n) until either: i) all constraints are met, or ii) no further improvement in the most critical improvable paths is possible; and p) performing a final rerouting of the layout.
Claim 14
Independent Claim
446 words
A method for achieving timing constraints while optimizing the layout of an integrated circuit by sizing devices on the integrated circuit, the integrated circuit having an associated net list having predetermined specifications and the devices being chosen from a predetermined set of devices, each device having a resistance, a capacitance, an area and at least one output transistor, the set including a minimal-sized device having a minimal area and a nominal-sized device having a nominal area that is larger than the minimal area of the minimal-sized device, the method comprising the steps of: a) performing a first place and routing step on the net list using minimal-sized devices chosen from the predetermined set of devices, thereby producing a first layout; b) determining the capacitive load on the minimal-sized devices in the first layout; c) replacing the minimal-sized devices in the first layout with nominal -sized devices to accommodate the capacitive load; d) generating estimated wiring capacitances associated with the net list; e) calculating delays associated with the estimated wiring capacitances; f) performing a timing analysis on the net list based on the delays associated with the estimated wiring capacitances to determine any violations of the predetermined specifications caused by the delays; g) determining weights to apply to critical nets on a critical path, the critical nets being nets on the critical path that do not meet the predetermined specifications, the critical path being the set of instances of the devices creating a logical path to a point in the circuit where a timing violation occurs; h) performing a second place and routing step with the critical nets weighted; i) calculating delays along one of the critical nets; j) identifying the most critical improvable paths in the net list and the instances of the devices along the most critical improvable paths, the most critical improvable paths being those having the largest timing violations; k) allocating delays to instances on the most critical improvable paths so that the area added to the layout in performing step c) for the instances on the most critical improvable paths is minimized; l) generating a new layout including devices whose size has been changed after having changed the areas of instances of the devices on the critical path to meet the allocated delays; m) updating the delays of instances affected by changes in the areas of instances of the devices along the entire most critical improvable path; n) reidentifying the most critical improvable paths in the net list; o) performing the steps k)-n) until either: i) all constraints are met, or ii) no further improvement in the most critical improvable paths is possible; and p) performing a final rerouting of the layout.
Claim 15
Dependent Claim
28 words
The method of claim 11 wherein step k) further comprises calculating the delays based on the resistances and capacitances of the instances on the most critical improvable paths.
Claim 16
Dependent Claim
33 words
The method of claim 12 wherein the resistances and capacitances of the instances on the most critical improvable paths are functions of the width and length of the output transistors of the instances.
Claim 17
Dependent Claim
10 words
The method of claim 12 wherein the devices are buffers.
Claim 18
Dependent Claim
10 words
The method of claim 11 wherein the devices are buffers.
Claim 19
Independent Claim
483 words
An apparatus for achieving timing constraints while optimizing the layout of an integrated circuit by sizing devices on the integrated circuit, the integrated circuit having an associated net list having predetermined specifications and the devices being chosen from a predetermined set of devices, each having an area, a resistance and a capacitance, the predetermined set of devices including a minimal-sized device having a minimal area and a nominal-sized device having a nominal area that is larger than the minimal area of the minimal-sized device, the apparatus comprising: a programmed circuit to replace any minimal-sized devices in a first layout with nominal-sized devices to accommodate the capacitive load; a programmed circuit to generate estimated wiring capacitances associated with the net list; a programmed circuit to calculate delays associated with the estimated wiring capacitances; a programmed circuit to perform a timing analysis on the net list based on the delays associated with the estimated wiring capacitances to determine any violations of the predetermined specifications caused by the delays; a programmed circuit to determine weights to apply to critical nets on a critical path, the critical nets being nets on the critical path that do not meet the predetermined specifications, the critical path being the set of instances of the devices creating a logical path to a point in the circuit where a timing violation occurs; a programmed circuit to perform a place and routing step with the critical nets weighted to place the devices on the integrated circuit and to route paths among the devices; a programmed circuit to calculate delays along one of the critical nets; a programmed circuit to identify the most critical improvable paths in the net list and the instances of the devices along the most critical improvable paths, the most critical improvable paths being those having the largest timing violations; a first iterative circuit to allocate delays to instances on the most critical improvable paths so that the area added to the layout by the programmed circuit to replace any minimal-sized devices in a first layout with nominal-sized devices to accommodate the capacitive load for the instances on the most critical improvable paths is minimized; a second iterative circuit to generate a new layout including devices whose area has been changed after having changed the areas of instances of the devices on the critical path to meet allocated delays; a third iterative circuit to update the delays of instances of the devices affected by changes in the areas of instances of the devices along the entire most critical improvable path; a fourth iterative circuit to reidentify the most critical improvable paths in the net list; a programmed circuit for operating the first, second, third and fourth iterative circuits until either i) all constraints are met, or ii) no further improvement in the most critical improvable paths is possible; and a programmed circuit to perform a final rerouting of the layout.
Claim 20
Independent Claim
483 words
An apparatus for achieving timing constraints while optimizing the layout of an integrated circuit by sizing devices on the integrated circuit, the integrated circuit having an associated net list having predetermined specifications and the devices being chosen from a predetermined set of devices, each having an area, a resistance and a capacitance, the predetermined set of devices including a minimal-sized device having a minimal area and a nominal-sized device having a nominal area that is larger than the minimal area of the minimal-sized device, the apparatus comprising: a programmed circuit to replace any minimal-sized devices in a first layout with nominal-sized devices to accommodate the capacitive load; a programmed circuit to generate estimated wiring capacitances associated with the net list; a programmed circuit to calculate delays associated with the estimated wiring capacitances; a programmed circuit to perform a timing analysis on the net list based on the delays associated with the estimated wiring capacitances to determine any violations of the predetermined specifications caused by the delays; a programmed circuit to determine weights to apply to critical nets on a critical path, the critical nets being nets on the critical path that do not meet the predetermined specifications, the critical path being the set of instances of the devices creating a logical path to a point in the circuit where a timing violation occurs; a programmed circuit to perform a place and routing step with the critical nets weighted to place the devices on the integrated circuit and to route paths among the devices; a programmed circuit to calculate delays along one of the critical nets; a programmed circuit to identify the most critical improvable paths in the net list and the instances of the devices along the most critical improvable paths, the most critical improvable paths being those having the largest timing violations; a first iterative circuit to allocate delays to instances on the most critical improvable paths so that the area added to the layout by the programmed circuit to replace any minimal-sized devices in a first layout with nominal-sized devices to accommodate the capacitive load for the instances on the most critical improvable paths is minimized; a second iterative circuit to generate a new layout including devices whose area has been changed after having changed the areas of instances of the devices on the critical path to meet allocated delays; a third iterative circuit to update the delays of instances of the devices affected by changes in the areas of instances of the devices along the entire most critical improvable path; a fourth iterative circuit to reidentify the most critical improvable paths in the net list; a programmed circuit for operating the first, second, third and fourth iterative circuits until either i) all constraints are met, or ii) no further improvement in the most critical improvable paths is possible; and a programmed circuit to perform a final rerouting of the layout.
References Cited (Backward Citations)
US4263651A
Cited
US4694403A
Cited
US4630219A
Cited
US4698760A
Cited
US4827428A
Cited
US5126950A
Cited
US4970664A
Cited
US5003487A
Cited
US5282148A
Cited
US5235521A
Cited
US5218551A
Cited
US5208764A
Cited
US5459673A
Cited
US5197015A
Cited
US5237514A
Cited
US5278769A
Cited
US5406498A
Cited
US5422317A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2000-08-04 | 2001-02-03 | 2001-08-05 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2004-08-04 | 2005-02-03 | 2005-08-05 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2008-08-04 | 2009-02-03 | 2009-08-05 | $7700.00 | Window Closed / Lapsed |