1. Technical Field
This disclosure relates to integrated circuit design, and more particularly to a method for correcting timing path violations.
2. Description of the Related Art
The design cycle for integrated circuits is complex and there are many steps. During the design cycle there are many timing checks performed to ensure that signal paths meet specified timing. Generally, once the circuit has been synthesized, placed, and routed, changes to the circuit are referred to as engineering change orders or ECOs.
In a typical conventional ECO design flow the static timing path analyzer (STA) may provide a list of timing paths that do not meet timing. The conventional ECO tools may make changes to the problem timing paths in various ways. For example, one or more gates may be swapped to allow the timing path to meet timing. However, in many cases swapping a gate in a timing path of interest may cause unintended consequences in other related timing paths. These conventional ECO tools may repair several timing paths and then have to go back and undo some of the fixes because of the unintended timing problems created in the other paths. This can lead to unacceptably long delays in getting convergence in timing path errors, and thus delays in closure of the design cycle.
Various embodiments of a method and system for automatically implementing engineering change order (ECO) corrections in an integrated circuit (IC) are disclosed. In one embodiment, the method includes a design tool performing a timing analysis for a netlist of the IC that includes a listing of device cells. The method may also include annotating each of the device cells in the listing with a worst timing slack through a respective timing point associated with the device cell. In addition, the method may include generating an ECO list of device cells needing ECO correction and prioritizing the ECO correction order of the device cells in the ECO list based upon cell attributes such as cell size and/or speed for example. The method may further include excluding one or more device cells in the ECO list based upon the fan-in or fan-out connection path of other device cells in the ECO list that will be corrected, and the design tool selecting device cells in the ECO list and replacing the selected device cells in the netlist with different device cells from a design library.
In one specific implementation, the method may further include performing a downstream power analysis to identify devices that have one or more fanout paths that consume power above a predetermined threshold. The method may also include replacing devices that have one or more fanout paths that consume power above the predetermined threshold with a device that has a faster switching speed, and replacing one or more of the devices in the one or more fanout paths with devices that have a slower switching speed.
In another specific implementation, the method may further include performing an upstream power analysis to identify devices that have one or more fan-in paths that consume power above a predetermined threshold. The method may also include replacing devices that have one or more fan-in paths that consume power above the predetermined threshold with a device that has a faster switching speed, and replacing one or more of the devices in the one or more fan-in paths with devices that have a slower switching speed.
Specific embodiments are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description are not intended to limit the claims to the particular embodiments disclosed, even where only a single embodiment is described with respect to a particular feature. On the contrary, the intention is to cover all modifications, equivalents and alternatives that would be apparent to a person skilled in the art having the benefit of this disclosure. Examples of features provided in the disclosure are intended to be illustrative rather than restrictive unless stated otherwise.
As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.
Various units, circuits, or other components may be described as “configured to” perform a task or tasks. In such contexts, “configured to” is a broad recitation of structure generally meaning “having circuitry that” performs the task or tasks during operation. As such, the unit/circuit/component can be configured to perform the task even when the unit/circuit/component is not currently on. In general, the circuitry that forms the structure corresponding to “configured to” may include hardware circuits. Similarly, various units/circuits/components may be described as performing a task or tasks, for convenience in the description. Such descriptions should be interpreted as including the phrase “configured to.” Reciting a unit/circuit/component that is configured to perform one or more tasks is expressly intended not to invoke 35 U.S.C. §112, paragraph six, interpretation for that unit/circuit/component.
The scope of the present disclosure includes any feature or combination of features disclosed herein (either explicitly or implicitly), or any generalization thereof, whether or not it mitigates any or all of the problems addressed herein. Accordingly, new claims may be formulated during prosecution of this application (or an application claiming priority thereto) to any such combination of features. In particular, with reference to the appended claims, features from dependent claims may be combined with those of the independent claims and features from respective independent claims may be combined in any appropriate manner and not merely in the specific combinations enumerated in the appended claims.
Turning now to
The timing analyzer may analyze all clock and data paths in the IC design to ensure that the design meets timing. Depending on the type of analysis, the timing analyzer may take into account all the resistor-capacitor (RC) time constants of the wires, the wire thicknesses, the distances between components, the intrinsic delays of each component, and the like. The timing analyzer may store timing and circuit information in a database. The timing analyzer may generate a timing report that includes a listing of all circuit paths that have timing violations and their associated path delays. In addition, the timing analyzer may annotate the worst timing slack through a timing point on each cell (block 110). Slack typically refers to the difference between the required time and arrival time of the signal propagating on that path, or the amount of “spare” time. If there are no engineering change order (ECO) changes to be made to the circuit based upon the timing information (block 115), the process is complete (block 155).
However, if there are changes to be made (block 115), an ECO cell list may be generated from the timing analyzer information. The ECO cell list includes a listing of possible cells to be operated on. The ECO cell list may be prioritized and ordered based on what the ECO is meant to fix (block 120). For example, the ECO may be fixing setup timing, hold timing, leakage, active power, circuit area, etc. Accordingly, cell attributes such as device size, switching speed, power consumption, and the like may used in the determination of the correction order.
In one embodiment, the ECO cell list generation may use a downstream power cost approach. More particularly, each cell may be analyzed and ranked based upon the amount of power consumed by downstream cells in a given cell's fanout. For example, speeding up a given cell (increasing power for that one cell) that has high downstream power cost may allow a lot of power recovery in other cells because those cells in the downstream fanout may be slowed down to achieve a net power reduction while still allowing a particular timing path to meet timing. Accordingly, timing and power information may be extracted from the timing analysis, the device library, etc. and used to perform the downstream power analysis. In one embodiment, device cells may be identified as having fanout paths that include cells that either by themselves or collectively consume more than some predetermined threshold of power.
In another embodiment, the ECO cell list generation may use an upstream power cost approach, which is similar to the downstream approach. More particularly, each cell may be analyzed and ranked based upon the amount of power consumed by upstream cells in a given cell's fan-in. For example, speeding up a given cell (increasing power for that one cell) that has high upstream power cost may allow a lot of power recovery in other cells because those cells in the upstream fan-in may be slowed down to achieve a net power reduction while still allowing a particular timing path to meet timing. Accordingly, as above timing and power information may be extracted from the timing analysis, the device library, etc. and used to perform the upstream power analysis. In one embodiment, device cells may be identified as having fan-in paths that include cells that either by themselves or collectively consume more than some predetermined threshold of power.
Further, once the ECO cell list has been generated and ordered, the ECO list is accessed, the next cell is retrieved, and is analyzed (block 125) to determine whether it can be modified or swapped out. In one embodiment, a determination may be made as to whether the cell may be swapped out just due to it's own timing etc. The fan-in and fan-out of the cell is also checked to ensure that cells in the list that are in the fan-in and fan-out cone of another cell in the list are not modified (block 130). These cells are excluded or “blacklisted” from being modified until after a timer update is performed. However once the timing analysis is run again, these cells may again be analyzed to determine whether they should and can be modified.
More particularly, in
In the circuit 200 of
As each cell is analyzed, a determination may be made as to whether a given cell can be swapped out (block 135). If the cell is not going to be swapped, the next cell in the list is analyzed as described above in block 130. However, if the cell is going to be swapped, it is swapped with an appropriate cell in the library (block 140).
If there are cells remaining to be fixed (block 145), operation proceeds as described above in conjunction with the description of block 125. However, if there are no cells remaining in the ECO list, the timer may be updated by performing another static timing analysis (block 150) to determine whether there are any timing violations remaining, or whether there are any other types of uncorrected problems remaining. This process may be repeated as many times as is necessary or desired to fix remaining timing violations, or power constraints or any number of other design parameters.
As mentioned above, using timing points and a blacklisted list of cells to fix timing violations and other circuit issues may be faster and may reduce unwanted interactions between related cells when contrasted with simply using timing paths when compared to a conventional ECO tool. In addition, a priority cell list that may optimize based upon different metrics such as downstream power cost may not be available to conventional ECO tools.
In one embodiment, the ECO design flow described above may be performed manually on a computer by a user. In various other embodiments, the design tools and specifically the ECO design tool may comprise program instructions that may be written in any programming or scripting language and may perform the operations described above in an automated fashion such that once a user provides initial setup and configuration and initiates execution of the program instructions, one or more portions of the tools may be run without further intervention. The ECO design tool and the other EDA tools may comprise program instructions that execute on one or more processors of a computer system. As such, a block diagram of one embodiment of a computer system that may be used to implement the design tools is shown in
Turning to
In one embodiment, storages 318A-318C may be representative of any type of mass storage device such as hard disk systems, optical media drives, tape drives, ram disk storage, and the like. As such, the program instructions comprising the design tools may be stored within any of storages 318A-318C and loaded into the local system memory of any of the workstations during execution. As an example, as shown in
In one embodiment, the ECO tool 314 may be used to make changes to an IC design based upon information provided by a timing analysis tool 311 or from the device library as described above. In one embodiment, ECO tool 314 may include program instructions written in any of a variety of programming languages or scripting languages, and which may be executable by a processor to perform the above tasks.
It is noted that although the computer system shown in
Although the embodiments above have been described in considerable detail, numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
This patent application claims priority to Provisional Patent Application Ser. No. 61/420,173, filed Dec. 6, 2010, the content of which is herein incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61420173 | Dec 2010 | US |