coupled to the driver.
Representative Image:
1. A method for minimizing noise in an integrated circuit comprising: choosing a net to be analyzed; determining a total path length of conductive paths coupled to a driver within the net; examining a noise amplitude versus length of conduction path curve associated with the driver to determine a noise level associated with the total path length of conductive paths coupled to the driver; comparing the noise level associated with the total path length of conductive paths coupled to the driver to a maximum acceptable noise level; identifying the noise level associated with the total path length of conductive paths coupled to the driver as exceeding the maximum acceptable noise level: examining the noise amplitude versus length of conduction path curve associated with the driver to determine a modified total path length of conductive paths coupled to the driver that corresponds to a modified noise level that is less than the maximum acceptable noise level; and modifying the net to reduce the total path length of conductive paths coupled to the driver to be less than or equal to the modified total path length of conductive paths.
2. The method for minimizing noise in an integrated circuit according to claim 1, wherein the curve defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
3. The method for minimizing noise in an integrated circuit according to claim 2, wherein the curve defines a maximum allowable noise amplitude for the net.
4. The method for minimizing noise in an integrated circuit according to claim 1, wherein modifying the net includes inserting at least one buffer within the net.
5. The method for minimizing noise in an integrated circuit according to claim 4, wherein the curve associated with the driver defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
6. The method for minimizing noise in an integrated circuit according to claim 1, wherein determining the total path length of conductive paths coupled to the driver within the net includes a plurality of intersecting conduction paths.
7. The method for minimizing noise in an integrated circuit according to claim 6, further comprising: identifying a timing issue associated with one or more conduction paths within the plurality of intersecting conduction paths; and choosing an insertion position of at least one buffer to be within one of the plurality of intersecting conduction paths that is not identified as being associated with the timing issue.
8. A computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit, the computer readable media comprising: program instructions for choosing a net to be analyzed; program instructions for determining a total path length of conductive paths coupled to a driver within the net; program instructions for examining a noise amplitude versus length of conduction path curve associated with the driver to determine a noise level associated with the total path length of conductive paths coupled to the driver; program instructions for comparing the noise level associated with the total path length of conductive paths coupled to the driver to a maximum acceptable noise level; program instructions for identifying the noise level associated with the total path length of conductive paths coupled to the driver as exceeding the maximum acceptable noise level; program instructions for examining the noise amplitude versus length of conduction path curve associated with the driver to determine a modified total path length of conductive paths coupled to the driver that corresponds to a modified noise level that is less than the maximum acceptable noise level; and program instructions for modifying the net to reduce the total path length of conductive paths coupled to the driver to be less than or equal to the modified total path length of conductive paths.
9. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 8, wherein the curve defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
10. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 9, wherein the curve defines a maximum allowable noise amplitude for the net.
11. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 8, wherein the program instructions for modifying the net includes program instructions for inserting at least one buffer within the net.
12. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 11, wherein the curve associated with the driver defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
13. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 8, wherein the total path length of conductive paths coupled to the driver within the net includes a plurality of intersecting conduction paths.
14. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 13, further comprising: program instructions for identifying a timing issue associated with one or more conduction paths within the plurality of intersecting conduction paths; and program instructions for choosing an insertion position of at least one buffer to be within one of the plurality of intersecting conduction paths that is not identified as being associated with the timing issue.
15. A method for minimizing noise in an integrated circuit comprising: choosing a net to be analyzed; determining a total path length of conductive paths coupled to a first driver within the net; examining a first noise amplitude versus length of conduction path curve associated with the first driver to determine a first noise level associated with the total path length of conductive paths; comparing the first noise level associated with the total path length of conductive paths to a maximum acceptable noise level; identifying the first noise level as exceeding the maximum acceptable noise level; examining a second noise amplitude versus length of conduction path curve associated with a second driver to determine a second noise level associated with the total path length of conductive paths; comparing the second noise level associated with the total path length of conductive paths to the maximum acceptable noise level; identifying the second noise level as not exceeding the maximum acceptable noise level; and replacing the first driver with the second driver.
16. The method for minimizing noise in an integrated circuit according to claim 15, wherein the curve defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
17. The method for minimizing noise in an integrated circuit according to claim 16, wherein the curve defines a maximum allowable noise amplitude for the net.
18. The method for minimizing noise in an integrated circuit according to claim 15, wherein determining the total path length of conductive paths coupled to the driver within the net includes a plurality of intersecting conduction paths.
19. A computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit, the computer readable media comprising: program instructions for choosing a net to be analyzed; program instructions for determining a total path length of conductive paths coupled to a first driver within the net; program instructions for examining a first noise amplitude versus length of conduction path curve associated with the first driver to determine a first noise level associated with the total path length of conductive paths; program instructions for comparing the first noise level associated with the total path length of conductive paths to a maximum acceptable noise level; program instructions for identifying the first noise level as exceeding the maximum acceptable noise level; program instructions for examining a second noise amplitude versus length of conduction path curve associated with a second driver to determine a second noise level associated with the total path length of conductive paths; program instructions for comparing the second noise level associated with the total path length of conductive paths to the maximum acceptable noise level; program instructions for identifying the second noise level as not exceeding the maximum acceptable noise level; and program instructions for replacing the first driver with the second driver.
20. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 19, wherein the curve defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
21. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 20, wherein the curve defines a maximum allowable noise amplitude for the net.
22. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 19, wherein the total path length of conductive paths coupled to the driver within the net includes a plurality of intersecting conduction paths.
2. The method for minimizing noise in an integrated circuit according to claim 1, wherein the curve defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
3. The method for minimizing noise in an integrated circuit according to claim 2, wherein the curve defines a maximum allowable noise amplitude for the net.
4. The method for minimizing noise in an integrated circuit according to claim 1, wherein modifying the net includes inserting at least one buffer within the net.
5. The method for minimizing noise in an integrated circuit according to claim 4, wherein the curve associated with the driver defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
6. The method for minimizing noise in an integrated circuit according to claim 1, wherein determining the total path length of conductive paths coupled to the driver within the net includes a plurality of intersecting conduction paths.
7. The method for minimizing noise in an integrated circuit according to claim 6, further comprising: identifying a timing issue associated with one or more conduction paths within the plurality of intersecting conduction paths; and choosing an insertion position of at least one buffer to be within one of the plurality of intersecting conduction paths that is not identified as being associated with the timing issue.
8. A computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit, the computer readable media comprising: program instructions for choosing a net to be analyzed; program instructions for determining a total path length of conductive paths coupled to a driver within the net; program instructions for examining a noise amplitude versus length of conduction path curve associated with the driver to determine a noise level associated with the total path length of conductive paths coupled to the driver; program instructions for comparing the noise level associated with the total path length of conductive paths coupled to the driver to a maximum acceptable noise level; program instructions for identifying the noise level associated with the total path length of conductive paths coupled to the driver as exceeding the maximum acceptable noise level; program instructions for examining the noise amplitude versus length of conduction path curve associated with the driver to determine a modified total path length of conductive paths coupled to the driver that corresponds to a modified noise level that is less than the maximum acceptable noise level; and program instructions for modifying the net to reduce the total path length of conductive paths coupled to the driver to be less than or equal to the modified total path length of conductive paths.
9. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 8, wherein the curve defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
10. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 9, wherein the curve defines a maximum allowable noise amplitude for the net.
11. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 8, wherein the program instructions for modifying the net includes program instructions for inserting at least one buffer within the net.
12. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 11, wherein the curve associated with the driver defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
13. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 8, wherein the total path length of conductive paths coupled to the driver within the net includes a plurality of intersecting conduction paths.
14. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 13, further comprising: program instructions for identifying a timing issue associated with one or more conduction paths within the plurality of intersecting conduction paths; and program instructions for choosing an insertion position of at least one buffer to be within one of the plurality of intersecting conduction paths that is not identified as being associated with the timing issue.
15. A method for minimizing noise in an integrated circuit comprising: choosing a net to be analyzed; determining a total path length of conductive paths coupled to a first driver within the net; examining a first noise amplitude versus length of conduction path curve associated with the first driver to determine a first noise level associated with the total path length of conductive paths; comparing the first noise level associated with the total path length of conductive paths to a maximum acceptable noise level; identifying the first noise level as exceeding the maximum acceptable noise level; examining a second noise amplitude versus length of conduction path curve associated with a second driver to determine a second noise level associated with the total path length of conductive paths; comparing the second noise level associated with the total path length of conductive paths to the maximum acceptable noise level; identifying the second noise level as not exceeding the maximum acceptable noise level; and replacing the first driver with the second driver.
16. The method for minimizing noise in an integrated circuit according to claim 15, wherein the curve defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
17. The method for minimizing noise in an integrated circuit according to claim 16, wherein the curve defines a maximum allowable noise amplitude for the net.
18. The method for minimizing noise in an integrated circuit according to claim 15, wherein determining the total path length of conductive paths coupled to the driver within the net includes a plurality of intersecting conduction paths.
19. A computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit, the computer readable media comprising: program instructions for choosing a net to be analyzed; program instructions for determining a total path length of conductive paths coupled to a first driver within the net; program instructions for examining a first noise amplitude versus length of conduction path curve associated with the first driver to determine a first noise level associated with the total path length of conductive paths; program instructions for comparing the first noise level associated with the total path length of conductive paths to a maximum acceptable noise level; program instructions for identifying the first noise level as exceeding the maximum acceptable noise level; program instructions for examining a second noise amplitude versus length of conduction path curve associated with a second driver to determine a second noise level associated with the total path length of conductive paths; program instructions for comparing the second noise level associated with the total path length of conductive paths to the maximum acceptable noise level; program instructions for identifying the second noise level as not exceeding the maximum acceptable noise level; and program instructions for replacing the first driver with the second driver.
20. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 19, wherein the curve defines a relationship between noise amplitude and conduction path length for a particular strength of the driver.
21. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 20, wherein the curve defines a maximum allowable noise amplitude for the net.
22. The computer readable media containing program instructions that, when executed, exercise code for minimizing noise in an integrated circuit according to claim 19, wherein the total path length of conductive paths coupled to the driver within the net includes a plurality of intersecting conduction paths.
Description:
BACKGROUND OF THE INVENTION
1. Field of the InventionThe present invention relates to noise problems in integrated circuits. More particularly, the present invention provides a method for inserting buffers into an integrated circuit layout during the place and route stage in order to reduce the overall noise introduced into conductive paths in a given design.
2. The Background Art
As the speed of signals within integrated circuits increases and the distance between conductive paths decreases, the problem of reducing the susceptibility of conductive paths to noise becomes increasingly important.
In the prior art conversion process between design and layout for integrated circuit systems, there are four major steps which are accomplished by system designers. Those four major steps include place and route of the standard cell design, physical design verification to ensure consistency between the layout and the schematic, parisitic extraction of the interconnect, and analysis of the extracted data to generate a noise analysis report.
When correcting the physical circuit layout in a prior art conversion process, a designer typically must either manually move wires and circuits in order to minimize or eliminate those noise problems, or may instead increase the size of the driver supplying signals to a conductive path which is deemed to be noise sensitive.
This manual process is extremely time-consuming and very tedious because moving conductive paths or increasing drivers is likely to cause new noise problems. Those new noise problems must then be corrected, potentially causing yet a third set of noise problems. Thus, manually correcting a circuit layout in order to solve noise problems often requires considerable effort and several very time-consuming iterations.
It would therefore be beneficial to provide a method for automatically determining potentially noisy areas within circuit layouts at the place and route stage, and for correcting problems related to areas of specific concern.
SUMMARY OF THE INVENTION
A method for minimizing noise in an integrated circuit is described, the method including choosing a net to be analyzed, determining that the total path length of conductive paths coupled to a driver within the net exceeds a maximum acceptable length for that driver according to the minimum acceptable noise levels for that given net, and inserting at least one buffer within the net at a position which is within the maximum acceptable length for conductive paths coupled to the driver.BRIEF DESCRIPTION OF THE DRAWINGS
DETAILED DESCRIPTION OF ONE EMBODIMENT
Those of ordinary skill in the art will realize that the following description of the present invention is illustrative only and not in any way limiting. Other embodiments of the invention will readily suggest themselves to such skilled persons who are familiar with this disclosure.The present invention provides a method for correcting potentially noisy circuit layouts at the place and route stage during the process of converting an electronic design into a physical circuit layout.
When referring to FIG.
The present invention analyzes each net (i.e., conducting path between connected drivers/receivers) individually to determine whether a given net is likely to have more than an acceptable level of noise coupled to it from external sources. External sources are considered to be anything other than net components such as driver/receiver combinations or drivers or receivers individually.
Although the coupling capacitance between interconnects is a source of potential coupling noise problems, the symptom of the noise peak is demonstrated at the output of the receiving cell. Different CMOS cells have differing tolerance for coupling noise impinging on their inputs. The choice for the maximum allowable wire length for noise violations to be prevented is therefore not only dependent on the strength of the victim and aggressor drivers, but also on the type of cell at the end of the victim interconnect.
The present invention noise analysis is performed using well-known curves for various driver circuits of noise amplitude vs. the length of a conductive path coupled to that driver circuit. It is well-known that a conductive path of a given length being driven by a weak driver will have a higher susceptibility to noise than that same conductive path when driven by a stronger driver.
For each conductive path, there is a given amount of noise that can be tolerated, depending on what signals on that conductive path are accomplishing. It is up to the circuit designer to determine what the acceptable levels of noise will be on the various types of conductive paths being used in a given design. Such an acceptable level might be pictorially represented as line
Referring to
At block
An example of a larger driver solving the problem is seen in
If, at step
In order to properly place a buffer so as to minimize the noise in a given net, it is necessary to know the point at which acceptable noise level line
When determining where to place a buffer, it is important to recognize that a conductive path includes all conductive path segments leaving a given driver, including all intersecting paths. Using the example of
In another embodiment of the present invention, a net downstream from the stronger replacement driver inserted in block
Referring to FIG.
Assume now that it is time to analyze driver/receiver
Assume that the various lengths of conductive path segments
It is most desirable at this point, to determine if there are timing issues with respect to driver/receiver
Now assume that buffer
If the previously defined criteria for noise is not met by the remaining total conductive path length, it is again necessary, at block
Those of ordinary skill in the art having the benefit of this disclosure would readily recognize that the methods described herein may easily be incorporated in place and route software. It is also contemplated that the methods described herein may be incorporated into a state machine or other application-specific integrated circuits.
While embodiments and applications of this invention have been shown and described, it would be apparent to those skilled in the art that many more modifications than mentioned above are possible without departing from the inventive concepts herein. The invention, therefore, is not to be restricted except in the spirit of the appended claims.
Source: http://www.freepatentsonline.com/6832180.html