The present invention relates generally to the field of static timing analysis of integrated circuit design, and more particularly, relates to a method, system and computer program product for implementing forward tracing to reduce pessimism in static timing of logic blocks laid out in parallel structures on an integrated circuit chip.
A static timing tool typically is used to automatically analyze the timing of an integrated circuit design to ensure that circuits meet critical timing constraints. EinsTimer, a commercially available static timing tool by International Business Machines Corporation, of Armonk, N.Y., performs static timing analysis on an integrated circuit design.
In some Application Specific Integrated Circuit (ASIC) designs, clock trees are built such that synchronous clocks have parallel clock trees. This might happen if a divided clock is used. For example, some latches in the design may be clocked at 500 MHz and some at 250 MHz with the 250 MHz clock being created from the 500 MHz using a clock divider at the base of the trees.
When using this sort of parallel clock tree structure, logic paths that cross from one of the clock trees to the other clock tree can suffer from significant variation penalties due to the large number of clock gates that are not common between the latches involved. Timing pessimism results when considering delay variation along common segments of clock paths.
If these parallel clock trees are built with similar layouts using gates at each level of the tree that are placed near each other, then it is known that some of the variation penalty can be reduced. This reduction comes from the fact that gates far away from each other on a chip die typically have more process variation than gates that are near each other.
Tools exist, such as EinsTimer, to reduce timing pessimism by taking advantage of this reduction in variation due to proximity. However, these tools require all gates, which are not common between source and sink latch to be inside a bounding box. In conventional topology, individual pairs of gates would fit inside a bounding box, but the complete topology does not fit inside the bounding box.
A need exists for an efficient and effective mechanism to reduce pessimism in static timing of logic blocks laid out in parallel structures on an integrated circuit chip in small parallel structures widely separated from other small structures involved in timing of a set of gates.
A principal aspect of the present invention is to provide a method, system and computer program product for implementing forward tracing to reduce pessimism in static timing of logic blocks laid out in parallel structures on an integrated circuit chip. Other important aspects of the present invention are to provide such method, system, and computer program product substantially without negative effect and that overcome many of the disadvantages of prior art arrangements.
In brief, a method, system and computer program product are provided for implementing forward tracing to reduce pessimism in static timing of logic blocks laid out in parallel structures on an integrated circuit chip. A common path pessimism removal algorithm is enhanced by a forward tracing parallel clock tree proximity credit algorithm that uses forward tracing, and computes a proximity credit that is applied to reduce pessimism in the static timing.
An initial analysis is made to provide data for a table of proximity-related pessimism values (PPVs) at each potentially pessimism-introducing block and the amount of potential pessimism at each potentially pessimism-introducing block is associated by the table with a label for that potentially pessimism-introducing block. When full timing analysis is carried out, analysis of the labels on a pair of signals involved in a test allows identification of which potentially pessimism-introducing points affect the particular test. Reference to the pessimism values table using the labels identifies the quantity of pessimism that can be reasonably removed from the test for each potentially pessimism-introducing point affecting the test. The sum of the proximity-related pessimism values (PPVs) is the amount of a proximity credit (PC) appropriate to improve the timing slack on the test.
The present invention together with the above and other objects and advantages may best be understood from the following detailed description of the preferred embodiments of the invention illustrated in the drawings, wherein:
In the following detailed description of embodiments of the invention, reference is made to the accompanying drawings, which illustrate example embodiments by which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the invention.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
In accordance with features of the invention, a method is provided to reduce pessimism in static timing of logic blocks laid out in parallel structures on an integrated circuit chip. A forward tracing parallel clock tree proximity credit algorithm is provided to enhance a common path pessimism removal algorithm using forward tracing to compute a proximity credit that reduce pessimism in the static timing.
Referring now to the drawings, in
Computer system 100 is shown in simplified form sufficient for understanding the present invention. The illustrated computer system 100 is not intended to imply architectural or functional limitations. The present invention can be used with various hardware implementations and systems and various other internal hardware devices, for example, multiple main processors.
As shown in
Various commercially available computers can be used for computer system 100. CPU 102 is suitably programmed by the forward tracing parallel clock tree proximity credit algorithm or program 138 to execute the flowchart of
Referring to
In accordance with features of the invention, the static timing tool 134, such as an EinsTimer static timing tool, uses labels to distinguish clock signals from one another. The labels connect particular clock signals with frequency and duty cycle information. The common path pessimism removal algorithm or program 136 and the forward tracing parallel clock tree proximity credit algorithm or program 138 of the invention takes advantage of the existing concept of clock labels and enhance the clock labels to carry additional information to allow reduction of pessimism due to default analysis of proximity effects. The extra information is attached to the clock labels, also called phases, on clock signals passing through potentially pessimism-introducing blocks, for example, attached to either block in a pair of closely-positioned blocks, to identify just which potentially pessimism-introducing block in the design the signal has passed through.
At the beginning of timing, an analysis is made to provide data for a table of proximity-related pessimism values at each potentially pessimism-introducing block and the amount of potential pessimism at each potentially pessimism-introducing block is associated by the table with the label for that potentially pessimism-introducing block. When full timing analysis is carried out, analysis of the labels on a pair of signals involved in a test allows identification of which potentially pessimism-introducing points affect the particular test. Reference to the pessimism values table using the labels identifies the quantity of pessimism that can be reasonably removed from the test for each potentially pessimism-introducing point affecting the test. The sum of all such pessimism values is the amount of credit appropriate to give the slack on the test.
In accordance with features of the invention, the method advantageously is implemented without complex tracing algorithms but rather with simple protocol to process pessimism values for all sinks-on-this-net with forward tracing and commands to ask for delays and to offset slack by specific amounts whenever two phases meet at a test. The method of the invention effectively eliminates some complexity, multiple decisions and time-consuming requirements of mechanisms that use backward path tracing from test points after propagation of arrival times are done.
Referring now to
As indicated at a block 400, a user-provided list of pairs of clock tree buffers that are qualified by their layout position to give proximity credit to signals going through the pairs of clock tree buffers is read. A Repowering Unique Identified (RIU) is associated with each pair of guaranteed-closely-spaced repowering blocks as indicated at a block 402. As indicated at a block 404, next the RUI is associated for each pair with each repowering buffer instance in the pair. A set of user-supplied timing assertions sufficient to allow the static timer to drive all the clock repowering buffers as accurately as in full chip timing is read as indicated at a block 406.
Next timing the clock repowering trees is performed with sufficient detail to create accurate values of delay in each repowering buffer as indicated at a block 408. As indicated at a block 410, for each repowering buffer instance associated with an RUI, the amount of proximity penalty that is inherent in each of the repowering buffers is computed using a formula appropriate for the technology of the integrated circuit design.
For each RUI pair of repowering buffers, the smaller of the two calculated proximity values is selected and registered as the Proximity Penalty Value (PPV) for the respective RUI in a table of proximity-related pessimism value, as indicated at a block 412.
Referring to
Full timing analysis of the integrated circuit chip is carried out including creation of, appending to, and passing along RUI attributes for all signals deserving the RUI attributes as indicated at a block 416. Next where two signals meet at timing tests, the RUI attribute lists for the tow signals are compared, and the RUI values the signals have in common are identified as indicated at a block 418. Using the previously stored PPV database or table, the proximity credit (PC) is computed, which is the sum of the PPVs for the identified RUI values the signals have in common in the test as indicated at a block 420. As indicated at a block 422, after computing the raw slack on the test using standard methods, the slack for the test is improved by crediting the amount of the computed proximity credit (PC) obtained at the previous step at block 420. This effectively and efficiently reduces pessimism in the static timing of the logic blocks laid out in parallel structures in accordance with the preferred embodiment.
Referring now to
A sequence of program instructions or a logical assembly of one or more interrelated modules defined by the recorded program means 504, 506, 508, 510, direct the computer system 100 for implementing forward tracing to reduce timing pessimism in static timing of logic blocks laid out in parallel structures on an integrated circuit chip of the preferred embodiment.
While the present invention has been described with reference to the details of the embodiments of the invention shown in the drawing, these details are not intended to limit the scope of the invention as claimed in the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5636372 | Hathaway et al. | Jun 1997 | A |
5812835 | Ruuskanen | Sep 1998 | A |
6237127 | Craven et al. | May 2001 | B1 |
6795951 | Hathaway et al. | Sep 2004 | B2 |
7096442 | Lu et al. | Aug 2006 | B2 |
7117466 | Kalafala et al. | Oct 2006 | B2 |
7143379 | Darsow et al. | Nov 2006 | B2 |
7181711 | Foreman et al. | Feb 2007 | B2 |
7237212 | Kucukcakar et al. | Jun 2007 | B2 |
7243323 | Williams et al. | Jul 2007 | B2 |
7269812 | Darsow et al. | Sep 2007 | B2 |
7398491 | Schaeffer et al. | Jul 2008 | B2 |
7406669 | Lindberg | Jul 2008 | B2 |
7546500 | Kapur et al. | Jun 2009 | B2 |
7636905 | Darsow et al. | Dec 2009 | B2 |
7694254 | Gregerson et al. | Apr 2010 | B2 |
7765503 | Smith | Jul 2010 | B2 |
7784003 | Buck et al. | Aug 2010 | B2 |
7797601 | Kapur et al. | Sep 2010 | B2 |
7886247 | Fatemi et al. | Feb 2011 | B2 |
7926019 | Ravi | Apr 2011 | B1 |
8060770 | Kuzmin et al. | Nov 2011 | B2 |
8099702 | Hou et al. | Jan 2012 | B2 |
8103997 | Sinha et al. | Jan 2012 | B2 |
8108816 | Foreman et al. | Jan 2012 | B2 |
8122404 | Sinha et al. | Feb 2012 | B2 |
8122411 | Abbaspour et al. | Feb 2012 | B2 |
8141014 | Foreman et al. | Mar 2012 | B2 |
20050066297 | Kalafala et al. | Mar 2005 | A1 |
20050183051 | Darsow et al. | Aug 2005 | A1 |
20060248485 | Foreman et al. | Nov 2006 | A1 |
20070022397 | Darsow et al. | Jan 2007 | A1 |
20070277131 | Schaeffer et al. | Nov 2007 | A1 |
20080163147 | Gregerson et al. | Jul 2008 | A1 |
20080209372 | Buck et al. | Aug 2008 | A1 |
20090222780 | Smith | Sep 2009 | A1 |
20090271751 | Fatemi et al. | Oct 2009 | A1 |
20100083205 | Ono | Apr 2010 | A1 |
20100269083 | Sinha et al. | Oct 2010 | A1 |
20100318951 | Foreman et al. | Dec 2010 | A1 |
20110016442 | Abbaspour et al. | Jan 2011 | A1 |
20110035714 | Foreman et al. | Feb 2011 | A1 |
20110239173 | Ravi | Sep 2011 | A1 |
20120023466 | Darsow et al. | Jan 2012 | A1 |
20120023469 | Darsow et al. | Jan 2012 | A1 |
Number | Date | Country | |
---|---|---|---|
20120023466 A1 | Jan 2012 | US |